├── scores.txt ├── achievement.c ├── img ├── main.PNG ├── sub.PNG └── interface.PNG ├── scores2.txt └── README.md /scores.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugeneJie/achievement/HEAD/scores.txt -------------------------------------------------------------------------------- /achievement.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugeneJie/achievement/HEAD/achievement.c -------------------------------------------------------------------------------- /img/main.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugeneJie/achievement/HEAD/img/main.PNG -------------------------------------------------------------------------------- /img/sub.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugeneJie/achievement/HEAD/img/sub.PNG -------------------------------------------------------------------------------- /img/interface.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EugeneJie/achievement/HEAD/img/interface.PNG -------------------------------------------------------------------------------- /scores2.txt: -------------------------------------------------------------------------------- 1 | 23140223 zhu 55 69 78 91 86 75 2 | 23140425 chen 79 86 85 60 57 53 3 | 23140523 wang 64 79 92 87 80 72 4 | 23150317 zhang 94 85 50 79 82 75 5 | 23150810 li 90 49 63 87 70 89 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 学生成绩管理系统 2 | ## 项目说明 3 | 某班有最多不超过`30人`(具体人数由键盘输入)参加期末考试,最多不超过`6门`(具体门数由键盘输入)。使用结构体数组编程成实现如下菜单驱动的学生成绩管理系统。
4 | * 从文件读取每个学生个人信息和成绩信息(`scores.txt`、`scores2.txt`为示例文件),可以由键盘输入文件名。读入成功提示读入学生记录的个数,不成功提示相应出错信息。 5 | * 手动录入每个学生的学号(8位数字)、姓名和各科考试成绩。不考虑重名情况下的处理,学生的学号是唯一的。 6 | * 计算每门课程的总分和平均分。 7 | * 按每个学生的总分由高到低排出名次表。 8 | * 按学号由小到大排出成绩表。 9 | * 按姓名查询学生排名及其考试成绩。 10 | * 按`优秀(100-90)`、`良好(89-80)`、`中等(79-70)`、`及格(69-60)`、`不及格(59-0)`5个类别,对每门课程分别统计每个类别的人数以及所占的百分比,并将计算结果输出到屏幕。 11 | * 输出每个学生的学号、姓名、各科考试成绩、总分和平均分。 12 |
13 | 14 | 程序运行后先显示如下菜单,并提示用户输入选项(菜单循环显示,直到选择 `0.退出系统` 整个程序退出):
15 |
16 | 17 | > 1.读取文件数据
18 | > 2.手动录入
19 | > 3.计算每门课程的总分和平均分
20 | > 4.按学生总分由高到低排出名次表
21 | > 5.按学号由小到大排出成绩表
22 | > 6.按姓名查询学生排名及其考试成绩
23 | > 7.统计
24 | > 8.输出
25 | > 9.写入文件
26 | > 0.退出系统
27 | > 请选择并输入对应的菜单项:
28 |
29 | 30 | 然后根据用户输入的选项进行相应的操作。
31 |
32 | 33 | ## 系统设计 34 | * 主函数流程图 35 |
36 | 37 | ![main](https://github.com/EugeneJie/achievement/blob/master/img/main.PNG "主函数流程图") 38 |
39 | 40 | * 各子函数流程图 41 |
42 | 43 | ![sub](https://github.com/EugeneJie/achievement/blob/master/img/sub.PNG "各子函数流程图") 44 |
45 | 46 | ## 界面展示 47 | ![interface](https://github.com/EugeneJie/achievement/blob/master/img/interface.PNG "界面展示") 48 | --------------------------------------------------------------------------------