运动会分数统计系统课程设计报告_第1页
运动会分数统计系统课程设计报告_第2页
运动会分数统计系统课程设计报告_第3页
运动会分数统计系统课程设计报告_第4页
运动会分数统计系统课程设计报告_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

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

文档简介

1、运动会分数统计系统 课程设计报告 数据结构 院系: 专业: 班级: 学号: 姓名: 教师: 时间: 一、问题描述 1、功能 任务:参加运动会有n个学校,学校编号为1n.比赛分成m个男子工程,和w个女子工程.工程编号为男子1m,女子m+1m+w.不同的工程取前五名或前三名积 分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五 名或前三名由学生自己设定.(m=20,n=20),按要求实现相应的数据输入、查询、计分等 功能. 2、数据 建议输入学校的名称,运动工程的名称等,其余信息学生自行设计; 输出形式:有合理的提示,各学校分数为整形; 数据的存储结构自行设计

2、. 建议运动会的相关数据要存储在数据文件中. 3、操作 1) 可以输入各个工程的前三名或前五名的成绩; 2) 能统计各学校总分, 3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个工程的情况;可以按工程编号查询取得前三或前五名的 学校. 4、要求 提供系统菜单,界面友好,提示信息完整. :、系统分析及设计 1、需求分析 根据运动会分数统计系统的问题分析及设计要求,可以将此系统分为四个模块:信息统 计模块、信息输出模块、信息查询模块、信息调用模块.其系统功能结构图如下图. (1) 、信息统计模块实现信息的输入、统计、存档. (2) 、信息输出模块实现信

