数据结构实验运动会分数统计实验报告
更新时间:2024-03-07 17:21:01 阅读量: 综合文库 文档下载
‘
实验报告
题目:运动会分数统计
班级:14电子商务平台建设班 完成日期:2015.10.10 学号:20141103468 姓名: 孙少辉 学号:20141103421 姓名: 杨德龙 学号:20141103407 姓名: 柴益新 一:需求分析
参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。 【基本要求】
产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分 ;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
结于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为公里数的项目取前三名,设计一组实例数据。 【项目约束】
可以假设n≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,
并按名次顺序输入运动员姓名、校名(和成绩)。 二:概要设计
采用结构体二维数组存储方式产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分 ;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 三:详细设计 1:数据结构的定义 元素类型、变量、指针类型
(1) 项目数据表:运动会开始前必须详细制定本次运动会所需的参
赛项目为接下来报名、场地的准备提供依据。本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。这也有利于以后项目情况的查询。
3.1结构体 结构体名 数据类型 数据名 char int char School int char int int int 3.2子函数 出口参数 name[20] schoolnum projectmane[50][20] projectscouer[50] 备注 学校名称 学校编号 项目编号及名称 项目得分 projectstudentmane[50][20] 获奖学生姓名 sum menscouer womenscouer 团体总分 男子总分 女子总分 函数名 入口参数 功能介绍 main() 实现学校输入 项目输入 调用主页面 welcome() 选择各类操作以转至其他页面 input() 输入项目编号及名称 1.判断所输项目是取前choose() int j,char s[20] int g; 三或前五 2.返回经判断后的项目的编号与名称 three() int j,char j 1.按名次判断得分,按项
s[20] 目编号判断男女得分 2.返回经判断后的项目的编号 1.按名次判断得分,按项five() int j,char s[20] j 目编号判断男女得分 2.返回经判断后的项目的编号 按规定顺序查询n个output() 学校中某一学校的得分信息 按规定顺序产生团体sumput() 总分报表 goodbye() 弹出退出界面并退出程序
3:函数调用关系
Main() welcome() input() output() sumput() Goodbye()
四:调试分析
在调试的过程中,我们发现了在查询成绩功能是只能按照各个学校的编号进行查询选手,学校的成绩信息,查询功能有待健壮完善。 五:用户使用说明
(1) 首先运行文件运动会统计分数系统 (2) 输入信息:
1.输入学校数量→2.输入各个学校名称→3.男子运动项目数量→4.女子运
动项目数量。
敲下回车后进入welcome界面中
进入1数据输入→输入运动会项目名称→输入该项目的打分规则→依次录入学校的排名情况
(2) 输出信息:
输
入
3
进
行
总
体
输
出
查
询
。
(3) 查询信息:
按任意键返回主页面,输入
2
进行信息查询
查询结束后按任意键返回主界面输入4退出系统如下图所示
源代码 /**
***项目名称:运动会统计系统
***设计者:杨德龙,柴益新,孙少辉 ***时 间:2015.10.16
***实现目标:1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分 ;
2.产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 *** *** *** ***/
#include
*n个学校编号为1~n
*m个男子项目,编号为1~m
*w个女子项目,编号为m+1~m+w */
int n,m,w; /*
*学校信息结构体
* 目的:1.按此结构体存贮数据
* 2.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分 ; */
struct school {
char name[20]; //学校名称 int schoolnum; //学校编号
char projectmane[50][20]; //项目编号及名称 int projectscouer[50]; //项目得分
char projectstudentmane[50][20]; //获奖学生姓名 int sum; //团体总分
int menscouer; //男子总分 int womenscouer; //女子总分 }num[20]; /*
*主函数
*目的:1.实现学校输入 * 2.项目输入 */
int main() {
int i,j;
void welcome();//调用主界面
printf(\请输入学校数量\\n\ scanf(\
//输入学校名称,并初始化数据 for(i=1;i<=n;i++) {
printf(\请输入第%d学校的名称:\ scanf(\
num[i].schoolnum=i; //学校编号初始 num[i].menscouer=0; //男子团体分初始 num[i].womenscouer=0; //女子团体分初始 num[i].sum=0; //团体总分初始 for(j=1;j<=50;j++) //各项目得分初始 num[i].projectscouer[j]=0; }
printf(\请输入男子项目个数:\ scanf(\
printf(\请输入女子项目个数:\ scanf(\ welcome(); return 0; } /*
*主界面函数:
*目的:选择各类操作以转至其他页面 */
void welcome() {
system(\ int n;
void input(); void output(); void sumput(); void goodbye();
//读取这个welcome界面并显示 FILE *welcome;
welcome=fopen(\新建文件夹//welcome.txt\ char s[60];
while(fgets(s,60,welcome)) printf(\ printf(\
//选择进入子页面
while(scanf(\ {
if(n==1)
input(); //调用输入函数 else if(n==2)
output(); //调用输出函数 else if(n==3)
sumput();//调用求和函数 else if(n==4)
goodbye();//调用退出函数 else
printf(\输入有误,请重新输入:\\n\输入错误提示 } } /*
*数据输入函数:
*目的:选择各类操作以转至其他页面 */
void input() {
void welcome(); int j,k;
int choose(int j,char s[20]);
char s[20];
for(j=1;j<=w+m;j++) {
printf(\请输入第%d个项目名称:\ scanf(\ for(k=1;k<=n;k++)
strcpy(num[k].projectmane[j],s);//输入项目名称(将所输入的数组拷贝至项目组中)
j=choose(j,s);//调用项目类型选择函数 }
welcome(); } /*
*项目类型选择函数(3或5名)
*目的:1.判断所输项目是取前三或前五 2.返回经判断后的项目的编号与名称 */
int choose(int j,char s[20]) {
int l; int g;
int three(int j,char s[20]); int five(int j,char s[20]);
//输入3,5分别调用不同的函数来判断
printf(\请选择此项目取前五还是前三(3或5):\ while(scanf(\ {
if(l==3) {
g=three(j,s); return g; }
else if(l==5) {
g=five(j,s); return g; } else
printf(\输入错误,请重新输入:\ } }
/*
*取前3的项目函数
*目的:1.按名次判断得分,按项目编号判断男女得分 2.返回经判断后的项目的编号 */
int three(int j,char s[20]) {
//输入前三名获奖者信息,输入次序为学校编号加获奖者姓名 int p,b;
for(p=1;p<=3;p++) {
printf(\请输入第%d名的校编号:\ scanf(\
printf(\请输入获奖者姓名:\
scanf(\ //第一名得分为5 if(p==1) {
num[b].projectscouer[j]=num[b].projectscouer[j]+5; num[b].sum=num[b].sum+5; if(j>m)
num[b].womenscouer=num[b].womenscouer+5;//从第m个开始为女子项目得分 else
num[b].menscouer=num[b].menscouer+5;//前m个为男子项目得分 }
//第二名得分为3 else if(p==2) {
num[b].projectscouer[j]=num[b].projectscouer[j]+3; num[b].sum=num[b].sum+3; if(j>m)
num[b].womenscouer=num[b].womenscouer+3; else
num[b].menscouer=num[b].menscouer+3; }
//第三名得分为2 else if(p==3) {
num[b].projectscouer[j]=num[b].projectscouer[j]+2; num[b].sum=num[b].sum+2; if(j>m)
num[b].womenscouer=num[b].womenscouer+2; else
num[b].menscouer=num[b].menscouer+2; } }
return j; } /*
*取前5的项目函数
*目的:1.按名次判断得分,按项目编号判断男女得分 2.返回经判断后的项目的编号 */
int five(int j,char s[20]) {
int p,b;
//输入前五名获奖者信息,输入次序为学校编号加获奖者姓名 for(p=1;p<=5;p++) {
printf(\请输入第%d名的校编号:\ scanf(\
printf(\请输入获奖者姓名:\
scanf(\ //第一名得分为7 if(p==1) {
num[b].projectscouer[j]=num[b].projectscouer[j]+7; num[b].sum=num[b].sum+7; if(j>m)
num[b].womenscouer=num[b].womenscouer+7; else
num[b].menscouer=num[b].menscouer+7; }
//第二名得分为5 else if(p==2) {
num[b].projectscouer[j]=num[b].projectscouer[j]+5; num[b].sum=num[b].sum+5; if(j>m)
num[b].womenscouer=num[b].womenscouer+5; else
num[b].menscouer=num[b].menscouer+5; }
//第三名得分为3 else if(p==3)
{
num[b].projectscouer[j]=num[b].projectscouer[j]+3; num[b].sum=num[b].sum+3; if(j>m)
num[b].womenscouer=num[b].womenscouer+3; else
num[b].menscouer=num[b].menscouer+3; }
//第四名得分为2 else if(p==4) {
num[b].projectscouer[j]=num[b].projectscouer[j]+2; num[b].sum=num[b].sum+2; if(j>m)
num[b].womenscouer=num[b].womenscouer+2; else
num[b].menscouer=num[b].menscouer+2; }
//第四名得分为1 else if(p==5) {
num[b].projectscouer[j]=num[b].projectscouer[j]+1; num[b].sum=num[b].sum+1; if(j>m)
num[b].womenscouer=num[b].womenscouer+1; else
num[b].menscouer=num[b].menscouer+1; } }
return j; } /*
*选择输出函数:
*目的:按规定顺序查询n个学校中某一学校的得分信息 */
void output() {
system(\ int t,i;
void welcome();
printf(\请输入要查询的学校编号:\ while(scanf(\ {
//保证所输序号为0 ~ n
if(t>0 && t<=n) {
for(i=1;i<=w+m;i++)
printf(\学校编号:%d 学校名称:%s 项目编号:%d 项目名称:%s 项目得分:%d 获奖者:%s\\n\
num[t].name,i,num[t].projectmane[i],num[t].projectscouer[i],num[t].projectstudentmane[i]); system(\ welcome(); } else
printf(\输入错误,请重新输入:\ } } /*
*总体输出函数
*目的:按规定顺序产生团体总分报表 */
void sumput() {
system(\ void welcome(); int i;
for(i=1;i<=n;i++) {
printf(\学校编号:%d 学校名称:%s 团体总分:%d 男子总分:%d 女子总分:%d\\n\ouer); }
system(\ welcome(); } /*
*退出页面
*目的:弹出退出界面并退出程序 */
void goodbye() {
system(\ printf(\谢谢使用!!\\n\ printf(\祝你生活愉快!!\\n\
exit(0); //结束 }
正在阅读:
数据结构实验运动会分数统计实验报告03-07
精馏02-28
2015-2016学年广东省肇庆市怀集县八年级(上)期末数学试卷10-15
低分子肝素皮下注射局部压迫时间与皮下出血关系的研究09-04
2018-2024年中国新疆农产品贸易行业分析与投资机遇研究报告(目05-22
奥沙利铂联合S1姑息治疗晚期胃癌患者的不良反应观察与护理08-18
LINUX SHELL10-12
让自己美好作文700字06-18
异步电机在两相静止坐标系上的数学模型11-28
企业基层党建论文12-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 数据结构
- 运动会
- 分数
- 统计
- 报告
- 斯沃数控仿真软件6.5以上版本破解方法
- 合作方案公司范文
- 如何做小学科学记录本
- 古代诗歌鉴赏万能答题公式 - 图文
- 抗静电整理剂,防静电整理剂,纺织抗静电剂,抗静电助剂,防静电
- 汉语人名大全78页
- 北京市西城区2010年第二次抽样测试
- 第三套大众健身操一、二级教案(1)
- 教育部高等学校教 - 图文
- 永远跟党走 - 庆祝建党90周年知识竞赛试1题
- 《大字阴符经》书法摹写帖使用示范
- 2芦花荡
- 吉林省2015年上半年骨外科学主治医生入职考试试卷
- 19《云雀的心愿》 - 图文
- 2019人教版七年级语文上册第8课《艰难的国运与雄健的国民》同步
- 数学课堂中如何科学地运用多媒体教学论文
- 济川实验初中初三政治阶段试题
- 2019七年级生物上册 1.2.3《生物圈是最大的生态系统》教案(新版
- 高考高三数学选择填空专项训练10
- 中学生预防艾滋病知识教案1-6课时