1、《C++程序设计》 课程设计报告 设计题目:学生成绩管理系统 专业:计算机科学与技术(网络工程) 班级: 学号: 姓名: 指导老师: 日期:2009.05.31 目录 一、设计任务与要求…………………………………………3 1。设计内容………………………………………………3 2。课程设计的要求………………………………………3 二、系统分析(需求分析)…………………………………3 1。需求分析…………………………………………3 2.系统性能要求……………………………………3 3。系统的功能分析……………………………………3 4.系统功能模块………………………………
2、……3 5.模块框架图…………………………………………3 三、系统设计与实现……………………………………4 1。界面设计…………………………………………4 2。功能设计与实现………………………………4 四、测试结果……………………………………4 五、总结…………………………………………5 六、参考资料……………………………………5 附录:源程序……………………………………5 一、设计任务与要求 1。设计内容: a。设计四个类;学生类(描述学生基本信息);成绩类:班级类;课程类(描述课程信息:课程编号,科目名称(如高等数学,大学英语等);学生成绩及课程信息用文件保存,每个类
3、一个文件,程序执行时从文件读入; b。能按学期,按班级完成对学生成绩的录入,修改,能按班级统计学生的成绩;求学生的总分及平均分;并能根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。 – 设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期末成绩、平时成绩所占百分比 – 计算学生总评成绩:总评成绩=平时成绩*平时成绩所占百分比+期末成绩*(1-平时成绩所占百分比) – 显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信息.分单人显示和以班输出(班成绩单格式输出到文件) – 注意,至少一个班,30人三门课 2.
4、课程设计的要求: 根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序.对给出的程序源代码要给出各部分的详细注释.自己根据能力及需要添加相应功能模块,增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计,数据库中的表、视图(如果使用)、索引的结构和定义、触发器、存储过程、课程设计体会。 二、系统分析(需求分析) 1。需求分析: a。能对学生各科成绩进行录入:。 b。能对学生的成绩进行增加. c。能对学生的成绩进行删除。 d.能对学生的成绩进行修改。 e
5、能对学生的成绩按总成绩,姓名,进行查询. f。能输出学生的所有数据. g.能进行成绩统计 h能进行总分查询排名。 2。系统性能要求: a.系统安全、可靠; b。功能齐全; c。操作方便、界面友好; d易于维护和扩充。 3。系统的功能分析: 资料维护:系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。 系统功能:可以对数据表中的信息进行浏览。 系统查询:可以对学生的信息进行查询. 4。系统功能模块 学生成绩查询系统有:成绩录入、增加、删除、修改,数据查询,排序显示构成。 5.模块框架图 学生成绩管理系统 操作 查询 成绩统计 按总成绩排名 录入
6、 增加 删除 修改 总成绩查询 姓名 每个学生的平均成绩 各科不及格的人数 输出所有学生的成绩 三、系统设计与实现 1.界面设计 程序运行后会出现一个简捷的窗口,便于用户查询数据。 2.功能设计与实现 通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容.应用系统主控界面包括记录编辑和记录查询等功能模块。记录编辑功能完成学生成绩记录编辑和记录查询功能。记录查询功能可以对数据各分类的记录进行查询 四、测试结果 每一个case都能执行,但是有很多的地方都不够完善,例如:在总成绩排序中,只能输出总成绩,不能单独的输出学生的相应的信息;每次进行别的操作之前都要在进
7、行一次数据的录入,不能直接对原有的文件进行读取。 五、总结 此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。 根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握.理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在
8、编程,就必须不断改进,才能更好提高编程能力。
六、参考资料
C++程序设计 谭浩强 清华大学出版社
附录:源程序
#include〈iostream>
#include 9、public:
Tstu()
{};
Tstu ( char n[20], int num,float ma,float cj,float eng ) ;
float getsum();//得到总分的函数
float getaver(); //得到平均分的函数
friend void main(); //将主函数定义为友元函数,方便访问类中的成员
};
Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng )
{
strcpy(name,n); //得到姓名
10、 number=num; //得到学号
math=ma; //得到数学成绩
cpp=cj; //得到c++成绩
english=eng; //得到英语成绩
}
float Tstu::getsum() //得到总分的函数
{
sum=cpp+english+math;
return sum;
}
float Tstu::getaver() //得到平均分的函数
{
average=getsum()/3;
return average;
}
void main()
{
cout〈<”* 11、***************欢迎来到学生成绩查询系统*****************”〈〈endl;
cout〈<"请选择您需要的操作!”< 12、t〈〈”(7)输出所有学生的数据”<〈endl;
cout〈<”成绩统计:”〈 13、[100]; //类定义的指针将所录入的数据按类中的形式分别存储
ofstream *file[100];
int i=0; //全局变量,用于做每个录入数据的下标
int j=0;
int chris1=0; //用于判断do-while语句
do //判断输入是否正确
{
cin〉>p;
if((p〉=1&&p<=11))
chris1=1;
else
cout〈〈”指令错误!请重新输入:"<〈endl;
}while(chris1==0);
do{
switch(p)
{
14、 case 1: //数据的录入
{
char c; //用于在小项中选择是否继续操作
char name[20];
int number;
float math,cpp,english;
do{
cout<<"请输入姓名:"< 15、输入数学成绩:”< 16、〈”f1。txt can not open.\n”;
return;
}
outfile〈〈name〈〈” ”〈<"学号:”<〈number<〈” ”〈<”数学成绩:”〈






