C++学生成绩管理系统课程设计报告(共17页).doc
《C++学生成绩管理系统课程设计报告(共17页).doc》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统课程设计报告(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上一目的与要求通过本课程设计的实践,全面总结C+课程学习中的的数据类型、程序结构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。培养使用面向对象的程序设计方法编写计算机程序的能力。通过设计一个学生成绩统计管理,进一步熟悉C+中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用;逐步熟悉程序设计的
2、方法,并养成良好的编程习惯。程序设计是一门实践性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。一、 设计内容学生成绩管理系统1 基本功能: 这个程序的主要功能是输入学生姓名、成绩,学号,并可以对学生的成绩按学号进行查询。该系统具有存贮学生数据,按学号按需要修改学生成绩,列出学生成绩和统计功能。2 扩展功能:学生数据的添加、修改、与删除2.ER修改数据删除数据查询数据显示数据平均数据添加数据学生成绩管理系统 二、 过程与结果主要内容如下:1. 关键类的设计,继承层次关系,代码:首先,创建了一个student类. Student类的声明如下:c
3、lass Studentpublic:int Class,num;char name8;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=nex
4、t; 主要功能函数的设计:1. 创建学生数据,对学生的成绩的录入。代码:friend Student *Create(Student *head,istream& in)int y;Student *p;int Class,num;char name8;float cpp,math,eng;if(&in=&cin)/coutnn请输入学生数据(输入成绩非法,则结束),数据输入格式为:n/Classnamenumcppmatheng;/coutnn请输入学生数据:ncout班级:Class; cout姓名:name;cout学号:num;coutC+的成绩:cpp;cout数学的成绩:math;
5、cout英语的成绩 :eng;/*while(Valid(elec)&Valid(cpp)&Valid(math)&Valid(eng)&Valid(sport)&Valid(polity)*/p=new Student;p-Class=Class;p-num=num;strcpy(p-name,name);p-cpp=cpp;p-math=math;p-eng=eng;p-ave=(cpp+math+eng)/6;head=Insert(head,p);/inClassnamenumeleccppmathengpolitysport;couttt*继续添加请按1*n;couty; if(y=
6、2) ShowMenu(); elsehead=Create(head,cin);SetOrder(head); /设置排名return head;2. 此函数为查找函数的实现过程 主要代码:friend const Student * Lookup(const Student *head,int num) /查找指定学号为num的结点 while(head & head-num!=num)head=head-next;return head;friend void OutputOne(const Student* head) /输出一个学生数据coutClasstnametnumtcpptm
7、athtengtordernum!=num)p1=p2,p2=p2-next;if(p2)if(p2=p1)head=head-next;delete p1;else p1-next=p2-next;delete p2;cout已删除num号学生数据n;SetOrder(head);else coutorder=order+;head=head-next;5修改学生的信息friend Student *Modify(Student *head,int num) /修改学号为学生的数据Student *p1=head,*p2=p1;while(p2&p2-num!=num) /寻找待修改的结点p
8、1=p2,p2=p2-next;if(p2) /修改指定结点数据/*coutnn请输入新数据,格式为:np2-Classp2-namep2-nump2-cppp2-mathp2-eng;*/ cout班级:p2-Class; cout姓名:p2-name;cout学号:p2-num;coutC+的成绩:p2-cpp;cout数学的成绩:p2-math;cout英语的成绩 :p2-eng;while(!Valid(p2-cpp)|!Valid(p2-math)|!Valid(p2-eng)coutnn成绩数据非法!请重新输入,格式为:np2-Classp2-namep2-nump2-cppp2-
9、mathp2-eng;p2-ave=(p2-cpp+p2-math+p2-eng)/3;/将修改的指定结点从原链表上修改下来,并重新降序插入原链表if(p2=p1)head=Insert(p2-next,p2);elsep1-next=p2-next; head=Insert(head,p2);SetOrder(head);else cout没找到指定学生!n;return head;6.显示数据:friend void OutputAll(const Student*head) /输出所有学生的数据if(!head) coutnntt没有任何学生数据!nn; return;coutnntt学
10、生成绩表nn;coutnext;7.平均数据函数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)coutnn没有任何学生数据!n;return;coutnntt各门课程平均成绩表nn;couttC+t数学t英语n;coutave_cpp/itave_math/itave_eng/iendl;
11、程序测试结果:1运行程序.会出现如下画面,按照提示进行选择.2. 首先选择1,然后按Enter键.按照提示对学生情况进行输入.如图:3. 按1键可以添加多个学生成绩的数据,按2返回主界面。4. 选择5, 然后按Enter键,显示刚才输入的数据和排名的情况。5在主界面选择2可以修改学生的数据。6.在主界面选择3可以按学号查询学生成绩情况7. 在主界面选择7可以按学号删除学生的成绩信息 三、 设计总结这次课程设计基本上涵盖了学习到的C+ 语言知识点,课程设计题目要求不仅要求对课本虽然是网上搜来的代码,但这些代码没办法运行,我把这些代码改了和增加了自己写的代码,终于可以运行,而且到达自己想要的结果,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 成绩管理系统 课程设计 报告 17
限制150内