- 311.50 KB
- 2022-09-27 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
目录:1.需求分析:4功能要求:4性能需求:42.概要设计:41.存储结构设计:42.流程图设计:63.详细设计:104.菜单窗口:191.主菜单窗口192.输入各个项目成绩并存储文件193.统计各学校总分224.按学校编号排序输出235.按学校总分排序输出236.按男团体总分排序输出247.按女团体总分排序输出248.按学校编号查询学校某个项目情况259.按项目编号查询取得名次的学校2510退出255.课程设计总结与体会:266.致谢:2616\n1.需求分析:1.运动会分数统计(难度***) 任务:参加运动会有10个学校,学校编号为1……10。比赛分成18个男子项目,和12个女子项目。项目编号为男子1……18,女子19……30。不同的项目取前三名积分,前三名的积分分别为:5、3、2。 功能要求:b)可以输入各个项目的前三名的成绩;c)能统计各学校总分;d)可以按学校编号或名称、学校总分、男女团体总分排序输出;e)数据存入文件并能随时查询f)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有中文提示,各学校分数为整型 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在java语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:测试数据及测试结果请在上交的资料中写明;性能需求:输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。2.概要设计:1.流程图设计:Main()函数流程图16\n开始intt!g2||!g1exit(1);system("cls");选择操作编号12345678916\nFunct1()函数流程图School*p1和Items*p2!p1||!p2exit(1);YPrintf();w<0||w>20NYYYPrintf(“输入有误”)Printf(“输入有误”)Printf(“输入有误”)NNNY请选择1.前三名2.前五名!1&!2Printf(“输入有误请重新输入”)n<0||n>20m<0||m>20!1输入前三名学校名称输入前五名学校名称输入工程项目名称(如:1)0YYNNN结束开始16\nSave()函数流程图Funct2()函数流程图funct3()函数流程图funct4()函数流程图16\nFunct5()函数流程图Funct6()函数流程图funct7()函数流程图funct8()函数流程图16\n3.详细设计:#include#include#include#include#include#definen2//学校数目#definem1//男子项目数目#definew1//女子项目数目#definenull0typedefstruct{intitemnum;//项目编号inttop;//取名次的数目intrange[3];//名次intmark[3];//分数}itemnode;//定义项目结点的类型typedefstruct{intschoolnum;//学校编号intscore;//学校总分intmscore;//男团体总分intwscore;//女团体总分itemnodec[m+w];//项目数组}headnode;//定义头结点类型headnodeh[n];//定义一个头结点数组voidinputinformation()//输入信息,建立系统{inti,j,k,s;for(i=0;in)printf("错误:这个学校没有参加此次运动会!\n\n\n");else{printf("要查询的项目编号:");scanf("%d",&j);if(j>m+w||j==0)printf("此次运动会没有这个项目\n\n\n");//学校编号超出范围,则输出警告else{printf("这个项目取前%d名,该学校的成绩如下:\n",h[0].c[j-1].top);for(k=0;k<5;k++)if(h[i-1].c[j-1].range[k]!=0)printf("名次:%d\n",h[i-1].c[j-1].range[k]);//输出要查询学校项目的成绩}}printf("请选择2继续,0跳出\n");scanf("%d",&s);printf("\n\n\n");}while(s==2);//循环执行输出语句break;case2:do{printf("要查询的项目编号:");scanf("%d",&s);if(s>m+w||s==0)printf("此次运动会不包括这个项目.\n\n\n");//项目编号超出范围则输出警告else{printf("该项目取前%d名,取得名次的学校\n",h[0].c[s-1].top);16\nfor(i=0;i