|
|
|
@ -292,11 +292,9 @@ C14:从文件中读取学生信息
|
|
|
|
|
|
|
|
|
|
````
|
|
|
|
|
````
|
|
|
|
|
//李玉璇、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
|
|
|
|
|
概要设计
|
|
|
|
|
系统主要分为用户界面和数据处理两大模块。
|
|
|
|
|
用户界面模块包括系统初始化(init),显示菜单(display_menu),选择菜单命令(make_choice)、确认(confirm)、退出(quit)等子模块。
|
|
|
|
|
数据处理模块包括读取数据(read_data)、保存数据(save_data)、打印数据(print_data)、查询数据(query_data)、添加数据(add_data)、更新数据(update_data)、删除数据(delete_data)、数据排序(sort_data)和生成图表(make_chart)等子模块。其中查询、添加、更新和删除数据还会用到根据编号查询数据的方法(find)。
|
|
|
|
|
用户界面模块包括输入学生成绩(ReadScore)、计算学生总分和平均分(AverSumofEveryStudent)、计算总分和平均分(AverSumofEveryCourse)、按选择发将数组元素排序(Sortbyscore)、使数据按升序排序(Ascending)、使数据按降序排序(Descending)、交换单精度浮点数据(SwapFloat)、交换长整型数据(SwapLong)、交字符串(SwapChar)、按选择法将数组元素按从低到高排序、交换实现字符串按字典顺序排序(SortbyName)、按学号查找学生成绩并显示查找结果SearchbyNum)、按姓名的字典顺序排出成绩表 、统计各分数段的学生人数及所占的百分比 、打印学生成绩 、输出学生的学号、姓名及课程的成绩到文件student.txt中 、从文件中读取学生的学号、姓名及成绩等信息写入到结构体数组stu中
|
|
|
|
|
|
|
|
|
|
上述各模块通过主程序(main)进行调用,系统模块图如下。
|
|
|
|
|
|
|
|
|
@ -315,7 +313,6 @@ C14:从文件中读取学生信息
|
|
|
|
|
|
|
|
|
|
#详细设计
|
|
|
|
|
针对概要设计
|
|
|
|
|
//李玉璇
|
|
|
|
|
#main
|
|
|
|
|
Step 1:初始化
|
|
|
|
|
Step 2:根据用户选择的命令执行相应的操作
|
|
|
|
@ -344,7 +341,7 @@ Step 2.16:if c == 0 then exit
|
|
|
|
|
ReadScore
|
|
|
|
|
Step 1:显示提示信息,要求输入学生的学号,姓名和成绩
|
|
|
|
|
Step 2:利用循环,输入学生的学号,成绩和各科成绩
|
|
|
|
|
````
|
|
|
|
|
|
|
|
|
|
![信息存入](ztt4.drawio.svg)
|
|
|
|
|
````
|
|
|
|
|
2·计算每个学生各门课程的总分和平均分
|
|
|
|
@ -383,10 +380,18 @@ AsSortbyNum
|
|
|
|
|
SortbyName
|
|
|
|
|
````
|
|
|
|
|
![字符串排序](mty6.drawio.svg)
|
|
|
|
|
7.按学号查找学生成绩并显示查找结果
|
|
|
|
|
````
|
|
|
|
|
7.按学号查找学生成绩并显示查找结果
|
|
|
|
|
````
|
|
|
|
|
SearchbyNum
|
|
|
|
|
|
|
|
|
|
![字符串排序](mty7.drawio.svg)
|
|
|
|
|
````
|
|
|
|
|
8·按姓名的字典顺序排出成绩表
|
|
|
|
|
SearchbyName
|
|
|
|
|
````
|
|
|
|
|
![字符串排序](mty7.drawio.svg)
|
|
|
|
|
|
|
|
|
|
9·统计各分数段的学生人数及所占的百分比
|
|
|
|
|
StatisticAnalysis
|
|
|
|
|
10·打印学生成绩
|
|
|
|
@ -397,7 +402,7 @@ WritetoFile
|
|
|
|
|
ReadfromFile
|
|
|
|
|
|
|
|
|
|
exit
|
|
|
|
|
|
|
|
|
|
`````
|
|
|
|
|
|
|
|
|
|
代码实现
|
|
|
|
|
// 头文件的使用
|
|
|
|
|