声明:本课程报告比较简陋,仅供学习参考哦!!(源码见文章末尾)
目录
1. 引言
1.1 研究背景
随着科技的不断发展,计算机的应用领域越来越广。在我国的各类学校,尤其是高等院校,近些年由于阔招生员,大大增加了学校的管理体制的负担,管理信息系统已经进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的,统一的系统。因此,开发一套适合、 兼容性好的系统是很有必要的。
1.2 研究意义
根据开发要求,学生成绩管理系统全要应用于教育系统,完成对学生成绩信息的计算机管理,使学院职员工轻工作压力,同时,可以减少劳动力的使用,加快查询速度、加强管理,加快国家和部门关于信息化的步伐,使管理更加规范化。学生成绩管理系统是时代发展的必然产物。
2. 需求分析
编写一个学生成绩管理系统,每个学生信息包括:姓名、学号、C语言、编译原理、数据库以及离散数学的成绩。具体功能如下:
(1)创建学生信息并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)删除指定姓名或学号的学生成绩并可存盘;
(6)只显示C语言成绩60分以下、60~79、80~89、90分以上各分数段的学生信息;
(7)打印所有学生成绩单。
3. 概要设计设计
3.1 功能模块设计
功能模块如下图1所示:
图1 功能模块结构图
3.2 主函数的流程设计
(1)主界面系统
可分别输入0—7数字来实现对学生信息的执行。各个按键的功能如下:
“0”:可退出程序;
“1”:录入信息,调用input()函数;
“2”:查询信息,先调用search()函数,根据姓名或学号分别调用xingming()和xuehao()函数;
“3”:修改信息,先调用modiway()函数,根据姓名或学号分别调用modify1 ()和modify2()函数;
“4”:添加学生信息,直接调用insert()函数;
“5”:删除学生信息,先调用deleteway()函数,根据姓名或学号分别调用delete1 ()和delete2()函数;
“6”:显示打印成绩,直接调用print()函数;
“7”:统计C语言成绩,直接调用count()函数。
4. 详细设计和实施
4.1 主界面设计
(1) 功能介绍
本模块主要是调用以上每个自定义函数,在界面中输入相对应的数字便可进入相关模块。保证了本程序的完美运行。
(2) 关键函数及其描述
void main()
{
char ch;
while(1)
{
menu();// 显示菜单
ch=getch();//选择菜单
if(ch=='0')
break;
switch(ch)//判断功能项
{
case '1':input();break;
case '2':search();break;
case '3':modiway();break;
case '4':insert();break;
case '5':deleteway();break;
case '6':print();break;
case '7':count();break;
}
}
printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");
}
4.2 录入信息
(1)功能简介
该模块主要实现学生信息的录入。在界面中输入“1 ”进入学生成绩的录入,录入信息是一直到姓名为“End”时结束录入。
(2)流程图
录入信息模块流程图如图2所示:
图2 录入信息
(3) 关键代码及其描述
void input()
{
FILE *fp;
stu xs; /*定义一个结构体变量来装从文件中读出来的数据*/
if((fp=fopen("student.dat","ab"))==NULL) //判断文件能否打开
{
printf("can't open the file!\n");exit(0); //正常退出
}
printf("\n录入格式: 姓名 学号 C语言 编译原理 数据库 离散数学 \n");
printf("当输入姓名为<End>结束录入\n");
while(1)
{
scanf("%s",xs.name);
if(strcmp(xs.name,"End")==0) break; //判断姓名是否为END,用字符串判断
scanf("%d%f%f%f%f",&xs.num,&xs.c,&xs.by,&xs.sjk,&xs.lssx);
fwrite(&xs,sizeof(stu),1,fp); //将成绩信息写入文件
}
fclose(fp);
}
4.3 查询信息
(1) 功能简介
本模块先定义了学生姓名和学号两项信息,然后再自定义一个search函数,利用switch函数来通过这两种方式来查询。在界面中输入“2”进入查询信息模块。接着输入“1”则是按姓名查询,输入“2”则是按学号查询。
(2)流程图
查询信息模块流程图如图3所示:
图3 查询信息
(3) 关键代码及其描述
void search()
{
char ch1;
system("cls");
printf("请选择何种方式查询<编号>:\n");
printf("1->姓名,2->学号:");
ch1=getchar(); /*用字符接收*/
switch(ch1) /*判断*/
{
case '1':xingming();break;
case '2':xuehao();break;
}
getch();
4.4 修改信息
(1) 功能简介
本模块主要实现修改学生信息的功能,modify1和modify2分别定义两种修改信息的方式,然后利用modiway函数,使用switch函数判断选择修改的方式,在界面中输入“3”进入修改成绩模块,接着输入“1”则是按姓名修改成绩,输入“2”则是按学号修改成绩。
(2)流程图
修改信息模块流程图如图4所示: