运动会分数统计系统的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1实习目的...............................................................12问题描述...............................................................13需求分析...............................................................14概要设计...............................................................25详细设计...............................................................55.1数据结构定义......................................................55.2各个函数分析......................................................56调试与测试............................................................196.1调试.............................................................196.2测试.............................................................197使用说明..............................................................228总结..................................................................239参考文献..............................................................2310附录.................................................................23德州学院计算机系信息管理与信息系统数据结构课程设1运动会分数统计系统的设计与实现1实习目的通过学习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。2问题描述参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)实现如下功能:(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分;(3)可以按学校编号或名称、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;(5)数据存入文件并能随时查询。3需求分析3.1功能需求本系统主要是运动会分数统计方案设计。运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。3.2数据需求需要输入学校编号,项目编号,取得的名次,以及哪些名次。3.3性能需求本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。德州学院计算机系信息管理与信息系统数据结构课程设24概要设计4.1系统设计方案本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中,读取文件中信息,从而得到结果。(1)菜单设计分为主函数菜单、比赛成绩输出菜单、查询分数统计结果菜单、查询方式子菜单。(2)数据保存方式建立文件,数据保存在文件中。运动运分数统计程序(3)数据类型采用结构体类型。(4)存储结构采用结构体类型数组存储结构存储。(5)算法设计输入比赛结果模块中运用了冒泡算法将输入的数据排序。4.2数据库设计系统用到的抽象数据类型定义:typedefstruct{intitemnum;//项目编号inttop;//取名次的数目intrange[5];//名次intmark[5];//分数}itemnode;//定义项目结点的类型typedefstruct{intschoolnum;//学校编号intscore;//学校总分intmscore;//男团体总分德州学院计算机系信息管理与信息系统数据结构课程设3intwscore;//女团体总分itemnodec[m+w];//项目数组}headnode;//定义头结点类型基本操作:(1)主函数:voidmain();(2)比赛成绩输入:voidinputinformation();(3)比赛成绩输出:voidoutput();(4)查询比赛成绩:voidinquiry();(5)将数据存储在文件中:voidwritedata();(6)调用统计结果voidreaddata();4.3功能模块设计根据分析整个系统主要划分为4个功能模块,分别执行要求中的功能。该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。比赛成绩输出模块有四个子模块,分别是:按学校编号输出模块、按学校总分输出模块、安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。功能模块图如图1所示。德州学院计算机系信息管理与信息系统数据结构课程设4运动运分数统计程序比赛成绩输入模块比赛成绩输出模块查询比赛成绩模块调用统计结果模块按学校编号输出模块按学校总分输出模块按男团总分输出模块按女团总分输出模块按项目编号查询模块按学校编号查询模块图1功能模块图(1)比赛成绩输入模块比赛成绩输入模块分为:创建信息部分,该部分需输入学校编号,项目编号,取得的名次,以及哪些名次;算法部分,得到排序结果。(2)比赛成绩输出模块将以输入的数据按照输出比赛菜单的选择输出相应的数据。(3)查询比赛成绩模块德州学院计算机系信息管理与信息系统数据结构课程设5按照查询比赛结果菜单和其查询方式子菜单查询需要的数据。(4)调用统计结果将输入的各学校运动会成绩排序输出。5详细设计根据题目要求及本次课程设计的目的,采用结构体来存储每组数据,定义运动会类和调用库函数进行相应的操作。现把相应的设计思路及各个函数解析如下。5.1数据结构定义建立结构体如下:typedefstruct{intitemnum;//项目编号inttop;//取名次的数目intrange[5];//名次intmark[5];//分数}itemnode;//定义项目结点的类型typedefstruct{intschoolnum;//学校编号intscore;//学校总分intmscore;//男团体总分intwscore;//女团体总分itemnodec[m+w];//项目数组}headnode;//定义头结点类型5.2各个函数分析5.2.1主函数函数原型:voidmain()main()函数主要是整个系统的控制端,主要功能是控制整个程序的运行。从主函德州学院计算机系信息管理与信息系统数据结构课程设6数开始调用各相关函数来达到相应的功能。voidmain(){intchoice;printf(======================欢迎使用======================\n);printf(\n\n*****************运动会分数统计系统********************\n);printf(\n\n********************1.输入信息*************************\n);printf(********************2.输出信息*************************\n);printf(********************3.查询信息*************************\n);printf(********************4.调用信息*************************\n);printf(********************5.退出系统*************************\n\n\n);printf(================================================\n\n);printf(********请选择要实现步骤的编号:\n\n);scanf(%d,&choice);switch(choice){case1:inputinformation();writedata();readdata();main();case2:output();main();case3:inquiry();main();case4:readdata();main();case5:exit(0);default:exit(0);}德州学院计算机系信息管理与信息系统数据结构课程设75.2.2比赛成绩输入模块比赛成绩输入模块需要输入学校编号,项目编号,取得的名次,以及哪些名次。voidinputinformation()//输入信息,建立系统{inti,j,k,s;for(i=0;in;i++){h[i].score=0;h[i].mscore=0;h[i].wscore=0;}//初始化头结点for(i=0;in;i++){printf(*****学校编号:);scanf(%d,&h[i].schoolnum);//输入头结点信息for(j=0;jm+w;j++){printf(*****项目编号:);scanf(%d,&h[i].c[j].itemnum);printf(*****取前3名or前5名:);scanf(%d,&h[i].c[j].top);printf(*****获得几个名次:);scanf(%d,&k);//输入项目信息for(s=0;s5;s++)h[i].c[j].range[s]=0,h[i].c[j].mark[s]=0;//初始化排名和分数for(s=0;sk;s++){printf(*****名次:);scanf(%d,&h[i].c[j].range[s]);//输入所获名次信息if(h[i].c[j].top==3)德州学院计算机系信息管理与信息系统数据结构课程设8switch(h[i].c[j].range[s]){case0:h[i].c[j].mark[s]=0;break;case1:h[i].c[j].mark[s]=5;break;case2:h[i].c[j].mark[s]=3;break;case3:h[i].c[j].mark[s]=2;break;}elseswitch(h[i].c[j].range[s]){case0:h[i].c[j].mark[s]=0;break;case1:h[i].c[j].mark[s]=7;break;case2:h[i].c[j].mark[s]=5;break;case3:h[i].c[j].mark[s]=3;break;case4:h[i].c[j].mark[s]=2;break;case5:h[i].c[j].mark[s]=1;break;}h[i].score=h[i].score+h[i].c[j].mark[s];//按取前三名还是取前五名分别记分if(j=m-1)h[i].mscore=h[i].mscore+h[i].c[j].mark[

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功