大学C++课程设计报告学生成绩管理系统(附源代码)_第1页
大学C++课程设计报告学生成绩管理系统(附源代码)_第2页
大学C++课程设计报告学生成绩管理系统(附源代码)_第3页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 诚信应考,考试作弊将带来严峻后果2727页脚内容广东海洋大学课程设计报告课程名称:C/C+语言程序设计课程编号:学生姓名:陈1071学号:实习地点:科技楼起止时间:2022.12.29-2022.01.02指导教师:一、 目的与要求通过本课程设计的实践,全面总结C+课程学习中的的数据类型、程序构造、数组、函数、指针、构造体、链表等根本概念,把握其使用方法。把握面对对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的根本概念,初步学会面对对象的程序设计方法编写计算机程序的力量。C+中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编码测

2、试、模块组装与整体调试的全过程,加深对C+的理解与VisualC+环境的使用;逐步生疏程序设计的方法,并长时间的实践积存的。二、 设计内容学生成绩治理系统成绩的输入学号、姓名、英语、数学、C+语言;各科平均成绩、各科成绩“优秀;总成绩统计学生的总成绩、平均成绩及成绩排名2扩展功能:学生数据的添加、修改、与删除3设计要求诚信应考,考试作弊将带来严峻后果诚信应考,考试作弊将带来严峻后果2727页脚内容 windows 图形界课程类描述课程信息:课程编号,科目名称如高等数学,大学英语等生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入。三、 过程与结果主要内容如下:1.students

3、tudent数文件。Student主要功能函数的设计:关于计算总成绩和平均成绩以及评定成绩等级的函数,而用于成绩统计中优秀、良好、A,B,C,D,E 来分别表达上述等级;代码如下:此函数为查找函数的实现过程,通过whileswitchifsetw1排序函数中分四种状况排序,分别按学号,总分,平均分来排序,排序来。数据输入设计:数据输入以输出方式翻开文件,通过 this 指针和地址引用把写入的数据加在文件末尾;程序测试结果:1首先选择 1,然后按 Enter 键.依据提示对学生状况进展输入.如图:按任意键程序自动保存第一个同学的数据,并返回菜单,依据刚刚的步骤连续输入其次个、第三个同学等等的数据

4、;4,Enter2Enter来;按任意键又返回菜单,连续接下来的操作;四、设计总结这次课程设计根本上涵盖了大学一年级学习到的 C+ 语言学问点,课程设计题目要求 诚信应考,考试作弊将带来严峻后果2727页脚内容编写、调试、公布、文档化、维护和修订。C+程序编译是一种要求特别精细的工作,小到一个分号或点都能影响整个程序的 运行,这就要求我们编写程序时要特别细心,即使是一个符号,还是一个字母都不能乱用。case 序列语句里的变量中的p 写成q它让我记住了学习需要认真、认真、负责的态度对待。 与熊掌不行得兼。这次课程设计,在整个程序中,我们通过使用while 循环,switch 语句,setwC+

5、中语句的使用力量和组合力量,进一步加强了我对使用C+编程的力量。还让我把握了高级 whilethiscase作为程序的入口,一般结合switch和教导,这真的很重要。 我信任,通过我的努力,在不久的将来,我会编出一组真正有用的程序的。五、成绩评定成绩指导教师日期六、 附件程序源代码清单: #include #include #include #include using namespace std;class studentprivate:string number; string name; double computer;double English; double math; doubl

6、e sum; double ave;char grade; student *head; student *curnode;student *next;public:student;/不带参数的构造函数student(string ,string ,double ,double ,double ,double =0.0,double =0.0,char=NULL); /带数据域参数的构造函数,用来动态建立节点void sum_score;/总分函数void ave_score;/平均分函数void grade_score;/成绩等级void cin_app;/修改用void app_score

7、(string ,string ,double ,double ,double); /动态的建立节点void del_score;/删除全部节点void displist;/输出节点中的全部数据void lookup(int ,string ); /查找函数void del_score(int ,string );/删除函数void compositor(int ,int ); /排序函数void rework(int ,string ); /修改函数;/studentvoid err_char;/输入错误字符检测函数void score_err;/0100student:student:ne

