ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:278.44KB ,
资源ID:7100585      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7100585.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运动会分数统计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运动会分数统计.docx

1、运动会分数统计滨江学院数据结构课程设计学 号 20102308022 学生姓名 李兆梅 院 系 计算机 专 业 计算机科学与技术 指导老师 宣文霞 二一二 年 五 月 二十五 日运动会分数统计 (一)题目的内容及要求参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目和w个女子项目。项目编号为男子1m和女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)【功能要求】(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分,(3)可以按学校编号、学校

2、总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。【规定】输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)【输出形式】有中文提示,各学校分数为整形【界面要求】有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。【存储结构】学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构。(二)需求分析本系统主要是运动会分数统计方案设计。运动会分数统计方案适

3、合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。 需要输入学校编号,项目编号,取得的名次,以及哪些名次。(三)概要设计1、算法的设计思想:本程序主要是使用顺序表来实现操作。一个运动会包括运动项目和参加运动会的学校。因此构造顺序表match,school。为了操作的方便,设计了一个总目录,选择相应序号进入各个操作,并有错误提示,每完成一个操作程序会提示选择返回目录或退出程序,对于总分的排序使用了冒泡排序。为了使整个程序界面看起来更加惬意,又添加了背景和字体颜色设置的程序语句。每个操作前都有操作指南,易于使用。2、 结构体运动项目

4、项目编号 ;名次;学校 学校编号;项目;团体总分;男团体总分;女团体总分;3、 主程序(main) 包括登陆欢迎程序,分数录入程序,查询程序,退出程序4、程序模块机之间的调用关系 (四)详细设计1、宏定义:#define N 2#define bm 4#define gm 32、 数据类型定义 (1)运动项目的定义: struct matchint matchnum; int rank3;matbm+gm;(2) 学校的定义: struct school int schoolnum; struct match matbm+gm; int total; int boytotal; int gir

5、ltotal;schN; 3、文件存储文件的存储我用到了fprintf函数和fscanf 函数进行数据的逐步读入读出代码如下;Status Writedata()/存到文件中 FILE *report; int i,j; if(report=fopen(sportdata.txt,w)=null) fprintf(不能打开文件n); exit(1); fprintf(report,%dn,n); fprintf(report,%dn,m); fprintf(report,%dn,w); for(i=0;in;i+) fprintf(report,%dn,hi.schoolnum); fprin

6、tf(report,%sn,hi.name); fprintf(report,%dn,hi.score); fprintf(report,%dn,hi.mscore); fprintf(report,%dn,hi.wscore); for(j=0;jm+w;j+) fprintf(report,%dn,hi.cj.itemnum); fprintf(report,%sn,hi.cj.name); fprintf(report,%dn,hi.cj.top); fprintf(report,%dn,hi.cj.rangej); fprintf(report,nn); fclose(report);

7、 return OK;(五)源代码#include #include #include #includeusing namespace std; int n; /n个学校 int m; /m个男子项目 int w; /w个女子项目 struct pro /表示项目的结构体 string name; /项目名称 int snum6; /前5名学校的编号 p21; struct school /表示学校的结构体 int num; string name; /学校名称 int score; /学校总分 int male; /男子总分 int female; /女子总分 sch21; int inte

8、gral5=7,5,3,2,1;/前五名得分 void input() int i,j,y,x; printf(请输入学校数目:); y=0; while(1) scanf(%d,&n); if(n=1&n=20)y=1; if(y)break; else printf(如输入数据有误,请重新输入:); for(i=1;ischi.name; schi.score=0; /学校总分schi.female=0; schi.male=0; schi.num=i; printf(请输入男子项目数和女子项目数:); y=0; while(1) scanf(%d%d,&m,&w); if(m=1&w=1

9、)y=1; if(y)break; else printf(请输入数据有误,请重新输入:); for(i=1;ipi.name; printf(请输入第%d个项目的前5名的学校编号:n,i); for(j=1;j=1&x=20)y=1; if(y)break; else printf(请输入数据有误,请重新输入:); pi.snumj=x; schx.score+=integralj-1; if(i=m)schx.male+=integralj-1; else schx.female+=integralj-1; void print(int i) coutschi.numsetw(10)sch

10、i.namesetw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleendl; void bianhao() /按编号排序 int i,j; school t; for(i=1;in;i+) for(j=i;jschj.num) t=schi;schi=schj;schj=t; printf(n按编号排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); void zongfen() /按学校总分排序 int i,j; school t; for(i=1;in;i+) fo

11、r(j=i;j=n;j+) if(schi.scoreschj.score) t=schi;schi=schj;schj=t;printf(n按学校总分排printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); ofstream fout;fout.open(运动会分数统计.txt); fout编号 学校名称 总分 男子总分 女子总分endl;for(i=1;i=n;i+) foutschi.numsetw(13)schi.namesetw(8)schi.scoresetw(9) schi.malesetw(10)schi.femalee

12、ndl; fout.close(); void malezf() /按学校男总分排序 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.maleschj.male) t=schi;schi=schj;schj=t; printf(n按学校男子总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); void femalezf() /按学校女总分排序 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(s

13、chi.femaleschj.female) t=schi;schi=schj;schj=t; printf(n按学校女子总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); cout=1&s=n)y=1; if(y)break; else printf(如输入数据有误,请重新输入:); printf(该学校相关信息:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) if(schi.num=s) print(i); break; cout=1&s=n)y=1; if

14、(y)break; else printf(输入数据有误,请重新输入:); coutps.name前5名学校编号及名称为:endl; printf(名次 编号 学校名称n); for(i=1;i=5;i+) cout i ps.snumisetw(12)sch ps.snumi .nameendl; coutendl; void solve() /菜单函数 int z; while(1) printf(n选择您需要的操作(选择序号):n); printf(1.按学校编号排序输出n); printf(2.按学校总分排序输出n); printf(3.按学校男总分排序输出n); printf(4.按

15、学校女总分排序输出n); printf(5.查询某个学校成绩n); printf(6.查询某个项目成绩n); printf(7.结束nn); scanf(%d,&z); if(z=1)bianhao(); if(z=2)zongfen(); if(z=3)malezf(); if(z=4)femalezf(); if(z=5)cxsch(); if(z=6)cxxm(); if(z=7)break; int main() /主函数 input(); solve(); return 0; (六)运行结果及分析1、运行结果(1)录入学校信息(2)按学校编号输出(3)按学校总分排名(4)按男子总分排

16、名 (5)按女子总分排名(6)输入学校编号查询(7)输入项目编号查询2、运行分析本系统调试过程中遇到的主要问题、原因和解决方法如下面绍。调试过程中出现的问题和处理方式:(1) 程序出现语法错误发现是输入名次信息的地方忘带地址符&。 添加取地址符。 rintf(*名次:); scanf(%d,&hi.cj.ranges);(2)在输出模块不能将全部的学校信息输出,属于算法编写错误,正确的程序应该为:if(hrememberi.mscorehj.mscore) k=rememberi;rememberi=rememberj;rememberj=k;(七)个人体会与总结本程序的主要运用了C语言开发。从这次实践中我们对数据结构的知识更近了一成,能更好的实现利用数据结构来解决实际问题。更加巩固了我们的专业知识。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1