运动会分数统计程序.docx
- 文档编号:6828538
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:23
- 大小:89.88KB
运动会分数统计程序.docx
《运动会分数统计程序.docx》由会员分享,可在线阅读,更多相关《运动会分数统计程序.docx(23页珍藏版)》请在冰豆网上搜索。
运动会分数统计程序
运动会分数统计系统
设计报告
院系:
专业:
班级:
姓名:
学号:
日期:
2012年5月27日星期日
运动会分数统计系统
一、实验要求:
某校要召开运动会,现要求开发一个学校运动会成绩统计系统,参加运动会有n个系,比赛分成m个男子项目,和w个女子项目。
系信息(系编号为D01……n,系名称Dname),
运动员信息:
(编号,姓名,性别,所属系,成绩(初值为0))
项目信息:
(项目编号,项目名称)
功能要求:
(1)生成报名表:
(2)维护报名表:
增加、删除、修改,(报名人数3人以下(含3人)取消该项目的比赛)
(3)登记各项比赛成绩
(4)根据预赛成绩产生预(决)赛名单
(5)计分规则:
报名人数在16人以上(含16人)取取前八名,前八名的积分分别为:
8、7、6、5、4、3、2、1;
报名人数在8人以上(含8人)16人以下,取前五名,前五名的积分分别为:
7、5、3、2、1;
报名人数在8人以下,取前三名,前三名的积分分别为:
5、3、2;
(6)统计
●能统计各系总分,
●按系系总分、男女团体总分排序输出;
按项目编号查询取得前三或前五或前八名的运动员情况。
二、设计过程:
数据结构:
名称编号男女团体
运动项目:
项目编号,名称,男子项目,女子项目,
前三名,前五名,第一名系编号,第二名系编号,第三名系编号,第四名系编号,第五名系编号。
院系类
Dname
Name
Number
Sex
classDname{//院系
private:
charname[20];
intnumber;
intboy;
intgirl;
public:
Dname*next;
voidDname_add();
voidDname_output(Dname*p);
intDname_isexist(inta);
voidDname_show(inta);
voidDname_search(inta);
voidDname_addmark(inta,intb,intc);
voidDname_order(Dname*temp,inttype);
};
运动项目类;
sport
name
number
排名
classSport//运动项目
{
private:
charname[20];
intisboy;//0为女项目?
1为男项目
intis3;//0为取前五名,1为取前五名
intnumber;//项目编号
intfirst;//
intsecond;//
intthird;//
intfourth;//
intfifth;//
public:
Sport*next;
intSport_isexist(inta);
voidSport_add();
voidSport_output(Sport*p);
voidSport_search(inta);
};
三、程序编码:
#include
#include
#include
usingnamespacestd;
classDname{//院系
private:
charname[20];
intnumber;
intboy;
intgirl;
public:
Dname*next;
voidDname_add();
voidDname_output(Dname*p);
intDname_isexist(inta);
voidDname_show(inta);
voidDname_search(inta);
voidDname_addmark(inta,intb,intc);
voidDname_order(Dname*temp,inttype);
};
classSport//运?
动¡¥项?
目?
{
private:
charname[20];
intisboy;//0为女项目1为男项目?
intis3;//为取前五名为取前五名?
intnumber;//项?
目?
编À¨¤号?
intfirst;//
intsecond;//
intthird;//
intfourth;//
intfifth;//
public:
Sport*next;
intSport_isexist(inta);
voidSport_add();
voidSport_output(Sport*p);
voidSport_search(inta);
};
Dname*head1;
Sport*head2;
voidDname:
:
Dname_add()
{
Dname*p;
intmark=0;
p=newDname;
cout<<"请输入院系的名称:
";
cin>>p->name;
intc;
while(mark!
=1)
{
cout<<"请输入院系编号:
";
cin>>c;
p->number=c;
mark=1;
p->boy=0;
p->girl=0;
p->next=head1->next;
head1->next=p;
cout<<"成功添加了一个院系"< cout<<"是否还要添加院¦y/n)"< charinput,y,n; cin>>input; switch(input) { case'y': mark=0; Dname_add(); case'n': mark=1; return; } } deletep; } voidDname: : Dname_output(Dname*p){//输出系 cout<<"当前院系(名称)编号男团总分女团总分 总分t\n"; p=head1; p=p->next; while(p){ cout< p=p->next; } } intDname: : Dname_isexist(inta) { intb=0; Dname*p; p=head1; p=p->next; while(p) { if(p->number==a) { return1; } p=p->next; } return0; } voidDname: : Dname_show(inta)//输出所有院系 { Dname*p; p=head1; p=p->next; while(p) { if(p->number==a) { cout< "< return; } p=p->next; } cout<<"无T"; } voidDname: : Dname_search(inta) { Dname*p; p=head1; p=p->next; while(p) { if(p->number==a) { cout<<"院系名称: "< "< <<"女子团体总分: "< "<<(p->boy+p->girl)<<""; return; } p=p->next; } cout<<"无T此ä? 编À¨¤号? : "< } voidDname: : Dname_addmark(inta,intb,intc)女? { Dname*p; p=head1; p=p->next; while(p) { if(p->number==b) { if(c==1) { p->boy=p->boy+a; } else { p->girl=p->girl+a; } } p=p->next; } } voidDname: : Dname_order(Dname*temp,inttype) { Dname*q,*small; Dname*temp1; temp1=newDname; temp1->next=NULL; while(q&&small) { switch(type) { case0: //按总分排序 for(q=head1;q=q->next;q! =NULL) for(small=head1;small=small->next;small! =NULL) { if((q->boy+q->girl)<(small->boy+small->girl)) { temp1->girl=q->girl; q->girl=small->girl; small->girl=temp1->girl; temp1->boy=q->boy; q->boy=small->boy; small->boy=temp1->boy; strcpy(temp1->name,q->name); strcpy(q->name,small->name); strcpy(small->name,temp1->name); temp1->number=q->number; q->number=small->number; small->number=temp1->number;// } } break; case1: //按男团体排序 for(q=head1;q=q->next;q! =NULL) for(small=head1;small=small->next;small! =NULL) { if(q->boy { temp1->girl=q->girl; q->girl=small->girl; small->girl=temp1->girl; temp1->boy=q->boy; q->boy=small->boy; small->boy=temp1->boy; strcpy(temp1->name,q->name); strcpy(q->name,small->name); strcpy(small->name,temp1->name); temp1->number=q->number; q->number=small->number; small->number=temp1->number;// } } break; case2: for(q=head1;q=q->next;q! =NULL) for(small=head1;small=small->next;small! =NULL) { if(q->girl { temp1->girl=q->girl; q->girl=small->girl; small->girl=temp1->girl; temp1->boy=q->boy; q->boy=small->boy; small->boy=temp1->boy; strcpy(temp1->name,q->name); strcpy(q->name,small->name); strcpy(small->name,temp1->name); temp1->number=q->number; q->number=small->number; small->number=temp1->number;// } } break; case3: for(q=head1;q=q->next;q! =NULL) for(small=head1;small=small->next;small! =NULL) { if(q->number { temp1->girl=q->girl; q->girl=small->girl; small->girl=temp1->girl; temp1->boy=q->boy; q->boy=small->boy; small->boy=temp1->boy; strcpy(temp1->name,q->name); strcpy(q->name,small->name); strcpy(small->name,temp1->name); temp1->number=q->number; q->number=small->number; small->number=temp1->number;// } } break; default: cout<<"error"< break; } } } intSport: : Sport_isexist(inta) { intb=0; Sport*p; p=head2; while(p) { if(p->number==a) { return1; } p=p->next; } return0; voidSport: : Sport_add() { Sport*p; //Dnamesh; intmark=0; p=newSport; cout<<"请? 输º? 入¨? 项? 目? 名? 称? : "; cin>>p->name; intc; while(mark! =1) { cout<<"请? 输º? 入¨? 项? 目? 编À¨¤号? : "; cin>>c; if(Sport_isexist(c)) { cout<<"该? 编À¨¤号? 已°? 存ä? 在¨²! "; } else { mark=1; p->number=c; } } mark=0; while(mark! =1) { cout<<"请? 输º? 入¨? 项? 目? 类¤¨¤型¨ª(0为a女? 子Á¨®项? 目? 1为a男D子Á¨®项? 目? ): "; cin>>c; //p->isboy=(int)(c-'0');//去¨£¤掉Ì? 了¢? 字Á? 符¤? 转Áa换? 成¨¦数ºy字Á? mark=1; p->isboy=c; } mark=0; while(mark! =1) { cout<<"请输入项目名称情况(0为取前3名,1为取前5名): "; cin>>c; //p->is3=(int)(c-'0'); mark=1; p->is3=c; } mark=0; Dnamesh; while(mark! =1) { cout<<"请输入第一名院系的编号: "; cin>>c; if(! sh.Dname_isexist(c)) { cout<<"该院系不存在请先添加! "; } else { mark=1; p->first=c; if(p->is3=='0') sh.Dname_addmark(5,c,p->isboy); else sh.Dname_addmark(7,c,p->isboy); } } mark=0; while(mark! =1) { cout<<"请输入第二名院系的编号? : "; cin>>c; if(! sh.Dname_isexist(c)) { cout<<"该院系不存在请先添加! "; } else { mark=1; p->second=c; if(p->is3=='0') sh.Dname_addmark(3,c,p->isboy); else sh.Dname_addmark(5,c,p->isboy); } } mark=0; while(mark! =1) { cout<<"请输入第三名院系的编号: "; cin>>c; if(! sh.Dname_isexist(c)) { cout<<"该院系不存在请先添加"; } else { mark=1; p->third=c; if(p->is3=='0') sh.Dname_addmark(2,c,p->isboy); else sh.Dname_addmark(3,c,p->isboy); } } mark=0; if(p->is3=='1') { while(mark! =1) { cout<<"请输入第四名院系的编号: "; cin>>c; if(! sh.Dname_isexist(c)) { cout<<"该院系不存在请先添加"; } else { mark=1; p->fourth=c; sh.Dname_addmark(2,c,p->isboy); } } mark=0; while(mark! =1) { cout<<"请输入第五名院系的编号: "; if(! sh.Dname_isexist(c)) { cout<<"该院系不存在请先添加! "; } else { mark=1; p->fifth=c; sh.Dname_addmark(1,c,p->isboy); } } } else { p->fourth='0'; p->fifth='0'; } p->next=head2->next; head2->next=p; cout<<"成功添加了一个运动项目"< } voidSport: : Sport_output(Sport*p)//输º? 出? 项? 目? 的Ì? 情¨¦况? { p=head2; p=p->next; cout<<"当前项目名称"<<"\t"<<"编号? "<<" "<<"B/G"<<" "<<"3/5"<<""<<"第一名"<<" " <<"第二名"<<""<<"第三名"<<""<<"第四名"<<""<<"第五名"<<""< Dnamesh; while(p) { cout< <<""; sh.Dname_show(p->first); sh.Dname_show(p->second); sh.Dname_show(p->third); sh.Dname_show(p->fourth); sh.Dname_show(p->fifth); p=p->next; cout<<"\n"; } cout< } voidSport: : Sport_search(inta)//搜? 索¡Â项? 目? { Sport*p; Dnamesh; p=head2; p=p->next; while(p) { if(p->number==a) { cout<<"项目名: "< "; if(p->isboy==1) { cout<<"男子项目"; } else { cout<<"女子项目"; } cout< "; sh.Dname_show(p->first); cout< "; sh.Dname_show(p->second); cout< "; sh.Dname_show(p->third); cout< "; sh.Dname_show(p->fourth); cout< 名? : "; sh.Dname_show(p->fifth); return; } p=p->next; } cout<<"无此编号"; } voidmain(){//运动会程序主函数 system("colorC");//改变背景前景色 head1=newDname; head1->next=NULL; head2=newSport; head2->next=NULL; //Dname_add(); Dnamesh; Sportsp; Dname*p1; Sport*p2; p1=head1; p1=p1->next; p2=head2; p2=p2->next; intchoose; chartemp; inta=1; while(a! =0) { cout<<""< cout<<"欢迎使用运动会分数统计系统"< cout<<"----------------------------------------------------------"< cout<<""< cout<<"1.输入院系;2.输入运动项目"< cout<<"3.按院系编号输出总分;4.按院系总分排序;"< cout<<"5.按男团体总分排序;6.按女团体总分排序;"< cout<<"7.按院系编号查询;8.按项目编号查询;"< cout<<"0.退出"< cout<<"注输入运动项目之前请输入院系"< cout<<"----------------------------------------------------------"< cout<<"-------请选择(0-8): ------"< cin>>choose; switch(choose) { case1: sh.Dname_add(); break; case2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 分数 统计 程序