数据结构课程设计报告-运动会分数统计.doc_第1页
数据结构课程设计报告-运动会分数统计.doc_第2页
数据结构课程设计报告-运动会分数统计.doc_第3页
数据结构课程设计报告-运动会分数统计.doc_第4页
数据结构课程设计报告-运动会分数统计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

河北科技大学课程设计报告学生姓名: 学 号: 专业班级: 课程名称: 数 据 结 构 学年学期: 2 0142 015学年第 2 学期 指导教师: 倪素虹 2 0 15年 6 月课程设计成绩评定表学生姓名学 号成绩专业班级起止时间设计题目指导教师评语态度: 端正 较端正 一般 较差 纪律和出勤: 好 较好 一般 较差 概念结构设计: 好 较好 一般 较差 逻辑结构设计: 好 较好 一般 较差 应用程序设计: 好 较好 一般 较差 独立动手能力: 强 较强 一般 较差 设计验收:程序运行正确,能正确回答问题,有独到见解 程序运行正确,能正确回答部分问题 程序运行正确,回答问题困难 程序运行不正常,回答问题困难 设计报告格式规范,书写工整:优秀 好 一般 较差 指导教师: 年 月 日目录1.数据结构课程设计目标12.问题描述13.需求分析14.概要设计15.详细设计26.软件说明书147.测试报告148.课程设计总结17一、数据结构课程设计目标1.学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,培养和提高学生程序设计的能力。2.本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。二、问题描述参加运动会的n个学校编号为1n。比赛分成m个男子项目和w个女子项目,项目编号分别为1m和m+1m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。三、需求分析3.1 功能需求本系统主要是运动会分数统计方案设计。(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分,(3)可以按学校编号或名称、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。(5)数据存入文件并能随时查询 3.2数据需求需要输入学校名称,学校编号,项目编号,取得的名次,以及哪些名次。3.3 性能需求本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。四、概要设计4.1系统设计方案本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中,读取文件中信息,从而得到结果。(1) 菜单设计分为主函数菜单、按不同排序输出菜单、按不同方式查询菜单。(2) 数据保存方式建立文件,数据保存在文件中。运动运分数统计程序(3) 数据类型采用线性数据结构。(4) 存储结构采用结构体类型数组存储结构存储。(5) 算法设计输入比赛结果模块中运用了冒泡算法将输入的数据排序。4.2功能模块设计根据分析整个系统主要划分为8个功能模块,分别执行要求中的功能。该系统分为输入模块、按学校编号输出模块、按学校总分输出模块、按学校名称输出模块、按男团总分输出模块、按女团总分输出模块、按学校编号查询和按项目编号查询两个模块。五、详细设计5.1 数据结构定义建立结构体如下:typedef struct school /学校int num; /学校编号int sumscore; /学校总成绩int score; /获奖项目成绩int man; /男团总成绩int woman; /女团总成绩int n; /学校总数char name15; /学校名称school11;typedef struct itemint inum6; /获奖项目编号int iscore2121; /项目成绩int isum; /项目总数item11;5.2比赛成绩输入模块比赛成绩输入模块需要输入学校编号,学校名称,项目编号,取得的名次,以及哪些名次。item11 item121;school11 school121;void putscore() /输入成绩函数int m,w,k,b,j,h; printf(n);printf(n *请输入各项目信息 *nn); printf( 输入学校总数:);scanf(%d,&school10.n);while(school10.n20)printf( 输入错误,请重新输入。n);printf( 输入学校总数:);scanf(%d,&school10.n);printf( 输入男子项目总数:);scanf(%d,&m);while(m=20)printf( 输入错误,请重新输入。n);printf( 输入男子项目总数:);scanf(%d,&m);printf( 输入女子项目总数:);scanf(%d,&w);while(w20)printf( 输入错误,请重新输入。n);printf( 输入女子项目总数:);scanf(%d,&w); item10.isum=m+w;printf( 男子项目编号为1至%dn,m); printf( 女子项目编号为%d至%dn,m+1,m+w);for(k=1;k=school10.n;k+)printf( 输入第%d个学校名称:,k);scanf(%s,&s);school1k.sumscore=0;school1k.man=0;school1k.woman=0;school1k.num=k;printf( 输入项目编号,以-1作为结束:);scanf(%d,&b);while(b!=eof) /以-1为结束printf( 前三名按3,前五名按5:); scanf(%d,&j);while(j!=3&j!=5)printf( 输入错误,请重新输入。n); printf( 前三名按3,前五名按5:); scanf(%d,&j);if(j=3)printf( 输入获得第一名的学校编号:);scanf(%d,&h);item10.iscorehb=5; item1b.inum1=h;school1h.score=school1h.score+5; if(b=m)school1h.man=school1h.man+5;else school1h.woman=school1h.woman+5;printf( 输入获得第二名的学校编号:);scanf(%d,&h);item10.iscorehb=3; item1b.inum2=h;school1h.score=school1h.score+3; if(b=m)school1h.man=school1h.man+3;elseschool1h.woman=school1h.woman+3;printf( 输入获得第三名的学校编号:);scanf(%d,&h);item10.iscorehb=2; item1b.inum3=h;school1h.score=school1h.score+2; if(b=m)school1h.man=school1h.man+2;else school1h.woman=school1h.woman+2;if(j=5)printf( 输入获得第一名的学校编号:);scanf(%d,&h);item10.iscorehb=7; item1b.inum1=h;school1h.score=school1h.score+7; if(b=m)school1h.man=school1h.man+7;else school1h.woman=school1h.woman+7;printf( 输入获得第二名的学校编号:);scanf(%d,&h);item10.iscorehb=5; item1b.inum2=h;school1h.score=school1h.score+5; if(b=m)school1h.man=school1h.man+5;else school1h.woman=school1h.woman+5;printf( 输入获得第三名的学校编号:);scanf(%d,&h);item10.iscorehb=3; item1b.inum3=h;school1h.score=school1h.score+3; if(b=m)school1h.man=school1h.man+3;else school1h.woman=school1h.woman+3;printf( 输入获得第四名的学校编号:);scanf(%d,&h);item10.iscorehb=2; item1b.inum4=h;school1h.score=school1h.score+2; if(b=m)school1h.man=school1h.man+2;else school1h.woman=school1h.woman+2;printf( 输入获得第五名的学校编号:);scanf(%d,&h);item10.iscorehb=1; item1b.inum5=h;school1h.score=school1h.score+1; if(b=m)school1h.man=school1h.man+1;else school1h.woman=school1h.woman+1;printf( 输入项目编号,以-1作为结束:); scanf(%d,&b);system(pause); printf(按任意键返回); getchar(); system(cls); 5.3数据存储void save() /存储数据文件file *fp1,*fp2;int i,j;if(fp1=fopen(a1,wb)=null) /打开文件printf(cannot open this filen);return;for(i=0;i20;i+)if(fwrite(&item1i,sizeof(struct item),1,fp1)!=1) /写数据块printf(file write errorn);fclose(fp1); /关闭文件if(fp2=fopen(a2,wb)=null) /打开文件printf(cannot open this filen);return;for(j=0;j20;j+)if(fwrite(&school1j,sizeof(struct school),1,fp2)!=1) /写数据块printf(file write errorn);fclose(fp2); /关闭文件5.4按不同排序结果输出比赛成绩输出模块实现按要求输出相应的数据。有以下输出选项:按学校编号输出、按学校总分输出、按男团总分输出、按女团总分输出。void totalscore(school11 r) /统计各学校总分int k; printf(nn * 输出各学校总分 *n); printf( 学校编号 学校总分n); for(k=1;k=r0.n;k+)school1k.sumscore=school1k.man+school1k.woman; printf( %d %d,school1k.num,school1k.sumscore); printf(n);system(pause); printf(按任意键返回); getchar(); system(cls);void schoolname(school11 school120) /按名称排序 int i,j; school11 t; for(i=1;ischool10.n;i+) for(j=i+1;j0) t=school1i; school1i=school1j; school1j=t; printf(n *按名称排列:*n); printf( 学校编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=school10.n;i+) printf( %2d%8s%7d%8d%8dn, school1i.num,s,school1i.man+school1i.woman,school1i.man,school1i.woman);system(pause); printf(按任意键返回); getchar(); system(cls);void schoolnum(school11 school120,item11 item120) /按编号排序 int i,j; school11 t; for(i=1;ischool10.n;i+) for(j=i+1;jschool1j.num) t=school1i; school1i=school1j; school1j=t; printf(n *按编号排列:*n); printf( 学校编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=school10.n;i+) printf( %2d%8s%7d%8d%8dn,school1i.num,s,school1i.man+school1i.woman,school1i.man,school1i.woman);system(pause); printf(按任意键返回); getchar(); system(cls);void bubble1(school11 r,int n) /总分冒泡法排序 school11 a;int i,j,flag=1; for(i=1;in&flag=1;i+)flag=0;for(j=1;j=n-1;j+) if(rj+1.man+rj+1.womanrj.man+rj.woman)a=rj; rj=rj+1; rj+1=a; flag=1; void maopao2(school11 r,int n) /男子总分排序school11 a;int i,j,flag=1;for(i=1;in&flag=1;i+)flag=0; for(j=1;j=n-1;j+)if(rj+1.manrj.man)a=rj; rj=rj+1; rj+1=a; flag=1; void maopao3(school11 r,int n) /女子总分排序school11 a;int i,j,flag=1;for(i=1;in&flag=1;i+)flag=0;for(j=1;j=n-1;j+) if(rj+1.woman=1;i-) printf( * %st %dt%dt %dtt %dt *n,,ri.num,ri.man+ri.woman,ri.man,ri.woman); printf( *n); system(pause); printf(按任意键返回主菜单.); getchar(); system(cls);void man(school11 r,int n) /男子团体总分排序int i; maopao2(r, n); /执行冒泡法排序2 printf( 按男子团体总分排序结果为:n); / printf( *n); printf( * 学校名称 编号 总成绩 男团总成绩 女团总成绩 *n); for(i=n;i=1;i-) printf( * %st %dt%dt %dtt %dt *n,,ri.num,ri.man+ri.woman,ri.man,ri.woman); printf( *n); system(pause); printf(按任意键返回); getchar(); void woman(school11 r,int n) /女子团体总分排序int i; maopao3(r, n); /执行冒泡法排序3 printf( 按女子团体总分排序结果为:n); / printf( *n); printf( * 学校名称 编号 总成绩 男团总成绩 女团总成绩 *n); for(i=n;i=1;i-)printf( * %st %dt%dt %dtt %dt *n,,ri.num,ri.man+ri.woman,ri.man,ri.woman); printf( *n); system(pause); printf(按任意键返回); getchar(); system(cls);5.5按不同方式查询比赛成绩查询比赛成绩模块包括:按学校编号查询,按项目编号查询。void search1(school11 school1,item11 item1) /根据学校信息查询某个项目情况int i,j;printf(n);printf(n);printf(n *根据学校信息查询某个项目情况*n);printf(n);printf(n);printf( 请输入要查询学校编号:); scanf(%d,&i);printf(n);if(ischool10.n) printf( 输入有误,请重新输入:);scanf(%d,&i); printf( 输入要查询的项目编号:);scanf(%d,&j);printf(n);printf( 学校编号:%d 项目%d:得%d分n,i,j,item10.iscoreij);system(pause); printf(按任意键返回); getchar(); system(cls);void search2(school11 school220,item11 item220) /根据项目信息查询学校情况int i,j;printf(n);printf(n);printf(n *根据项目信息查询学校情况*n);printf(n);printf(n);printf( 请输入要查询项目编号:); scanf(%d,&i);printf(n);if(iitem10.isum) printf( 输入有误,请重新输入:);scanf(%d,&i);for(j=1;j=school10.n;j+) /所有的学校if (item10.iscoreji!=0)printf( 项目编号:%d 学校编号%d,得分%dn,i,j,item10.iscoreji);system(pause); printf(按任意键返回); getchar(); system(cls);六、软件说明书(1)本软件运行在pc机上,使用windows操作系统。(2)pc机上需要安装vc6.0。(3)首先需要运行运动会分数统计系统.exe,然后按照软件提示操作 七、测试报告(1)首先运行文件运动会分数统计系统.exe:如图1所示:图1 运行运动会分数统计界面(2) 输入信息:选择编号1,输入学校4个,男

温馨提示

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

评论

0/150

提交评论