设计题目:学生成绩统计
设计条件:win7 系统、Visual C++ 6.0
设计内容:
【问题描述】
学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。
【实现提示】
假设某班有:30人(姓名自定)
考试课程有:高等数学、物理、外语、C语言、德育5门课程。
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:
1输入成绩到文件中
2输出成绩
3输出不及格学生名单
4成绩排序
5修改记录
6删除记录
7插入记录等
主函数中对3个功能选择(菜单),调用对应的函数完成。
【测试数据】
自定模拟数据
下达日期:2012年5月25日
完成日期:2012年6月1日
1.前言-----------------------------------第4页
2.设计思想-------------------------------第5页
3.设计过程------------------------------第7页
4.程序流程图---------------------------第18页
5.心得体会-----------------------------第19页
6.程序清单-----------------------------第21页
一、前言
C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。
学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程
序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。
通过了上学期的学习,对C语言有了一些了解,并且学会了如何应用Visual C++6.0这个软件来编辑一些比较简单的算法,例如一些简单的界面设计,星型或者心型都有,还有一些教材需要的语法,算法,学号编辑一些简单的程序算一些繁琐的问题。平时凭个人兴趣还学习了其他的一些书本没有的。参加了国家二级C语言的考试,顺利通过了,但是这并没有停止我对C语言的学习。现在做C语言课程设计是为了让自己学到的东西应用于真实的问题中,在做课程设计就是不断地学习。通过一系列的考虑,我还是选择了成绩管理系统这个题目,觉得这个比较使用,应用的比较多。
分析下这个题目。随着高校规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,庞大学生信息的管理工作成了高校教学管理工作中的一项重要任务,一方面,假如遵从以往旧式的工作方式,该工作的工作量大,管理繁琐,既耗人力,又耗物力;另一方面,由于计算机技术的飞速发展及应用的普及,学生信息管理这样烦琐的工作更需要由计算机来完成。因此开发一套对学生信息进行管理的软件是极其重要的,而且是必需的。通过这
样的系统,可以做到对学生及学生成绩信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
rank函数怎么排名总结:
课程设计目的:
提高用程序设计解决实际问题的能力。
通过提出算法、指定输入输出来设计一个解决方案。
用C语言合理地开发两个简洁有效的程序代码来实现该设计。
测试程序是否工作且满足设计指标并评价其效率。
二、设计思想
学生成绩统计是个比较负责的程序,功能比较多,规模比较大,所以把所有的程序代码都写在一个主函数(main函数)中,就会使得驻韩式变得庞杂、头绪不清,使阅读和维护程序变
得困难。此外,有时程序中要多次实现某一功能(例如显示界面),就需要多次重复编写实现次功能的程序代码。这样使得程序冗长,不精炼。
因此,我们很自然会想到采用组装的办法来简化程序设计的过程。如同组装计算机一样,事先生产好各种部件,在最后组装计算机时,用到什么就到仓库里面拿什么,直接装上就可以了。这就是模块化程序设计的思路。
可以事先编好一批常用的函数来实现各种不同的功能。
在设计一个较大的程序时候,往往把它分成若干程序模块,每个模块包括一个或者多个函数,每个函数实现一个特定的功能。如下图所示
在设计学生成绩统计的时候可以用到此方法。
1、首先,因为要用到班级的人数,是个初始的人数,所以用到宏定义就好比较方便人数的使用。#define N 30//宏定义初始时班级人数。
2、班上的每个人都有自己的信息,包括学号,姓名,五门成绩。所以要给这个班的每人定义结构体。
3、然后就是要用到主函数。int main()主函数里面包括了调用的很多函数,那些函数都是已经定义好了的。这次只是引用而已。
4、void Read(); //读函数
void Input(); //输入函数
void Objectaverage(); //每门课程的平均
void Eaverage(); //每人的平均成绩
void Rank(); //排名
void Unpass(); //输出不及格的名单
void Insert(); //插入
void Delete(); //删除
void Update(); //修改记录
void Save(); //保存
void Show(); //显示界面
void Exit(); //退出并保存
以上的就是要调用的函数。首先是对这些调用函数的声明,然后是在主函数中引用,然后就是在下面定义这些调用函数(既系这些函数里面到底包含了哪些内容)。
以上就是我对学生成绩统计课程设计的大致思路。
三、设计过程
1、首先是用以上的方法设计大概的一个框架,然后再在这个框架中填好程序需要的东西。
结构体类型的声明。声明学生的信息,student是结构体的名字,{}里面的是成员列表,包括学生的学号,姓名5门成绩,还有每人的平均成绩。
struct student///声明结构体
{
char name[10];///名字
long num; ///学号
float score[5];//5门成绩
double average;//每人的平均成绩
}stu[N];
2、列出要调用的函数:
void Read(); //读函数
void Input(); //输入函数
void Objectaverage(); //每门课程的平均
void Eaverage(); //每人的平均成绩
void Rank(); //排名
void Unpass(); //输出不及格的名单
void Insert(); //插入
void Delete(); //删除
void Update(); //修改记录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论