+数据结构课程设计报告+_第1页
+数据结构课程设计报告+_第2页
+数据结构课程设计报告+_第3页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、作者:Pan Hon glia ng仅供个人学习数据结构课程设计题目:赫夫曼树的建立运动会分数统计订票系统猴子选大王姓名:*学号:*专业:*指导教师:*目录33:绪言1.1课题设计背景1.2课题研究的目的和意义 31.3课题研究的内容.4二:具体程序设计 62.1赫夫曼树的建立62.2运动会设计.82.3订票系统.122.4猴子选大王.15:总结与展望1515四:参考文献附:程序源代码1.绪言1. 1课题背景数据结构作为一门独立的课程最早是美国的一些大学开设的,1968年美国唐 欧克努特教授开创了数据结构的最初体系,他所著的计算机程序设计 技巧第一卷基本算法是第一本较系统地阐述数据的逻辑结构和

2、存储结构及 其操作的著作从60年代末到70年代初,出现了大型程序,软件也相对独立, 结构程序设计成为程序设计方法学的主要内容, 人们就越来越重视数据结构,认 为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法.从70年代中期到80年代初,各种版本的数据结构著作就相继出现目前在我国,数据结构也已经不仅仅是计算机专业的教学计划中的核心 课程之一,而且是其它非计算机专业的主要选修课程之一.数据结构在计算机科学中是一门综合性的专业基础课数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围, 而且和计算机软件的研究有着更密切的关系, 无论是编译程序还是操

3、作系统,都 涉及到数据元素在存储器中的分配问题在研究信息检索时也必须考虑如何组织 数据,以便查找和存取数据元素更为方便因此,可以认为数据结构是介于数学、 计算机硬件和计算机软件三者之间的一门核心课程,在计算机科学中,数据结构不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实 现编译程序、操作系统、数据系统及其它系统程序和大型应用程序的重要基础.值得注意的是,数据结构的发展并未终结,一方面,面向各专门领域中特殊 问题的数据结构得到研究和发展,如多维图形数据结构等;另一方面,从抽象数 据类型的观点来论数据结构,已成为一种新的趋势,越来越被人们所重视 .1. 2课题研究的目的和意

4、义通过对此次数据结构大型作业内容的实际操作及分析,加深对数据结构丰富功能的理解及增强实际动手能力,在实践中不断提高对汇编语言的运用能力.锻炼学生分析与编写大型软件代码的能力.通过与同组同学的合作,锻炼协作的能力.1:具体程序设计2. 1赫夫曼树的建立1 .任务:建立建立最优二叉树函数2.要求:可以建立函数输入二叉树,并输出其赫夫曼树3.概要设计程序流程图如下:创建单链表符串按出现次数从为到大续结点也排空)取被操作链表的首元结点创建当前操作链表首元结点将被操作结点插入相应位置审请新4.调试分析 运行时显示:取链表头结点后的两个结点作为新结点的左右儿子一,编码:输入请输入要测试的字符串Abcde输

5、入110时:字符以及它的相应权数 霍夫曼编码这时按任意键则返回编辑窗口2.211 运动会分数统计赫夫曼编码 相应字符W甲-1任务:参加运动会有n个学校,学校编号为1n.比赛分成m个男子Wc-1项目Wb和w个女子项目项目编号为男子1m女子m+1m+w不同的项目取前五名或前三名积分;取前五名的积分分别为: 7、5、3、2、1,前三名的积 分分别为用于解码的 2;哪些取前五名或前三名由学生自己设定.(m<=2°,n<=20 .2.功能要求:1).可以输入各个项目的前三名或前五名的成绩;2).能统?计各学校k总分,ontin3e可以按学校编号、学校总分、男女团体总分排序输出;4)

6、. 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五 名的学校.3. 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)4.抽象数据类型结构体数组的定义如下:#defi ne M 6/* 6个男子项目*/#defi ne W 4/* 4个女子项目*/#defi ne N 10typedef structint man 5+1;/*排名,此数组中存放学校代码*/int wome n 3+1;char In ameM+W+1;/*项目名称*/Item;/*项目代码,M的为男子,M的为女子*/typedef structint score

