您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 东北大学数据结构运动会竞赛成绩统计实验报告
1《数据结构》实验报告实验内容:运动会竞赛成绩统计2数据结构实验报告一.课题概述........................................................1二.概要设计原理................................................1三.详细程序清单及注释说明............................2四.运行与测试及结果........................................7五.本人编写函数..............................................11六.心得体会......................................................13七.参考文献......................................................131一、课题概述1.实验目的:线性表应用类实验题目参考2.实验内容:运动会竞赛成绩统计【问题描述】东北大学第51届运动大会成功举行。共有N个学院的男女代表队参赛。大会共设M个男子项目和W个女子项目。大会即将闭幕,准备公布成绩。【实验要求】设计运动会竞赛成绩统计程序。(1)采用顺序表或链表等数据结构。(2)统计各代表队的男女总分和团体总分。(3)公布各单项成绩的前六名和团体成绩的前三名。(4)可以查询成绩。二、概要设计原理本程序主要采用了链表的存储结构,实现了对数据的存储,访问等操作。本程序实现了男子团体成绩、女子团体成绩、总成绩的输出。以及对个单项和团体成绩的前六名的输出。并实现了查找功能。程序主要分为四个函数:1.Zongfen()这个函数主要实现计算各学院的男子总分、女子总分、以及团体总分的计算以及存储操作。2.tuandui_paiming()此函数运用了排顺函数,实现了对团体总分的排序,以及前六名的输出。3.danxiang_paiming()此函数运用了排序函数,实现了对单项成绩的排名,以及对各个单项前六名的输出。4.chazhao()通过此函数,可以实现对各个学院的查找,并且显示出各个学院的单项成绩,以及男子团体成绩、女子团体成绩、总成绩的输出。5.main()6.主函数,实现对所有函数的协调,并且执行了一些程序中相当关键的部分,对整个程序的执行以及正确的输出起到了很大的作用。7.zhujiemain()主界面函数,实现函数运行时界面的输出,以及对接下来操作的选择,是整个程序的关键部分。2三、详细程序清单及注释说明#includestdio.h#includestdlib.h#includestring.htypedefstructxueyuan{charname[10];//学院名称intMdata[5];//5个男子项目成绩intWdata[5];//5个女子项目成绩intman;//男子项目总成绩intwoman;//女子项目总成绩inttotal;//学院总成绩structxueyuan*next;}xueyuan,*Lxueyuan;LxueyuanL;voidzhujiemian();charMname[5][20];//5个男子项目名称charWname[5][20];//5个女子项目成绩charb[9][10];inta[9];charxueyuan_name[][9]={信息,机械,软件,材冶,资土,外国语,文法,工管,理};intfenshu[9][10]={{7,8,5,6,2,5,8,7,4,5},{5,6,8,7,4,5,2,1,3,5},{8,6,5,4,2,3,5,4,7,4},{8,5,4,7,1,5,4,7,8,5},{7,5,4,6,5,8,6,9,5,6},{7,5,6,4,2,3,8,9,6,5},{7,5,4,2,6,9,8,5,6,1},{5,6,4,8,5,6,5,4,9,8},{8,5,4,2,6,8,9,6,5,8}};voidshuju()//数据处理{inti,j;strcpy(Mname[0],男子100米);strcpy(Mname[1],男子110米栏);strcpy(Mname[2],男子铅球);strcpy(Mname[3],男子铁饼);strcpy(Mname[4],男子体操);strcpy(Wname[0],女子100米);strcpy(Wname[1],女子100米栏);strcpy(Wname[2],女子铅球);strcpy(Wname[3],女子铁饼);strcpy(Wname[4],女子体操);3L=(Lxueyuan)malloc(sizeof(xueyuan));Lxueyuanp;L-next=NULL;for(i=0;i9;i++){p=(Lxueyuan)malloc(sizeof(xueyuan));strcpy(p-name,xueyuan_name[i]);for(j=0;j5;j++)p-Mdata[j]=fenshu[i][j];for(j=0;j5;j++)p-Wdata[j]=fenshu[i][j+5];p-next=L-next;L-next=p;}}voidzongfen()//计算总分以及输出{inti;Lxueyuanp;p=L-next;printf(----------------------各学院总分---------------------\n);printf(学院男子总成绩女子总成绩总成绩);for(i=0;i9;i++){printf(\n%s\t\t,p-name);p-man=p-Mdata[0]+p-Mdata[1]+p-Mdata[2]+p-Mdata[3]+p-Mdata[4];p-woman=p-Wdata[0]+p-Wdata[1]+p-Wdata[2]+p-Wdata[3]+p-Wdata[4];p-total=p-Mdata[0]+p-Mdata[1]+p-Mdata[2]+p-Mdata[3]+p-Mdata[4]+p-Wdata[0]+p-Wdata[1]+p-Wdata[2]+p-Wdata[3]+p-Wdata[4];printf(%d\t\t%d\t\t,p-man,p-woman);printf(%d,p-total);p=p-next;}}voidpaixu(inta[9],charb[9][10]){inti,j,k;charc[10];for(i=0;i9;i++)for(j=0;j9-i;j++){4if(a[j]=a[j+1]){k=a[j];a[j]=a[j+1];a[j+1]=k;strcpy(c,b[j]);strcpy(b[j],b[j+1]);strcpy(b[j+1],c);}}}voidtuandui_paiming()//公布团体排名{inti;printf(\n\n\n--------------------团体排名--------------------\n);printf(学院第一名第二名第三名第四名第五名第六名);Lxueyuanp;p=L-next;for(i=0;i9;i++){a[i]=p-man;strcpy(b[i],p-name);p=p-next;}paixu(a,b);printf(\n男子项目\t);for(i=0;i6;i++){printf(%s\t,b[i]);}p=L-next;for(i=0;i9;i++){a[i]=p-woman;strcpy(b[i],p-name);p=p-next;}paixu(a,b);printf(\n女子项目\t);for(i=0;i6;i++){printf(%s\t,b[i]);}p=L-next;for(i=0;i9;i++){a[i]=p-total;strcpy(b[i],p-name);5p=p-next;}paixu(a,b);printf(\n总项目\t\t);for(i=0;i6;i++){printf(%s\t,b[i]);}printf(\n);zhujiemian();}voiddanxiang_paiming(){inti,j;printf(\n\n\n--------------------单项排名--------------------\n);printf(学院第一名第二名第三名第四名第五名第六名);Lxueyuanp;for(j=0;j5;j++){p=L-next;for(i=0;i9;i++){a[i]=p-Mdata[j];strcpy(b[i],p-name);p=p-next;}paixu(a,b);printf(\n%s\t,Mname[j]);for(i=0;i6;i++){printf(%s\t,b[i]);}}for(j=0;j5;j++){p=L-next;for(i=0;i9;i++){a[i]=p-Wdata[j];strcpy(b[i],p-name);p=p-next;}paixu(a,b);6printf(\n%s\t,Wname[j]);for(i=0;i6;i++){printf(%s\t,b[i]);}}zhujiemian();}voidchazhao()//查找函数{inti;charabc[20];printf(请输入您要查找的学院名称:);scanf(%s,abc);Lxueyuanp;p=L-next;while(p){if(strcmp(p-name,abc))break;}if(p==NULL)printf(您查找的学院不存在!!\n);else{for(i=0;i5;i++)printf(%s:\t%d分\n,Mname[i],p-Mdata[i]);for(i=0;i5;i++)printf(%s:\t%d分\n,Wname[i],p-Wdata[i]);printf(男子总成绩:\t%d分\n,p-man);printf(女子总成绩:\t%d分\n,p-woman);printf(总成绩:\t%d分\n,p-total);}zhujiemian();}voidzhujiemian(){printf(----------------------------------------------------\n----1.总成绩及团体排名----\n----2.单项排名----\n----3.查找----\n7----其他.退出----\n----------------------------------------------------\n);intchoose;printf(请输入您的选择:);scanf(%d,&choose);switch(choose){case1:zongfen();tuandui_paiming();break;case2:danxiang_paiming();break;case3:chazhao();break;default:exit(0);}}voidmain()//主函数{shuju();zhujiemian();}四.运行与测试及结果1.主界面82.各学院总分3.团体总分94.单项排名5.查找—信息10---机械6.退出11五.本人编写函数#includestdio.h#includestdlib.h#includestring.htypedefstructxueyuan{charname[10];//学院名称intMdata[5];//5个男子项目成绩intWdata[5];//5个女子项目成绩intman;//男子项目总成绩intwoman;//女子项目总成绩inttotal;//学院总成绩struct
本文标题:东北大学数据结构运动会竞赛成绩统计实验报告
链接地址:https://www.777doc.com/doc-7334145 .html