1、学生成绩信息管理系统C+程序设计课程设计报告(20122013学年 第二学期)题目:学生成绩信息管理系统专业:信息管理与信息系统班级:姓名学号:指导教师:一、题目:学生成绩管理系统二、程序设计要求:(1)要求用VisualC+语言来实现一个简单的学生成绩管理系统,该系统完成之后,基本上要能够无错运行,能达到学生成绩管理系统的基本要求。(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.CPP文件中,要求使用头文件。(3)准备系统模拟的数据,不得少于10条。(4)成绩管理程序至少应具备以下功能:1)输入:学生的基本信息,包括学号.姓名.性别.籍贯.VisualC+成绩.英语成绩.
2、物理成绩等;2)计算:每个学生的总成绩.平均成绩.所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;3)查询:可以按学号.姓名.VisualC+成绩查询4)排序:可以按学号.姓名.VisualC+成绩.英语成绩.物理成绩.总成绩.平均成绩等进行排序并输出;5)删除:删除某条记录;6)按学分绩点计算办法计算每个学生学分绩点,并从高到低输出;7)按奖学金评定办法,从特等开始输出获得奖学金学生名单及其成绩与绩点;8)按三好学生评定办法,输出三好学生名单;9)帮助和关于;10)退出:退出整个系统的运行。三、程序的运行(1)进入系统(2)系统选择界面(3)管理系统的运行1、增加学生成绩2、显
3、示学生成绩3、排序统计成绩4、查找学生成绩5、删除学生成绩6、修改学生成绩7、获奖学金学生8、查看三好学生9、帮助与关于1、 安全退出系统四、心得与体会 在此次的课程设计的活动中,我大大加强了自己的动手能力,更进一步的学习了C+的编程的方面的学习,熟练了自己的编程技巧,这次课程设计,提高了我独立分析解决问题的能力和培养了我的创新精神。五、程序的编写#include#include#include#include#include /用getch();using namespace std;/Student类 class Studentpublic: char name20; char Id20;
4、 char sex10; char origin30; int Cnum; /C课程得分 int Enum; /英语课程得分 int Pnum; /物理课程得分 int sum; /个人总分 float average; /个人平均分 float Points; /个人学分积点 Student * Next; void Input() system(cls); coutname; coutId; coutsex; coutorigin; coutCnum; coutEnum; coutPnum; sum=Cnum+Enum+Pnum; average=sum/3; Points=(Cnum+E
5、num+Pnum)/10-15; void ReadFile(istream & in) innameIdsexoriginCnumEnumPnumsumaveragePoints; void Show() cout姓名:nameendl; cout学号:Idendl; cout性别:sexendl; cout籍贯:originendl; coutC+:Cnumendl; cout英语:Enumendl; cout物理:Pnumendl; cout总成绩:sumendl; cout平均成绩:averageendl; cout学分积点:Pointsendl; coutNext;p!=End;p=
6、p-Next) p-Show(); a+=p-Cnum; b+=p-Enum; c+=p-Pnum; x+; if(SSsum) SS=p-sum; strcpy(xa,p-name); if(CCCnum) CC=p-Cnum; strcpy(xb,p-name); if(EEEnum) EE=p-Enum; strcpy(xc,p-name); if(PPPnum) PP=p-Pnum; strcpy(xd,p-name); A=a/x; B=b/x; C=c/x; coutendl; cout所有学生的C+平均成绩为:Anendl; cout所有学生的英语平均成绩为:Bnendl; co
7、ut所有学生的物理平均成绩为:Cnnnendl; cout总分最高的学生为:xatt总分为:SSnendl; coutC+分数最高的学生为:xbtC+分数为:CCnendl; cout英语分数最高的学生为:xct英语分数为:EEnendl; cout物理分数最高的学生为:xdt物理分数为:PPnendl; coutn按任意键继续.; getch(); void Scholarship() int M=10; char MM20; Student *p; system(cls); cout获得奖学金的学生如下:Next;p!=End;p=p-Next) if(MPoints) strcpy(MM
8、,p-name); coutMM:ntC+成绩:Cnumtt英语成绩:Enumtt; cout物理成绩:Pnumttt总成绩:sumtt平均成绩:; coutaveragett学分积点:Pointsnn; cout按任意键继续.endl; getch(); void merit() char SH20; Student *p; system(cls); cout三好学生的名单如下:Next;p!=End;p=p-Next) if(p-Cnum=80&p-Enum=80&p-Pnum=80) strcpy(SH,p-name); coutttSHendl; coutInput(); End-Ne
9、xt=new Student; End=End-Next; coutn添加成功!endl; coutn按任意键继续.; getch(); void Help() system(cls); cout帮助:nnt该系统是C+学生成绩管理系统,输入一些学生信息及考试成绩,; cout可以相应的显示出学生的信息,各科成绩,总成绩,平均成绩,学分积点等。; cout通过输入、排序、删除等功能,可以任意的对学生的信息加以变动。; cout在主页面输入对应的数字,可以对不同的选项进行操作。; coutnnnn; cout关于:nnt系统名称:学生成绩管理系统nnt制作人:袁永国 1240407128; co
10、utnnn; coutNext!=End;p=p-Next) if(!strcmp(p-Next-name,name)return p; return NULL; Student *FindID(char * Id) for(Student * p=Head;p-Next!=End;p=p-Next) if(!strcmp(p-Next-Id,Id)return p; return NULL; Student *FindSex(char * sex) for(Student * p=Head;p-Next!=End;p=p-Next) if(!strcmp(p-Next-sex,sex)ret
11、urn p; return NULL; Student *FindOrigin(char * origin) for(Student * p=Head;p-Next!=End;p=p-Next) if(!strcmp(p-Next-origin,origin)return p; return NULL; ;/构造函数Studentmassage:Studentmassage() Head=new Student; Head-Next=new Student; End=Head-Next; in.open(sort.txt); if(!in) cout这是一个新系统,无学生信息。请先输入。Rea
12、dFile(in); if(End-name0=0)break; End-Next=new Student; End=End-Next; in.close(); couttt读取学生信息成功!Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp; delete Head,End;/菜单void Studentmassage:ShowMenu() cout -endl; cout *endl; cout $ 1.增加学生成绩 $endl; cout $ 2.显示学生成绩 $endl; cout $ 3.排序统计成绩 $
13、endl; cout $ 4.查找学生成绩 $endl; cout $ 5.删除学生成绩 $endl; cout $ 6.修改学生信息 $endl; cout $ 7.获奖学金学生 $endl; cout $ 8.查看三好学生 $endl; cout $ 9.帮助与关于 $endl; cout $ 0.安全退出系统 $endl; cout *endl; coutnttntt请选择:;/查找函数void Studentmassage:Find() system(cls); char name20 ,Id10; int x; Student * p=NULL; coutntt*n; couttt
14、1.按学生的姓名查找ntt 2.按学生学号查找; coutx; switch(x) case 1: coutname; if(p=FindItem(name) p-Next-Show(); coutn按任意键继续.; getch(); else cout没有找到该姓名的学生!nendl; coutn按任意键继续.; getch(); break; case 2: coutId; if(p=FindID(Id) p-Next-Show(); coutn按任意键继续.; getch(); else cout没有找到该学好的学生!nendl; coutn按任意键继续.; getch(); break
15、; /修改信息void Studentmassage:ModifyItem() /修改信息 system(cls); char name20; Student * p=NULL; coutname; if(p=FindItem(name) cout已找到学生的信息,请输入新的信息!Next-Input(); coutn修改成功!endl; coutn按任意键继续.; getch(); else coutn没有找到!endl; coutn按任意键继续.; getch(); /删除信息void Studentmassage:RemoveItem() / 删除信息 system(cls); char
16、 name20; Student * p=NULL,*temp=NULL; cout请输入要删除的学生的姓名:name; if(p=FindItem(name) temp=p-Next; p-Next=p-Next-Next; delete temp; coutn删除成功!endl; coutn按任意键继续.; getch(); else coutn没有找到!endl; coutname,p1-name); strcpy(temp-Id,p1-Id); strcpy(temp-sex,p1-sex); strcpy(temp-origin,p1-origin); temp-Cnum=p1-Cn
17、um; 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-Poi
18、nts=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;/int Studentmassage:ListCount() /统计当前链表的记录总数,返回一个整数 if(! H
19、ead) return 0; int n=0; for(Student * p=Head-Next;p!=End;p=p-Next) n+; return n;/void Studentmassage:Sort() /对当前链表进行排序 cout Sorting.endl; Student *p=NULL,*p1=NULL,*k=NULL; int n=Studentmassage:ListCount(); if(n2) return; int T; system(cls); cout请选择:nnnttt1.按总成绩排序nttt2.按VC+成绩排序nttt3.按英语成绩排序n; coutttt4.按物理成绩排序nttt5.按平均成绩排序nttt6.按学分积点排序 T; switch(T) case 1: for(p=Head-Next;p!=End;p=p-Next) for(k=p-Next;k!=End;k=k-Next) if(p-sumk-sum) Studentmassage:Swap(k,p)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1