当前位置:文档之家› 程序设计语言(VC++)课程设计(学生成绩管理系统)

程序设计语言(VC++)课程设计(学生成绩管理系统)

1.2.3.4.题目:学生成绩管理系统5.基本要求(1)要求用Visual C++语言来实现一个简单的学生成绩管理系统,该系统完成之后,基本上要能够无错运行,能达到学生成绩管理系统的基本要求。

(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.CPP文件中,要求使用头文件。

(3)准备系统模拟的数据,不得少于10条。

(4)成绩管理程序至少应具备以下功能:1)输入:学生的基本信息,包括学号.姓名.性别.籍贯. Visual C++成绩.英语成绩.物理成绩等;2)计算:每个学生的总成绩.平均成绩.所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;3)查询:可以按学号.姓名. Visual C++成绩查询4)4)排序:可以按学号.姓名. Visual C++成绩. 英语成绩.物理成绩.总成绩.平均成绩等进行排序并输出;5)删除:删除某条记录;6)帮助和关于;7)退出:退出整个系统的运行。

8)可以增加更多的菜单项,比如设置颜色.字体风格等。

程序如下:#include<iostream.h>#include<string.h>struct node{int num;char name[10];char sex[10];char jiguan[10];float Cscore;float Escore;float Pscore;float sum;float average;node *next;};node *create(){node *head;node *p,*pend;int a;char b[10];char c[10];char f[10];float d1,d2,d3;cout<<"请输入学号,姓名,性别,籍贯,C++成绩,英语成绩,物理成绩:";cin>>a>>b>>c>>f>>d1>>d2>>d3;head=0;int i=0;while(i<2){p=new node;p->num=a;strcpy(p->name,b);strcpy(p->sex,c);strcpy(p->jiguan,f);p->Cscore=d1;p->Escore=d2;p->Pscore=d3;p->sum=(d1+d2+d3);p->average=(d1+d2+d3)/3;if(head==0){head=p;pend=p;}else{ pend->next=p;pend=p;}i++;cout<<"请输入学号,姓名,性别,籍贯,C++成绩,英语成绩,物理成绩:";cin>>a>>b>>c>>f>>d1>>d2>>d3;}if(head) pend->next=0;return head;}void print(node *head){node *p;float m,n,k;p=head;while(p){m+=p->Cscore;n+=p->Escore;k+=p->Pscore;p=p->next;}m/=3;n/=3;k/=3;node *p1,*p2,*p3,*p4,*p5;p1=p2=p3=p4=p5=head;while(p2){ if(p2->sum>p1->sum) p1=p2;if(p2->Cscore>p3->Cscore) p3=p2;if(p2->Escore>p4->Escore) p4=p2;if(p2->Pscore>p5->Pscore) p5=p2;p2=p2->next;}cout<<"总成绩最高的学生:";cout<<p1->num<<'\t'<<p1->name<<'\t'<<p1->sex<<'\t'<<p 1->jiguan<<'\t'<<p1->Cscore<<'\t'<<p1->Escore<<'\t'<<p1->Pscore<<endl;cout<<"C++成绩最高的学生:";cout<<p3->num<<'\t'<<p3->name<<'\t'<<p3->sex<<'\t'<<p 3->jiguan<<'\t'<<p3->Cscore<<'\t'<<p3->Escore<<'\t'<<p3->Psc ore<<endl;cout<<"英语成绩最高的学生:";cout<<p4->num<<'\t'<<p4->name<<'\t'<<p4->sex<<'\t'<<p 4->jiguan<<'\t'<<p4->Cscore<<'\t'<<p4->Escore<<'\t'<<p4->Psc ore<<endl;cout<<"物理成绩最高的学生:";cout<<p5->num<<'\t'<<p5->name<<'\t'<<p5->sex<<'\t'<<p 5->jiguan<<'\t'<<p5->Cscore<<'\t'<<p5->Escore<<'\t'<<p5->Psc ore<<endl;}void search(node *head,int data){node *p;int m=0;p=head;if(head->num==data){m=1;}while(p->next&&p->num!=0)p=p->next;if(p->num==data){m=1;}if(m==1)cout<<p->num<<'\t'<<p->name<<'\t'<<p->sex<<'\t'<<p->jiguan <<'\t'<<p->Cscore<<'\t'<<p->Escore<<'\t'<<p->Pscore<<endl;else cout<<"查询失败"<<endl;}void search(node *head,char n[10]){node *p;int m=0;p=head;if(strcmp(head->name,n)==0){m=1;}while(p->next&&(p->name,n)!=0)p=p->next;if(strcmp(p->name,n)==0)m=1;}if(m==1)cout<<p->num<<'\t'<<p->name<<'\t'<<p->sex<<'\t'<<p->jiguan <<'\t'<<p->Cscore<<'\t'<<p->Escore<<'\t'<<p->Pscore<<endl;else cout<<"查询失败"<<endl;}node *sort1(node *head){node *p=head,*p1,*p2;while(p->next!=0){ p1=p;p2=p->next;while(p2!=0){if(p2->num<p1->num)p1=p2;p2=p2->next;}if(p!=p1)int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->sum=p1->sum;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;}node *sort2(node *head){node *p=head,*p1,*p2;while(p->next!=0){ p1=p;p2=p->next;while(p2!=0){if(strcmp(p2->name,p1->name)<0) p1=p2;p2=p2->next;}if(p!=p1){int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->sum=p1->sum;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;}node *sort3(node *head){node *p=head,*p1,*p2;while(p->next!=0){ p1=p;p2=p->next;while(p2!=0){if(p2->Cscore<p1->Cscore)p1=p2;p2=p2->next;}if(p!=p1){int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->sum=p1->sum;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;p=head;}node *sort4(node *head){node *p=head,*p1,*p2;while(p->next!=0){ p1=p;p2=p->next;while(p2!=0){if(p2->Escore<p1->Escore)p1=p2;p2=p2->next;}if(p!=p1){int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->sum=p1->sum;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;}node *sort5(node *head){node *p=head,*p1,*p2;while(p->next!=0){ p1=p;p2=p->next;while(p2!=0){if(p2->Pscore<p1->Pscore)p1=p2;p2=p2->next;}if(p!=p1){int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->sum=p1->sum;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;}node *sort6(node *head) {node *p=head,*p1,*p2;while(p->next!=0){ p1=p;while(p2!=0){if(p2->sum<p1->sum)p1=p2;p2=p2->next;}if(p!=p1){int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;}node *sort7(node *head) {node *p=head,*p1,*p2;while(p->next!=0){ p1=p;p2=p->next;while(p2!=0){if(p2->average<p1->average)p1=p2;p2=p2->next;}if(p!=p1){int r;char x[10];float s,t,i,j,h;r=p->num;strcpy(x,p->name);s=p->Cscore;t=p->Escore;i=p->Pscore;j=p->sum;h=p->average;p->num=p1->num;strcpy(p->name,p1->name);p->Cscore=p1->Cscore;p->Escore=p1->Escore;p->Pscore=p1->Pscore;p->sum=p1->sum;p->average=p1->average;p1->num=r;strcpy(p1->name,x);p1->Cscore=s;p1->Escore=t;p1->Pscore=i;p1->sum=j;p1->average=h;}p=p->next;}return head;}void out(node *head){node *p=head;while(p){cout<<p->num<<'\t'<<p->name<<'\t'<<p->sex<<'\t'<<p->ji guan<<'\t'<<p->Cscore<<'\t'<<p->Escore<<'\t'<<p->Pscore<<en dl;p=p->next;}}node *delete_d(node *head ,int g){node *p1,*p2;if (head->num==g){p2=head;head=head->next;delete p2;cout<<"成功删除记录"<<endl;}else{ p1=p2=head;while(p2->num!=g&&p2->next!=0) { p1=p2;p2=p2->next;}if(p2->num==g){ p1->next=p2->next;delete p2;cout<<"成功删除记录"<<endl;}else cout<<"没有找到要删除的记录"<<endl;}return head;}void main(){cout<<"学生成绩管理统系"<<endl;cout<<"菜单:"<<endl;cout<<"1:输入"<<'\t'<<"2:计算"<<'\t'<<"3:查询"<<'\t'<<"4:排序"<<'\t'<<"5:删除"<<'\t'<<"6:帮助和关于"<<'\t'<<"7:退出"<<endl;int m;cout<<"输入选项:";cin>>m;node *head;int k,data,g,f;char n[10];switch (m){case 1:{ cout<<"输入:"<<endl;head=create();}case 2:{ cout<<"计算:"<<endl;print(head);}case 3:{ cout<<"查询:"<<endl;cout<<"选择查询的方式:";cin>>k;if(k==1){ cout<<"按学号查询:"<<endl;cout<<"输入学号:";cin>>data;search(head,data);}if(k==2){ cout<<"按姓名查询:"<<endl;cout<<"输入姓名:";cin>>n;search(head,n);}}case 4:{cout<<"排序:"<<endl;cout<<"选择排序的方式:";cin>>f;if(f==1){ cout<<"按学号排序:"<<endl;sort1(head);out(head);}if(f==2){ cout<<"按姓名排序:"<<endl;sort2(head);}if(f==3){ cout<<"按VC++成绩排序:"<<endl;sort3(head);out(head);}if(f==4){ cout<<"按英语成绩排序:"<<endl;sort4(head);out(head);}if(f==5){ cout<<"按物理成绩排序:"<<endl;sort5(head);out(head);}if(f==6){ cout<<"按总成绩排序:"<<endl; sort6(head);out(head);}{ cout<<"按平均成绩排序:"<<endl;sort7(head);out(head);}}case 5:{ cout<<"删除:"<<endl;cout<<"要删除的记录的学号为:";cin>>g;delete_d(head,g);}case 6:{ cout<<"帮助和关于"<<endl;}case 7:{ cout<<"退出";break;}}}。

相关主题