1、=20,n=20)2)基本要求(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分,(3)可以按学校编号、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自
2、学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;四、参考资料1 王红梅. 数据结构 C+.北京:清华大学出版社,2005.2 王红梅. 数据结构C+实验指导书.北京:3 严蔚敏,吴伟民数据结构(C语言版)清华大学出版社 指导教师(签字):教研室主任(签字): 批准日期: 年 月 日一、需求分析(1) 程序功能(a)可以输入各个项目的前三名或前五名的成绩;(b)能统计各学校总分,(c)可以按学校编号、学校总分、男女团体总分排序输出;(d)可以按学校编号
3、查询学校某个项目的情况;(2) 输入输出要求输入形式:数据形式和范围:二、概要设计1运动会记分系统功能模块图2程序类图三、详细设计1学校类设计学校基础信息:定义了学校类,以及各种学校类的基础信息,如:学校名称、编号、学校总分,男子运动员总分,女子运动员总分。通过学校类对象数组调用参数和函数。class Schoolprivate: int id;/学校编号 string name;/学校名称 int total;/学校总分 int male;/男子总分 int female;/女子总分public: School()/初始化 id = 0; male = 0; female = 0; tota
4、l = 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 setFemale(int a) female = a; int getMale() return male; int getFemale() return female
5、;2运动会项目类设计运动项目基础信息:定义了运动项目类,以及各种运动项目类的基础信息,如:运动项目名称、男子运动项目,女子运动项目。通过运动项目类对象数组调用参数和函数。class Item School sc20; School getSchool(int i) return sci; School* getSchools() return sc; void setSchool(School sch,int i) sci = sch;3统计总分信息类设计统计总分信息:定义了统计类,各个名次的积分及规则,还定义了与总分相关的各种函数,如:录入函数,打印函数,排序函数,菜单函数。统计类为整体核心
6、,通过统计类对象,把录入的实参赋值给各个变量。最后再通过类对象数组调用各个函数实现整体的功能。class Count Item item20; int integral5; int n, m, f; Count() n = 0; integral0 = 7; integral1 = 5; integral2 = 3; integral3 = 2; integral4 = 1; void input();/输入基本信息 void input1();/录入成绩 void Open();/载入 void print(int);/打印 void statisticsForTotal();/按总分排序
7、void statisticsForId();/按编号排序 void statisticsForMale();/按男子总分排序 void statisticsForFemale();/按女子总分排序 void schoolInfo();/显示学校信息 void itemInfo();/显示项目信息 void menu();/显示菜单 void sort(School*, string, int);/排序操作4录入信息函数设计录入信息函数:实现录入学校信息和运动项目信息功能。学校信息包括:学校编号、学校名称;运动项目信息包括:男子项目和女子项目数,各个项目名称。void Count:input(
8、) int i; School *sch; Item *it; string s; cout n; for(i = 0; i i+) sch = new School; cout 请输入第 i + 1 s; sch-setName(s);setId(i + 1); sci = *sch;输入男子和女子项目数: m; f; while(m 20 | m 20 | f itemi = *it;录入成绩函数:实现录入运动项目成绩信息功能。input1() int i, k, j,id; id = sci.getId(); for(k = 0; k k+) for(j = 0; j n ; j+) c
9、out k + 1 id; if(k m) scid - 1.setMale(scid - 1.getMale() + integralj); else if(k = 0; j-) if(schj + 1.getTotal() schj.getTotal() exchange = 1; t = scj + 1; schj + 1 = schj; schj = t; if(!exchange) return; return;id num; for(j = i + 1; if(schi.getId() schj.getId() t = schi; schi = schj;male if(schj
10、+ 1.getMale() schj.getMale()female if(schj + 1.getFemale() schj.getFemale()6输出设计打印函数:输出用户需要的信息。print(int i) sci.getId() setw(10) sci.getName() setw(8) sci.getTotal() setw(9) sci.getMale() sci.getFemale() 四、调试分析 测试图:五、关键源程序清单和执行结果1关键源程序Count类为程序的核心,一切功能都围绕它进行实现。录入的信息通过构造函数Count()按积分规则取积分后进行排序操作,最终通过调用打印函数print()输出。2执行结果六、参考资料
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1