8、xt(NULL)/不带参数的构造函数head=curnode=this;/带参数的构造函数student:student(string Number,stringName,double Computer,double ENglish,doubleMath,double Sum,double Ave,char Grade):next(NULL)number=Number; name=Name; computer=Computer;English=ENglish; math=Math; sum=Sum;ave=Ave; grade=Grade;void student:sum_score/计算总成

9、绩sum=computer+English+math;void student:ave_score/计算平均成绩ave=(computer+English+math)/3.0;void student:grade_score/计算成绩等级int i; i=ave; switch(i/10)case 10: grade=”A”; break;case 9: grade=”A”; break; case 8: grade=”B”; break; case 7: grade=”C”; break; case 6: grade=”D”; break; default: grade=”E”;voidst

10、udent:app_score(stringNumber,stringName,doubleComputer,doubleENglish,double Math)/动态建立节点curnode-next=new student(Number,Name,Computer,ENglish,Math);curnode=curnode-next;void student:del_score/删除表中的全部数据student *p; curnode=head-next; while(curnode!=NULL)p=curnode-next;delete curnode; curnode=p;head-ne

11、xt=NULL;curnode=head;cout“endl; cout“ !表中内容全部清空,现已是一个空表! “endl;cout“endl; coutnext=NULL)cout“endl;cout“ !这是一个空表! “endl;cout“endl;coutnext;cout“endl;cout“学号姓名计算机 英语 数学 总分 平均分等级“endl; cout“endl; while(curnode!=NULL)cout“leftsetw(10)number; cout“leftsetw(10)name; cout“leftsetw(6)computer;cout“leftsetw(

12、6)English; cout“leftsetw(6)math; curnode-sum_score; cout“leftsetw(8)sum;curnode-ave_score; cout“leftsetw(8)ave;curnode-grade_score;cout“leftsetw(4)grade“next!=NULL)cout“endl;elsecout“next;curnode=pw; cout“endl;cout“!表中内容输出完毕!“endl;cout“endl;cout“ “;system(“pause“);/输入数据void student:cin_appstudent *p

13、=curnode;bool b=0;string Number; string Name; double Computer;double ENglish; double Math; while(1)coutNumber; curnode=head-next; while(curnode!=NULL)b=(Number=curnode-number);curnode=curnode-next;if(!b)break;elsecout“endl;cout“消灭了一样的学号,请重输入“endl;cout“endl;curnode=p; coutName; while(1)coutComputer;

14、while(cin.fail)err_char; coutComputer;if(Computer=0&Computer=100)break;elsescore_err;while(1)coutENglish; while(cin.fail)err_char; coutENglish;if(ENglish=0&ENglish=100)break;elsescore_err;while(1)coutMath; while(cin.fail)err_char;coutMath;if(Math=0&Mathapp_score(Number,Name,Computer,ENglish,Math); c

15、out“endl;cout“!已添加一条记录!“endl;cout“endl;coutnext)cout“endl;cout“!这是一个空表!“endl;cout“endl;curnode=p;cout“ “;system(“pause“);return;cout“endl;cout“学号姓名计算机 英语 数学 总分 平均分等级“endl; cout“number=str;break;case 2: b=curnode-name=str;break;default: return;if(b)i=0;cout“leftsetw(10)number; cout“leftsetw(10)name;

16、cout“leftsetw(6)computer;cout“leftsetw(6)English; cout“leftsetw(6)math; curnode-sum_score; cout“leftsetw(8)sum; curnode-ave_score; cout“leftsetw(8)ave; curnode-grade_score;cout“leftsetw(4)grade“endl; cout“next;/i=1if(i)cout“endl;cout“没有匹配的数据“endl;cout“endl;elsecout“endl;curnode=p;cout“ 以上是本次查找的结果!“e

17、ndl;coutnext)cout“endl;cout“!这是一个空表!“endl;cout“endl;curnode=p;coutnumber=str;break;case 2: b=curnode-name=str;break;default: return;if(b)i=0;pw-next=curnode-next;delete curnode; curnode=pw-next;elsepw=curnode; curnode=curnode-next;/i=1if(i)cout“endl;cout“没有匹配的数据“endl;cout“endl;elsecout“endl;cout“ 数据

18、删除成功 “endl;cout“next)curnode=curnode-next;coutnext=NULL)cout“endl;cout“!这是一个空表不能排序!“endl;cout“endl;coutnext-next=NULL)cout“endl;cout“!只有一条记录不用排序!“endl;cout“endl;coutnext;q=s;p=q-next; while(s!=NULL)while(p!=NULL)switch(n)case 1:if(m=1)while(s-numbernumber)q-next=p-next;r-next=p;p-next=s;s=p;p=q-next

