欢迎来到天天文库
浏览记录
ID:59396986
大小:255.50 KB
页数:16页
时间:2020-05-28
《C语言课程设计学生成绩管理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《C语言程序设计》课程设计报告学生成绩管理系统学生姓名:学号:班级:指导教师:日期:2011年12月18日1.设计目标设计一个简单的学生成绩管理系统,系统要解决成绩录入、计算学分和平均分成绩排名和成绩查询等几个方面。主要功能分为四部分:①提供成绩录入界面。②统计每个学生的总分和平均分。③按总分由大刀小排出名次。④提供成绩查询功能,即任意输入一个学号,能够查询出该学生在班级中的排名及其考试成绩。2.总体设计根据需求分析的结果,本系统至少要分为以下几个模块:main函数、成绩录入模块、成绩统计模块、成绩排名模块和成绩查询模块。其
2、中各模块的功能说明如下:lMain函数模块的主要功能为提供程序入口、前期环境设置、调用主要的执行函数和程序结束前的数据处理。l成绩录入模块的主要功能为提供简单的成绩录入界面,将输入的成绩存储在对应的数据结构中。l成绩统计模块的主要功能为统计每个学生的总分和平均分并输出。l成绩排名模块的主要功能为按总分由大到小排出名次并输出。l成绩查询模块的主要功能为根据用户输入一个学号,能够查找该学生在班级中的排名及其考试成绩。根据上述描述,给出该系统的总体设计图,如下图所示:学生成绩管理系统成绩录入模块成绩排名模块成绩查询模块主调函数模块
3、成绩统计模块1.详细设计由于该系统涉及多个学生的成绩存储,因此,定义一个数据结构,用于存储这些信息。现仅对学生语文成绩、数学成绩、英语成绩进行统计管理。建立以下数据结构:classStudent{public:charnumber[Max];//存储学生学号charname[Max];//存储学生姓名doublechinese;//存储语文成绩doublemath;//存储数学成绩doubleenglish;//存储英语成绩doubletotal;//总成绩doubleaverage;//平均成绩intrank;//排名};
4、I、成绩录入模块成绩录入就是对前面定义的类Student中的成员进行赋值。其中,用户需要输入的是学生的学号、姓名两个基本信息和语文、数学和英语三门成绩,其余总成绩、平均成绩和排名由后续的计算函数来实现。实现成绩录入模块的函数代码如下:voidsetData(Student&s)//成绩录入模块{cout<<"输入学号,姓名,语文,数学,英语成绩:";//录入数据cin>>s.number>>s.name>>s.chinese>>s.math>>s.english;s.total=0;//初始化s.average=0;s.ra
5、nk=0;}该函数运行时其结果如下图所示:输入学生信息的个数可在主函数用修改相应数值。II、成绩统计模块成绩统计模块需要建立在成绩录入模块的基础之上,当系统中已经包含一些数据记录后才能对这些成绩求总分、平均分等操作。本模块包含对输入的数据计算总分和计算平均分,其中,cout()函数用于计算一个同学的总分和平均分,而getAverage()函数则求出整个班级所有的三门课程的平均成绩,其函数代码如下:voidcount(Student&s)//成绩统计{s.total=s.chinese+s.math+s.english;//求
6、三门课程的总分s.average=s.total/3;//求三门课程的平均分}doublegetAverage(StudentS[],intN)//求平均分函数{doubleAverage=0;//变量定义并初始化for(inti=0;i7、erage()函数的实现流程图如下:开始Average=0,i=0Average+=(S=[i].chinese+S[i].math+S[i].english)I8、将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止,其算法流程图如下:开始初始化i为1取出第i个元素第i个元素值<第i+1个元素值?否是大雨第i个元素的元素后移并插入i减1i>=0?是否排序完成结果根据上述的算法流程图,则乘机排名模块的实现
7、erage()函数的实现流程图如下:开始Average=0,i=0Average+=(S=[i].chinese+S[i].math+S[i].english)I8、将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止,其算法流程图如下:开始初始化i为1取出第i个元素第i个元素值<第i+1个元素值?否是大雨第i个元素的元素后移并插入i减1i>=0?是否排序完成结果根据上述的算法流程图,则乘机排名模块的实现
8、将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止,其算法流程图如下:开始初始化i为1取出第i个元素第i个元素值<第i+1个元素值?否是大雨第i个元素的元素后移并插入i减1i>=0?是否排序完成结果根据上述的算法流程图,则乘机排名模块的实现
此文档下载收益归作者所有