设计一个简单的学生信息管理系统
设计一个简单的学生信息管理系统,工程名为StudentManager,程序主要功能:对学生信息实现新增、删除、查询等管理操作。具体为:1、学生信息包括:学号、姓名、性别、...
设计一个简单的学生信息管理系统,工程名为StudentManager,程序主要功能:对学生信息实现新增、删除、查询等管理操作。具体为:
1、学生信息包括:学号、姓名、性别、年龄。学号为[1,10000]的整数,姓名为不长于10字节的字符串,性别为男或女,年龄为[1,100]的整数。要求:用结构体描述学生信息,其中性别用枚举类型描述。程序最多管理5个学生的信息,程序初始状态为0个学生信息。
2、程序运行后,首先输出以下提示信息:
Welcome to Student Manager System!
A: Add new student
D: Delete a student
I: Inquiry a student
Q: Quit
3、接受用户的输入。输入A表示用户希望进行新增学生的操作,D表示希望删除一个学生,I表示希望查询学生信息,Q表示希望退出程序,其它输入为非法输入。若用户输入为Q,则退出程序,若为非法输入,则重新显示2中所示信息,再次接受用户输入。若为A、D、I,则分别执行相应操作后(见4、5、6中所述),重新显示2中所示信息,再次接受用户输入。
4、新增操作:如果目前程序存储的学生数已经达到5个,则输出“No space to add new student!”并返回2,否则输出“Please input the student number:”然后接受用户输入的学号,如果是非法数据,输出”Error number!”并返回2,如果学号已经存在,输出"Duplicate number!"并返回2。然后输出“Please input the student name:”,接受用户输入的姓名(无需考虑用户输入长度超10字节的情况,假设输入总是不超过10字节),然后输出“Please input the student sex(‘f’ for female, ‘m’ for male):”然后接受用户输入的性别,如果不是f或m,输出”Error sex!”,并返回2。然后输出”Please input the student age:”,然后接受用户输入的年龄,如果是非法数据,输出”Error age!”并返回2。如果所有数据都合法,则存储该学生的信息,输出“Add Successfully”并返回2。
5、删除操作:输出“Please input the number of the student you want to delete:”接受用户输入的学号,如果是非法数据,输出”Error number!”并返回2。在已经存在的学生信息中搜索该学号,如果不存在,则输出”Not exist!”并返回2,否则将该学生信息删除,输出“Delete successfully!”并返回2。
6、查询操作:输出“Please input the number of the student you want to inquiry(0 for all):”,接受用户输入的学号,如果是非法数据(0除外),输出”Error number!”并返回2。如果是0,显示所有学生的信息,并返回2,否则在已经存在的学生信息中搜索该学号,如果不存在,则输出”Not exist!”并返回2,否则将显示该学生信息,并返回2。输出一个学生的信息要输出其4项信息,格式自定。
7、可选:使用文件来存储学生信息。在程序启动后从文件读入学生信息,退出前将学生信息存入文件,使学生信息可以长久保存。具体相关细节请自行设计。
提示:1、注意严格遵守上述要求编写程序,避免多余功能。
2、建议采用模块化程序设计方法。
3、建议采用多源程序结构。 展开
1、学生信息包括:学号、姓名、性别、年龄。学号为[1,10000]的整数,姓名为不长于10字节的字符串,性别为男或女,年龄为[1,100]的整数。要求:用结构体描述学生信息,其中性别用枚举类型描述。程序最多管理5个学生的信息,程序初始状态为0个学生信息。
2、程序运行后,首先输出以下提示信息:
Welcome to Student Manager System!
A: Add new student
D: Delete a student
I: Inquiry a student
Q: Quit
3、接受用户的输入。输入A表示用户希望进行新增学生的操作,D表示希望删除一个学生,I表示希望查询学生信息,Q表示希望退出程序,其它输入为非法输入。若用户输入为Q,则退出程序,若为非法输入,则重新显示2中所示信息,再次接受用户输入。若为A、D、I,则分别执行相应操作后(见4、5、6中所述),重新显示2中所示信息,再次接受用户输入。
4、新增操作:如果目前程序存储的学生数已经达到5个,则输出“No space to add new student!”并返回2,否则输出“Please input the student number:”然后接受用户输入的学号,如果是非法数据,输出”Error number!”并返回2,如果学号已经存在,输出"Duplicate number!"并返回2。然后输出“Please input the student name:”,接受用户输入的姓名(无需考虑用户输入长度超10字节的情况,假设输入总是不超过10字节),然后输出“Please input the student sex(‘f’ for female, ‘m’ for male):”然后接受用户输入的性别,如果不是f或m,输出”Error sex!”,并返回2。然后输出”Please input the student age:”,然后接受用户输入的年龄,如果是非法数据,输出”Error age!”并返回2。如果所有数据都合法,则存储该学生的信息,输出“Add Successfully”并返回2。
5、删除操作:输出“Please input the number of the student you want to delete:”接受用户输入的学号,如果是非法数据,输出”Error number!”并返回2。在已经存在的学生信息中搜索该学号,如果不存在,则输出”Not exist!”并返回2,否则将该学生信息删除,输出“Delete successfully!”并返回2。
6、查询操作:输出“Please input the number of the student you want to inquiry(0 for all):”,接受用户输入的学号,如果是非法数据(0除外),输出”Error number!”并返回2。如果是0,显示所有学生的信息,并返回2,否则在已经存在的学生信息中搜索该学号,如果不存在,则输出”Not exist!”并返回2,否则将显示该学生信息,并返回2。输出一个学生的信息要输出其4项信息,格式自定。
7、可选:使用文件来存储学生信息。在程序启动后从文件读入学生信息,退出前将学生信息存入文件,使学生信息可以长久保存。具体相关细节请自行设计。
提示:1、注意严格遵守上述要求编写程序,避免多余功能。
2、建议采用模块化程序设计方法。
3、建议采用多源程序结构。 展开
5个回答
展开全部
//////////////////////////简单的学生管理系统///////////////////
#include<iostream>
#define max 5
using namespace std;
struct student//////////定义数组结构体
{
int xuehao; //学号
char name[10]; //姓名
char sex; //性别
int age; //年龄
}stu[max];
//////定义数型
char a; //全局函数a(操作数)
int i; //全局函数i(循环操作数)
//////////函数列表
void display(); //屏显函数
void init(); //数组结构体初始化函数
void xuanze(); //选择操作数函数
void sys(char a); //根据操作数执行函数
void addf(); //增加数据的函数
void delf(); //删除数据的函数
void inqf(); //查询数据的函数
//////////////////////屏显
void display()
{
cout<<" ==========Welcome to Student Manager System!=========="<<endl;
cout<<endl;
cout<<" A: Add new student"<<endl;
cout<<" D: Delete a student"<<endl;
cout<<" I: Inquiry a student"<<endl;
cout<<" Q: Quit"<<endl;
cout<<endl;
xuanze();
}
/////////////////////////////信息初始化
void init()
{
for(i=0;i<max;i++)
{
stu[i].name[10]='\0';
stu[i].sex='\0'; //初始化所有的sex为'\0'
stu[i].age=0;
}
}
////////////////////////操作选择
void xuanze()
{
cout<<"input your choose:"<<endl;
cin>>a;
if(a=='A'||a=='D'||a=='I'||a=='Q')
sys(a); //选择相应的操作数执行函数
else
{
cout<<"Error chooseing!"<<endl;
cout<<endl;
display();
}
}
/////////////////////相应操作数对应函数
void sys(char a)
{
switch(a)
{
case 'A':addf();
case 'D':delf();
case 'I':inqf();
case 'Q':exit(0); //退出
}
}
/////////////添加数据的函数
void addf()
{
int k=0,j,g;
for(i=0;i<max;i++)
{
if(stu[i].sex=='\0')k++;
}
cout<<"剩余 "<<k<<" 个记录可以添加!"<<endl; //输出剩余的可添加记录数目
if(k!=0)
{
cout<<"请输入你要添加的记录的个数,但是记录个数不能超过 "<<k<<endl;
cin>>j;
if(j>k)
{
cout<<"Error number!"<<endl;
cout<<endl; //显示美观需要
display();
}
else
{
for(i=0;i<j;i++)
{
for(int h=0;h<max;h++)
{
if(stu[h].sex=='\0') //判断sex是否为'\0' 如果是则执行写入操作
{
cout<<"input the NO"<<i+1<<" 's xuehao:"<<endl;
cin>>stu[h].xuehao;
///判断数据非法与否
for(g=0;g<max;g++)
{
if((stu[g].xuehao==stu[h].xuehao)&&g!=h)
{
cout<<"Duplicate number!"<<endl;
cout<<endl;
display();
}
}/////////判断学号是否相同
if(stu[h].xuehao<1||stu[h].xuehao>10000)
{
cout<<"Error number!"<<endl;
cout<<endl;
display();
}
cout<<"input the NO"<<i+1<<" 's name:"<<endl;
cin>>stu[h].name;
cout<<"input the NO"<<i+1<<" 's sex:('f' for female,'m' for male)"<<endl;
cin>>stu[h].sex;
///判断数据非法与否
if(stu[h].sex!='f'&&stu[h].sex!='m')
{
stu[h].sex='\0'; //恢复sex的初始值,以便下次写入产生遗漏
cout<<"Error sex!"<<endl;
cout<<endl;
display();
}
cout<<"input the NO"<<i+1<<" 's age:(1-100)"<<endl;
cin>>stu[h].age;
///判断数据非法与否
if(stu[h].age<1||stu[h].age>100)
{
stu[h].sex='\0'; //恢复sex的初始值,以便下次写入产生遗漏
cout<<"Error age!"<<endl;
cout<<endl;
display();
}
break; //跳出本层循环
}
}
}
display(); //返回
}
}
else
{
cout<<"No space to add new student!"<<endl;
cout<<endl;
display();
}
}
////////////////删除数据的函数
void delf()
{
int d,s=0;
cout<<"Please input the number of the student you want to delete:"<<endl;
cin>>d;
if(d<1||d>10000)
{
cout<<"Error number!"<<endl;
cout<<endl;
display();
}
else
{
for(i=0;i<max;i++)
{
if(stu[i].xuehao==d)
{
s++; //是否实行删除的标志位
stu[i].xuehao=-1;
stu[i].name[10]='\0';
stu[i].sex='\0';
stu[i].age=0;
cout<<"Delete successfully!"<<endl;
cout<<endl;
display();
}
}
if(s==0)
{
cout<<"Not exist!"<<endl;
cout<<endl;
display();
}
}
}
/////////////查询数据的函数
void inqf()
{
int d,s=0;
cout<<"Please input the number of the student you want to inquiry(0 for all):"<<endl;
cin>>d;
cout<<endl;
if(d==0)
{
for(i=0;i<max;i++)
{
if(stu[i].sex!='\0')
cout<<stu[i].xuehao<<","<<stu[i].name<<","<<stu[i].sex<<","<<stu[i].age<<endl;
}
cout<<endl;
display();
}
else
{
if(d<1||d>10000)
{
cout<<"Error number!"<<endl;
cout<<endl;
display();
}
else
{
for(i=0;i<max;i++)
{
if(stu[i].xuehao==d)
{
s++; //是否存在该数字的标志
cout<<stu[i].xuehao<<","<<stu[i].name<<","<<stu[i].sex<<","<<stu[i].age<<endl;
display();
}
}
if(s==0)
{
cout<<"Not exist!"<<endl;
cout<<endl;
display();
}
}
}
}//ingf
//////////////主函数
void main()
{
init(); //初始化
display(); //屏显(主界面)
}
用了我整整三个小时啊,如果你还有什么问题,或者调试的过程中发现了什么问题,又或者你想实现文件的读取存储功能的可以留下你的QQ,我会主动联系你的了.这两天我都有时间.....
#include<iostream>
#define max 5
using namespace std;
struct student//////////定义数组结构体
{
int xuehao; //学号
char name[10]; //姓名
char sex; //性别
int age; //年龄
}stu[max];
//////定义数型
char a; //全局函数a(操作数)
int i; //全局函数i(循环操作数)
//////////函数列表
void display(); //屏显函数
void init(); //数组结构体初始化函数
void xuanze(); //选择操作数函数
void sys(char a); //根据操作数执行函数
void addf(); //增加数据的函数
void delf(); //删除数据的函数
void inqf(); //查询数据的函数
//////////////////////屏显
void display()
{
cout<<" ==========Welcome to Student Manager System!=========="<<endl;
cout<<endl;
cout<<" A: Add new student"<<endl;
cout<<" D: Delete a student"<<endl;
cout<<" I: Inquiry a student"<<endl;
cout<<" Q: Quit"<<endl;
cout<<endl;
xuanze();
}
/////////////////////////////信息初始化
void init()
{
for(i=0;i<max;i++)
{
stu[i].name[10]='\0';
stu[i].sex='\0'; //初始化所有的sex为'\0'
stu[i].age=0;
}
}
////////////////////////操作选择
void xuanze()
{
cout<<"input your choose:"<<endl;
cin>>a;
if(a=='A'||a=='D'||a=='I'||a=='Q')
sys(a); //选择相应的操作数执行函数
else
{
cout<<"Error chooseing!"<<endl;
cout<<endl;
display();
}
}
/////////////////////相应操作数对应函数
void sys(char a)
{
switch(a)
{
case 'A':addf();
case 'D':delf();
case 'I':inqf();
case 'Q':exit(0); //退出
}
}
/////////////添加数据的函数
void addf()
{
int k=0,j,g;
for(i=0;i<max;i++)
{
if(stu[i].sex=='\0')k++;
}
cout<<"剩余 "<<k<<" 个记录可以添加!"<<endl; //输出剩余的可添加记录数目
if(k!=0)
{
cout<<"请输入你要添加的记录的个数,但是记录个数不能超过 "<<k<<endl;
cin>>j;
if(j>k)
{
cout<<"Error number!"<<endl;
cout<<endl; //显示美观需要
display();
}
else
{
for(i=0;i<j;i++)
{
for(int h=0;h<max;h++)
{
if(stu[h].sex=='\0') //判断sex是否为'\0' 如果是则执行写入操作
{
cout<<"input the NO"<<i+1<<" 's xuehao:"<<endl;
cin>>stu[h].xuehao;
///判断数据非法与否
for(g=0;g<max;g++)
{
if((stu[g].xuehao==stu[h].xuehao)&&g!=h)
{
cout<<"Duplicate number!"<<endl;
cout<<endl;
display();
}
}/////////判断学号是否相同
if(stu[h].xuehao<1||stu[h].xuehao>10000)
{
cout<<"Error number!"<<endl;
cout<<endl;
display();
}
cout<<"input the NO"<<i+1<<" 's name:"<<endl;
cin>>stu[h].name;
cout<<"input the NO"<<i+1<<" 's sex:('f' for female,'m' for male)"<<endl;
cin>>stu[h].sex;
///判断数据非法与否
if(stu[h].sex!='f'&&stu[h].sex!='m')
{
stu[h].sex='\0'; //恢复sex的初始值,以便下次写入产生遗漏
cout<<"Error sex!"<<endl;
cout<<endl;
display();
}
cout<<"input the NO"<<i+1<<" 's age:(1-100)"<<endl;
cin>>stu[h].age;
///判断数据非法与否
if(stu[h].age<1||stu[h].age>100)
{
stu[h].sex='\0'; //恢复sex的初始值,以便下次写入产生遗漏
cout<<"Error age!"<<endl;
cout<<endl;
display();
}
break; //跳出本层循环
}
}
}
display(); //返回
}
}
else
{
cout<<"No space to add new student!"<<endl;
cout<<endl;
display();
}
}
////////////////删除数据的函数
void delf()
{
int d,s=0;
cout<<"Please input the number of the student you want to delete:"<<endl;
cin>>d;
if(d<1||d>10000)
{
cout<<"Error number!"<<endl;
cout<<endl;
display();
}
else
{
for(i=0;i<max;i++)
{
if(stu[i].xuehao==d)
{
s++; //是否实行删除的标志位
stu[i].xuehao=-1;
stu[i].name[10]='\0';
stu[i].sex='\0';
stu[i].age=0;
cout<<"Delete successfully!"<<endl;
cout<<endl;
display();
}
}
if(s==0)
{
cout<<"Not exist!"<<endl;
cout<<endl;
display();
}
}
}
/////////////查询数据的函数
void inqf()
{
int d,s=0;
cout<<"Please input the number of the student you want to inquiry(0 for all):"<<endl;
cin>>d;
cout<<endl;
if(d==0)
{
for(i=0;i<max;i++)
{
if(stu[i].sex!='\0')
cout<<stu[i].xuehao<<","<<stu[i].name<<","<<stu[i].sex<<","<<stu[i].age<<endl;
}
cout<<endl;
display();
}
else
{
if(d<1||d>10000)
{
cout<<"Error number!"<<endl;
cout<<endl;
display();
}
else
{
for(i=0;i<max;i++)
{
if(stu[i].xuehao==d)
{
s++; //是否存在该数字的标志
cout<<stu[i].xuehao<<","<<stu[i].name<<","<<stu[i].sex<<","<<stu[i].age<<endl;
display();
}
}
if(s==0)
{
cout<<"Not exist!"<<endl;
cout<<endl;
display();
}
}
}
}//ingf
//////////////主函数
void main()
{
init(); //初始化
display(); //屏显(主界面)
}
用了我整整三个小时啊,如果你还有什么问题,或者调试的过程中发现了什么问题,又或者你想实现文件的读取存储功能的可以留下你的QQ,我会主动联系你的了.这两天我都有时间.....
卓导
2025-01-03 广告
2025-01-03 广告
设计同系统建设,协同设计平台建议选择卓导科技有限公司,卓导科技为国家高新技术企业,成立于2008年,致力于为勘察设计企业提供软件产品、解决方案、信息化服务。公司面向市政规划设计、铁路公路设计、煤炭能源设计、建筑房地产等诸多专业领域,推出“M...
点击进入详情页
本回答由卓导提供
展开全部
确实很简单的一个程序.复杂度基本等于1.
直接拿你们的教程都可以拼凑出来这样一个模块。呵呵
直接拿你们的教程都可以拼凑出来这样一个模块。呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可用数学归纳法
来管理啊
来管理啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己编程,太难了。用蓝点通用管理系统来做吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
目前我手里有一个图书管理系统的,不知道对你有没有用.或许可以借鉴一下.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询