7、T;/*学校总分*/int scoreM;/*男子总分*/int scoreW;/*女子总分*/int ma nM+1;/*男子项目*/int wome n W+1;/*女子项目*/int flag;/*排序用旗帜*/School;Item iteMM+W+1;/* M+W个项目*/School schN+1;/* n个学校,0不用*/char nameN+1100;void In put()/输入函数void In itial()/初始化函数void School_F()/按学校代码查询函数void ltem_F()/运动项目查询函数void Fi nd()/查询菜单函数void Order

8、_ST()/总分排序函数void Order_SM()/男子总分排序函数void Order_SW()/女子总分排序函数void Fi nd_O()/排序菜单函数void Output()/输出到文件函数void5.本程序包括5个模块a.主程序模块:Void mai n() Do接受命令;处理命令;while( 命令”二退出);b. 信息输入模块实现信息的输入;c. 信息查询模块一一实现信息的查询;d. 信息排序查询模块一一实现各种的有序输出;e. 信息存盘模块一一实现输出到文件.各模块的关系如下:主程序模块一一信息输入模块一一信息查询一一信息排序查询模块一信 息存盘模块.6. 流程图主函数欢

9、迎界面选择功能 scanf("%d",&a)If(i=1)If(i=2)If(i=3)成绩输入查询排序查询成绩输入选择功能For(i=1;i<=N;i+) 项目个数输入项目代码及名称输入男子项目前五名输入女子项目前 三名查询Scanf( %d,&a);T=1t=2T=3按学校代码按项目编号返回上一级菜单排序查询选择功能Scanf( %d,&a);选canf( %d,&a);a=1a=2按学校总分查询按男团总分查询7. 调试分析a. 本程序在项目上采用了数字代码操作,并且能同步输入输出项目名和学校名实现方法为在学校结构体内增加字符数组用来

10、存储学校的名称缺点就是没有考虑有一个学生参加两项比赛的情况,这就要再次增加循环参加比赛的数目.b. 算法的时空分析(1)本程序时间复杂度为N*N主要集中在按积分排序的过程,在排序时采用了冒泡排序,而且在交换数据时也较大地耗费内存,至今未能解决.(2)另外一点在于项目查询时,会增加时间复杂度,为了减少时间复杂度, 我把按项目查找分为按女子和按男子查找, 这样在查询项目时可先判断是男 子项目还是女子项目,再查找,这样就减少时间复杂度 (3)在空间复杂度方面,本程序几乎没有用到辅助空间,只是未用到所有 的数组,会浪费一些存储空间8. 测试结果这是在学校个数为1,项目数为2 (包括一个男子项目一个女子

11、项目)时的 输出文件情况:1 a学校总分:7 ,男子总分:7,女子总分:02 b学校总分:7 ,男子总分:5,女子总分:23 c学校总分:6 ,男子总分:3,女子总分:84 d学校总分:2 ,男子总分:2,女子总分:85 e学校总分:6 ,男子总分:1,女子总分:56学校总分:0 ,男子总分:0,女子总分:87学校总分:0 ,男子总分:0,女子总分:08学校总分:0 ,男子总分:0,女子总分:09学校总分:0 ,男子总分:0,女子总分:010学校总分:0 ,男子总分:0,女子总分:0男子项目1排名:第1名:1第2名:2第3名:3第4名:4第5名:5男子项目2排名: 第1名:0第2名:0第3名:

