2021年东北大学数据结构运动会竞赛成绩统计实验报告.doc
《2021年东北大学数据结构运动会竞赛成绩统计实验报告.doc》由会员分享,可在线阅读,更多相关《2021年东北大学数据结构运动会竞赛成绩统计实验报告.doc(22页珍藏版)》请在咨信网上搜索。
《数据构造》实验报告 实验内容:运动会竞赛成绩记录 数据构造实验报告 一.课题概述 1 二.概要设计原理 1 三.详细程序清单及注释阐明 2 四.运营与测试及成果 7 五.本人编写函数 11 六.心得体会 13 七.参照文献 13 一、课题概述 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() 主界面函数,实现函数运营时界面输出,以及对接下来操作选取,是整个程序核心某些。 三、详细程序清单及注释阐明 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct xueyuan { char name[10]; //学院名称 int Mdata[5]; //5个男子项目成绩 int Wdata[5]; //5个女子项目成绩 int man; //男子项目总成绩 int woman; //女子项目总成绩 int total; //学院总成绩 struct xueyuan *next; }xueyuan,*Lxueyuan; Lxueyuan L; void zhujiemian(); char Mname[5][20]; //5个男子项目名称 char Wname[5][20]; //5个女子项目成绩 char b[9][10];int a[9]; char xueyuan_name[][9]={"信息","机械","软件","材冶","资土","外国语","文法","工管","理"}; int fenshu[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} }; void shuju() //数据解决 { int i,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],"女子体操"); L=(Lxueyuan)malloc(sizeof(xueyuan)); Lxueyuan p; L->next=NULL; for(i=0;i<9;i++) { p=(Lxueyuan)malloc(sizeof(xueyuan)); strcpy(p->name,xueyuan_name[i]); for(j=0;j<5;j++) p->Mdata[j]=fenshu[i][j]; for(j=0;j<5;j++) p->Wdata[j]=fenshu[i][j+5]; p->next=L->next;L->next=p; } } void zongfen() //计算总分 以及输出 { int i; Lxueyuan p; p=L->next; printf("----------------------各学院总分---------------------\n"); printf("学院 男子总成绩 女子总成绩 总成绩"); for(i=0;i<9;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; } } void paixu(int a[9],char b[9][10]) { int i,j,k;char c[10]; for(i=0;i<9;i++) for(j=0;j<9-i;j++) { if(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); } } } void tuandui_paiming() //发布团队排名 { int i; printf("\n\n\n--------------------团队排名--------------------\n"); printf(" 学院 第一名 第二名 第三名 第四名 第五名 第六名 "); Lxueyuan p; p=L->next; for(i=0;i<9;i++) { a[i]=p->man;strcpy(b[i],p->name); p=p->next; } paixu(a,b); printf("\n男子项目\t"); for(i=0;i<6;i++) { printf("%s\t",b[i]); } p=L->next; for(i=0;i<9;i++) { a[i]=p->woman;strcpy(b[i],p->name); p=p->next; } paixu(a,b); printf("\n女子项目\t"); for(i=0;i<6;i++) { printf("%s\t",b[i]); } p=L->next; for(i=0;i<9;i++) { a[i]=p->total;strcpy(b[i],p->name); p=p->next; } paixu(a,b); printf("\n总项目\t\t"); for(i=0;i<6;i++) { printf("%s\t",b[i]); } printf("\n"); zhujiemian(); } void danxiang_paiming() { int i,j; printf("\n\n\n--------------------单项排名--------------------\n"); printf(" 学院 第一名 第二名 第三名 第四名 第五名 第六名 "); Lxueyuan p; for(j=0;j<5;j++) { p=L->next; for(i=0;i<9;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;i<6;i++) { printf("%s\t",b[i]); } } for(j=0;j<5;j++) { p=L->next; for(i=0;i<9;i++) { a[i]=p->Wdata[j];strcpy(b[i],p->name); p=p->next; } paixu(a,b); printf("\n%s\t",Wname[j]); for(i=0;i<6;i++) { printf("%s\t",b[i]); } } zhujiemian(); } void chazhao() //查找函数 { int i;char abc[20]; printf("请输入您要查找学院名称:"); scanf("%s",abc); Lxueyuan p; p=L->next; while(p) { if(strcmp(p->name,abc)) break; } if(p==NULL) printf("您查找学院不存在!!\n"); else { for(i=0;i<5;i++) printf("%s:\t%d分\n",Mname[i],p->Mdata[i]); for(i=0;i<5;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(); } void zhujiemian() { printf("----------------------------------------------------\n" "---- 1.总成绩及团队排名 ----\n" "---- 2.单项排名 ----\n" "---- 3.查找 ----\n" "---- 其她.退出 ----\n" "----------------------------------------------------\n"); int choose; printf("请输入您选取:"); scanf("%d",&choose); switch(choose) { case 1:zongfen();tuandui_paiming();break; case 2:danxiang_paiming();break; case 3:chazhao();break; default:exit(0); } } void main() //主函数 { shuju(); zhujiemian(); } 四.运营与测试及成果 1.主界面 2.各学院总分 3.团队总分 4.单项排名 5.查找—信息 ---机械 6.退出 五.本人编写函数 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct xueyuan { char name[10]; //学院名称 int Mdata[5]; //5个男子项目成绩 int Wdata[5]; //5个女子项目成绩 int man; //男子项目总成绩 int woman; //女子项目总成绩 int total; //学院总成绩 struct xueyuan *next; }xueyuan,*Lxueyuan; Lxueyuan L; void zhujiemian(); char Mname[5][20]; //5个男子项目名称 char Wname[5][20]; //5个女子项目成绩 char b[9][10];int a[9]; char xueyuan_name[][9]={"信息","机械","软件","材冶","资土","外国语","文法","工管","理"}; int fenshu[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} }; void shuju() //数据解决 { int i,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],"女子体操"); L=(Lxueyuan)malloc(sizeof(xueyuan)); Lxueyuan p; L->next=NULL; for(i=0;i<9;i++) { p=(Lxueyuan)malloc(sizeof(xueyuan)); strcpy(p->name,xueyuan_name[i]); for(j=0;j<5;j++) p->Mdata[j]=fenshu[i][j]; for(j=0;j<5;j++) p->Wdata[j]=fenshu[i][j+5]; p->next=L->next;L->next=p; } } void zongfen() //计算总分 以及输出 { int i; Lxueyuan p; p=L->next; printf("----------------------各学院总分---------------------\n"); printf("学院 男子总成绩 女子总成绩 总成绩"); for(i=0;i<9;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; } } void zhujiemian() { printf("----------------------------------------------------\n" "---- 1.总成绩及团队排名 ----\n" "---- 2.单项排名 ----\n" "---- 3.查找 ----\n" "---- 其她.退出 ----\n" "----------------------------------------------------\n"); int choose; printf("请输入您选取:"); scanf("%d",&choose); switch(choose) { case 1:zongfen();tuandui_paiming();break; case 2:danxiang_paiming();break; case 3:chazhao();break; default:exit(0); } } void main() //主函数 { shuju(); zhujiemian(); } 六.心得体会 通过这次程序设计,使自己对链表操作有了更进一步理解。在程序设计中遇到了某些困难。 在程序设计中,对某些函数运用有了更进一步理解。 七.参照文献 《数据构造(C语言版)》 严蔚敏 清华大学出版社 《数据构造教程上机实验指引》 李春葆 清华大学出版社- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 东北大学 数据结构 运动会 竞赛 成绩 统计 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文