ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:82.73KB ,
资源ID:21028459      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21028459.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构运动会分数统计系统Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构运动会分数统计系统Word文档格式.docx

1、 2016 年 12 月 日课 程 设 计 评 语 成绩:_ 年 月 日1.算法思想:本课设要求输入信息,统计分数,执行排序与查找功能,在要求中没有在建立数据之后进行插入和删除操作,而在排序和查找过程中有许多的随机读取数据操作,因此使用顺序结构而不用链表。由于各个要求属性具有一定的联系,在定义数据时使用结构体和结构体数组来存储信息数据。考虑到程序的要求在设计函数时将学校个数和项目个数设计为可变的数据,为方便使用设计菜单函数(menu),而由于要求将信息存储在文件中故设计文件的存储(savetofile)与读取函数(readfromfile),信息输入函数(input)在输入基本信息后由系统统计

2、总分的 内容并全部存入文件file中,在接下来的函数中开始都需要读取文件中的信息,信息的输出(output)输出输入函数中统计后的各项信息,在排序输出(sortput)中使用冒泡排序法进行不同关键字的排序,查询函数(search)采用顺序表的查找来完成。2.模块划分:1、Void menu(int n,int m,int w) 功能是提供界面窗口。2、Void savetofile() 功能是保存输入的运动会信息到file文件3、Void readfromfile() 功能是从file文件中读取运动会信息4、Void input(int n,int m,int w) 功能是输入信息并统计5、V

3、oid output(int n,int m,int w) 功能是按学校、项目输出统计信息6、Void sortput(int n,int m,int w) 功能是按四种方法排序并输出结果7、Void search(int n,int m,int w) 功能是按两种方法查询并输出结果8、void main() 主函数2.数据结构:(1)项目数据表:运动会系统先制定本次运动会所需的参赛项目。本数据表根据要求设计存储每个项目的编号、要取的名次、各个名次名称及各名次对应的分数。用于对以后项目情况的统计已及查询。其中inum,top,range由输入信息输入,而mark有range和top决定。typ

4、edef struct int inum; /*项目编号*/ int top; /*取名次的数目*/ int range5; /*名次*/ int mark5; /*分数*/itemnode; /*存放项目信息*/(2)学校数据表:本数据表根据要求储存了各个参赛学校的总体情况,包括学校的编号、学校总分、男子团体总分、女子团体总分,并且包括项目数据数组tn。其中snum和tn中部分数据由输入信息输入,而其他三项内容score,mscore,wscore将由系统进行自动统计。typedef struct int snum; /*学校编号*/ int score; /*学校总分*/ int msco

5、re; /*男团体总分*/ int wscore; /*女团体总分*/ itemnode tM+W; /*项目数组*/snode; /*存放学校信息*/snode aN; /* 定义一个学校数组*/ 这二个数据表相关联接,an中包括tn,形成一个整体。3.测试:测试取学校个数为3,男子项目个数2.女子项目个数1。项目学校编号1(男)编号2(男)编号3(女)取前3取前5编号1名次31、43、4编号222、51、5编号31将上述所有学校的信息输入,然后计算出所有学校的总分,男子项目的总分,女子项目的总分,然后再将自己计算出的数值与所做成的系统比较,观看是否存在误差和错误。 1.主菜单界面2.信息输

6、入测试:预计输入三个学校的信息。3.统计输出测试:预计输出三个学校信息。4.排序输出测试。实现学校总分,男团总分,女团总分均可排序输出。5.信息查询测试:预计可以用学校编号和项目编号查询。6.结束程序测试:预计直接退出系统。 经过运算与测试结果比较,发现预期结果与运行结果一致。所以运动会分数统计系统正确无误。5.源程序:#includemath.h#include #define N 20 /*学校最大数目*/ #define M 20 /*男子项目最大数目*/ #define W 20 /*女子项目最大数目*/ /* 定义一个学校数组*/void menu(int n,int m,int w

7、) /*菜单函数*/ int c; void input(int n,int m,int w); void output(int n,int m,int w); void sortput(int n,int m,int w); void search(int n,int m,int w); printf(ttt欢迎使用ttttnn);t*运动会分数统计系统*nnt* 1.信息输入 *tnt* 2.统计输出 *tnt* 3.排序输出 *tnt* 4.信息查询 *tnt* 0.退出系统 *tnnt* 老师你最好看 *tnt=nn请选择要实现步骤的编号(0-4): scanf(%d,&c); swi

8、tch(c) case 1: input(n,m,w);break; case 2: output(n,m,w); case 3: sortput(n,m,w); case 4: search(n,m,w); case 0:谢谢使用,再见!n exit(0); default: printf(输入错误,请重试! menu(n,m,w); void savetofile() /*信息存入文件file*/ FILE *fp; int i; if(fp=fopen(file.txt,wb)=NULL) cannot open the filen return; for(i=0;iN;i+) if(a

9、i.snum!=0) if(fwrite(&ai,sizeof(snode),1,fp)!=1) printf(file write errorn return; fclose(fp);void readfromfile() /*信息从文件file中取出*/rb fread(&ai,sizeof(snode),1,fp);void input(int n,int m,int w) /输入函数 int i,j,s,k,q=0;n;学校编号:ai.snum); /*输入学校信息*/ for(j=0;jm+w;j+) printf(项目编号:ai.tj.inum);项目取前3名或前5名(3或者5):

10、ai.tj.top); if(ai.tj.top=3)获得名次个数(1-3): else获得名次个数(1-5):k); /*输入项目信息*/ for(s=0;sk;s+) if(ai.tj.top=3) printf(所获名次(1-3): else所获名次(1-5):ai.tj.ranges); /*输入所获名次信息*/ ai.score=0; ai.mscore=0; ai.wscore=0; /*初始化分数*/ for(j=0; for(s=0;5; switch(ai.tj.ranges) ai.tj.marks=0; break; ai.tj.marks=5; ai.tj.marks=

11、3; ai.tj.marks=2; else if(ai.tj.top=5) ai.tj.marks=7; case 5: ai.tj.marks=1; else 信息有误! exit(0); ai.score=ai.score+ai.tj.marks; /*记学校总分*/ if(jaj.snum) k=tempi; tempi=tempj; tempj=k; /* 用冒泡排序方法排序*/,atempi.snum,atempi.score,atempi.mscore,atempi.wscore); /*按学校编号输出*/ case 2: if(atempi.scoreaj.score) tem

12、pi=tempj; tempj=k; /* 用冒泡排序方法排序*/ /*按学校总分输出*/ break; case 3: if(atempi.mscoreaj.mscore) /*按男团总分输出*/ case 4: if(atempi.wscoreaj.wscore) /*按女团总分输出*/ default:请选择 1 返回主菜单 0继续 /*返回菜单或继续排序*/ scanf( while(q=0); menu(n,m,w);void search(int n,int m,int w) /查询函数 int c,i,j,k,d,l,q=0;t*查询系统*nnt* 1.按学校编号查询 *tnt* 2.按项目编号查询 *tn k=-1;d=-1;l=-1;请选择要实现功能的编号(1-2):要查询的学校编号: /*查找学校编号下标*/ if(ai.snum=c) k=i; if(k=-1)错误:这个学校没有参加此次运动会!要查询的项目编号: /*查找项目编号下标*/ for(j=0; if(ak.tj.inum=c) d=j; if(d=-1)此次运动会没有这个项目n else /*显示结果*/ 这个项目取前 %d名,该学校的成绩如下:, ak.td.top); for(i=0; if(ak.td.rangei! printf(,ak.td.rangei); case

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1