C++课程设计学生成绩管理系统样三Word格式文档下载.docx
《C++课程设计学生成绩管理系统样三Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生成绩管理系统样三Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
(*p).c>
(*p).eng>
(*p).phy;
(*p).next=0;
if(h==0){h=p;
pend=p;
}
else{pend->
next=p;
i++;
}returnh;
voidcalculate(STU*h,intn);
voidsearch(STU*h);
voidscoreswap(floata,floatb);
voidintswap(longinta,longintb);
voidsort(STU*h,inta,intn);
voiddeletestudent(STU*h,intdata);
voidscholar(STU*h,intn);
voidshxs(STU*h,intn);
voidprint(STU*h);
voidwelcome();
voidIntroduction();
voidBJ:
:
calculate(STU*h,intn){
floatS[20],aver[20],aver1=0,aver2=0,aver3=0,MAX,max1,max2,max3;
floats1[20],s2[20],s3[20];
STU*p;
p=h;
for(inti=0;
i<
n;
i++){
S[i]=(*p).c+(*p).eng+(*p).phy;
aver[i]=S[i]/3;
p=(*p).next;
}
for(p=h,i=0;
aver1+=(*p).c;
aver2+=(*p).eng;
aver3+=(*p).phy;
p=(*p).next;
aver1=aver1/n;
aver2=aver2/n;
aver3=aver3/n;
i++){s1[i]=(*p).c;
s2[i]=(*p).c;
s3[i]=(*p).phy;
p=(*p).next;
MAX=0;
max1=0;
max2=0;
max3=0;
for(i=0;
if(MAX<
S[i])MAX=S[i];
if(max1<
s1[i])max1=s1[i];
if(max2<
s2[i])max2=s2[i];
if(max3<
s3[i])max3=s3[i];
总成绩最高的学生:
'
\n'
;
if(MAX==S[i])
cout<
(*p).xh<
\t'
(*p).xm<
MAX<
VC++成绩最高的学生:
i++){if(max1==s1[i])cout<
max1<
英语成绩最高的学生:
i++){if(max2==s2[i])cout<
max2<
物理成绩最高的学生:
i++){if(max3==s3[i])cout<
max3<
search(STU*h){
intr,t;
charxm[10];
按学号查询请输入1,按姓名查询请输入2!
r;
switch(r){
case1:
{
cout<
请输入要查询的学号:
cin>
t;
while(p){
if((*p).xh==t){
print(p);
break;
}
elsep=(*p).next;
}
}break;
case2:
请输入要查询的姓名:
cin>
xm;
while(p){
if(strcmp(xm,(*p).xm)==0){
break;
}
elsep=(*p).next;
}break;
scoreswap(floata,floatb){
floattemp=a;
a=b;
b=temp;
intswap(longinta,longintb){
longinttemp=a;
sort(STU*h,inta,intn){
STU*p,*p1,*p2;
charXM[20],XB[20],JG[20];
floatS[20],aver[20];
for(inti=0;
请选择排序方式!
按姓名排序请输入1"
按VC++成绩排序请输入2"
按英语成绩排序请输入3"
按物理成绩排序请输入4"
按总成绩排序请输入5"
按平均成绩排序请输入6"
a;
switch(a){
case1:
if(h==0)cout<
无结点"
else{
p1=h;
while((*p1).next)
n-1;
p2=(*p1).next;
for(intj=i+1;
j<
j++){
if(strcmp((*p1).xm,(*p2).xm)==1){
intswap((*p1).xh,(*p2).xh);
strcpy(XM,(*p1).xm);
strcpy((*p1).xm,(*p2).xm);
strcpy((*p2).xm,XM);
strcpy(XB,(*p1).xb);
strcpy((*p1).xb,(*p2).xb);
strcpy((*p2).xb,XB);
strcpy(JG,(*p1).jg);
strcpy((*p1).jg,(*p2).jg);
strcpy((*p2).jg,JG);
scoreswap((*p1).c,(*p2).c);
scoreswap((*p1).eng,(*p2).eng);
scoreswap((*p1).phy,(*p2).phy);
}
p2=(*p2).next;
p1=(*p1).next;
}p=h;
for(i=0;
print(p);
break;
case2:
for(intj=i+1;
if((*p1).c>
=(*p2).c){
intswap((*p1).xh,(*p2).xh);
strcpy(XM,(*p1).xm);
strcpy(XB,(*p1).xb);
strcpy(JG,(*p1).jg);
scoreswap((*p1).c,(*p2).c);
scoreswap((*p1).eng,(*p2).eng);
scoreswap((*p1).phy,(*p2).phy);
p1=(*p1).next;
case3:
while((*p1).next)
for(i=0;
for(intj=i+1;
if((*p1).eng>
=(*p2).eng){
case4:
{
if((*p1).c>
}
case5:
while((*p1).next)
i++){
{
if(S[i]>
=S[j]){
p2=(*p2).next;
(*p).xb<
(*p).jg<
(*p).c<
(*p).eng<
(*p).phy<
S[i]<
case6:
if(aver[i]>
=aver[j]){
aver[i]<
default:
无可排序的依据!
deletestudent(STU*h,intdata){
STU*p1,*p2;
intb;
如果要删除学生的信息请输入1!
如果不需要删除学生的信息请输入2!
b;
switch(b){
输入要删除信息学生的学号:
data;
if(h==0)cout<
无学生信息不能删除!
if(h->
xh==data){
p2=h;
h=h->
next;
deletep2;
cout<
成功删除学生的信息!
p2=p1=h;
while((*p2).xh!
=data&
&
(*p2).next!
=0){
p1=p2;
p2=(*p2).next;
if((*p2).xh==data){
(*p1).next=(*p2).next;
deletep2;
成功删除学号为"
data<
学生的信息"
elsecout<
没有找到要删除的信息"
break;
scholar(STU*h,intn){
charxm[20][20],xb[20][20],jg[20][20],b[20],c[20],d[20];
doubles[20],xh[20],vc[20],english[20],physics[20],pe[20],S;
s[i]=(((*p).c*4.5+(*p).eng*4+(*p).phy*3)/11.5-50)/10;
xh[i]=(*p).xh;
strcpy(xm[i],(*p).xm);
strcpy(xb[i],(*p).xb);
strcpy(jg[i],(*p).jg);
vc[i]=(*p).c;
vc[i]=(*p).eng;
physics[i]=(*p).phy;
if(s[i]<
=s[j]){
S=s[i];
s[i]=s[j];
s[j]=S;
intswap(xh[i],xh[j]);
strcpy(b,xm[i]);
strcpy(xm[i],xm[j]);
strcpy(xm[j],b);
strcpy(c,xb[i]);
strcpy(xb[i],xb[j]);
strcpy(xb[j],c);
strcpy(d,jg[i]);
strcpy(jg[i],jg[j]);
strcpy(jg[j],d);
scoreswap(vc[i],vc[j]);
scoreswap(english[i],english[j]);
scoreswap(physics[i],physics[j]);
i++)cout<
xh[i]<
xm[i]<
s[i]<
特等奖学金名单:
if(s[i]>
=4.0)
一等奖学金名单:
=3.6&
4.0)
二等奖学金名单:
=3.2&
3.6)
三等奖学金名单:
=2.8&
3.2)
voidxhxs(STU*h,intn){
doubles[20];
charXM[20][20];
longintXH[20];
strcpy(XM[i],(*p).xm);
XH[i]=(*p).xh;
三好学生的名单:
i++)
if(s[i]>
=3.0||s[i]>
3.5&
(((*p).c-50)/10)>
=1.0&
(((*p).c-50)/10)<
=2.0||s[i]>
(((*p).eng-50)/10)>
(((*p).eng-50)