面向对象C++ 学生成绩管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(论文)
题目名称学生成绩管理系统
课程名称专业课程设计I
学生姓名
学号
系、专业信息工程系、计算机科学与技术
指导教师
2013年11 月15 日
目录
1 前言 (2)
2 需求分析 (2)
2.1任务 (2)
2.2 要求 (2)
2.3 运行环境 (2)
2.4 开发工具 (2)
3 分析和设计 (2)
3.1 系统分析及设计思路 (2)
3.2 主要类图 (5)
3.3 函数流程图 (6)
4 具体代码实现 (8)
5 课程设计总结 (8)
5.1 程序运行结果或预期运行结果 (14)
5.2 课程设体会 (18)
参考文献 (19)
致谢 (19)
1 前言
当前的编程语言主要分为面向过程和面向对象两种,其中我们所熟悉的C语言是一种面向过程的语言,而C++则是一种面向对象的语言。面向对象主要是一种思想,面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、网络管理结构、人工智能等。对于此次课程设计学生成绩管理系统的设计,主要是考察我们对面向对象中类的定义和使用,成员变量和成员函数的定义和使用,友元函数的理解和调用,继承性与派生类,文件输入输出的掌握情况,在实际设计中首先定义一个基类stu用来存放学生的基本信息,再定义一个派生类stu1用了存放课程信息。通过本课程设计,我们可以运用C++语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固自己所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。通过本次课程设计我们还可以进一步掌握编写文档、文档排版的能力。为以后步入社会,走上工作岗位打下坚实的基础。
2 需求分析
2.1 任务
某学校学生选择的课程包括选修课和必修课,每门课程有相应的学分,学生每学期可以选择若干门课程,设计学生成绩管理系统,计算学生某一学期的总成绩和平均成绩。
2.2 要求
具体要求:
(1)可以进行学生成绩的输入和查询。
(2)可以通过学号查找某个同学的总成绩,学分,平均成绩。
(3)可以查询同学的达标情况和没有及格的科目。
2.3 运行环境
(1)WINDOW XP/WINDOW 7系统
(2)Visual C++ 6.0编译环境或DEV C++ 5.0编译环境
2.4 开发工具
C++语言
3 分析和设计
3.1 系统分析及设计思路
根据面向对象的思想,通过类来实现设计一个学生成绩管理系统。首先定义一个基类stu用来存放学生的基本信息(学号(number),姓名(name)),再定义一个派生类stu1用来存放课程信息(课程号(classnumber),课程名(classname),课程总学分(score),平时成绩(pingshifen),实验成绩(shiyanfen),卷面成绩(juanmianfen),总分(zongfen),实得学分(lastscore))。根据实际情况考虑,有些课程并不需要实验,所以总分有两种算法。一种是没有实验成绩的总分:总分=平时成绩×0.3+卷面成绩×0.7另一种有实验的总分:总分=平时成绩×0.15+实验成绩×0.15+卷面成绩×0.7,总学分=∑各科实得学分;总成绩=∑各科总分;平均成绩=总成绩/总学分;main函数用来实现操作,在程序中实现了三个功能:1输入学生成绩;2学生成绩查询;3达标查询。main 函数通过文件流、I/O流等学习内容实现。通过建立文件来存储所输入的学生信息以及存储计算的结果。
1.基类stu类的设计:
class stu /*定义一个基类,用来存放学生基本信息*/
{
public:
stu(char a[20],char b[20])
{
strcpy(number,a);
strcpy(name,b);
}
char* getnumber()
{
return number;
}
char* getname()
{
return name;
}
private:
char number[20];
char name[20];
};
2.派生类stu1类的设计:
class stu1:public stu /*定义派生类,存放课程信息*/
{
public:
stu1(char a[20],char b[20],char f[10],char g[10],double aa,double bb,double cc, double dd,double ee,double ff):stu(a,b)
{
strcpy(classnumber,f);
strcpy(classname,g);
score=aa;
pingshifen=bb;
shiyanfen=cc;
juanmianfen=dd;
zongfen=ee;
lastscore=ff;
}
friend void main();
private:
char classnumber[10];
char classname[10];
double score,pingshifen,shiyanfen,juanmianfen,zongfen,lastscore;
};