3、息的输出. 2、概要设计 此系统采用顺序存储结构存储,定义了一个结构体数组存放参赛学校的信息.之所以采 用顺序存储结构,是由于用它来实现信息的存储、查询比拟方便,节省时间,效率高,而且 也方便把信息写入文件以及读取文件. (1)、结构体定义如下: 、定义运动工程数据类型,用于存放运动工程的信息,包括工程名称、工程编号、用 户自己定义的取前3名还是前5名的积分、名次、分数. typedefstruct ( charproname10;/工程名称 intpronum;工程编号 inttop;/取前3名或前5名积分,由用户自己定义 intrange5;/名次 intmark5;/分数 Pronode

4、;/工程结点类型定义 、定义学校数据类型,用于存放参赛学校的信息,包括学校名称、学校编号、学校总 分、男子团体总分、女子团体总分以及工程数组. 信息输入 分数统计 信息存档 (3) 、信息查询模块实现信息的查询. (4) 、信息调用模块实现信息的调用,即从文件中读出信息并输出. typedefstruct ( charschname20; intschnum; intscore; intMscore; intWscore; PronodeaM+W; Schnode; 、定义一个学校结点类型的结构体数组 学校名称 学校编号 /总分 /男子团体总分 /女子团体总分 工程数组 学校结点类型定义 Sc

5、hnodesN.采用数组结构有利于随机存储 和查询. (2) 、信息统计模块的算法设计说明 输入参赛学校比赛成绩的信息时,采用三重循环,第一重循环限制参赛学校的个数,第 二重循环限制各参赛学校的参赛工程个数,第三重循环限制各参赛学校的各参赛工程所获得 的名次个数,并依次输入相应信息,根据所输入的名次得出相对应的分数.然后分别统计出 各学校的总分、男子团体总分和女子团体总分.调用文件数据块写函数fwrite将信息写入文 件,方便以后调用. (3) 、信息输出模块的算法设计说明 根据设计要求,实现按学校名称、学校总分、男子团体总分、女子团体总分输出.因此选用switch语句实现此功能.case1按

6、学校名称输出时,直接取出数据进行输出;case2按 学校总分输出时,采用冒泡排序法进行排序然后按分数由高到低输出;case3和case4也均 采用冒泡排序法进行排序最后按分数由高到低输出. 其流程图如下图: (4) 、信息查询模块的算法设计说明 根据设计要求,提供两种不同的查询方式:按学校编号查询和按工程编号查询.因此也 采用switch语句实现此功能.case1按学校编号查询,提示输入要查询的学校编号以及要查询的工程编号,直接取出该学校该工程的信息进行输出.case2按工程编号查询,提示输入按学校名称输出 按学校总分输出 按男团总分输出 按女团总分输出 退出返回主菜单 直接退出本系统 要查询

7、的工程编号,输出该工程取得名次的学校的信息. 其流程图如下图: (5) 、信息调用模块的算法设计说明 信息调用,即读取保存在文件里的信息并输出.由于采用的是数组存储,可以很方便的 一下把文件里的信息全部读取出来,再利用三重循环依次把各学校各工程所取得的成绩输出. 3、详细设计 (1)、信息输入及分数统计功能 voidInfoInput()是信息输入及分数统计的函数,在输入信息的同时进行分数统计,可以输入各学校各工程前3名或前5名的成绩.结果取前3名还是前5名由用户自己定.用switch语句将前3名的成绩赋值为5、3、2,前5名的成绩赋值为7、5、3、2、1,未取得的成绩那么赋为0.并统计总分、

8、男子团体总分和女子团体总分. 其主要功能代码如下: for(m=0;mk;m+) coutsi.aj.rangem; if(si.aj.top=3)匹配各名次对应的分数 ( switch(si.aj.rangem) /输入所获名名次:; 按学校编号查询 ( case0:si.aj.markm=0;break; case1:si.aj.markm=5;break; case2:si.aj.markm=3;break; case3:si.aj.markm=2;break; else(switch(si.aj.rangem)( case0:si.aj.markm=0;break; case1:si.

9、aj.markm=7;break; case2:si.aj.markm=5;break; case3:si.aj.markm=3;break; case4:si.aj.markm=2;break; case5:si.aj.markm=1;break; si.score=si.score+si.aj.markm;统计学校总分 if(j=M-1) si.Mscore=si.Mscore+si.aj.markm;统计男团总分 else si.Wscore=si.Wscore+si.aj.markm;/统计女团总分 (2)、信息输出功能 voidInfoOutput()是信息输出函数.输出一个总分显示

10、菜单,利用switch语句实现按学校名称输出或按学校总分、男子团体总分、女子团体总分由高到低输出.采用冒泡排序的方法使之按总分由高到低输出.利用循环语句while(1)返回总分显示菜单,break语句终止循 环. 其主要功能代码如下: for(i=0;iN;i+)冒泡排序,用辅助数组b记住学校结点的下标 bi=i; for(i=0;iN;i+) ( for(j=i+1;jN;j+) ( if(sbi.scoresj.score) ( k=bi; bi=bj; 输出各学校运动会分数信息 sbi.schnameendl; sbi.schnumendl; sbi.scoreendl; sbi.Msc

11、oreendl; sbi.Wscoreendl; voidInquiry()函数是信息查询函数,显示一个查询菜单,利用switch语句实现按学校编号查询和按工程编号查询,并输出该学校某个工程的情况或某个工程取得前3名或前5名的 学校信息.利用循环语句while(1)返回查询菜单,break语句终止循环. 其主要功能代码如下:for(k=0;k5;k+) ( if(si-1.aj-1.rangek!=0) cout名次:si-1.aj-1.rangek; if(si-1.aj-1.markk!=0) cout分数:si-1.aj-1.markky; if(yM+W|y=0)工程编号超出范围,输出

12、提示信息 cout此次运动会没有这个工程!endl; bj=k; for(i=0;iN;i+) ( cout学校名称 cout学校编号 cout学校总分 cout男团总分 cout女团总分 coutendl; (3)、信息查询功能 cout n. 按学校编号查询: couti; if(iN) cout这个学校没有参加此次运动会 else ( coutj; if(jM+W|j=0) cout此次运动会没有这个工程 else ( cout 学校编号超出范围,输出提示信息 !endl; 工程编号超出范围,输出提示信息 !endl; 输出要查询学校工程的成绩 这个工程取前s0.aj-1.top名,该学

13、校的成绩如下:endl; 要查询的工程编号 else输出该工程取得名次的学校的成绩 cout该工程取前s0.ay-1.top名,取得该名次的学校:endl; for(i=0;jN;i+) for(j=0;j5;j+) if(si.ay-1.rangej!=0) cout学校名称:si.schname学校编号: si.schnum名次:si.ay-1.rangej; if(si.ay-1.markj!=0) cout分数:si.ay-1.markjendl; 三、系统实现 1、完整源代码 见附录. 2、调试分析 运行程序,进入主菜单界面,用户可以选择输入信息、输出信息、查询信息、调用信息、关于或

14、退出系统.测试数据: 学校名称:武汉理工大学;学校编号:1;工程名称:男子100米;工程编号:1;取前5名;获得1个名次,第5名.工程名称:女子100米;工程编号:2;取前3名,获得3个名次,分别是第1、2、3名. 学校名称:湖北经济学院;学校编号:2;工程名称:男子跳远;工程编号:1;取前5 名,获得4个名次,分别是第1、2、3、4名.工程名称:女子跳高;工程编号:2;取前5 名,获得一个名次,第3名.测试输出的结果:按学校名称输出: 学校名称: 武汉理工大学; 学校编号: 1; 学校总分: 11; 男团总分: 1;女团总分: 10. 学校名称: 湖北经济学院; 学校编号: 2; 学校总分:

15、 20; 男团总分: 17;女团总分: 3. 按学校总分输出: 学校名称: 湖北经济学院; 学校编号: 2; 学校总分: 20; 男团总分: 17;女团总分: 3. 学校名称: 武汉理工大学; 学校编号: 1; 学校总分: 11; 男团总分: 1;女团总分: 10. 按男团总分输出: 学校名称: 湖北经济学院;学校编号: 2;学校总分: 20;男团总分: 17;女团总分:3. 学校名称:武汉理工大学;学校编号: 按女团总分输出: 1;学校总分: 11;男团总分: 1;女团总分:10. 学校名称: 武汉理工大学;学校编号: 1;学校总分: 11;男团总分: 1;女团总分:10. 学校名称:湖北经

16、济学院;学校编号:2;学校总分:20;男团总分:17;女团总分:3. 时间复杂度分析: 用户输入信息时,采用三重循环进行输入,因此信息输入函数的时间复杂度为O(N* (M+W)*k).利用冒泡排序法进行排序,采用二重循环,时间复杂度为O(N*N).采用 顺序存储结构,信息存放在数组的相应内存单元里,因此查询函数的时间复杂度为0(1). 写信息时可以一次全部写进去,读信息时也可以一次全部读出来,因此写文件函数和读文件 函数的时间复杂度都为0(1).存在问题的思考及算法的改良设想: 刚开始运行程序时,就是一句一句的显示,界面很不好看,于是想把他弄成菜单的形 式,但是两个子菜单要实现与主菜单之间的切

17、换,能够自如返回主菜单.开始时没有想到要 去直接调用实现主菜单操作的函数Menu(),废了好大周折,后来问了同学,顿时茅塞顿 开. 显示的内容堆积在一个屏幕上,看着很混乱,用C语言里的clrscr()函数在VC+里 似乎不能用,上网查了下资料,找到了一个头文件为stdlib.h的清屏函数system(cls). 调试程序时,遇到了屏幕一闪又回到原来界面的情况,没有输出想要得到的信息,原 来是信息在屏幕上显示后,程序执行到了清屏函数,所以立马清屏了,为了看到输出信息, 调用system(pause)函数,使程序暂停,以让用户看到输出地信息,然后再按任意键继续执行程序. 对此程序结构体的定义比拟难

18、,要整体考虑全局设置出结构体,这次课设用到结构体的嵌套,由于对结构体的使用还不是很熟悉,所以做起来时花费了不少时间,但一个课设做下来,还算是得心应手. 对于读写文件不是很熟悉,fread和fwrite函数不是很会用,在读出文件里的信息并 输出时花了很长时间,不过,最后总算是会用了. 3、输出界面 运行程序,进入主菜单界面,用户可以选择输入信息、输出信息、查询信息、调用信息、关于或退出系统.注意:第一次运行本程序时,请选择输入信息.以后再运行时,为了防止再次输入大量信息,可以先选择调用信息,将以前输入的信息重新显示在屏幕上,再进行后 续操作. *注:第一次运行本程序时请选择1 1号功能* 请选择

19、:1 1 (1)、输入信息 选择1号功能进入输入信息模块,根据提示信息将以下信息输入系统中. 学校名称:武汉理工大学;学校编号:1;工程名称:男子100米;工程编号:1;取前5名;获得1个名次,第5名.工程名称:女子100米;工程编号:2;取前3名,获得3个名次,分别是第1、2、3名. 学校名称:湖北经济学院;学校编号:2;工程名称:男子跳远;工程编号:1;取前5名,获得4个名次,分别是第1、2、3、4名.工程名称:女子跳高;工程编号:2;取前5名,获得一个名次,第3名. 输入信息后,信息会自动存档,并自动返回到主菜单.H Hi itMUtMUf fE E : :MXJHNMMXJHNM: H

20、 H,柔财算M M: MfXMXMfXMXit t 运动会分数统计系统 n! M MS*S*舞XJfXJf M Mm*:ifm*:if 主菜单界面如下图: *XMfc*XMfc mMiemMie JCXNKJtJCXNKJt (2)、输出信息 输入2进入总分显示菜单界面.用户可根据自己喜好选择按学校名称输出、按学校总分 输出、按男团总分输出、按女团总分输出或者退出返回主菜单、直接退出系统.息学 校工学理各汉 会武1 1 S数 个名次四入名编名编鸵目: 11蜀次 直Z亍项项名 3蝴-V名次 湖北经济学院 男子跳远 1 1 岛目目戛衰次次 azrb项项案名名名名 高 -、上 剧 子 IX 嬴的 I

21、IEIIE得智矗获名褊目目前项次 项项卷名 就我*IfIf蟾 名编拭目目目前项次次次项项最名名名 , ,甬H HM:欢送您运动会分数统计系统 总分显示菜单界面如下图: 用户可根据自己喜好选择按哪种方式输出,信息输出后,按任意键返回总分显示菜单界 面.输入5那么返回主菜单,输入6那么退出系统.以下是分别根据学校名称、学校总分、男团总分、女团总分输出的情况. 按学校名称输出: 黄JtMJtM膏JC3JC3C C裁甄琵JtJJtJt tatMLatML裁耳舞黄健/能裁境黄黄黑裁JtXJtXJ JOtOtM MSJtSJt膏黄:KXJtKXJt裁JtJJtJt tXKXK黄m mt tJtMNJtJt

22、MNJt 湖北经济学院 2 2 20 1717 3 3 清接任后藻驻续-MXMX尊XJXJ 旌K:MX*K:MX* 运动会分数统计系统 下林 名 箪 按工 息理 信浸 校武1 11111 学各管分会名编总总忌 团团查审女 1皙亏铃分分 名编凸莒心总 团团 *运动会总分显示菜单* 里使一用XKXMIT 运动会芬薮缆腥系统 出出出出单统 1234512345 UI分分本名总总总回出冷女出接直 二二二二二 KJKJtJCMKJKJtJCM:费Cj印用MKNJCMLMKNJCML *运动会芬薮统计系统* 武汉理工大学 1 1111 1 1 1010 欢送使用 运动会痛舞十系统 武汉理工大学 1 111

23、1 1 1 1010 湖北经济 2020 1717 各皙分编身心总动-霎罢留团团运#W 男女 请按任意键继续. 按男团总分输出: 息经 信北 校湖学备管异分分 Alt 名编片心总忌运盂虞女 WW按任意键继续- 按学校总分输出: 回兰 酉分 名编日宫心总 一.乂咬校团团 答昇分分 名编心忠忌 一团团 盖孟审女 jMMMTjMMMTM MilfjMilfjMW WK*MiKK*MiKM MilCiMlttfilCiMlttfi ifKfK黄NiMNiMM MgMTgMTM MiKiMKiffXUiKiMKiffXU宓11荣M MiXiXM MK KS SMMiMMi侦 ss各学校信息按女名窗武汉理

24、工大编号:1 1 心刀 mL 忌分:1010 湖北经济学院 2 2 23 1717 请按任意键继续. (3)、查询信息 输入3进入信息查询界面,用户可根据自己喜好选择按学校编号查询、按工程编号查询 或者退出返回主菜单、直接退出系统. 信息查询界面如下图: 用户可根据自己喜好选择按哪种方式查询,查询结束后,按任意键返回信息查询界面. 输入3那么返回主菜单,输入4那么退出系统.以下是分别根据学校编号、工程编号查询的情况.按女团总分输出: XJIKIKXJIKIK 欢送使 运动会疥建 JtJtJI*JI*舞* 总分输出如下: 管ZX刀分 名编吕莒心总 咬咬fe请苴择查询方式:1 1 囱员合分亶筑计二

25、填口此皿运动会分数筑计系装史=g|g i询询单统查查菜系Ellpov壬本 回出 为R-学项时摆 按工程编号查询: (4)、调用信息 为了防止每次运行程序时都要输入大量数据,在第一次运行程序后,就已经将信息自动 存档,再次运行时,可以先直接调用信息,按任意键返回主菜单,再进行后续操作.按学校编号查询: 算XNH*XNH* KK*HWKK*HW 涮X X裁哇黄 欢送您 运动会谷数统 g 系统 主按任意键色艇象 的的目1 12 23 3询 查查个次次次. 要虞名名名. 扁所主 校目前 学项取 孩半校的成绩如下; 痛;S S 分数!3 3 分数!2 2 XKMKMEKMTKMT *K*K:KX2MKX

26、2M XJCZMJCJtfXJCZMJCJtf 分分分 123123 次次次 名名名 111 2 2一一吁QXJQXJ日J JE E- -匚!匚!* *iiIiiI编*ixaixa目沱亲或项前 询目名名名瑟请技任意键继续. 欢送使拘 运动会分数舞t t系统 ,编编编 HHHH子 请技任意键批续. (5) 关于界面自行设计 (6) 退出系统 输入6那么退出系统,并有中文提示.如下图:调用的信息如下图: 土兰 :MMZXXH:MMZXXH 欢送使用 运动会分数靠计系统 7 7 5 5 3 3 2 2 i6数 k kT T 0 1010名 BB37-B名编名编3434. . .餐目目前次羊项项警 3

27、 3数数边分分分 名 5 5 前 2 2是 =.驱1 12 23 3富 W:目目前次次次项项名名 5 5数数数数.分分分分名 2 2J J1 1是1 1sl l_ _n n- -1 11 1 1 12 23 34 4名编名编盹目目前比次次次 心Z Z于项项馨名名名 S S数.-分名 5 5D Df=f=砂 名编吨. 目目前次 项项鬣 四、设计总结 在课程设计的过程中,虽然遇到了很多问题,但最终差不多也都一一解决了.有的时候 是一些很小的逻辑错误,需要的是细心.同学之间互相帮助,多个人思考多个力量,遇到自己解决不了的问题,向同学求助,能更好的帮我们解决所面临的难题.由于此次课程设计用 到数据文件

28、的知识,而这些知识老师都没讲,自学起来稍微有点困难,但也不是完全看不懂, 只是对一些函数的应用不太熟悉,经过此次课程设计,对文件的读写有了更深的了解,也相 应的培养了我的自学水平. 经过C语言和数据结构的学习,我发现数据结构与C语言有很大的不同,C语言不需 要考虑存储结构之类的,只需要定义个变量或数组,集中精力于算法之上,而数据结构前期的整体规划和构思非常重要,先确立合理的存储结构,再来编写算法,实际上一旦存储结构 确立了,算法的实现相对来说简单很多,难就难在如何确立合理的存储结构. 能够把此次课程设计做出来,是一个很大的挑战,但我经过自己的不懈努力,终于完成 了,看着自己的作品,心里还是说不

29、出的快乐,虽然做的过程很艰难.人生就是要把困难踩 在脚下. 附录: 源代码: # include # include # include # defineM1 # defineW1 # defineN2 # defineNULL0 voidMenu(); typedefstruct ( charproname10; intpronum; 函数声明 男子工程个数 /女子工程个数 学校个数 工程名称 工程编号 voidMainMenu()主菜单界面 ( cout *endl; cout *主菜单*endl; cout *endl; cout *1.输入信息*endl; cout *2.输出信息*e

30、ndl; cout *3.查询信息*endl; cout *4.调用信息*endl; cout *5.关于*endl; cout *6.退出系统*endl; cout *endl; cout *注:第一次运行本程序时请选择1号功能*endl; cout *endl; voidSubMenu()(inttop; intrange5; intmark5; Pronode; typedefstruct ( charschname20; intschnum; intscore; intMscore; intWscore; PronodeaM+W; Schnode; SchnodesN; voidHea

31、d() ( cout cout cout cout coutendl; 定义一个学校结点类型的结构体数组 /头菜单界面 *endl; * * *endl; *endl; /总分显示菜/取前3名或前5名积分,由用户自己定义 /名次 /分数 /工程结点类型定义 /学校名称 学校编号 /总分 男团体总分 女团体总分 工程数组 /学校结点类型定义 欢送使用 运动会分数统计系统 *endl; cout *endl; cout * 运动会总分显示菜单 *endl; cout *endl; cout * 1.按学校名称输出 *endl; cout * 2.按学校总分输出 *endl; cout * 3.按男

32、团总分输出 *endl; cout * 4.按女团总分输出 *endl; cout * 5.退出返回主采单 *endl; cout * 6.直接退出本系统 *endl; cout *endl; voidInitSch() ( inti; for(i=0;iN;i+) ( si.score=0; si.Mscore=0; si.Wscore=0; 初始化信息 voidInfoInput() ( inti,j,k,m; InitSch(); for(i=0;iN;i+) ( coutsi.schname; coutsi.schnum; for(j=0;jM+W;j+) ( coutsi.aj.pr

33、oname; num; coutsi.aj.top; coutk; for(m=0;m5;m+) 初始化排名和分数 (si.aj.rangem=0;si.aj.markm=0;for(m=0;mk;m+)输入所获名次信息 (coutsi.aj.rangem;if(si.aj.top=3)匹配各名次对应的分数 (switch(si.aj.rangem)(case0:si.aj.markm=0;break;case1:si.aj.markm=5;break;case2:si.aj.markm=3;break;case3:si.aj.markm=2;break;else(s

34、witch(si.aj.rangem)(case0:si.aj.markm=0;break;case1:si.aj.markm=7;break;case2:si.aj.markm=5;break;case3:si.aj.markm=3;break;case4:si.aj.markm=2;break;case5:si.aj.markm=1;break;si.score=si.score+si.aj.markm;统计学校总分 if(j=M-1)si.Mscore=si.Mscore+si.aj.markm;/统计男团总分 elsesi.Wscore=si.Wscore+si.aj.markm;统计

35、女团总分 coutendl;voidOutput(intb)输出各学校运动会分数信息 ( inti; for(i=0;iN;i+) system(cls); Head();头菜单界面 cout运动会各学校信息按学校名称输出如下:endl; cout 学校名称: si.schnameendl; cout 孚*枚编亏. si.schnumendl; cout 学校总分: si.scoreendl; cout 男团总分: si.Mscoreendl; cout 女团总分: si.Wscoreendl; coutendl; cout cout cout cout cout coutendl; 学校名称

36、 学校编号 学校总分 男团总分 女团总分 system(pause); system(cls); voidInfoOutput() ( FILE*fp; intnumber,i,j,k,bN; if(fp=fopen(sport.txt,r)=NULL) 信息输出模块 ( cout文件打不开!endl; exit(0); while(1) ( Head(); SubMenu(); coutnumber; switch(number) ( case1: 头菜单界面 总分显示菜单界面 按学校名称输出 for(i=0;iN;i+) 输出各学校sbi.schnameendl; sbi.schnumen

37、dl; sbi.scoreendl; sbi.Mscoreendl; sbi.Wscoreendl; 程序暂停,以显示结果 清屏 以读方式翻开文本文件 并判定能否正常翻开 /不能正常翻开文件的处理 调用函数exit终止程序运行 system(pause);/程序暂停,以显示结果 system(cls);/清屏 break;case2:按学校总分输出 system(cls); Head();/头菜单界面 cout运动会各学校信息按学校总分输出如下:endl; for(i=0;iN;i+)/冒泡排序,用辅助数组记住学校结点的下标 bi=i; for(i=0;iN;i+) for(j=i+1;jN;

38、j+) if(sbi.scoresj.score) k=bi; bi=bj; bj=k; Output(b);按所记下标的顺序输出各学校运动会分数信息 break; case3:按男团总分输出 system(cls);Head();cout运动会各学校信息按男团总分输出如下:endl; for(i=0;iN;i+)/冒泡排序,用辅助数组记住学校结点的下标 bi=i; for(i=0;iN;i+) for(j=i+1;jN;j+) if(sbi.Mscoresj.Mscore) k=bi; bi=bj; bj=k; Output(b);按所记下标的顺序输出各学校运动会分数信息 break; 按女

39、团总分输出system(cls); Head(); case4: cout运动会各学校信息按女团总分输出如下:endl; for(i=0;iN;i+)冒泡排序,用辅助数组记住学校结点的下标 bi=i; for(i=0;iN;i+) for(j=i+1;jN;j+) if(sbi.Wscoresj.Wscore) k=bi; bi=bj; bj=k; Output(b);按所记下标的顺序输出各学校运动会分数信息 break; case5:退出返回主菜单 system(cls);Menu();break; case6:退出系统 exit(0); default: cout对不起,无此功能,请输入正

40、确的功能序号!endl; system(pause); system(cls); InfoOutput();break; fclose(fp);关闭文件 voidBMenu()信息查询界面 cout *endl; cout *1.按学校编号查询*endl; cout *2.按工程编号查询*endl; cout *3.退出返回主菜单*endl; cout *4.直接退出本系统*endl; cout *endl; voidInquiry()/信息查询模块 ( intnumber,i,j,k,y; while(1) ( Head(); BMenu(); coutnumber; switch(numb

41、er)( case1:按学校编号查询 system(cls);Head();couti;if(iN)/学校编号超出范围,输出提示信息 cout这个学校没有参加此次运动会!endl; else( coutj; if(jM+W|j=0)工程编号超出范围,输出提示信息 cout此次运动会没有这个工程!endl; else/输出要查询学校工程的成绩 (cout这个工程取前s0.aj-1.top名,该学校的成 绩如下:endl;for(k=0;k5;k+)( if(si-1.aj-1.rangek!=0) cout名次:si-1.aj-1.rangek; if(si-1.aj-1.markk!=0)co

42、ut分数:si-1.aj-1.markkendl; system(pause);system(cls);break;case2:按工程编号查询 system(cls); Head();couty;if(yM+W|y=0)/颂目编号超出范围,输出提示信息 cout此次运动会没有这个工程!endl; else/输出该工程取得名次的学校的成绩 cout该工程取前s0.ay-1.top名,取得该名次的学校:endl;for(i=0;jN;i+)for(j=0;j5;j+)if(si.ay-1.rangej!=0)cout学校名称:si.schname学校编 号:si.schnum名次:si.ay-1.rangej;if(si.ay-1.markj!=0)cout分数:si.ay-1.markjendl;system(pause);system(cls);break;case3:退出返回主菜单 system(cls);Menu();break;case4:退出系统 exit(0);default:cout对不起,无此功能,请输入正确的功能序号!endl; system(pause);system(cls);Inquiry();

温馨提示

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

评论

0/150

提交评论