12、0第4名:0第5名:0男子项目3排名: 第1名:0第2名:0第3名:0第4名:0第5名:0男子项目4排名: 第1名:0第2名:0第3名:0第4名:0第5名:0男子项目5排名: 第1名:0第2名:0第3名:0第4名:0第5名:0男子项目6排名: 第1名:0第2名:0第3名:0第4名:0第5名:0女子项目7排名:第1名:0第2名: 0第3名:0女子项目8排名:第1名:5第2名: 3第3名: 2女子项目9排名:第1名:0第2名: 0第3名:0女子项目10排名:第1名:0第2名: 0第3名:02. 3订票系统1. 任务:通过此系统可以实现如下功能:a.录入:可以录入航班情况(数据可以存储在一个数据文件

13、中,数据结构、具体 数据自定)b. 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达 城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;c. 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;d. 退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号.修改航班信息:当航班信息改变可以修改航班数据文件2. 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计 程序完成功能;3.具体概要设计a.抽象类型定义如下struct Flaig

14、htchar flaNum10;/*char fTime10;/*char ITime10;/*char fCity30;/*char lCity30;/*int fprice;/*char priOf10;/*int seat;/*struct Flaight *n ext;struct Custom/* char Cn ame30;/*char ID30;/*int TicketN;/*char FlaN10;/*char ListN60;/*航班号*/起飞时间*/ 降落时间?*/ 起飞城市*/ 降落城市*/票价*/折扣*/座位数*/客户资料*/客户姓名*/ 证件号*/ 订票数量*/ 航班

15、号*/ 订单编号*/struct Custom *n ext;struct Flaight *head仁 NULL;struct Custom *head2=NULL;b.本程序包含三个模块(1)主程序模块:Void mai n()do接受命令;处理命令;while(命令!二退出);航班信息修改模块while()p1=p1-> next;print("请选择功能:");输入功能号Cas1Cas2Cas3Case4Case5Case6Case7Case8起飞 时间抵达 时间起飞 地目的 地票价折扣总座 位数跳出5.调试分析原始信息: 航班:ca1 12:5013:10长

16、沙 广州1340.3 10(2) 信息输入模块完成基本信息的输入(3)实现功能模块一一实现各种功能操作(4)读写文件模块一一实现文件建立和读写4.流程图主函数模块Men菜单Case1Case2Case3Case4Case5Case6订票查询修改存盘文件读入显示信息查询航班信息printf("xxxx航班->:");输入航班号;for(p1=head1- >n ext;p1- >n ext!=NULL;p仁pl- >n ext) if(p1!=NULL)输出所查询航班的信息ca2 15:45 01:50南京香港214 0.43ca3 19:21 04:

17、31长沙广州431 0.85ca4 01:30 07:04重庆长春310 0.7 6ca5 02:08 10:56上海汉城126 0.410ca6 20:1822:47东京纽约9870.9 76ca10 14:01 23:59重庆长春875 0.812ca11 05:09 22:12南京香港4220.3 43ca12 12:04 16:54东京纽约 986 0.6 32客户:ray xy3 2 ca1 rayxy3 sam gh4 3 ca3 samgh4 Andy bo5 1 ca4 An dybo5姚明 Rockets 10 ca10 姚明 Rockets Kobe Lakers 6 ca

18、5 KobeLakers曼联 英格兰10 ca12曼联英格兰运行后:航班:cal 1250 13:10 长沙 广州 134 0.3 6 ca2 15:45 01:50南京 香港 2140.4 3ca3 19:21 04:31长沙广州 431 0.8 5 ca134e 01:30 07:04重庆长春310 0.7 6ca5 02:08 10:56 上海 汉城 126 0.4 10 ca6 20:18 22:47 东京 纽约 3450.9 76ca10 14:01 23:59 重庆 长春 875 0.8 0 ca11 05:09 22:12 南京 香港 4220.3 43ca12 12:04 16

19、:54 东京 纽约 986 0.6 32客户:ray xy3 2 ca1 rayxy3 sam gh4 3 ca3 samgh4 An dy bo5 1 ca4 An dybo5姚明Rockets 10 ca10 姚明 Rockets Kobe Lakers 6 ca5 KobeLakers 曼联英格兰 10 ca12曼联英格兰2. 4猴子选大王1.任务:一堆猴子都有编- 号,编号是 1, 2, 3 .m , 这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.2 .要求:输入数据:输入m,n为整数

