收藏 分销(赏)

2021年东北大学数据结构运动会竞赛成绩统计实验报告.doc

上传人:二*** 文档编号:4518197 上传时间:2024-09-26 格式:DOC 页数:22 大小:209.04KB
下载 相关 举报
2021年东北大学数据结构运动会竞赛成绩统计实验报告.doc_第1页
第1页 / 共22页
本文档共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语言版)》  严蔚敏  清华大学出版社 《数据构造教程上机实验指引》 李春葆 清华大学出版社
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服