C++课程设计学生成绩管理系统样三.docx
- 文档编号:7402881
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:19
- 大小:19.50KB
C++课程设计学生成绩管理系统样三.docx
《C++课程设计学生成绩管理系统样三.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生成绩管理系统样三.docx(19页珍藏版)》请在冰豆网上搜索。
C++课程设计学生成绩管理系统样三
#include
#include
classSTU{
public:
longintxh;charxm[20],xb[20],jg[20];
floatc,eng,phy;
STU*next;
friendclassBJ;
};
classBJ{
public:
STU*Input(intn){
STU*p,*pend,*h=0;inti=0;
if(n<1)return0;
cout<<"学号姓名性别籍贯VC++成绩英语成绩物理成绩"< while(i p=newSTU; cin>>(*p).xh>>(*p).xm>>(*p).xb>>(*p).jg>>(*p).c>>(*p).eng>>(*p).phy; (*p).next=0; if(h==0){h=p;pend=p;} else{pend->next=p;pend=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(); }; STU*Input(intn){ STU*p,*pend,*h=0;inti=0; if(n<1)return0; cout<<"学号姓名性别籍贯VC++成绩英语成绩物理成绩"< while(i p=newSTU; cin>>(*p).xh>>(*p).xm>>(*p).xb>>(*p).jg>>(*p).c>>(*p).eng>>(*p).phy; (*p).next=0; if(h==0){h=p;pend=p;} else{pend->next=p;pend=p;} i++; }returnh; } 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 S[i]=(*p).c+(*p).eng+(*p).phy; aver[i]=S[i]/3; p=(*p).next; } for(p=h,i=0;i aver1+=(*p).c; aver2+=(*p).eng; aver3+=(*p).phy; p=(*p).next; } aver1=aver1/n; aver2=aver2/n; aver3=aver3/n; for(p=h,i=0;i MAX=0;max1=0;max2=0;max3=0; for(i=0;i if(MAX if(max1 if(max2 if(max3 } cout<<"总成绩最高的学生: "<<'\n'; for(p=h,i=0;i if(MAX==S[i]) cout<<(*p).xh<<'\t'<<(*p).xm<<'\t'< p=(*p).next; } cout<<"VC++成绩最高的学生: "<<'\n'; for(p=h,i=0;i cout<<"英语成绩最高的学生: "<<'\n'; for(p=h,i=0;i cout<<"物理成绩最高的学生: "<<'\n'; for(p=h,i=0;i } voidBJ: : search(STU*h){ STU*p; p=h; intr,t; charxm[10]; cout<<"按学号查询请输入1,按姓名查询请输入2! "< cin>>r; switch(r){ case1: { cout<<"请输入要查询的学号: "< cin>>t; while(p){ if((*p).xh==t){ print(p); break; } elsep=(*p).next; } }break; case2: { cout<<"请输入要查询的姓名: "< cin>>xm; while(p){ if(strcmp(xm,(*p).xm)==0){ print(p); break; } elsep=(*p).next; }break; } } } voidBJ: : scoreswap(floata,floatb){ floattemp=a;a=b;b=temp; } voidBJ: : intswap(longinta,longintb){ longinttemp=a;a=b;b=temp; } voidBJ: : sort(STU*h,inta,intn){ STU*p,*p1,*p2; charXM[20],XB[20],JG[20]; floatS[20],aver[20]; p=h; for(inti=0;i S[i]=(*p).c+(*p).eng+(*p).phy; aver[i]=S[i]/3; p=(*p).next; } cout<<"请选择排序方式! "< cout<<"按姓名排序请输入1"< cout<<"按VC++成绩排序请输入2"< cout<<"按英语成绩排序请输入3"< cout<<"按物理成绩排序请输入4"< cout<<"按总成绩排序请输入5"< cout<<"按平均成绩排序请输入6"< cin>>a; switch(a){ case1: if(h==0)cout<<"无结点"<<'\n'; else{ p1=h; while((*p1).next) for(i=0;i p2=(*p1).next;{ for(intj=i+1;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;i print(p); p=(*p).next; } cout< case2: if(h==0)cout<<"无结点"<<'\n'; else{ p1=h; while((*p1).next) for(i=0;i p2=(*p1).next; for(intj=i+1;j if((*p1).c>=(*p2).c){ 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;i print(p); p=(*p).next; } cout< case3: if(h==0)cout<<"无结点"<<'\n'; else{ p1=h; while((*p1).next) for(i=0;i p2=(*p1).next;{ for(intj=i+1;j if((*p1).eng>=(*p2).eng){ 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;i print(p); p=(*p).next; } cout< case4: if(h==0)cout<<"无结点"<<'\n'; else{ p1=h; while((*p1).next) for(i=0;i p2=(*p1).next; { for(intj=i+1;j if((*p1).c>=(*p2).c){ 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;i print(p); p=(*p).next; } cout< case5: if(h==0)cout<<"无结点"<<'\n'; else{ p1=h; while((*p1).next) for(i=0;i p2=(*p1).next; { for(intj=i+1;j if(S[i]>=S[j]){ 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;i cout<<(*p).xh<<'\t'<<(*p).xm<<'\t'<<(*p).xb<<'\t'<<(*p).jg<<'\t'<<(*p).c<<'\t'<<(*p).eng<<'\t'<<(*p).phy<<'\t'< p=(*p).next; } cout< case6: if(h==0)cout<<"无结点"<<'\n'; else{ p1=h; while((*p1).next) for(i=0;i p2=(*p1).next; { for(intj=i+1;j if(aver[i]>=aver[j]){ 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;i cout<<(*p).xh<<'\t'<<(*p).xm<<'\t'<<(*p).xb<<'\t'<<(*p).jg<<'\t'<<(*p).c<<'\t'<<(*p).eng<<'\t'<<(*p).phy<<'\t'< p=(*p).next; } cout< default: cout<<"无可排序的依据! "< } } voidBJ: : deletestudent(STU*h,intdata){ STU*p1,*p2; intb; cout<<"如果要删除学生的信息请输入1! "<<'\n'<<"如果不需要删除学生的信息请输入2! "< cin>>b; switch(b){ case1: cout<<"输入要删除信息学生的学号: "< cin>>data; if(h==0)cout<<"无学生信息不能删除! "; if(h->xh==data){ p2=h;h=h->next; deletep2;cout<<"成功删除学生的信息! "< } else{ p2=p1=h; while((*p2).xh! =data&&(*p2).next! =0){ p1=p2; p2=(*p2).next; } if((*p2).xh==data){ (*p1).next=(*p2).next; deletep2;cout<<"成功删除学号为"< } elsecout<<"没有找到要删除的信息"; } case2: break; } } voidBJ: : scholar(STU*h,intn){ STU*p; 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; p=h; for(inti=0;i 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; p=(*p).next; } for(i=0;i for(intj=i+1;j 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]); } } } for(i=0;i cout<<"特等奖学金名单: "<<'\n'; for(i=0;i if(s[i]>=4.0) cout< } cout<<"一等奖学金名单: "<<'\n'; for(i=0;i if(s[i]>=3.6&&s[i]<4.0) cout< } cout<<"二等奖学金名单: "<<'\n'; for(i=0;i if(s[i]>=3.2&&s[i]<3.6) cout< } cout<<"三等奖学金名单: "<<'\n'; for(i=0;i if(s[i]>=2.8&&s[i]<3.2) cout< } } voidxhxs(STU*h,intn){ doubles[20]; charXM[20][20]; longintXH[20]; STU*p; p=h; for(inti=0;i s[i]=(((*p).c*4.5+(*p).eng*4+(*p).phy*3)/11.5-50)/10; strcpy(XM[i],(*p).xm);XH[i]=(*p).xh; p=(*p).next; } cout<<"三好学生的名单: "<<'\n'; for(i=0;i if(s[i]>=3.0||s[i]>3.5&&(((*p).c-50)/10)>=1.0&&(((*p).c-50)/10)<=2.0||s[i]>3.5&&(((*p).eng-50)/10)>=1.0&&(((*p).eng-50)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 学生 成绩管理系统