资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
东华大学数据结构课程设计 实验报告实验名称: 运动会分数统计系统指导教师: 学生姓名: 学生学号: 实验日期: 目 录一、设计题目 (3)二、任务(3)三、功能要求和测试数据 (3)四、需求分析 (4)五、 概要设计(5)(5) 5.2系统各函数的功能、相互调用关系 (6)六、 详细设计(5) 6.1 各变量的定义和作用 (8) 6.2 系统各函数的功能 (8)七、 调试分析(21)八、 用户手册 (22)九、测试结果(22)十、心得体会与参考文献(22)设计题目运动会分数统计任务:参加运动会有n个学校,学校编号为1n。比赛分成m个男子工程,和w个女子工程。工程编号为男子1m,女子m+1m+w。不同的工程取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些工程取前五名或前三名由学生自己设定。m=20,n=20功能要求:1) 可以输入各个工程的前三名或前五名的成绩;2) 能统计各学校总分;3) 可以按学校编号、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个工程的情况;5) 可以按工程编号查询取得前三或前五名的学校。测试数据:学校数据校名东华大学上海交大复旦大学同济大学华东师范大学编号12345工程数据工程编号工程名称1男子100米2男子200米3男子400米4男子跳高5男子跳远6女子跳高7女子跳远8女子铅球9女子100米10女子400米需求分析 本程序在运行期间,为了防止在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统到达平安性能好,可靠性高,稳定性强,处理数据迅速等特点,应具备一定的实用性。功能实现1记录功能。能记录一次运动会的所有工程信息,如其编号,名称,是男子工程还是女子工程,是取前三名还是前五名,以及取得名次的学校编号;能记录参加本次运动会的学校个数,以及学校的编号,并能添加,修改,删除其中的信息。2查询功能。能根据工程编号查询在该工程上获得名次的学校编号,并按名次先后顺序输出;能根据学校编号和工程编号查询该学校在该工程上获得的名次以及得分情况。3统计功能。能统计各个学校的总分,男子团体总分,女子团体总分。:输入数据形式和范围:20以内的整数,也可以输入学校的名称,运动工程的名称:有中文提示,各学校分数为整形。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。概要设计程序调用关系void main调用了void basic(),void matchoutvoid,void input(),void output(),void teamoutput( );void output()调用了 void index();void teamoutput( )调用了void teamsco();void teamsco()调用了void index();详细设计#include#include#include /*conio是Console Input/Output控制台输入输出的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比方getch()函数等等。*/#define N 20 /*参赛学校数量*/int helpN;/*成绩排序时使用*/int n,m,w; /* 定义代表学校、男子工程、女子工程数量的变量 */ int a,b; /* 工程编号,工程名次个数 */ struct Score /* 定义工程比赛结果名次列表元素结构体 */ int schnum; /* 学校编号*/ char name20; /* 姓名 */ int position; /* 名次 */ int score; /* 得分 */;struct Match /* 定义运动工程结构体 */ int matnum; /* 工程编号 */ int num; /* 工程名次个数 */ struct Score list5; /* 名次列表数组,结构体数组*/ma50; struct SchoolScore /* 定义学校成绩单元素 */ int matnum; /* 工程编号 */ int position; /* 名次 */ /char name20; /* 姓名 */ int score; /* 得分 */; struct School /* 定义学校结构体 */ int schnum; /* 学校编号 */ struct SchoolScore list50; /* 成绩单列表数组 */ int team; /* 团体总分 */ int mteam; /* 男子团体总分 */ int fteam; /* 女子团体总分 */ int num; /* 累加数 */sc20; void input ( ) /* 输入比赛数据 */ int i,rank,c; cout请输入比赛结果资料endl; for(i=0;im+w;i+) mai.matnum=i+1; /* 初始化工程编号matnum */ cout请输入比赛工程编号1-m+wc; /*工程编号*/ if(c0)&(c=m+w) do coutrank; if (rank=3) mac-1.num=3; /* 工程名次个数为3 */ if(rank=5) mac-1.num=5; else if(rank!=3&rank!=5) cout输入错误,请重新输入:; while (rank!=3&rank!=5);cout第c项比赛:取前mac-1.num名endl; for(i=0;imac-1.num;i+) mac-1.listi.position=i+1; do coutendl输入第i+1mac-1.listi.schnum; if(mac-1.listi.schnumn) cout错误!输入的编号应为1-n之间!; /* 输出出错信息 */ while (mac-1.listi.schnumn); coutmac-1.listi.score;void index () /* 整理比赛数据函数,将输入的分数赋值给sc */ int i,j,k; for(i=0;in;i+) sci.schnum=i+1; /* 初始化学校编号 */ sci.num=0; /* 初始化累加数 */ for(i=0;im+w;i+) /* 工程个数 */ for(j=0;jmai.num;j+) /* 工程名次 */ for(k=0;kn;k+) /* 学校编号 */ if(mai.listj.schnum=sck.schnum) /* schnum学校编号 */ sck.listsck.num.matnum=mai.matnum; /*matnum工程编号,运动工程编号赋值给SchoolScore的运动工程*/ sck.listsck.num.position=mai.listj.position;/*Score名次赋值给School*/ sck.listsck.num.score=mai.listj.score; sck.num+; return;void teamsco ( ) /* 团体成绩计算函数 */ int i,j; for(i=0;in;i+) /* 初始化 */ sci.team=0; sci.mteam=0; sci.fteam=0; for(i=0;in;i+) for(j=0;jsci.num;j+) /*累加*/ sci.team=sci.team+sci.listj.score; /* 团体总分成绩计算 */ if(sci.listj.matnum=m) /*工程编号小于m,为男子工程*/ sci.mteam=sci.mteam+sci.listj.score; /* 男子团体成绩计算 */ else sci.fteam=sci.fteam+sci.listj.score; /* 女子团体成绩计算 */ return; void output ( ) /* 输出学校成绩列表函数 */ int i,a; cout按学校编号查询学校某个工程的比赛情况endl; cout请输入学校编号:a; cout比赛工程编号 名次 得分endl; for(i=0;isca-1.num;i+) /*num累加数*/ coutsca-1.listi.matnum sc
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号