当前位置:文档之家› 运动会分数统计

运动会分数统计


三 详细设计 创建信息:
void CreateInformation()//创建信息// { int i,a,b; cout<<"请输入学校个数:"; while(1) { cin>>n;//输入学校个数 n// if(n>=1&&n<=20) //判断学校个数是否在 1~20 之间,不在则重新输入// break; else cout<<"输入数据有误,请重新输入:"; } for(i=1;i<=n;i++) { cout<<"请输入第"<<i<<"个学校名称:"; cin>>sch[i].name;//输入学校名称(字符型)// sch[i].score=0;//将学校总分、男女团体总分初始化为 0// sch[i].boyscore=0; sch[i].girlscore=0;
数据结构课程设计报告
4.各算法之间的关系: 创建信息

5
页,共 15

输入学校名称、运动项目
输入前三名或前五分排序输出总分 运动会分 数统计 信息处理 按男子团体总分排序输出总 分 按女子团体总分排序输出总 分 按学校编号各个学校情况 信息查询 按运动项目各个学校情况
数据结构课程设计报告
} else

5
页,共 15

sch[b].boyscore=sch[b].boyscore+result3[a-1];//统计男团体的总分//
sch[b].girlscore=sch[b].girlscore+result3[a-1];//统计女团体总分// } } else { cout<<"你输入有误,请重新输入:"; goto B; } } cout<<endl; } } else { cout<<"你输入有误,请重新输入:"; goto A; } }
数据结构课程设计报告
sch[i].num=i;//学校的编号// } cout<<"请输入男子团体项目个数和女子团体项目个数:"; A: cin>>m>>w;//输入男女团体项目数目//

5
页,共 15

if(m<=20&&m>=1&&w<=20&&w>=1)//判断男女团体项目数目是否符合标准// { for(i=1;i<=m+w;i++) { cout<<"请输入第"<<i<<"个项目的名称:"; cin>>pro[i].name;//输入项目名称// cout<<"请输入第"<<i<<"个项目有前三名还是有前五名(输入 3 或 5) :"; while(1) { cin>>c; pro[i].rank=c; if(c==3||c==5) break; else cout<<"输入有误,请重新输入:"; } cout<<"请输入第"<<i<<"个项目的前"<<c<<"名学校编号:"<<endl; for(a=1;a<=c;a++) { B: cout<<"第"<<a<<"名学校编号:"; cin>>b;//输入第 a 名学校编号// if(b>=1&&b<=n) { if(c==5)//判断项目有前三名还是有前五名// { pro[i].num[a]=b;//第 i 个项目的第 a 名编号// sch[b].score=sch[b].score+result5[a-1];//统计学校总分// if(i<=m)//判断此项目是男团体还是女团体// { sch[b].boyscore=sch[b].boyscore+result5[a-1];//统计男团体的总分// } else sch[b].girlscore=sch[b].girlscore+result5[a-1];//统计女团体总分// } else { pro[i].num[a]=b;//第 i 个项目的第 a 名编号// sch[b].score=sch[b].score+result3[a-1];//统计学校总分// if(i<=m)//判断此项目是男团体还是女团体// {
xxx 学院
课程设计报告
设计名称: 选题名称: 姓 名: 数据结构课程设计
运动会分数统计

号:
专业班级: 系 (院) : 设计时间: 设计地点:
指导教师评语:
成绩:
签名:
年 月 日
数据结构课程设计报告

5
页,共 15

1.课程设计目的
1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程 序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程 水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。
二 概要设计
1.逻辑结构: 采用线性结构——结构中的数据元素之间存在着一对一的线性关系; 主要采用线性表。
2.存储结构: 主要采用线性表的顺序存储; 输入操作:输入各个学校的名称、运动项目; 输入运动会上前三或前五名成绩。结构体定义 查找操作:1.按学校编号 2.按运动项目编号
3.主要核心算法: Createinformation(),//创建学校、运动会项目,输入运动会中前三名或前五名的成绩。 OutputSchnum() ,//按学校编号排序输出总分。 OutputSchscore() ,//按学校总分排序输出总分。 OutputBoyscore() ,//按男子团体总分排序输出总分。 OutputGirlscore() ,//按女子团体总分排序输出总分。 SearchSchname() //按学校编号各个学校情况。 , SearchPronum() ,//按运动项目查询各个学校情况。
数据结构课程设计报告
k=sch[j]; sch[j]=sch[j+1]; sch[j+1]=k; change=TRUE; }

5
页,共 15

} cout<<"按男子团体总分排列:"<<endl; cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl; for(i=1;i<=n;i++) { cout<<" "<<sch[i].num<<" "<<sch[i].name<<" "<<sch[i].score<<" "<<sch[i].boyscore<<" "<<sch[i].girlscore<<endl; } cout<<endl; }
void OutputBoyscore()//按男子团体总分排序输出,采用冒泡排序// { int change,i,j; school k; change=TRUE; for(i=1;i<=n-1&&change;++i) { change=FALSE; for(j=1;j<=n-i;++j) if(sch[j].boyscore>sch[j+1].boyscore)//如果 sch[j]比前面 asch[j-1]的小,则交 换向上浮// {//交换数组 sch[j]和 sch[j-1]//
void OutputGirlscore()//按女子团体总分排列输出,简单选择排序// { int i,j,k; school l; for(i=1;i<=n-1;++i) { k=i; for(j=i+1;j<=n;++j) if(sch[j].girlscore<sch[k].girlscore) k=j; if(k!=i) { l=sch[i]; sch[i]=sch[k]; sch[k]=l; } } cout<<"按女子团体总分排列:"<<endl; cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl; for(i=1;i<=n;i++) { cout<<" "<<sch[i].num<<" "<<sch[i].name<<" "<<sch[i].score<<" "<<sch[i].boyscore<<" "<<sch[i].girlscore<<endl; } cout<<endl; }
数据结构课程设计报告

5
相关主题