




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
word文档可自由复制编辑《C++程序设计》课程设计报告(2012—2013学年第二学期)题目:学生成绩信息管理系统专业:信息管理与信息系统班级:姓名学号:指导教师:word文档可自由复制编辑一、题目:学生成绩管理系统二、程序设计要求:(1)要求用Visual
C++语言来实现一个简单的学生成绩管理系统,该系统完成之后,基本上要能够无错运行,能达到学生成绩管理系统的基本要求。(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.CPP文件中,要求使用头文件。(3)准备系统模拟的数据,不得少于10条。(4)成绩管理程序至少应具备以下功能:1)输入:学生的基本信息,包括学号.姓名.性别.籍贯.VisualC++成绩.英语成绩.物理成绩等;2)计算:每个学生的总成绩.平均成绩.所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;3)查询:可以按学号.姓名.
Visual
C++成绩查询4)排序:可以按学号.姓名.
Visual
C++成绩.英语成绩.物理成绩.总成绩.平均成绩等进行排序并输出;5)删除:删除某条记录;6)按学分绩点计算办法计算每个学生学分绩点,并从高到低输出;7)按奖学金评定办法,从特等开始输出获得奖学金学生名单及其成绩与绩点;8)按三好学生评定办法,输出三好学生名单;9)帮助和关于;10)退出:退出整个系统的运行。三、程序的运行(1)进入系统(2)系统选择界面(3)管理系统的运行1、增加学生成绩2、显示学生成绩3、排序统计成绩4、查找学生成绩5、删除学生成绩6、修改学生成绩7、获奖学金学生8、查看三好学生9、帮助与关于安全退出系统四、心得与体会在此次的课程设计的活动中,我大大加强了自己的动手能力,更进一步的学习了C++的编程的方面的学习,熟练了自己的编程技巧,这次课程设计,提高了我独立分析解决问题的能力和培养了我的创新精神。五、程序的编写#include<iostream>#include<stdlib.h>#include<fstream>#include<string.h>#include<conio.h>//用getch();usingnamespacestd;//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌classStudent{public: charname[20];charId[20]; charsex[10]; charorigin[30];intCnum;//C课程得分intEnum;//英语课程得分 intPnum;//物理课程得分intsum;//个人总分 floataverage;//个人平均分 floatPoints;//个人学分积点Student*Next;voidInput() { system("cls"); cout<<"请输入学生的姓名:"; cin>>name;cout<<"请输入学生的学号:"; cin>>Id; cout<<"请输入学生的性别:"; cin>>sex; cout<<"请输入学生的籍贯:"; cin>>origin;cout<<"请输入C++课程的成绩:"; cin>>Cnum;cout<<"请输入英语课程的成绩:"; cin>>Enum;cout<<"请输入物理课程的成绩:"; cin>>Pnum;sum=Cnum+Enum+Pnum; average=sum/3; Points=(Cnum+Enum+Pnum)/10-15; } voidReadFile(istream&in) { in>>name>>Id>>sex>>origin>>Cnum>>Enum>>Pnum>>sum>>average>>Points; }voidShow() {cout<<"姓名:"<<name<<endl; cout<<"学号:"<<Id<<endl; cout<<"性别:"<<sex<<endl; cout<<"籍贯:"<<origin<<endl; cout<<"C++:"<<Cnum<<endl;cout<<"英语:"<<Enum<<endl; cout<<"物理:"<<Pnum<<endl; cout<<"总成绩:"<<sum<<endl; cout<<"平均成绩:"<<average<<endl; cout<<"学分积点:"<<Points<<endl; cout<<"\n\n"; }};//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌classStudentmassage{public: Studentmassage(); ~Studentmassage();voidShowMenu();voidFind(); voidPoint();voidSave();voidModifyItem();voidRemoveItem();voidSwap(Student*,Student*);voidSort();intListCount(); voidDisplay() { inta=0,b=0,c=0,x=0,A,B,C,SS=0,CC=0,EE=0,PP=0; charxa[20],xb[20],xc[20],xd[20]; system("cls"); Student*p; for(p=Head->Next;p!=End;p=p->Next) { p->Show(); a+=p->Cnum; b+=p->Enum; c+=p->Pnum; x++; if(SS<p->sum) { SS=p->sum; strcpy(xa,p->name); } if(CC<p->Cnum) { CC=p->Cnum; strcpy(xb,p->name); } if(EE<p->Enum) { EE=p->Enum; strcpy(xc,p->name); } if(PP<p->Pnum) { PP=p->Pnum; strcpy(xd,p->name); } } A=a/x; B=b/x; C=c/x; cout<<endl; cout<<"所有学生的C++平均成绩为:"<<A<<'\n'<<endl; cout<<"所有学生的英语平均成绩为:"<<B<<'\n'<<endl; cout<<"所有学生的物理平均成绩为:"<<C<<"\n\n\n"<<endl; cout<<"总分最高的学生为:"<<xa<<"\t\t总分为:"<<SS<<'\n'<<endl; cout<<"C++分数最高的学生为:"<<xb<<"\tC++分数为:"<<CC<<'\n'<<endl; cout<<"英语分数最高的学生为:"<<xc<<"\t英语分数为:"<<EE<<'\n'<<endl; cout<<"物理分数最高的学生为:"<<xd<<"\t物理分数为:"<<PP<<'\n'<<endl; cout<<"\n按任意键继续.."; getch(); } voidScholarship() { intM=10; charMM[20]; Student*p; system("cls"); cout<<"获得奖学金的学生如下:"<<"\n\n\n"; for(p=Head->Next;p!=End;p=p->Next) { if(M<=p->Points) { strcpy(MM,p->name); cout<<MM<<":"<<"\n\t"<<"C++成绩:"<<p->Cnum<<"\t\t"<<"英语成绩:"<<p->Enum<<"\t\t"; cout<<"物理成绩:"<<p->Pnum<<"\t\t\t"<<"总成绩:"<<p->sum<<"\t\t"<<"平均成绩:"; cout<<p->average<<"\t\t"<<"学分积点:"<<p->Points<<"\n\n"; } } cout<<"按任意键继续.."<<endl; getch(); } voidmerit() { charSH[20]; Student*p; system("cls"); cout<<"三好学生的名单如下:"<<"\n\n\n"; for(p=Head->Next;p!=End;p=p->Next) { if(p->Cnum>=80&&p->Enum>=80&&p->Pnum>=80) { strcpy(SH,p->name); cout<<"\t\t"<<SH<<endl; } } cout<<"按任意键继续.."; getch(); }voidAddItem() { End->Input();End->Next=newStudent;End=End->Next;cout<<"\n添加成功!"<<endl;cout<<"\n按任意键继续..";getch(); } voidHelp() { system("cls"); cout<<"帮助:\n\n\t该系统是C++学生成绩管理系统,输入一些学生信息及考试成绩,"; cout<<"可以相应的显示出学生的信息,各科成绩,总成绩,平均成绩,学分积点等。"; cout<<"通过输入、排序、删除等功能,可以任意的对学生的信息加以变动。"; cout<<"在主页面输入对应的数字,可以对不同的选项进行操作。";cout<<"\n\n\n\n"; cout<<"关于:\n\n\t系统名称:学生成绩管理系统\n\n\t制作人:袁永国1240407128"; cout<<"\n\n\n"; cout<<"按任意键继续.."; getch(); }private: Student*Head,*End;ifstreamin;ofstreamout;Student*FindItem(char*name) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->name,name))returnp; returnNULL; } Student*FindID(char*Id) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->Id,Id))returnp; returnNULL; } Student*FindSex(char*sex) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->sex,sex))returnp; returnNULL; } Student*FindOrigin(char*origin) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->origin,origin))returnp; returnNULL; }};//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage::Studentmassage(){ Head=newStudent;Head->Next=newStudent;End=Head->Next;in.open("sort.txt"); if(!in) cout<<"这是一个新系统,无学生信息。请先输入。"<<endl; else { while(!in.eof()) { End->ReadFile(in); if(End->name[0]=='\0')break; End->Next=newStudent; End=End->Next; } in.close(); cout<<"\t\t读取学生信息成功!"<<endl; }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage::~Studentmassage(){ Save(); for(Student*temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; deletetemp; } deleteHead,End;}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::ShowMenu(){ cout<<"------------------<<学生成绩管理系统>>------------------"<<endl; cout<<"****************************************************************************"<<endl; cout<<"$1.增加学生成绩$"<<endl; cout<<"$2.显示学生成绩$"<<endl; cout<<"$3.排序统计成绩$"<<endl; cout<<"$4.查找学生成绩$"<<endl; cout<<"$5.删除学生成绩$"<<endl; cout<<"$6.修改学生信息$"<<endl; cout<<"$7.获奖学金学生$"<<endl; cout<<"$8.查看三好学生$"<<endl; cout<<"$9.帮助与关于$"<<endl; cout<<"$0.安全退出系统$"<<endl; cout<<"****************************************************************************"<<endl; cout<<"\n\t\t\n\t\t请选择:";}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::Find(){ system("cls"); charname[20],Id[10]; intx; Student*p=NULL; cout<<"\n\t\t*********************************\n"; cout<<"\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找"; cout<<"\n\t\t*********************************\n请选择:"; cin>>x; switch(x) { case1: { cout<<"请输入要查找的学生的姓名:";cin>>name; if(p=FindItem(name)) { p->Next->Show(); cout<<"\n按任意键继续.."; getch(); } else { cout<<"没有找到该姓名的学生!"<<'\n'<<endl; cout<<"\n按任意键继续.."; getch(); } }break; case2: { cout<<"\t\t请输入要查找的学生的学号:";cin>>Id; if(p=FindID(Id)) { p->Next->Show(); cout<<"\n按任意键继续.."; getch(); } else { cout<<"没有找到该学好的学生!"<<'\n'<<endl; cout<<"\n按任意键继续.."; getch(); } }break; }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::ModifyItem()//修改信息{ system("cls"); charname[20]; Student*p=NULL; cout<<"请输入要修改的人的姓名:";cin>>name; if(p=FindItem(name)) { cout<<"已找到学生的信息,请输入新的信息!"<<endl; p->Next->Input(); cout<<"\n修改成功!"<<endl; cout<<"\n按任意键继续.."; getch(); } else { cout<<"\n没有找到!"<<endl; cout<<"\n按任意键继续.."; getch(); }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::RemoveItem()//删除信息{ system("cls"); charname[20]; Student*p=NULL,*temp=NULL; cout<<"请输入要删除的学生的姓名:"<<endl;cin>>name; if(p=FindItem(name)) { temp=p->Next; p->Next=p->Next->Next; deletetemp; cout<<"\n删除成功!"<<endl; cout<<"\n按任意键继续.."; getch(); } else { cout<<"\n没有找到!"<<endl; cout<<"\n按任意键继续.."; getch(); }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::Swap(Student*p1,Student*p2)//交换两个combox变量的数据域{ Student*temp=newStudent; strcpy(temp->name,p1->name); strcpy(temp->Id,p1->Id); strcpy(temp->sex,p1->sex); strcpy(temp->origin,p1->origin); temp->Cnum=p1->Cnum; temp->Enum=p1->Enum; temp->Pnum=p1->Pnum; temp->sum=p1->sum; temp->average=p1->average; temp->Points=p1->Points; strcpy(p1->name,p2->name); strcpy(p1->Id,p2->Id); strcpy(p1->sex,p2->sex); strcpy(p1->origin,p2->origin); p1->Cnum=p2->Cnum; p1->Enum=p2->Enum; p1->Pnum=p2->Pnum; p1->sum=p2->sum; p1->average=p2->average; p1->Points=p2->Points; strcpy(p2->name,temp->name); strcpy(p2->Id,temp->Id); strcpy(p2->sex,temp->sex); strcpy(p2->origin,temp->origin); p2->Cnum=temp->Cnum; p2->Enum=temp->Enum; p2->Pnum=temp->Pnum; p2->sum=temp->sum; p2->average=temp->average; p2->Points=temp->Points;}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌intStudentmassage::ListCount()//统计当前链表的记录总数,返回一个整数{ if(!Head) return0; intn=0; for(Student*p=Head->Next;p!=End;p=p->Next) { n++; } returnn;}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::Sort()//对当前链表进行排序{ cout<<"Sorting..."<<endl; Student*p=NULL,*p1=NULL,*k=NULL; intn=Studentmassage::ListCount(); if(n<2) return; intT; system("cls"); cout<<"请选择:\n\n\n\t\t\t1.按总成绩排序\n\t\t\t2.按VC++成绩排序\n\t\t\t3.按英语成绩排序\n"; cout<<"\t\t\t4.按物理成绩排序\n\t\t\t5.按平均成绩排序\n\t\t\t6.按学分积点排序"<<"\n\n"; cin>>T; switch(T) { case1: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->sum>k->sum) { Studentmassage::Swap(k,p); } } cout<<"按总成绩排序完成!请在显示学生成绩中查看"<<endl; cout<<"按任意键继续.."; getch(); return; }break; case2: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Cnum>k->Cnum) { Studentmassage::Swap(k,p); } } cout<<"按VC++成绩排序完成!请在显示学生成绩中查看"<<endl; cout<<"按任意键继续.."; getch(); return; }break; case3: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Enum>k->Enum) { Studentmassage::Swap(k,p); } } cout<<"按英语成绩排序完成!请在显示学生成绩中查看"<<endl; cout<<"按任意键继续.."; getch(); return; }break; case4: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Pnum>k->Pnum) { Studentmassage::Swap(k,p); } } cout<<"按物理成绩排序完成!请在显示学生成绩中查看"<<endl; cout<<"按任意键继续.."; getch(); return; }break; case5: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->average>k->average) { Studentmassage::Swap(k,p); } } cout<<"按平均成绩排序完成!请在显示学生成绩中查看"<<endl; cout<<"按任意键继续.."; getch(); return; }break; case6: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Points>k->Points) { Studentmassage::Swap(k,p)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 视觉感知行业面临的机遇分析
- 山东省济宁市任城区2024-2025学年下学期期中质量检测六年级数学试题(含部分答案)
- 江苏省常州市2024-2025学年七年级下学期期末模拟练习英语试卷(含答案)
- 河北省保定市定州市2024-2025学年八年级下学期4月期中数学试题(含答案)
- 2024-2025学年四校联合教学质量检测高一地理
- 部编版三年级上册第三单元《去年的树》教案
- 建筑施工特种作业-建筑起重机械司机(塔式起重机)真题库-4
- 建筑施工特种作业-建筑起重机械安装拆卸工(施工升降机)真题库-2
- 入队教育考核题目及答案
- 2023-2024学年四川省泸州市江阳区高二下学期6月期末数学试题(解析版)
- 云南省昆明市官渡区2023-2024学年五年级下学期7月期末道德与法治试题
- GB/T 43988-2024滑板课程学生运动能力测评规范
- GB/T 44092-2024体育公园配置要求
- DL-T1069-2016架空输电线路导地线补修导则
- 2024年陕西新华出版传媒集团有限责任公司招聘笔试冲刺题(带答案解析)
- 江苏开放大学本科行政管理专业060193国家公务员制度期末试卷
- 农村排灌用电安全管理
- 重庆开放大学《工具书与文献检索》形考测验1-4答案
- 纺织非遗:让世界读懂中国之美智慧树知到期末考试答案2024年
- 结节性红斑的护理措施
- 应急处突知识培训课件
评论
0/150
提交评论