
通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。培养使用面向对象的程序设计方法编写计算机程序的能力。
通过设计一个《学生成绩统计管理》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。程序设计是一门实践性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
一、设计内容
学生成绩管理系统
1.基本功能:
这个程序的主要功能是输入学生姓名、成绩,学号,并可以对学生的成绩按学号进行查询。该系统具有存贮学生数据,按学号按需要修改学生成绩,列出学生成绩和统计功能。
2.扩展功能:
学生数据的添加、修改、与删除
—R
二、过程与结果
主要内容如下:
1.关键类的设计,继承层次关系,代码:
首先,创建了一个student类. Student类的声明如下:
class Student{
public:
int Class,num;
char name[8];
float cpp,math,eng,ave;
int order;
Student *next;
public:
Student() {}
Student(int c1,int n1,char*n,float e1,float c2,float m,float e2,float s,float p,float a,
int o,Student *next=NULL)
{
Class=c1;num=n1;
strcpy(name,n);
cpp=c2;math=m;eng=e2;ave=a;
order=o;
this->next=next;
}
主要功能函数的设计:
1.创建学生数据,对学生的成绩的录入。
代码:friend Student *Create(Student *head,istream& in)
函数为删除函数的实现部分。
主要代码:friend Student *DeleteStudent(Student *head,int num)
{
Student *p1=head,*p2=p1;
while(p2&&p2->num!=num)
p1=p2,p2=p2->next;
if(p2)
{
if(p2==p1)
{
head=head->next;delete p1;
}
else
{
p1->next=p2->next;delete p2;
}
cout<<"已删除"< }else cout<<"没找到指定学生!\\n"; return head; } 4.排序函数中平均分来排序,排序结果为降序操作。 friend void SetOrder(Student*head) { int order=1; while(head) {head->order=order++;head=head->next;} } 5.修改学生的信息 friend Student *Modify(Student *head,int num) 示数据: friend void OutputAll(const Student*head) 均数据函数 friend void Statistic(const Student *head) { int i=0; float ave_cpp=0, ave_math=0, ave_eng=0; while(head) { ave_cpp+=head->cpp; ave_math+=head->math; ave_eng+=head->eng; i++;head=head->next; } if(!i) { cout<<"\\n\\n没有任何学生数据!\\n";return;} cout<<"\\n\\n\\各门课程平均成绩表\\n\\n"; cout<<"tC++\数学\英语\\n"; cout< 程序测试结果: 1运行程序.会出现如下画面,按照提示进行选择. 2.首先选择1,然后按Enter键.按照提示对学生情况进行输入.如图: 3.按1键可以添加多个学生成绩的数据,按2返回主界面。 4.选择5, 然后按Enter键,显示刚才输入的数据和排名的情况。 5在主界面选择2可以修改学生的数据。 6.在主界面选择3可以按学号查询学生成绩情况 7. 在主界面选择7可以按学号删除学生的成绩信息 三、设计总结 这次课程设计基本上涵盖了学习到的C++ 语言知识点,课程设计题目要求不仅要求对课本虽然是网上搜来的代码,但这些代码没办法运行,我把这些代码改了和增加了自己写的代码,终于可以运行,而且到达自己想要的结果,这次课程设计不仅让我修补了以前学习的漏洞,也让我知道一个道理:编程需要兴趣和实际动手。C++语言程序设计课程设计,我从中受益匪浅,并且对C++语言程序设计这一门课程有了更深一步的认识。 附件 程序源代码清单: #include <> #include <> class Student{ public: public: 键盘录入与添加数据 文件录入与添加数据 修改数据 查询数据 删除数据 显示数据 平均数据 存数据 退出系统 }; void main (void) { 请输入你的选择(0~6):";cin>>select; 谢谢您使用本系统!\\n\\n"; 请输入文件名:"; 不能打开"< 请输入学号:"; 请输入学号:"; 同学的成绩表\\n"; 班级\姓名\学号\C++\数学\英语\名次\\n"; 没有找到指定学生!\\n"; 请输入学号:"; 请输入文件名:"; 尚无数据可保存!\\n\\n"; 非法操作!\\n\\n"; }