19、; if(p=NULL)break;elsewhile(s-numberp-number)q-next=p-next;r-next=p;p-next=s;s=p;p=q-next; if(p=NULL)break;case 2:break;if(m=1)while(s-sumsum)q-next=p-next;r-next=p;p-next=s;s=p;p=q-next; if(p=NULL)break;elsewhile(s-sump-sum)q-next=p-next;r-next=p;p-next=s;s=p;p=q-next; if(p=NULL)break;case 3:break;

20、if(m=1)while(s-aveave)q-next=p-next;r-next=p;p-next=s;s=p;p=q-next; if(p=NULL)break;elsewhile(s-avep-ave)q-next=p-next;r-next=p;p-next=s;s=p;p=q-next; if(p=NULL)break;break;default: return;if(p=NULL)break;q=p;p=p-next;r=s;s=s-next;q=s;p=q-next; if(p=NULL)break;cout“endl;cout“!成功完成排序操作,马上输出排序结果!“endl

21、;cout“endl;coutnext)cout“endl;cout“!这是一个空表没有需要修改的数据!“endl;cout“endl;curnode=p;coutnumber=str;break;case 2: b=curnode-name=str;break;default: return;if(b)i=0;string Number; string Name; double Computer;double ENglish; double Math;cout“endl;cout“!请在原数据后面输入要修改的数据!“endl;cout“endl;cout“ 学 号:“numberNumber

22、;curnode-number=Number;cout“ 姓 名:“nameName;curnode-name=Name;while(1)cout“ 计算机:“computerComputer;while(cin.fail)err_char;cout“ 计算机:“computerComputer;if(Computer=0&Computercomputer=Computer;while(1)cout“ 英 语:“EnglishENglish;while(cin.fail)err_char;cout“ 英 语:“EnglishENglish;if(ENglish=0&ENglishEnglish

23、=ENglish;while(1)cout“ 数 学:“mathMath;while(cin.fail)err_char;cout“ 数 学:“mathMath;if(Math=0&Mathmath=Math;curnode=curnode-next;if(i)cout“endl;cout“!找不到需要修改的数据!“endl;cout“endl;elsecout“endl;cout“!数据修改全部完成!“endl;cout“endl;cout“ “;system(“pause“);curnode=p;/常用函数调用void name_of_number;/选择姓名还是学号void menu/系

24、统菜单函数的定义cout“endl;cout“ 欢送使用信管专业学生成绩治理系统 “endl;cout“endl;cout“主菜单“endl;cout“endl;cout“请按提示操作“endl;cout“endl;cout“endl;cout“endl;cout“1录入成绩2删除记录“endl;cout“endl;cout“3修改记录4记录排序“endl;cout“endl;cout“5查看记录6查找信息“endl;cout“endl;cout“7删除全部“endl;cout“endl;cout“其他键退出“endl;cout“endl;cout“endl;cout“1-7“endl;cou

25、t“ 你的选择是:“;/查找函数的调用void fun_lookup(student &a)int n; string str;name_of_number; coutn; while(cin.fail)err_char;coutn;if(n!=1&n!=2)n=1;coutstr;a.lookup(n,str);/修改函数void fun_rework(student &a)int n; string str;name_of_number; coutn; while(cin.fail)err_char;coutn;if(n!=1&n!=2)n=1;coutstr;a.rework(n,str

26、);/删除函数的调用void fun_del(student &a)int n; string str;name_of_number; coutn; while(cin.fail)err_char;coutn;if(n!=1&n!=2)n=1;coutstr; a.del_score(n,str);/排序函数的调用void fun_compositor(student &a)int n,m; cout“endl;cout“请输入按什么排序“endl;cout“endl;cout“1按学号排序2 按总分排序“endl;cout“3按平均分排“endl;cout“endl;cout“输入其它数字则按学号排序“endl;cout“输入其它不是数字重输入“endl;cout“endl;coutn; while(cin.fail)err_char;coutn;if(n!=1&n!=2&n!=3)n=1;cout“endl;cout“请选择排序类型“endl;cout“endl;cout“1按降序排序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论