学生学籍信息管理系统C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生学籍信息管理系统
C
集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]
一、学生学籍信息管理系统设计
1、需求分析
学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。
2、总体设计
整个系统可以设计为数据录入模块、数据修改模块、数据查询模块、数据删除模块和数据排序模块。
成绩包括数学、英语、程序设计基础三门课成绩
基本信息存放在一个文件,成绩信息存放在另一个文件。
(1)数据录入模块
学生基本信息文件可以在磁盘建立,采用写文件方式录入学生基本信息、各门课程的成绩单。综合成绩通过平时成绩和卷面成绩获得计算得到(平时30%,卷面70%)。(2)数据修改模块
采用读文件方式读入学生成绩基本信息,进行修改后,以写文件方式写回原文件中。修改时,首先询问要修改信息学生的姓名或学号,然后选择要修改的内容,并输入新的数据进行修改。
(3)查询模块
通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,然后把查找结果输出。若选择后者,则先查找学号对应的姓名,再查找该学生的课程情况,并统计科目和实得总学分,输出结果。
(3)删除模块
通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在两个文件中查找该生信息,删除之。
(4)排序模块
通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果,排序标准包括总分、某课成绩、某课卷面成绩等。
(5)追加模块
追加学生信息
#include
#include
#include
#include
#include
#defineN80
structStuInfo
{
intstuNo;//学号
charname[20];//姓名
charsex[3];//性别intdomNum;//宿舍号
chartel[12];//电话号码
};//学生基本信息结构体structStuGraInfo{ charcourseName[10];//课程名称intcourseNo;//课程编号intcreditHour;//学分structscore
{
intstuNo;//学号
floattriGrade;//平时成绩floatexamGrade;//卷面成绩floattotalGrade;//综合总评成绩}score_talbe[N];
};//成绩单基本信息结构体voidcreate();
voidsearch();
voidinsert();
voidrepin();
voiddel();
voidhelp();
voidrecreate();
StuGraInfop[3];
StuInfod[N];
intstuNum=0;
intmain()
{
charch;
do{
cout< cout< cout< "< cout< cout<<"请选择(0~7):"; cin>>ch; while(!(ch<='7'&&ch>='0'))/*输入不在0到5之间无效*/ { cout<<"数据输入错误,请重新选择(0~7):"; cin>>ch; } switch(ch) { case'1':create();break; case'2':search();break; case'3':insert();break; case'4':repin();break; case'5':del();break; case'6':recreate();break; case'7':help(); } }while(ch!='0'); return0; } voidcreate() {//模块一录入学生信息 inti,j,t=0; charm; StuGraInfos[3]={{"数学",10,5},{"英语",11,4},{"程序设计",12,4}}; fstreamfile; for(i=0;i { cout<<"请输入学号"< cin>>d[i].stuNo; for(intk=0;;k++) { for(j=0;j if(d[i].stuNo==d[j].stuNo) { cout<<"此学号已存在,请重新输入!"< t=1; cin>>d[i].stuNo; break;