程序设计语言VC++课程设计学生成绩管理系统.docx
- 文档编号:15721168
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:21
- 大小:17.05KB
程序设计语言VC++课程设计学生成绩管理系统.docx
《程序设计语言VC++课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《程序设计语言VC++课程设计学生成绩管理系统.docx(21页珍藏版)》请在冰点文库上搜索。
程序设计语言VC++课程设计学生成绩管理系统
1.
2.
3.
4.题目:
学生成绩管理系统
5.基本要求
(1)要求用VisualC++语言来实现一个简单的学生成绩管理系统,该系统完成之后,基本上要能够无错运行,能达到学生成绩管理系统的基本要求。
(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.CPP文件中,要求使用头文件。
(3)准备系统模拟的数据,不得少于10条。
(4)成绩管理程序至少应具备以下功能:
1)输入:
学生的基本信息,包括学号.姓名.性别.籍贯.VisualC++成绩.英语成绩.物理成绩等;
2)计算:
每个学生的总成绩.平均成绩.所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;
3)查询:
可以按学号.姓名.VisualC++成绩查询
4)4)排序:
可以按学号.姓名.VisualC++成绩.英语成绩.物理成绩.总成绩.平均成绩等进行排序并输出;
5)删除:
删除某条记录;
6)帮助和关于;
7)退出:
退出整个系统的运行。
8)可以增加更多的菜单项,比如设置颜色.字体风格等。
程序如下:
#include
#include
structnode{
intnum;
charname[10];
charsex[10];
charjiguan[10];
floatCscore;
floatEscore;
floatPscore;
floatsum;
floataverage;
node*next;
};
node*create(){
node*head;
node*p,*pend;
inta;
charb[10];
charc[10];
charf[10];
floatd1,d2,d3;
cout<<"请输入学号,姓名,性别,籍贯,C++成绩,英语成绩,物理成绩:
";
cin>>a>>b>>c>>f>>d1>>d2>>d3;
head=0;
inti=0;
while(i<2){
p=newnode;
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;
returnhead;
}
voidprint(node*head){
node*p;
floatm,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< cout<<"C++成绩最高的学生: "; cout< cout<<"英语成绩最高的学生: "; cout< cout<<"物理成绩最高的学生: "; cout< } voidsearch(node*head,intdata){ node*p; intm=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< elsecout<<"查询失败"< } voidsearch(node*head,charn[10]){ node*p; intm=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< elsecout<<"查询失败"< } 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=p2; p2=p2->next; } if(p! =p1) { intr;charx[10];floats,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; } returnhead; } 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) { intr;charx[10];floats,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; } returnhead; } 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=p2; p2=p2->next; } if(p! =p1) { intr;charx[10];floats,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; } returnhead; 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=p2; p2=p2->next; } if(p! =p1) { intr;charx[10];floats,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; } returnhead; } 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=p2; p2=p2->next; } if(p! =p1) { intr;charx[10];floats,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; } returnhead; } node*sort6(node*head) { node*p=head,*p1,*p2; while(p->next! =0) {p1=p; p2=p->next; while(p2! =0) { if(p2->sum p1=p2; p2=p2->next; } if(p! =p1) { intr;charx[10];floats,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; } returnhead; } 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=p2; p2=p2->next; } if(p! =p1) { intr;charx[10];floats,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; } returnhead; } voidout(node*head){ node*p=head; while(p){ cout< p=p->next;} } node*delete_d(node*head,intg){ node*p1,*p2; if(head->num==g) { p2=head; head=head->next; deletep2; cout<<"成功删除记录"< } else{p1=p2=head; while(p2->num! =g&&p2->next! =0) {p1=p2;p2=p2->next;} if(p2->num==g) {p1->next=p2->next; deletep2; cout<<"成功删除记录"< } elsecout<<"没有找到要删除的记录"< } returnhead; } voidmain() { cout<<"学生成绩管理统系"< cout<<"菜单: "< cout<<"1: 输入"<<'\t'<<"2: 计算"<<'\t'<<"3: 查询"<<'\t'<<"4: 排序"<<'\t'<<"5: 删除"<<'\t'<<"6: 帮助和关于"<<'\t'<<"7: 退出"< intm; cout<<"输入选项: "; cin>>m; node*head; intk,data,g,f; charn[10]; switch(m){ case1: {cout<<"输入: "< head=create(); } case2: {cout<<"计算: "< print(head); } case3: {cout<<"查询: "< cout<<"选择查询的方式: "; cin>>k; if(k==1) {cout<<"按学号查询: "< cout<<"输入学号: "; cin>>data; search(head,data); } if(k==2) {cout<<"按姓名查询: "< cout<<"输入姓名: "; cin>>n; search(head,n); } } case4: { cout<<"排序: "< cout<<"选择排序的方式: "; cin>>f; if(f==1) {cout<<"按学号排序: "< sort1(head); out(head); } if(f==2) {cout<<"按姓名排序: "< sort2(head); out(head); } if(f==3) {cout<<"按VC++成绩排序: "< sort3(head); out(head); } if(f==4) {cout<<"按英语成绩排序: "< sort4(head); out(head); } if(f==5) {cout<<"按物理成绩排序: "< sort5(head); out(head); } if(f==6) {cout<<"按总成绩排序: "< sort6(head); out(head); } if(f==7) {cout<<"按平均成绩排序: "< sort7(head); out(head); } } case5: {cout<<"删除: "< cout<<"要删除的记录的学号为: "; cin>>g; delete_d(head,g); } case6: {cout<<"帮助和关于"< case7: {cout<<"退出"; break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 VC 课程设计 学生 成绩管理系统