c++课程设计运动会统计.docx
- 文档编号:4474559
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:20
- 大小:17.72KB
c++课程设计运动会统计.docx
《c++课程设计运动会统计.docx》由会员分享,可在线阅读,更多相关《c++课程设计运动会统计.docx(20页珍藏版)》请在冰豆网上搜索。
c++课程设计运动会统计
//只提供了源代码
#include
#include
#include
usingnamespacestd;
classSchool
{
public:
stringSchool_name;
intSchool_number;
intboy;
intgirl;
intsun;
School*next;
voidsum(inta);
voidSchool_order(School*h,inttype);
};
classSport
{
public:
stringSport_name;
intisboy;
intis3;
intSport_number;
intfirst;
intsecond;
intthird;
intfourth;
intfifth;
Sport*next;
voidSport_search(inta);
};
School*School_head;
Sport*Sport_head;
intgetint(inta)//字符转换成数字
{
return(int)(a-'0');
}
voidSchool_output(School*p)//输出系
{
p=p->next;
cout<<"校名编号男团女团总分\t\n";
while(p)
{
cout< p=p->next; } } voidSport_output(Sport*p)//输出项目的情况 { p=p->next; cout<<"项目"<<"\t"<<"编号"<<""<<"B/G"<<""<<"3/5"<<""< while(p) { cout< p=p->next; cout<<"\n"; } cout< } voidSchool_addmark(inta,intb,intc)//a为分数,b为系编号,c=1表示男,c=0表示女 { School*p; p=School_head; p=p->next; while(p) { if(p->School_number==b) { if(c==1) { p->boy=p->boy+a; } else { p->girl=p->girl+a; } } p=p->next; } } voidinput() { intn,s,h,g,m; School*p1; Sport*q1; cout<<"\t输入学校数目: "< cout<<"\t"; cin>>n; for(intt1=1;t1<=n;t1++) { p1=newSchool; p1->next=NULL; cout<<"\t输入第"< cout<<"\t"; cin>>p1->School_name; p1->School_number=t1; p1->boy=0; p1->girl=0; p1->sun=p1->boy+p1->girl; p1->next=School_head->next; School_head->next=p1; } /*School_output(School_head);*/ cout<<"\t输入男子项目数: "< cout<<"\t"; cin>>s; for(inti=1;i<=s;i++) { q1=newSport; q1->next=NULL; cout<<"\t项目名称: "< cout<<"\t"; cin>>q1->Sport_name; q1->Sport_number=i; q1->isboy=1; cout<<"\t输入1取前3名,输入0取前5名。 "< cout<<"\t"; cin>>h; if(h==1) { q1->is3=1; cout<<"\t输入第一名学校编号: "< cout<<"\t"; cin>>q1->first; School_addmark(5,q1->first,1); cout<<"\t输入第二名学校编号: "< cout<<"\t"; cin>>q1->second; School_addmark(3,q1->second,1); cout<<"\t输入第三名学校编号: "< cout<<"\t"; cin>>q1->third; School_addmark(2,q1->third,1); } else { q1->is3=0; cout<<"\t输入第一名学校编号: "< cout<<"\t"; cin>>q1->first; School_addmark(7,q1->first,1); cout<<"\t输入第二名学校编号: "< cout<<"\t"; cin>>q1->second; School_addmark(5,q1->second,1); cout<<"\t输入第三名学校编号: "< cout<<"\t"; cin>>q1->third; School_addmark(3,q1->third,1); cout<<"\t输入第四名学校编号: "< cout<<"\t"; cin>>q1->fourth; School_addmark(2,q1->fourth,1); cout<<"\t输入第五名学校编号: "< cout<<"\t"; cin>>q1->fifth; School_addmark(1,q1->fifth,1); } q1->next=Sport_head->next; Sport_head->next=q1; } cout<<"\t输入女子项目数: "< cout<<"\t"; cin>>g; for(inti=s+1;i { q1=newSport; q1->next=NULL; cout<<"\t项目名称: "< cout<<"\t"; cin>>q1->Sport_name; q1->Sport_number=i; q1->isboy=0; cout<<"\t输入1取前3名,输入0取前5名。 "< cout<<"\t"; cin>>m; if(m==1) { q1->is3=1; cout<<"\t输入第一名学校编号: "< cout<<"\t"; cin>>q1->first; School_addmark(5,q1->first,0); cout<<"\t输入第二名学校编号: "< cout<<"\t"; cin>>q1->second; School_addmark(3,q1->second,0); cout<<"\t输入第三名学校编号: "< cout<<"\t"; cin>>q1->third; School_addmark(2,q1->third,0); } else { q1->is3=0; cout<<"\t输入第一名学校编号: "< cout<<"\t"; cin>>q1->first; School_addmark(7,q1->first,0); cout<<"\t输入第二名学校编号: "< cout<<"\t"; cin>>q1->second; School_addmark(5,q1->second,0); cout<<"\t输入第三名学校编号: "< cout<<"\t"; cin>>q1->third; School_addmark(3,q1->third,0); cout<<"\t输入第四名学校编号: "< cout<<"\t"; cin>>q1->fourth; School_addmark(2,q1->fourth,0); cout<<"\t输入第五名学校编号: "< cout<<"\t"; cin>>q1->fifth; School_addmark(1,q1->fifth,0); } q1->next=Sport_head->next; Sport_head->next=q1; } Sport_output(Sport_head); system("pause"); } voidSchool: : sum(inta) { School*p; p=School_head; p=p->next; while(p) { if(p->School_number==a) { cout<<"\t总分: "<<(p->boy+p->girl)< return; } else p=p->next; } } voidsearch(inta) { School*p; p=School_head; p=p->next; while(p) { if(p->School_number==a) { cout< return; } else p=p->next; } } intSchool_getlong(School*first)//得到链表长度 { inti=0; while(first->next! =NULL) { i++; first=first->next; } returni; } intSchool_isexist(inta)//检验系是否存在 { intb=0; School*p; p=School_head; p=p->next; while(p) { if(p->School_number==a) { return1; } p=p->next; } return0; } voidSchool_search(inta)//按编号搜索系 { School*p; p=School_head; p=p->next; while(p) { if(p->School_number==a) { cout<<"系名: "< "< "< "<<(p->boy+p->girl)<<""; return; } p=p->next; } cout<<"无此编号"; } voidSchool: : School_order(School*h,inttype) { School*p,*q,*temp; temp=newSchool; temp->next=NULL; p=h; p=p->next; while(p) { q=p->next; while(q) { switch(type) { case0: if((q->boy+q->girl)>=(p->boy+p->girl)) { temp->boy=p->boy; p->boy=q->boy; q->boy=temp->boy; temp->girl=p->girl; p->girl=q->girl; q->girl=temp->girl; temp->School_name=p->School_name; p->School_name=q->School_name; q->School_name=temp->School_name; temp->School_number=p->School_number; p->School_number=q->School_number; q->School_number=temp->School_number; } break; case1: if(q->boy>p->boy) { temp->boy=p->boy; p->boy=q->boy; q->boy=temp->boy; temp->girl=p->girl; p->girl=q->girl; q->girl=temp->girl; temp->School_name=p->School_name; p->School_name=q->School_name; q->School_name=temp->School_name; temp->School_number=p->School_number; p->School_number=q->School_number; q->School_number=temp->School_number; } break; case2: if(q->girl>p->girl) { temp->boy=p->boy; p->boy=q->boy; q->boy=temp->boy; temp->girl=p->girl; p->girl=q->girl; q->girl=temp->girl; temp->School_name=p->School_name; p->School_name=q->School_name; q->School_name=temp->School_name; temp->School_number=p->School_number; p->School_number=q->School_number; q->School_number=temp->School_number; } break; default: cout<<"error"< } q=q->next; } p=p->next; } } intSport_isexist(inta) { intb=0; Sport*p; p=Sport_head; p=p->next; while(p) { if(p->Sport_number==a) { return1; } p=p->next; } return0; } intSport_getlong(Sport*first)//得到项目链表长度 { inti=0; while(first->next! =NULL) { i++; first=first->next; } returni; } voidSport: : Sport_search(inta)//搜索项目 { Sport*p; p=Sport_head; p=p->next; while(p) { if(p->Sport_number==a) { cout<<"项目名: "< "; if(p->isboy==1) { cout<<"男子项目"; } else { cout<<"女子项目"; } if(p->is3==0) { cout< "; search(p->first); cout< "; search(p->second); cout< "; search(p->third); } elseif(p->is3==1) { cout< "; search(p->first); cout< "; search(p->second); cout< "; search(p->third); cout< "; search(p->fourth); cout< "; search(p->fifth); } else cout<<"非法操作"< return; } p=p->next; } cout<<"无此编号"; } #include"fuction.h" voidmain() { inta=1,b; charchoose,i; Schoolmeber; Sportmeber1; School_head=newSchool; School_head->next=NULL; Sport_head=newSport; Sport_head->next=NULL; input(); while(a) { system("cls"); cout<<"\t"<<"总体输入情况: "< cout<<"\t"; School_output(School_head); cout<<"\t"; Sport_output(Sport_head); cout< cout<<".oO运动会分数统计系统Oo."< cout<<"----------------------------------------------------------"< cout<<"┆1.按学校编号输出总分;2.按总分排序;┆"< cout<<"┆┆"< cout<<"┆3.按男团体总分排序;4.按女团体总分排序;┆"< cout<<"┆┆"< cout<<"┆5.按项目编号查询;6.按系别编号查询;┆"< cout<<"┆┆"< cout<<"┆0.退出┆"< cout<<"----------------------------------------------------------"< cout<<"请选择: "; cin>>choose; switch(choose) { case'1': cout<<"\t输入编号: "< cout<<"\t"; cin>>i; b=1; while(b) { if(! isdigit(i)) { cout<<"输入非法,重新输入。 "< cout<<"\t"; cin>>i; } else b=0; } meber.sum(getint(i)); system("pause"); break; case'2': cout<<"\t总分排序: "< meber.School_order(School_head,0); School_output(School_head); system("pause"); break; case'3': cout<<"\t男团排序: "< meber.School_order(School_head,1); School_output(School_head); system("pause"); break; case'4': cout<<"\t女团排序: "< meber.School_order(School_head,2); School_output(School_head); system("pause"); break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 运动会 统计