叶小芹++张静
摘要:学生成绩的管理与使用是教学系统中的重要组成部分,论文重点研究学生成绩管理系统的设计与实现,并在C语言程序设计及其开发环境的基础上,以河海大学文天学院为例,设计出了一个简单的学生成绩管理系统,便于各高校使用。
关键词:C语言;学生成绩管理系统;程序设计
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)04-0059-04
1 背景
如今各大高校均需要一个完整的系统来管理和保存学生的各门课成绩信息,以便后期使用,论文以河海大学文天学院的工科专业学生成绩为例,运用C语言程序设计和程序运行的环境,设计了一个简单的学生成绩管理系统,下面就来介绍该系统是如何构建的。
2 系统需求分析
2.1 系统功能划分
该系统主要功能如下:
1)学生基本信息和成绩的录入;
2)学生成绩的管理,如计算总分、排序、统计等功能。
2.2 系统功能结构设计
这个学生成绩管理系统中包含的学生信息有:学生的学号、姓名、性别、高数成绩、英语成绩、计算机成绩、三门功课总分,主要的功能模块如下:
1)输出学生基本信息并算出总分;
2)按照学号进行排序;
3)按照总分进行排序;
4)统计各门课程平均分;
5)统计男女学生人数;
6)按照姓名进行排序;
7)统计高数成绩优秀(大于等于80分)的人数,并输出符合条件的记录;
8)统计每门功课成绩都在80分以上,或总分在240分以上的人数,并输出符合条件的记录。
C语言中系统的每个功能由一个函数来实现,其系统功能模块层次结构图如下:
图1 学生成绩管理系统功能模块层次结构图
因为函数就是功能,所以对于图1的功能模块层次结构图,每个模块就对应C语言中的一个函数,该系统中所涉及的函數及其功能如下:
1)int Menu();
主控菜单函数,有返回值,无参数。用菜单形式显示该系统能实现的所有功能,以供用户查看和使用。函数中的返回值为用户输入的序号code,为局部整型变量。
2)void Read(struct student stud[],int *n);
读入数据函数,无返回值,有参数。形式参数stud为结构体数组,由于调用此函数时实际参数为数组名,因此此处用数组接收;形式参数n为指针变量,由于实际参数为存放学生人数的整型变量的地址,因此n指向存放学生人数的整型变量,这样可以在读入学生信息的同时,还可以统计出学生的人数。
3)void Print(struct student *pstud,int n);
输出数据函数,无返回值,有参数。形式参数pstud为指针变量,指向存放学生信息的结构体数组,这样可以将相关变动信息返回给主调函数;形式参数n为整型变量,存放学生的人数。
4)void total_order(struct student *pstud,int n);
按总分排序函数,无返回值,有参数。形式参数同上。
5)void num_order(struct student *pstud,int n);
按学号排序函数,无返回值,有参数。形式参数同上。
6)void ave_count(struct student *pstud, int n);
统计各门课平均分函数,无返回值,有参数。形式参数同上。
7)void nn_count(struct student *pstud,int n);
统计男女学生人数函数,无返回值,有参数。形式参数同上。
8)void name_order(struct student *pstud,int n);
按姓名排序函数,无返回值,有参数。形式参数同上。
9)void gxyx(struct student *pstud,int n);
统计高数成绩优秀人数函数,无返回值,有参数。形式参数同上。
10)void mm(struct student *pstud,int n);
统计每门课分数不小于80分或总分在240分以上人数函数 ,无返回值,有参数。形式参数同上。
3 C语言程序设计
一个C语言源程序由若干个函数构成,且有且仅有一个主函数,主函数的名字只能是main,其他函数名字由用户自己定义,只要满足标识符的四大规则即可。一个程序总是从主函数开始执行,无论主函数在前还是在后,该系统中除了主函数外,还有十个函数,下面针对其中几个重要的函数进行程序设计。
3.1 主函数程序设计
为了方便读者更好地读懂该程序,部分地方加了注释,以上程序中/* */为注释,计算机并不执行。其中第四行的N为符号常量,表示该系统记录了10个学生信息,每个学生信息用结构体类型的数组来保存,该结构体类型包含4个子成员,每个成员又是另一种类型的数据,其中学号、姓名、性别均由字符数组存储,成绩由整型数组存储,这样就构成了struct student结构体类型,主函数中的第一条语句就是用这种类型定义了结构体数组stud,用来存放十个学生信息。接下来就在主函数中调用各个函数,实现相对应的功能。
3.2 用户自定义函数程序设计
3.2.1 主控菜单函数的设计
在屏幕中显示主控菜单,scanf为输入函数,需要输入一个整数,通过输入相对应的数字序号,可以实现相应的功能,例如输入1,即显示学生全部信息。
3.2.2 读入数据函数的设计
该系统是从文件中读取数据,10名学生的信息存储在文本文件studfile.txt中,如果想修改学生信息,直接在文件中修改即可,不用修改程序,这样既方便又快速,大大节省了时间。
3.2.3 按姓名排序函数的设计
以上程序使用冒泡的排序方法按姓名从小到大排序,系统直接将排序的结果输出到屏幕中,以供用户查看和使用。
4 系统界面
将以上程序输入到计算机C语言开发环境Microsoft Visual C++6.0中,经过编辑、编译、连接以后就可以运行了,运行界面如下:
1)系统菜单界面
当按下回车键,系统进入菜单模式,按照序号选择需要显示的信息。
2)顯示学生信息界面
当按下序号1,系统进入显示全体学生信息界面,显示的同时计算出了3门课总分。
3)按学号排序界面
按下回车键继续进入菜单进行选择,当按下序号3,系统进入按学号从小到大排序的界面。
4)统计高数优秀的学生人数和记录
按下回车键继续进入菜单进行选择,当按下序号7,系统进入统计高数不低于80分的人数和记录。
5 结束语
论文主要介绍了学生成绩管理系统的设计与实现过程,分别从系统需求分析、系统程序设计和系统界面设计三个方面展示了系统的设计与实现,其中系统需求分析包括大体功能划分和具体功能结构设计,并设计了功能结构图,描述了各项功能,系统程序设计包括主函数和其他自定义函数的设计。该系统总共实现了八项功能,学生信息来源于文本文件,这样大大方便了学生信息的增删改查等功能。系统中所有功能使用到的方法,还可以实现更多的功能,拓展性能良好,便于各高校各专业使用。
参考文献:
[1] 胡枫. 《C语言程序设计》的案例式教学的设计[J]. 青海师范大学学报, 2010(4).
[2] 谭浩强. C程序设计[M]. 4版.北京: 清华大学出版社, 2010.
[3] 宫业芹. C语言程序设计网上教学系统的设计与实现[D]. 济南: 山东大学, 2012.
[4] 陈婷. C语言程序设计实验教学改革探究[J].实验技术与管理, 2010(10): 182-184.
[5] 钱言玉, 谢超. 《C语言程序设计》课程实验教学研究[J]. 合肥师范学院学报, 2014(5).