20、,*m输出形式:中文提示按照 m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能3 .概要设计:基本思路是以链表顺序储存猴子的信息,利用计数器完成操作,最后打印出是第几个猴子存储结构:循环链表定义:表中最后一个结点的指针指向第一个结点4. 调试分析运行时显示:输入10时:这时再输入5:5这时按任意键则g返回编辑窗口py is : 3Press any key to con ti nue . . 3. 总结与展望通过为期半个月的课程设计,我们对数据结构这门课程有了更深一步的 了解.它是计算机程序设计的重要理论技术基础,在我们计算机专业的学习中占 据着十分重要的地位同时也使

21、我们知道,要学好这门课程,仅学习书本上的知 识是不够的,还要有较强的实践能力因为我们学习知识就是为了实践而只有多 实践,多编写程序,才能更好的理解与掌握书本上的东西这次课程设计也让我们明白拉“团结就是力量”的魅力.大家一起合作,一起讨论、一起研究,充分发挥团队精神,各尽其责,按时,按进度完成各自的任 务,是我们能够把这个程序按时做出来的关键!在我们组员的通力合作下,我们按照制定的计划,终于顺利地完成了这个程序 这使得我们相信:无论是在以后 的学习还是生活中,只要我们充分发挥团队合作的精神,一定可以克服种种困难, 争取更大的成功!本次设计我们也首次使用拉WIN-TC进行编译,摆脱拉TC环境下编译

22、的弊 端,WIN-TC的编译使我们的本次课程设计更加美观.但是也有不如意的地方, 做的不好的地方,望老师谅解,我们会在以后的学习、设计中努力改进,做得更 加完美4.参考文选1 严蔚敏,吴伟民编著,数据结构(C语言版),北京;清华大学出版社,20052 严蔚敏,陈文博编著,数据结构及应用算法教程,北京;清华大学出版社,20063 李云清,杨庆红,揭安全编著,数据结构(C语言版),北京;人民邮电出版社,20064 谭浩强编著,C语言程序设计(第二版),北京;清华大学出版社,2003各大网站附:程序源代码1.赫夫曼树的建立# in clude<stdio.h>#in clude<s

23、tdlib.h>#defi ne MAXLEN 100typedef struct Huffma ntree char ch; /* 键值 */int weight,mark; /*weight 为权值,mark 为标志域 */struct Huffma ntree *pare nt,*lchild,*rchild,* next;Hftree,*li nktree;/*整理输入的字符串,合并相同的项,并求出每个字符在数组中出现的次数*/lin ktree tidycharacter(char character)int i=0;lin ktree tree,ptr,beforeptr,

