运动会分数统计_第1页
运动会分数统计_第2页
运动会分数统计_第3页
运动会分数统计_第4页
运动会分数统计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、天津城市建设学院课程设计任务书20102011学年第1学期 电子与信息工程 系 专业 班级课程设计名称: 数据结构课程设计 设计题目: 运动会分数统计 完成期限:自 2012 年 1 月 10 日至 2012 年 1 月 15 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。二、设计要求 (1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的

2、全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。三、设计内容运动会分数统计1)问题描述参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)2)基本要求(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分,(3)可以按学校编号、学校总分、男女团体总分排序输出;

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

4、测试数据及测试结果请在上交的资料中写明;四、参考资料1 王红梅. 数据结构 C+.北京:清华大学出版社,2005.2 王红梅. 数据结构C+实验指导书.北京:清华大学出版社,2005.3 严蔚敏,吴伟民数据结构(C语言版)清华大学出版社指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日目录一、需求分析5二、概要设计51运动会记分系统52程序类图6三、详细设计61学校类设计62运动会项目类设计83统计总分信息类设计94录入信息函数设计105排序的设计116输出设计13四、调试分析13五、关键源程序清单和执行结果161关键源程序162执行结果17六、参考资料19一、需求分析(1) 程

5、序功能参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)(a)可以输入各个项目的前三名或前五名的成绩;(b)能统计各学校总分,(c)可以按学校编号、学校总分、男女团体总分排序输出;(d)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出

6、形式:有中文提示,各学校分数为整型(2) 输入输出要求输入形式:数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型二、概要设计1运动会记分系统功能模块图学校信息项目信息学校编号学校总分男子总分女子总分学校成绩项目成绩项目成绩录入排序查询输出运动会计分系统 2程序类图三、详细设计1学校类设计学校基础信息:定义了学校类,以及各种学校类的基础信息,如:学校名称、编号、学校总分,男子运动员总分,女子运动员总分。通过学校类对象数组调用参数和函数。class Schoolprivate:int id;/学校编号string name;/学

7、校名称int total;/学校总分int male;/男子总分int female;/女子总分public:School()/初始化id = 0;male = 0;female = 0;total = 0;void setName(string s)name = s;string getName()return name;void setId(int i)id = i;int getId()return id;void setTotal(int a)total = a;int getTotal()return total;void setMale(int a)male = a;void se

8、tFemale(int a)female = a;int getMale()return male;int getFemale()return female;2运动会项目类设计运动项目基础信息:定义了运动项目类,以及各种运动项目类的基础信息,如:运动项目名称、男子运动项目,女子运动项目。通过运动项目类对象数组调用参数和函数。class Itemprivate:School sc20;string name;public:School getSchool(int i)return sci;School* getSchools()return sc;void setSchool(School sc

9、h,int i)sci = sch;void setName(string s)name = s;string getName()return name;3统计总分信息类设计统计总分信息:定义了统计类,各个名次的积分及规则,还定义了与总分相关的各种函数,如:录入函数,打印函数,排序函数,菜单函数。统计类为整体核心,通过统计类对象,把录入的实参赋值给各个变量。最后再通过类对象数组调用各个函数实现整体的功能。class Countprivate:School sc20;Item item20;int integral5;int n, m, f;public:Count()n = 0;integra

10、l0 = 7;integral1 = 5;integral2 = 3;integral3 = 2;integral4 = 1;void input();/输入基本信息void input1();/录入成绩void Open();/载入void print(int);/打印void statisticsForTotal();/按总分排序void statisticsForId();/按编号排序void statisticsForMale();/按男子总分排序void statisticsForFemale();/按女子总分排序void schoolInfo();/显示学校信息void itemI

11、nfo();/显示项目信息void menu();/显示菜单void sort(School*, string, int);/排序操作;4录入信息函数设计录入信息函数:实现录入学校信息和运动项目信息功能。学校信息包括:学校编号、学校名称;运动项目信息包括:男子项目和女子项目数,各个项目名称。void Count:input()int i;School *sch;Item *it;string s;cout << "输入学校数目"cin >> n;for(i = 0; i < n; i+)sch = new School;cout <<

12、; "请输入第" << i + 1 << "个学校名称:"cin >> s;sch->setName(s);sch->setId(i + 1);sci = *sch;cout <<"输入男子和女子项目数:"cin >> m;cin >> f;while(m > 20 | m < 1 | f > 20 | f < 1)cout << "输入有误,请重新输入!n"cout <<"

13、输入男子和女子项目数:"cin >> m;cin >> f;for(i = 0; i < m + f; i+)cout << "请输入第" << i + 1 << "个项目的名称"cin >> s;it = new Item;it->setName(s);itemi = *it;录入成绩函数:实现录入运动项目成绩信息功能。void Count:input1()int i, k, j,id;for(i = 0; i < n; i+)id = sci.getI

14、d();for(k = 0; k < m + f; k+)for(j = 0; j < n ; j+)cout << "请输入第" << k + 1 << "个项目成绩(按学校编号):" << endl;cin >> id;if(k < m)scid - 1.setMale(scid - 1.getMale() + integralj);else if(k < m + f)scid - 1.setFemale(scid - 1.getFemale() + integral

15、j);scid - 1.setTotal(scid - 1.getTotal() + integralj);itemi.setSchool(scid - 1,j);5排序的设计排序函数:实现将录入运动项目成绩按总分按从大到小的顺序进行排序。void Count:sort(School *sch, string mode, int num)/排序函数int i, j, exchange;School t;if(mode = "total")exchange = 0;for(i = 0; i < num - 1; i+)for(j = num - 2; j >= 0

16、; j-)if(schj + 1.getTotal() > schj.getTotal()exchange = 1;t = scj + 1;schj + 1 = schj;schj = t;if(!exchange)return;return;if(mode = "id")for(i = 0; i < num; i+)for(j = i + 1; j < num; j+)if(schi.getId() > schj.getId()t = schi;schi = schj;schj = t;return;if(mode = "male&quo

17、t;)exchange = 0;for(i = 0; i < num - 1; i+)for(j = num - 2; j >= 0; j-)if(schj + 1.getMale() > schj.getMale()exchange = 1;t = scj + 1;schj + 1 = schj;schj = t;if(!exchange)return;return;if(mode = "female")exchange = 0;for(i = 0; i < num - 1; i+)for(j = num - 2; j >= 0; j-)if

18、(schj + 1.getFemale() > schj.getFemale()exchange = 1;t = scj + 1;schj + 1 = schj;schj = t;if(!exchange)return;return;6输出设计打印函数:输出用户需要的信息。void Count:print(int i)cout << " "<< sci.getId() << setw(10) << sci.getName() << setw(8) << sci.getTotal()<< setw(9) << sci.getMale() << setw(10) << sci.getFemale() << endl;四、调试分析 测试图: 五、关键源程序清单和执行结果1关键源程序class Countprivate:School sc20;Item item20;in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论