河南科技大学C语言课程设计综合排序设计报告成绩分析问题
河南科技大学
综合程序设计报告
成 绩 分 析 问 题
学 院: 电气工程学院
年级专业: 电子161
学 号:161404110104
学生姓名: 李恺
指导教师:赵老师 题目内容和要求(重述)
C语言综合训练是为了提高学生综合使用本学期我们所学的C语言知识编写大型程序的能力,了解大型程序设计的开发步骤,以上机为主,每个学生按照要求使用C语言设计一个大型程序,并提供相关的设计文档和源程序,从网站提交。
1、C语言综合训练程序设计要求
已知在磁盘上有一个文本文件(stuin.txt),此文件存放了一组学生的成绩信息,按照如下格式存放:
1001 stuname1 89
1002 stuname2 78
1003 stuname3 60
......
1100 stuname100 87
请按照如下要求编写程序:
a. 定义一个结构体类型数组,结构体类型含有学号、姓名和成绩三个域;
b. 将文本文件的内容读入到结构体数组中;
c. 显示成绩最高的人的学号、姓名和成绩(如果有相同的人要全部显示);
d. 显示平均成绩高于、低于和等于平均成绩的人数;
e. 显示成绩为优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)的人数和所占百分比;
f. 将以上显示的信息存放到stuout.txt文件中;
2、C语言综合训练设计报告要求
a. 结合教材第二章的内容,写出本次综合训练的分析文档;
b. 文档要求以WORD排版,语言简练,条理清楚;
c. 测试过程中遇到的主要问题及采取的解决措施;
e. 文档以“设计报告.DOC”名字保存。
3、作业提交要求:
a. 需要提交的文件: 源程序、可执行文件以及stuin.txt、stuout.txt文件和设计报告.DOC文件、设计报告txt版。
b. 所有提交文件保存在一个文件夹中,文件夹名字为“专业班级姓名”,如“电气162张三”;
c.《设计报告.txt》使用《设计报告.doc》另存为TXT类型得到,《课程设计报告.txt》将用计算机做复制比检测。
特别强调所有命名文件不要加空格。
4、作业提交截止日期:2017/5/22,以班级为单位提交。
总体设计(框图请用web版视图查看
(1)功能设计
(2)数据设计
根据问题设计,进行数据设计定义一个包含学号,姓名,成绩三个成员的结构体类型,作为学生信息的储存类型;定义一个结构体的数组存放若干学生记录;
(3)函数设计
根据功能设计,为学生成绩分析软件设计如下函数来实现程序各模块的功能。
open():函数原型void Read(),是数据输入函数,从磁盘数据文件stuin.txt中读取学生初始信息,储存到程序中对应的结构体数组中。
deal():函数原型void solve(),显示统计各分数段学生人数及所占百分比,显示高于,等于,低于平均成绩的的人数和最高成绩同学的学号,姓名,成绩(同时显示)并且将所得到信息存储到stuout.txt文件中。
main():函数原型void main,是学生成绩分析系统的主函数,控制各功能函数模块的调用,实现整个程序的各项功能。
(4)函数的调用关系
以上函数的调用关系如图所示。
详细设计
函数的设计
Void mian()函数
main函数的模块流程图如图所示
void open()函数流程图模块流程图如图所示
函数内部定义n=0;void deal()函数模块的设计如图所示
函数内部定义;
int i;
int h=0,e=0,l=0;
int score90_100 = 0,score80_89 = 0,score70_79 = 0,score60_69=0,score0_59=0;
char sss[81] = "";
2)结构体设计
根据问题分析,进行数据的设计,定义一个包含学号,姓名,成绩三个成员的结构体类型,作为学生信息记录的存储类型;定义一个符号常量作为数组的长度。
定义一个学生信息的结构体类型:
typedef struct student
{ /*定义结构体*/
char name[50];
char num[50];
double score;
}stu;
stu student,s[1000];
源代码
#include "stdio.h"
#include "stdlib.h"
typedef struct student
{ /*定义结构体*/
char name[50];
char num[50];
double score;
}stu;
stu student,s[1000]