24、no de; /* 链式 ,tree 为头结点,beforeptr 为 ptr 的前一结点,node 为新申 请的结点*/tree=(li nktree)malloc(sizeof(Hftree);/* 创建单链表的头结点 */if(!tree)return NULL;tree->next=NULL; /*头结点为空,且后续结点为空*/for(i=0;characteri!='0'&&characteri!='n'i+) /*遍历直到字符串结束为止*/ptr=tree;beforeptr=tree;no de=(li nktree)mall

25、oc(sizeof(Hftree); /* 新申请结点 no de*/if(! no de)return NULL; n ode-> next=NULL;no de->pare nt=NULL;node->lchild=NULL;node->rchild=NULL; /* 置空 */no de->mark=0;no de->ch=characteri;no de->weight=1;if(tree->n ext=NULL)tree->next=node; /*头结点的下一结点为空,连接node*/else ptr=tree->n ex

26、t;while(ptr&&ptr->ch!=node->ch) /*将指针移至链表尾 */ptr=ptr- >n ext;beforeptr=beforeptr->next; /* 后移 */if(ptr&&ptr->ch=node->ch) /*如果链表中某结点的字符与新结点的字符相同*/*将该结点的权加一 */ptr->weight=ptr->weight+1;free(node); /*释放node结点的存储空间*/else /*新结点与表中结点不相同,将新结点插入链表后*/no de->n ext=b

27、eforeptr- >n ext;beforeptr->next=node; /*node 连接在 beforeptr 之后 */ return tree;*/*将整理完的字符串按出现次数从小到大的顺序排列lin ktree taxis no de(l in ktree tree)linktree head,ph,pt,beforeph; /*head 为新链表的表头结点 */head=(li nktree)malloc(sizeof(Hftree);/* 创建新链表的头结点 */ if(!head)return NULL;head->next=NULL; /*新结点的头结点

28、为空,后续结点也为空*/ph=head;beforeph=head;while(tree->n ext) pt=tree->next;/*取被操作链表的首元结点*/tree->n ext=pt-> next;pt->next=NULL; /*取出pt所指向的结点*/ph=head->n ext;beforeph=head;if(head-> next=NULL)head->next=pt;/*创建当前操作链表首元结点 */else while(ph &&ph->weight<pt->weight) /*将被操作结

29、点插入相应位置*/ph=ph->n ext;beforeph=beforeph->n ext;pt- >n ext=beforeph->n ext;beforeph->n ext=pt;free(tree);retur n head;/*用排完序的字符串建立霍夫曼树*/lin ktree createHftree(l in ktree tree)lin ktree p,q,newno de,beforep;for(p=tree->n ext,q=p->n ext;p!=NULL&&q!=NULL;p=tree->n ext,q=p

30、->n ext) tree->n ext=q->n ext;q-> next=NULL;p-> next=NULL;newn ode=(li nktree)malloc(sizeof(Hftree);/* 申请新结点作为霍夫曼树的中间结点*/if(!newnode)return NULL;newno de->n ext=NULL;newno de->mark=0;newnode->lchild=p;/*取链表头结点后的两个结点作为新结点的左、右儿子 */newno de->rchild=q;p->pare nt=newno de;q-

31、>pare nt=newno de;newno de->weight=p->weight+q->weight;p=tree->n ext;beforep=tree;if(p!=NULL&&p->weight>=newno de->weight) /*将新结点插入原链表的相应位置*/newno de->n ext=beforep->n ext;beforep->n ext=newno de;else while(p!=NULL&&p->weight <newno de->weigh

32、t) p=p->n ext;beforep=beforep->n ext;newno de->n ext=beforep->n ext;beforep->n ext=newno de;return (tree->n ext);/*对霍夫曼树进行编码*/void Huffma ncodi ng(li nktree tree)int in dex=0;char *code;lin ktree ptr=tree;code=(char *)malloc(10*sizeof(char);/* 此数组用于统计霍夫曼编码*/printf(”字符以及它的相应权数 霍夫曼编码

33、nn");if(ptr=NULL) printf(”霍夫曼树是空的!n");exit(0);else while(ptr->lchild &&ptr->rchild &&ptr->mark=0) while(ptr->lchild &&ptr->lchild->mark=0) codei ndex+='O'ptr=ptr->lchild;if(!ptr->lchild&&!ptr->rchild) ptr->mark=1;codei n

34、dex='0'prin tf("tw%c=%dttt",ptr->ch,ptr->weight);for(i ndex=0;codei ndex!='0'i ndex+)prin tf("%c",codei ndex);prin tf("n");ptr=tree;in dex=0;if(ptr->rchild &&ptr->rchild->mark=O) ptr=ptr->rchild;codei ndex+='1:if(!ptr->lc

35、hild&&!ptr->rchild) ptr->mark=1;codei ndex+='O:prin tf("tw%c=%dttt",ptr->ch,ptr->weight);for(i ndex=0;codei ndex!='O'i ndex+)prin tf("%c",codei ndex);prin tf("n");ptr=tree;in dex=0;if(ptr->lchild->mark=1 &&ptr->rchild->

36、;mark=1)ptr->mark=1;ptr=tree;in dex=0;prin tf("n");free(code);/*解码*/void decode(l in ktree tree,char code)int i=0,j=0;char *char0_1;lin ktree ptr=tree;char0_1=(char *)malloc(10*sizeof(char);/* 此数组用于统计输入的0、1 序列 */printf(”霍夫曼编码相应字符nn");for(j=0,ptr=tree;codei!='0'&&ptr

37、->lchild &&ptr->rchild;j=0,ptr=tree) for(j=0;codei!='0'&&ptr->lchild&&ptr->rchild;j+,i+) if(codei='0') ptr=ptr->lchild;char0_1j='0'if(codei='1') ptr=ptr->rchild;char0_1j='1'if(!ptr->lchild&&!ptr->rchild)

38、charO_1j='O:for(j=0;char0_1j!='0'j+)prin tf("%c",char0_1j);prin tf("tt%c n",ptr->ch);if(codei='0'&&ptr->lchild&&ptr->rchild) charO_1j='O:printf(”没有与最后的几个0、1序列:%s相匹配的字符!n",char0_1);return;free(char0_1);/*文件*/in cha nge()FILE *f

39、p;char ch;if(fp=fope n( "e10_1.c","rt")=NULL)printf("Cannot open file strike any key exit!");getch();exit(1);ch=fgetc(fp);while (ch!=EOF)putchar(ch);ch=fgetc(fp);fclose(fp);/*释放霍夫曼树所占用的空间*/void delete no de(l in ktree tree)lin ktree ptr=tree;if(ptr) delete no de(ptr->

40、;lchild);delete no de(ptr->rchild);free(ptr);voidHuffman() /*霍夫曼树建立*/ int n;char characterMAXLEN,codeMAXLEN;FILE *f1;lin ktree temp,ht,htree,ptr=NULL;printf(” 一、编码:n请输入要测试的字符串:nn");sca nf("%s",character);prin tf("n");temp=tidycharacter(character);ht=taxis no de(temp);htre

41、e=createHftree(ht);Huffma ncodi ng(htree);printf(”二、解码:n请输入用于解码的0、1序列:nn");sca nf("%s",code);prin tf("n");decode(htree,code);delete no de(htree);2.运动会分数统计#i nclude <stdio.h>#in clude <stri ng.h>#in clude <coni o.h>#in clude <ctype.h>#in clude <math

42、.h>#i nclude <stdlib.h>#in clude<malloc.h>#defi ne M 6#defi ne W 4#defi ne N 10typedef structint man 5+1;int wome n 3+1;char In ameM+W+1;Item;typedef structint scoreT;int scoreM;int scoreW;in t man M+1;int wome n W+1;int flag;/* 6个男子项目*/*4个女子项目*/*排名,此数组中存放学校代码*/*项目名称*/*项目代码,M的为男子,M的为女

43、子*/*学校总分*/*男子总分*/*女子总分*/*男子项目*/*女子项目*/*排序用旗帜*/School;Item iteMM+W+1;School schN+1; char nameN+1100;/* M+W个项目*/* n个学校,0不用*/*In put*void In put() int item=1;int i;int k;int temp1,flag=0;char ch;int temp6; doloop:for(k=1;k<6;k+)tempk=0;doif(item>(W+M)|(item<1) pri ntf("n输入错误!再次输入!n")

44、;printf("项目代码(男子取前五名,女子取前二名):n");scan f("%d", &item);while(item>(W+M)|(item<1);printf("项目名称:");scan f("%s",iteMitem.I name);if(item>0)&&(item<=M)printf("n男子项目%d的前五名学校代码:",item);for(i=1;i<6;i+)do printf("第 %d 名学校代码:&quo

45、t;,i); scanf("%d",&temp1); printf("第 %d 名学校名称:",i); scanf("%s",&nametemp1);flag=0;for(k=0;k<6;k+)if(i!=k)if(temp1=tempk)|(temp1<1)|(temp1>N) printf("输入错误!重新输入!n");flag=1; break;tempi=temp1;while(flag!=0);iteMitem.ma ni=temp1;schtemp1.ma nitem=

46、item;switch(i)case 1: schtemp1.scoreT+=7; schtemp1.scoreM+=7;break;case 2: schtemp1.scoreT+=5; schtemp1.scoreM+=5;break;case 3: schtemp1.scoreT+=3; schtemp1.scoreM+=3;break;case 4: schtemp1.scoreT+=2; schtemp1.scoreM+=2;break;case 5: schtemp1.scoreT+=1; schtemp1.scoreM+=1;break;else if(item>M)&am

47、p;&(item<=(M+W)printf("n女子项目d的前五名学校代码:",item);for(i=1;i<4;i+)do printf("第 %d 名学校代码:",i); scanf("%d",&temp1); printf("第%d 名学校名称:",i); scanf("%s",&nametemp1);flag=0;for(k=0;k<6;k+)if(i!=k)if(temp1=tempk)|(temp1<1)|(temp1>N) p

48、rintf("输入错误!重新输入!n");flag=1; break;tempi=temp1;while(flag!=O);iteMitem.wome ni=temp1;schtemp1.wome nitem=item;switch(i)case 1: schtemp1.scoreT+=5; schtemp1.scoreW+=5;break;case 2: schtemp1.scoreT+=3; schtemp1.scoreW+=3;break;case 3: schtemp1.scoreT+=2; schtemp1.scoreW+=2;break;else if(item

49、<=0)|(item>M+W) printf("输入错误!再次输入!n");goto loop;printf("n 再次输入?(Y/N):");ch=getch(); prin tf("n");while(ch='Y')|(ch='y');/*In itial*/In itial() int i,k;for(i=1;i<N;i+) schi.scoreT=0; schi.scoreM=0; schi.scoreW=0;for(k=1;k<=M;k+) schi.ma n k=0;

50、for(k=1;k<=W;k+) schi.wome n k=0;1. 学 校 代 码 查 询/*School_F()int school=1;int i,k;doif(school>(N)|(school<1) pri ntf("n输入错误!再次输入!n");printf(”输入学校代码:”);scan f("%d",&school);while(school>(W+M)|(school<1);printf("%d %s 学校成绩:n”,school,nameschool);for(i=1;i<=M

51、;i+)if(schschool.mani!=0) printf("男子项目 %d: ",i);for(k=1;k<6;k+)if(iteMi.mank=school) printf(" 第 %d 名n",k);for(i=1;i<=W;i+)if(schschool.womeni!=0) printf("女子项目 %d: ",i);for(k=1;k<6;k+)if(iteMi.womenk=school) printf("第 %d 名 n",k);printf(" %d %s 学校总

52、分:%dn",school,nameschool,schschool.scoreT); printf("男子总分:dn",schschool.scoreM);prin tf("女子总分:%dn",schschool.scoreW);2. 运 动 项 目/* */ ltem_F()int item=1;int i,k;输入错误!再次输入! n");doif(item>(W+M)|(item<1) pri ntf("nprintf("输入项目编号:");sca nf("%d",

53、&item);while(item>(W+M)|(item<1);if(item>0&&item<=M)printf("男子项目%d的排名为:n",item);for(i=1;i<6;i+)printf("第%d 名:%d%s 学校",i,iteMitem.mani,namei);if(item >M&&i tem<=(M+W)printf("n 女子项目%d的排名为:n",item);for(i=1;i<4;i+)printf("第 %d 名:%d%s 学校 n",i,iteMitem.womeni,namei);/*f ne*/Fi nd() int a;char ch;printf(* n");printf("1.学校代码查询2运动项目查询3.返回上一级n");printf(* n");doa=0;printf("输入查询项目:");scan f("%d",&a);switch(a)case 1: School_F

温馨提示

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

评论

0/150

提交评论