设计一个简单的学生信息管理系统

2024-11-24 00:35:29
推荐回答(5个)
回答1:

//////////////////////////简单的学生管理系统///////////////////
#include
#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!=========="< cout< cout<<" A: Add new student"< cout<<" D: Delete a student"< cout<<" I: Inquiry a student"< cout<<" Q: Quit"< cout< xuanze();
}

/////////////////////////////信息初始化
void init()
{
for(i=0;i {
stu[i].name[10]='\0';
stu[i].sex='\0'; //初始化所有的sex为'\0'
stu[i].age=0;
}
}

////////////////////////操作选择
void xuanze()
{
cout<<"input your choose:"< cin>>a;
if(a=='A'||a=='D'||a=='I'||a=='Q')
sys(a); //选择相应的操作数执行函数
else
{
cout<<"Error chooseing!"< cout< 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 {
if(stu[i].sex=='\0')k++;
}
cout<<"剩余 "< if(k!=0)
{
cout<<"请输入你要添加的记录的个数,但是记录个数不能超过 "< cin>>j;
if(j>k)
{
cout<<"Error number!"< cout< display();
}
else
{
for(i=0;i {
for(int h=0;h {
if(stu[h].sex=='\0') //判断sex是否为'\0' 如果是则执行写入操作
{
cout<<"input the NO"< cin>>stu[h].xuehao;
///判断数据非法与否
for(g=0;g {
if((stu[g].xuehao==stu[h].xuehao)&&g!=h)
{
cout<<"Duplicate number!"< cout< display();
}
}/////////判断学号是否相同
if(stu[h].xuehao<1||stu[h].xuehao>10000)
{
cout<<"Error number!"< cout< display();
}
cout<<"input the NO"< cin>>stu[h].name;
cout<<"input the NO"< cin>>stu[h].sex;
///判断数据非法与否
if(stu[h].sex!='f'&&stu[h].sex!='m')
{
stu[h].sex='\0'; //恢复sex的初始值,以便下次写入产生遗漏
cout<<"Error sex!"< cout< display();
}
cout<<"input the NO"< cin>>stu[h].age;
///判断数据非法与否
if(stu[h].age<1||stu[h].age>100)
{
stu[h].sex='\0'; //恢复sex的初始值,以便下次写入产生遗漏
cout<<"Error age!"< cout< display();
}
break; //跳出本层循环
}
}
}
display(); //返回
}
}
else
{
cout<<"No space to add new student!"< cout< display();
}
}

////////////////删除数据的函数
void delf()
{
int d,s=0;
cout<<"Please input the number of the student you want to delete:"< cin>>d;
if(d<1||d>10000)
{
cout<<"Error number!"< cout< display();
}
else
{
for(i=0;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!"< cout< display();
}
}
if(s==0)
{
cout<<"Not exist!"< cout< display();
}
}

}

/////////////查询数据的函数
void inqf()
{
int d,s=0;
cout<<"Please input the number of the student you want to inquiry(0 for all):"< cin>>d;
cout< if(d==0)
{
for(i=0;i {
if(stu[i].sex!='\0')
cout< }
cout< display();
}
else
{
if(d<1||d>10000)
{
cout<<"Error number!"< cout< display();
}
else
{
for(i=0;i {
if(stu[i].xuehao==d)
{
s++; //是否存在该数字的标志
cout< display();
}
}
if(s==0)
{
cout<<"Not exist!"< cout< display();
}
}
}
}//ingf

//////////////主函数
void main()
{
init(); //初始化
display(); //屏显(主界面)
}

用了我整整三个小时啊,如果你还有什么问题,或者调试的过程中发现了什么问题,又或者你想实现文件的读取存储功能的可以留下你的QQ,我会主动联系你的了.这两天我都有时间.....

回答2:

确实很简单的一个程序.复杂度基本等于1.
直接拿你们的教程都可以拼凑出来这样一个模块。呵呵

回答3:

可用数学归纳法
来管理啊

回答4:

自己编程,太难了。用蓝点通用管理系统来做吧

回答5:

目前我手里有一个图书管理系统的,不知道对你有没有用.或许可以借鉴一下.