学生学籍信息管理系统流程图.docx
《学生学籍信息管理系统流程图.docx》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统流程图.docx(14页珍藏版)》请在冰豆网上搜索。
![学生学籍信息管理系统流程图.docx](https://file1.bdocx.com/fileroot1/2023-3/28/42403e24-fc72-4c80-8589-3f7cc6ac1256/42403e24-fc72-4c80-8589-3f7cc6ac12561.gif)
学生学籍信息管理系统流程图
1、题目描述
编写一个学籍信息管理程序,以一个班级为例。
学籍信息的组成部分为:
学号、姓名、性别、出生日期、政治面貌和家庭住址等。
具体实现以下功能:
(1)添加:
学号自动加1;
(2)删除;
(3)修改;
(4)查询:
可按多个条件查询;
(5)用子函数实现各个子功能
【输入】
程序正常运行后,屏幕上显示一个文字菜单(根据序号选定相应的操作项
目),当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘
上输入相应的数据。
【输出】
(1)应用程序正常运行后,要在屏幕上显示一个文字菜单;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数
据内容、格式及结束方式等。
2、功能分析
通过这样一个小型的学籍管理程序,可以实现小规模的学校学籍管理机制。
利用该程序,可以将该学校的学生信息进行统计。
首先,将学生的详细情况输入
到电脑中并且存入到文件中,保证数据不会丢失,当再次进入该程序时,可以方
便的查询学生的各种信息。
若当需要查询某个学生的详细资料时,可以通过其任
何信息比如学号、家庭住址等信息进行查询,这样会给用户查询某个学生的信息
以极大的方便。
当发现某个学生的信息录入系统时有错误,可已对数据进行修改,
又或者,当某位员工,因各种原因退学时,也可以删除其信息。
本系统实现五种基本功能:
添加学生信息、删除学生信息、修改学生信息、
存储学生信息到文件。
所以该学籍管理系统可以分为5个部分,分别为添加模块、
删除模块、修改模块、存储模块、查询模块,每个模块都有其对应的功能以及其
2
设计。
首先,当然你必须定义一个类,其中私有成员必须包括学号、姓名、性别、
出生日期、政治面貌和家庭住址等。
然后在公有成员中可以定义多个函数实现各
个功能。
(1)添加功能模块
这一模块通过类内函数push()实现,学号自动加1,实现学生信息的添加根
据屏幕上的提示依次输入学生的姓名、生日、性别、政治面貌、地址等信息并且
写入文件中,方便下次进入系统时的使用。
(2)删除功能模块
这一模块由deleting()函数实现其功能,根据屏幕上的提示输入想要删除
的员工信息的员工的工号,然后实现删除功能并保存到文件中。
(3)修改功能模块
该模块的功能通过类内函数revise()来实现,进入该函数后,根据屏幕上
的提示,输入想要修改的信息对应的数字键,比如说输入学生的姓名、学号、地
址、生日、政治面貌等等对应的1、2、3、4、5等数字键。
然后再输入修改后的
学生信息并且保存。
(4)查询功能模块
查询模块的功能是你可以输入学生的任何信息员并进行操作。
(5)保存功能模块
保存信息到文件,使系统更加人性化,这样系统退出也不会是信息丢失,用
户下次使用不用重复输入。
3
3.系统设计
3.1程序总体结构
系统设计总流程图:
图1,程序设计总流程图
开始
进入主菜单
选择
录
入
学
生
信
息
查
询
员
工
信
息
修
改
学
生
信
息
删
除
员
工
信
息
保
存
退
出
4
3.2主功能模块设计
3.2.1菜单模块
执行显示主菜单和进入主循环操作,进行按键判断。
在判断键值时,有效的
输入为0~4之间的任意叔侄,其他输入都被视为错误按键。
若输入为1,则会跳
转到数据录入函数;若输入为2,则会跳转到修改函数;若输入为3,则会跳转
到信息删除模块;若输入为4,则会跳转到显示指定学生信息的查询部分;若输
入为0,则安全退出系统。
菜单模块的表格如下:
0
退出系统
1
学生信息的录入
2
学生信息的修改
3
学生信息的删除
4
学生信息的查询
表1,菜单模块
3.2.2信息的录入模块
输入记录模块主要实现将数据存入数组中。
当从数据文件中读出记录时,执
行一次从文件中读取一条工资记录信息存入数组元素中,并且这个操作在main()
中调用执行,记载工资管理系统进入显示菜单界面是,该操作已经执行了。
若该
文件没有数据,系统会提示数组为空,没有任何记录可操作,此时,用户应选择
1,调用push()函数,进行记录的输入,即完成在数组中添加元素的操作。
5
3.2.3信息的修改模块
如果对每一个成员的修改在公有成员中都定义一个函数,会让这个程序看起
来显得特别臃肿。
可以模仿这个程序的主程序一样,对各个功能进行编号,如对
修改姓名可以编号1、对修改姓名进行编号2等等。
然后只需定义一个函数就可
实现。
3.2.4信息的删除模块
可以定义一个类的对象的数组,首先根据输入的学号,找到对应的数组对应
的元素。
然后依次向前覆盖,最后将数组长度减一,实现删除的目的。
3.2.5信息的查询模块
因为除了学号我们定义的私有成员都是字符串,所以我们就可以将学号转换
为字符串然后只需对字符串的运算就可以了,这样就会方便很多。
因为本次程序
的数据量较小,所以不用担心将学号转换过来会和生日日期相同的情况。
3.3程序设计
3.3.1主函数main()
主函数main()程序如下:
intmain()
{
system("color1c");
ifstreamfp;
fp.open("student.dat");
intnum,n=1,u;
charnam[20],se[20],birth[20],politic[20],addre[20];
while(fp>>num)
{
fp>>nam>>se>>birth>>politic>>addre;
a[n].inpush(num,nam,se,birth,politic,addre);
n++;
qn++;
}
u=n;
6
fp.close();
cout<<"\t\t\t****************\n\t\t\t*
*\n\t\t\t*\t学籍信息管理系统*\n\t\t\t**\n";
cout<<"\t\t\t*\t0.退出*\n\t\t\t*
*\n\t\t\t*\t1.添加*\n\t\t\t**\n\t\t\t*\t2.
修改*\n\t\t\t**\n\t\t\t*\t3.删除
*\n\t\t\t**\n\t\t\t*\t4.查询*\n\t\t\t*
*\n\t\t\t****************\n\n请输入你需要进行的操作的编号:
";
intm,t,i,temp,q;
cin>>m;
chars[50];
while(m!
=0)
{
switch(m)
{
case1:
system("cls");
system("color5e");
a[n].push();n++;
getch();
break;
case2:
system("cls");
system("color3a");
cout<<"请输入你要进行修改的第几个学生的信息:
";
cin>>t;
if(t>n)
cout<<"你输入的学号不正确,修改操作结束\n";
else
{a[t].revise();
cout<<"修改后的学生信息为:
\n";
a[t].print();
cout<<"修改操作结束\n";}
getch();
break;
case3:
system("cls");
system("color6f");
cout<<"请输入你要进行删除的第几个学生的信息:
";
cin>>t;
if(t>n)
cout<<"你输入的学号不正确,删除操作结束\n";
else
7
n=deleting(t,n);
getch();
break;
case4:
system("cls");
system("color5e");
cout<<"请输入你要查找的信息:
";
cin>>s;
cout<<"你要查找的学生的信息为:
";
for(i=1;i<=n;i++)
{temp=a[i].search(s);
if(temp)
{a[i].print();
q=1;
}
}
if(!
q)
cout<<"无此人"<q=0;
getch();
break;
default:
cout<<"你输入的编号不合法,请重新输入:
";
gotoloop;
}
system("cls");
system("color1c");
cout<<"\t\t\t****************\n\t\t\t*
*\n\t\t\t*\t学籍信息管理系统*\n\t\t\t**\n";
cout<<"\t\t\t*\t0.退出*\n\t\t\t*
*\n\t\t\t*\t1.添加*\n\t\t\t**\n\t\t\t*\t2.
修改*\n\t\t\t**\n\t\t\t*\t3.删除
*\n\t\t\t**\n\t\t\t*\t4.查询*\n\t\t\t*
*\n\t\t\t****************\n\n请输入你需要进行的操作的编号:
";
loop:
cin>>m;
}
cout<<"系统存储的的学生信息为:
"<for(i=1;ia[i].print();
cout<<"是否保存新添加的学生信息?
<1保存/2不保存>\n";
cin>>m;
8
if(m==1)
{
for(i=u;ia[i].save();
cout<<"保存成功!
\n";
}
return0;
}
3.3.2添加函数
添加函数程序如下:
voidstudent_information:
:
push(){
chars[50];
number=qn++;
cout<<"此学生的学号为:
"<";
cin>>s;
strcpy(name,s);
cout<";
cin>>s;
strcpy(sex,s);
cout<19990304):
";
cin>>s;
strcpy(birthday,s);
cout<";
cin>>s;
strcpy(political,s);
cout<";
cin>>s;
strcpy(address,s);
}
9
3.3.3修改函数
修改函数程序如下:
voidstudent_information:
:
revise()
{
cout<<"0.不进行修改\n1.修改性别\n2.修改生日\n3.修改政治面貌\n4.修改地址
\n5.修改姓名\n请输入修改的操作的编号:
";
intt;
chars[50];
cin>>t;
switch(t)
{
case0:
cout<<"修改操作结束\n";break;
case1:
cout<<"请输入你要修改成学生的性别:
";
cin>>s;
strcpy(sex,s);
cout<<"修改操作结束\n";
break;
case2:
cout<<"请输入你要修改成学生的生日:
";
cin>>s;
strcpy(birthday,s);
cout<<"修改操作结束\n";
break;
case3:
cout<<"请输入你要修改成学生政治面貌:
";
cin>>s;
strcpy(political,s);
cout<<"修改操作结束\n";
break;
case4:
cout<<"请输入你要修改成学生的地址:
";
cin>>s;
strcpy(address,s);
cout<<"修改操作结束\n";
break;
case5:
cout<<"请输入你要修改成学生的地址:
";
cin>>s;
strcpy(name,s);
break;
default:
10
cout<<"你输入的信息不合法,修改操作结束。
"<break;
}
}
3.3.4删除函数
删除函数程序如下:
intdeleting(intm,intn)
{
for(inti=m;i<=n;i++)
a[m]=a[m+1];
returnn-1;
}
3.3.5查询函数为
查询函数程序如下:
intstudent_information:
:
search(char*q)
{
chars[5];
s[0]=number/1000+'0';
s[1]=number/100%10+'0';
s[2]=number/10%10+'0';
s[3]=number%10+'0';
s[4]='\0';
if(strcmp(s,q)==0)return1;
if(strcmp(sex,q)==0)return1;
if(strcmp(name,q)==0)return1;
if(strcmp(political,q)==0)return1;
if(strcmp(address,q)==0)return1;
if(strcmp(birthday,q)==0)return1;
return0;
}
3.3.6磁盘文件的操作
(1)从文件中读取信息
voidstudent_information:
:
inpush(intnum,charnam[],charse[],charbirth[],char
politic[],charaddre[])
11
{
number=num;
strcpy(name,nam);
strcpy(sex,se);
strcpy(birthday,birth);
strcpy(political,politic);
strcpy(address,addre);
}
(2)信息储存到文件
voidstudent_information:
:
save()
{
ofstreamqp;
qp.open("student.dat",ios_base:
:
app);
qp<qp<qp<qp<qp<qp<qp.close();
}
3.4类与函数的设计与实现
类的定义程序如下:
classstudent_information
{
private:
intnumber;//学号
charname[20];//姓名
charsex[5];//性别
charbirthday[10];//生日
charpolitical[20];//政治面貌
charaddress[50];//地址
public:
student_information(){}
voidinpush(intnum,charnam[],charse[],charbirth[],charpolitic[],charaddre[]);
voidpush();
voidrevise();
voidprint();
intsearch(char*q);
voidsave();
};
12
4、运行与测试结果
4.1添加数据
添加数据程序运行界面图如下:
图2,添加数据程序运行界面截图
13
4.2数据的修改
数据修改的程序运行界面如下:
图3,数据修改程序运行界面截图
14
4.3数据的删除
数据的删除程序运行界面如下:
图4,数据删除程序运行界面截图
15
4.4数据的查询
数据的查询程序运行界面如下:
图5,数据修改程序运行界面截图
16
4.5保存数据
保存数据程序运行界面如下:
图6,保存数据程序运行界面截图