《学生成绩管理系统c++》由会员分享,可在线阅读,更多相关《学生成绩管理系统c++(14页珍藏版)》请在金锄头文库上搜索。
1、#include#include#includestruct Achievement /成绩.int Math; /数学成绩.int English; /英语成绩 .int Computer; /计算机成绩.int total; /总分.int average; /平均分.;struct Term /学期 .int term; /学期.Achievement achievement; /该学期的成绩.Term* next; /指向下一个学期.;struct Student /学生信息.char name20; /学生姓名.char number20; /学生学号.Term* term; /指向
2、该学生的第一个学期.Student* next; /指向下一个学生.;struct Class /班级信息.char ClassName50; /班级名称.Student* student; /指向该班级的第一个学生.Class* next; /指向下一个班级.int studentcount; /该班级的学生总数.;struct ClassAchievementint Achievement;char* classname;class SIMS /学生信息管理系统.public:SIMS(); /构造函数.SIMS(); /析构函数.void Main(); /主窗口函数.void Inse
3、rt(); /插入一个学生的某个的成绩.void Modify(); /修改一个学生的某个学期的成绩.void Sort(); /按某个学期所有班级按学生总平均成绩的排序结果 .void SearchAchievement(); /查找某个班某个学生某个学期的所有成绩 ,并标出不及格科目.void ShowNamelist(); /查找某个班级的学生名单.void ShowAchievement(); /输出某个班级某个学期所有学生的成绩列表.void deletestu();private:int classcount;Class* head; /头指针,指向第一个班级 .Student*
4、stu; /指向学生的指针.Term* term; /指向学期的指针.;SIMS:SIMS() /构造函数.head=new(Class);strcpy(head-ClassName,);head-next=NULL;head-studentcount=0;stu=head-student=new(Student);strcpy(stu-name,);strcpy(stu-number,);stu-next=NULL;term=stu-term=new(Term);term-term=0;term-next=NULL;term-achievement.Math=0;term-achieveme
5、nt.Computer=0;term-achievement.English=0;term-achievement.total=0;term-achievement.average=0;classcount=0;SIMS:SIMS() /析构函数.Class* c;Student* s;Term* t;c=head;while(c)s=stu=head-student;while(s)t=term=stu-term;while(t)term=term-next;delete(t);t=term;stu=stu-next;delete(s);s=stu;head=head-next;delete
6、(c);c=head;void SIMS:Main() /主窗口函数.int choice=-1;while(choice!=0)coutchoice;switch(choice)case 0:break;case 1:Insert();break;case 2:Modify();break;case 3:Sort();break;case 4:SearchAchievement();break;case 5:ShowNamelist();break;case 6:ShowAchievement();break;case 7: deletestu();break;default:choice=
7、-1;break;/switch/while/Mainvoid SIMS:Insert() /插入一个学生的某学期的成绩char n20; /该生姓名char num20; /该生学号char cn50; /该生所在班级int te; /要插入该生第几个学期的成绩int math; /该生数学成绩int english; /该生英语成绩int computer; /该生计算机成绩coutn;coutnum;coutcn;coutte;coutmath;coutenglish;coutcomputer;Class* c=head;Student* s=NULL;Term* t=NULL;whil
8、e(c-next&strcmp(c-ClassName,cn)c=c-next;if(strcmp(c-ClassName,cn)c-next=new(Class);classcount+;c=c-next;c-studentcount=0;strcpy(c-ClassName,cn);c-next=NULL;c-student=new(Student);s=c-student;strcpy(s-name,);strcpy(s-number,);s-next=NULL;s-term=new(Term);t=s-term;t-term=0;t-next=NULL;t-achievement.Ma
9、th=0;t-achievement.Computer=0;t-achievement.English=0;t-achievement.total=0;t-achievement.average=0;s=c-student;while(s-next&strcmp(s-name,n)&strcmp(s-number,num)s=s-next;if(strcmp(s-name,n)&strcmp(s-number,num)s-next=new(Student);+(c-studentcount);s=s-next;strcpy(s-name,n);strcpy(s-number,num);s-ne
10、xt=NULL;s-term=new(Term);t=s-term;t-term=0;t-next=NULL;t-achievement.Math=0;t-achievement.Computer=0;t-achievement.English=0;t-achievement.total=0;t-achievement.average=0;t=s-term;while(t-next&t-term!=te)t=t-next;if(t-term!=te)t-next=new(Term);t=t-next;t-term=te;t-next=NULL;t-achievement.Math=math;t
11、-achievement.Computer=computer;t-achievement.English=english;t-achievement.total=math+english+computer;t-achievement.average=(math+english+computer)/3;coutn;coutnum;coutcn;coutte;coutmath;coutenglish;coutcomputer;Class* c=head;Student* s=NULL;Term* t=NULL;while(c-next&strcmp(c-ClassName,cn)c=c-next;
12、if(strcmp(c-ClassName,cn)coutstudent;while(s-next&strcmp(s-name,n)&strcmp(s-number,num)s=s-next;if(strcmp(s-name,n)&strcmp(s-number,num)coutterm;while(t-next&t-term!=te)t=t-next;if(t-term!=te)coutachievement.Math=math;t-achievement.Computer=computer;t-achievement.English=english;t-achievement.total=
13、math+english+computer;t-achievement.average=(math+english+computer)/3;coutcn;while(c-next&strcmp(c-ClassName,cn)c=c-next;if(strcmp(c-ClassName,cn)coutstudent-next;coutnamenumbernext;coutn;coutnum;coutcn;coutte;Class* c=head;Student* s=NULL;Term* t=NULL;while(c-next&strcmp(c-ClassName,cn)c=c-next;if(
14、strcmp(c-ClassName,cn)coutstudent;while(s-next&strcmp(s-name,n)&strcmp(s-number,num)s=s-next;if(strcmp(s-name,n)&strcmp(s-number,num)coutterm;while(t-next&t-term!=te)t=t-next;if(t-term!=te)coutachievement.Computer;if(t-achievement.Computerachievement.Math;if(t-achievement.Mathachievement.English;if(t-achievement.Englishachievement.totalachievement.averagenext&strcmp(c-ClassName,NULL)c=c-next;while(s-next&strcmp(s-name,NULL)&strc