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

上传人:b****4 文档编号:5040501 上传时间:2023-05-07 格式:DOCX 页数:21 大小:17.01KB
下载 相关 举报
程序设计语言VC++课程设计学生成绩管理系统.docx_第1页
第1页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第2页
第2页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第3页
第3页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第4页
第4页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第5页
第5页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第6页
第6页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第7页
第7页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第8页
第8页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第9页
第9页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第10页
第10页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第11页
第11页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第12页
第12页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第13页
第13页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第14页
第14页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第15页
第15页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第16页
第16页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第17页
第17页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第18页
第18页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第19页
第19页 / 共21页
程序设计语言VC++课程设计学生成绩管理系统.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《程序设计语言VC++课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《程序设计语言VC++课程设计学生成绩管理系统.docx(21页珍藏版)》请在冰点文库上搜索。

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

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

1.题目:

学生成绩管理系统

2.基本要求

(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<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

cout<<"C++成绩最高的学生:

";

cout<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

cout<<"英语成绩最高的学生:

";

cout<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

cout<<"物理成绩最高的学生:

";

cout<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

}

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<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

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<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

elsecout<<"查询失败"<

}

node*sort1(node*head)

{

node*p=head,*p1,*p2;

while(p->next!

=0)

{p1=p;

p2=p->next;

while(p2!

=0)

{

if(p2->numnum)

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->CscoreCscore)

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->EscoreEscore)

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->PscorePscore)

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->sumsum)

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->averageaverage)

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<num<<'\t'<name<<'\t'<sex<<'\t'<jiguan<<'\t'<Cscore<<'\t'<Escore<<'\t'<Pscore<

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;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2