C语言程序的设计运动会成绩统计系统方案
C运动会分数统计系统

课程设计报告运动会分数统计系统1. 系统需求分析问题描述:参加运动会有n个学校,学校编号为1,2,···,n,比赛分为m个男子项目和w个女子项目。
项目编号为男子1,2,···,m个,女子m+1个,m+2个,··,m+w。
不同的项目取得前五名或前三名积分;取前五名的积分分别为7,5,3,2,1;前三名的积分分别为5,3,2;项目编号为奇数的取前五名,项目编号为偶数的取前三名(m≤20,n≤20)。
每个项目结束时,将其编号输入,并按名次顺序输入运动员姓名、学校编号和成绩。
请用C/C++编写一系统,模拟运动会分数统计过程,软件应包括如下几个方面:(一)功能要求:(1)成绩输入:要求:可以输入各个项目的前三名或前五名的成绩。
(2)成绩查询:要求:可以按学校编号查询学校各项目情况;可以按项目编号查询取得前三名或前五名的学校。
(3)成绩统计:要求:能统计各学校总分。
(4)成绩排序:要求:可以按学校编号、学校总分、男女团体总分排序输出。
(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读;(2)至少采用文本菜单界面(如果能采用图形菜单界面更好);(3)学生可自动增加新功能模块(视情况可另外加分);(4)写出课程设计报告,具体要求见相关说明文档。
2 概要设计2.1 系统功能设计根据运动会分数统计系统问题的分析和设计要求,可以将该系统可以分为三个模块:信息统计模块、信息输出模块、信息查询模块,其系统功能结构图如图1所示。
(1)信息统计模实现信息的输入、统计。
(2)信息输出模块,实现信息的输出。
(3)信息查询实现信息的查询。
图1 系统功能结构图3.详细设计:毕业设计有困难?加QQ929486211(1)定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次数、名次、分数。
(2)定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总分、男团总分、女团总分、项目数组。
运动会管理系统c语言程序设计

运动会管理系统C语言程序设计
简介
运动会管理系统是一个用C语言编写的程序,用于管理学校或机构举办的各类
运动会活动。
该系统能够帮助组织者有效地安排赛程、记录成绩以及生成相关报表,提高管理效率和赛事质量。
功能模块
1. 用户登录
•提供管理员和裁判员两类用户登录选项
•管理者可以对比赛项目、队伍信息进行管理
•裁判员可以录入比赛成绩
2. 赛事管理
•管理者可以添加、编辑、删除赛事项目
•每个赛事项目包括项目名称、参赛队伍、赛程安排等信息
3. 队伍管理
•管理者可以添加、编辑、删除参赛队伍
•每个参赛队伍包括队名、队员信息等
4. 成绩录入
•裁判员可以录入每个队伍在各个项目中的成绩
•系统可以自动计算并显示队伍的总成绩
5. 报表生成
•系统可以根据录入的成绩数据生成成绩报表
•报表可以按照项目、队伍等不同维度展示成绩数据
技术实现
该系统基于C语言编写,采用了结构体、文件读写、数据处理等基本功能和技术。
通过数据结构的设计和文件操作,实现了用户登录、赛事管理、队伍管理、成绩录入、报表生成等功能。
系统优势
•界面简洁明了,操作便捷高效
•数据处理准确可靠,确保成绩数据的准确性
•面向对象的设计,方便扩展和维护
结语
运动会管理系统C语言程序设计为学校或机构举办运动会提供了一种高效的管理方式,使赛事组织更加顺畅和专业化。
通过不断的优化和改进,该系统能够更好地满足不同运动会的管理需求,为相关活动的顺利进行提供有力支持。
C语言课程设计校际运动会管理系统

优化策略:根据测试结果进 行代码优化、性能优化等
测试目的:确保系统在各种 情况下都能正常运行
优化效果:提高系统稳定性、 响应速度和用户体验
07
系统部署与维护
系统部署方案与实施
硬件需求:服 务器、网络设 备、存储设备
等
软件需求:操 作系统、数据 库管理系统、 Web服务器等
部署步骤:安 装操作系统、 安装数据库管 理系统、安装 Web服务器、 部署应用程序
系统安全测试与优化
安全测试:对 系统进行安全 漏洞扫描,确
保系统安全
优化措施:加 强系统安全防 护,提高系统
安全性能
安全策略:制 定安全策略, 确保系统安全
运行
安全培训:对 系统管理人员 进行安全培训, 提高安全意识
和技能
系统可用性测试与优化
测试方法:黑盒测试、白盒 测试、灰盒测试等
测试内容:功能测试、性能 测试、兼容性测试等
单击此处添加副标题
C语言课程设计校际运动
会管理系统
汇报人:
目录
01 02 03 04 05 06
添加目录项标题 系统概述
系统需求分析 系统设计 系统实现
系统测试与优化
01
添加目录项标题
02
系统概述
系统的目标和意义
提高校际运动会 的管理效率
方便学生、教师 和管理人员查询 比赛信息
提供实时的比赛 成绩和排名
测试方法: 黑盒测试、 白盒测试、 灰盒测试
测试内容: 功能测试、 性能测试、 兼容性测 试、安全 性测试
测试工具:
JMeter、
Seleniu
m
、
Appium
等
测试结果 分析:找 出问题, 提出优化 方案
运动会成绩处理系统(C语言简单类型版)

一、运动会成绩处理基本过程如下:本系统的特色:(1) 本系统采用模块化(自定义函数)开发方法,基础信息处理模块、运动员检录信息处理模块、预赛信息处理模块、决赛信息处理模块(2) 本系统采用由总装模块(主函数)调用的方式实现各个功能模块的集成。
(3)设置一全局变量,使程序具有报告运动会比赛项目完成情况的功能。
(4)当比赛开始时候,本系统打开运动会开始画面,项目全部完成的时候,本系统将打开结束画面。
存储检录信息的数据对象基础信息录入模块:/*把参赛运动员的基础信息录入到数组变量中保存,下述程序仅能完成一批次6个人的运动员基础信息处理任务)*/#define num 6#define L1 7main(){Int i;char sports_no[num][L1], student_no[num][L1],name[num][L1],goods[num]={0,0,0,0,0,0};for(i=1;i<=num;i=i+1){printf("\ninput %d ‘s sports_no :",i);scanf("\%s", sports_no[i-1]);printf("\ninput %d ‘s student_no :",i );scanf("%s", student_no[i-1]);printf("\ninput %d ‘s name:",i);scanf("%s", name[i-1]);}\*把运动员基本信息保存在文件中*\#include<stdio.h>main()FILE *fp;int i;char name[2][7];fp=fopen("lds.txt","w");for(i=1;i<=2;i++){scanf("%s",name[i-1]);fwrite(name[i-1],7,1,fp);}fclose(fp);}\*从文件中输出运动员基本信息*\ #include<stdio.h>main(){FILE *fp;int i;char name[2][7];fp=fopen("lds.txt","r");for(i=1;i<=2;i++)fread(name[i-1],7,1,fp);}fclose(fp);printf("\n");for(i=1;i<=2;i++) printf("\n%s",name[i-1]);}预赛处理:(1)填写检录名单(具有手动终止检录功能,下述程序仅能完成一批次最多6个人的检录信息处理任务)main(){int i;int k;char sports_no[6][7]={"","","","","",""}; \\本语句形成简单表,而要形成多列表则要定义字符型三维数组。
数据结构课程设计运动会分数统计(C语言版)

数据结构课程设计运动会分数统计(C语言版)随着社会进步,体育事业的发展,为了提高运动会成绩统计准确,减少设计者们的工作量,开发了本系统。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)。
第二章运动会分数统计系统的需求分析2.1功能需求运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。
功能模块图如图2-1所示。
(2)比赛成绩输出模块:将以输入的数据按照输出比赛菜单的选择输出相应的数据。
(3)查询比赛成绩模块:按照查询比赛结果菜单和其查询方式子菜单查询需要的数据。
(4)调用统计结果:将输入的各学校运动会成绩排序输出。
2.4性能需求本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。
第三章系统开发工具及关键技术3.1系统开发工具3.1.1Code::BlockCode::Block是一个开放源码的全功能的跨平C/C++集成开发环境。
Code::Block是开放源码软件。
Code::Block由纯粹的C++语言开发完成,它使用了蓍名的图形界面库w某Widget(2.6.2unicode)版。
对于追求完美的C++程序员,再也不必忍受Eclipe的缓慢,再也不必忍受的庞大和高昂的价格。
3.2关键技术3.2.1C语言C语言是一种计算机程序设计语言它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的D.M.Ritchie于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。
C语言课程设计—运动会管理系统

计算机程序设计课程设计c语言题目:运动会管理系统学院:专业:班级:学号姓名:指导教师:设计日期:2013/6/26一.概述这个程序是运动会管理系统,是为了更好地管理学生运动会而设计的。
二、设计概要本例实现一个综合的校际运动会数据管理系统,用户可以在已建立的数据记录函数中输入数据信息、在已建立的输出函数中查看数据信息.输入、输出和查看的操作都是通过对函数中for循环的操作完成的。
主体部分:首先在程序开始处,开通语句#include“conio.h”,#include<stdlib.h〉,#include〈stdio.h〉引入头文件,这样就能直接调用库函数.再定义团体n,男子m,女子w.然后定义结构体变量result,match,sclist,school等。
并且编写对数据的输入、输出和查看操作的函数;最后在main函数的内部实现对各子函数的调用,实现数据的综合管理.任务概述:1.用for循环, if—else——-if-——else ,do--—while用来控制程序的循环。
2.用函数完成数据的输入输出查看。
3.在主函数中调用函数来实现输入输出查看等功能.三、设计流程main()主函数Score() 得分分配函数Input() 输入函数团体成绩计算函数 teamsco()输出学校成绩列表 output() 输出团体报表函数 teamput()四、程序调试#include 〈conio。
h〉#include<stdlib.h>#include〈stdio.h〉int n,m,w;struct result{int scnum;char name[20];int position;int score;};struct match{int matnum;int num;struct result list[5];};struct sclist{int matnum;int position;char name[20];int score;};struct school{int scnum;struct sclist list[50];int team;int mteam;int fteam;int num;};struct match ma[50];struct school sc[20];score(a,b)int a,b;{if(b==3){ma[a-1]。
C语言运动会计分程序编写

任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1).可以输入各个项目的前三名或前五名的成绩;2).能统计各学校总分,3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;#include<stdio.h>#include<string>#include<iomanip>#include<fstream>using namespace std;int n,m,w;struct pro //表示项目的结构体{string name; //项目名称int snum[6]; //前5名学校的编号}p[21];struct school //表示学校的结构体{int num;string name; //学校名称int score; //学校总分int male; //男子总分int female; //女子总分}sch[21];int integral1[5]={7,5,3,2,1};//前五名得分int integral2[3]={5,3,2};//前三名得分void input(){int i,j,y,x;printf("输入学校数目:");y=0;scanf("%d",&n);if(n>=1&&n<=20)y=1;if(y)break;elseprintf("输入数据有误,请重新输入:");for(i=1;i<=n;i++){printf("输入第%d个学校的名称:",i);scanf("%s",&sch[i].name);sch[i].score=0;sch[i].female=0;sch[i].male=0;sch[i].num=i;}printf("输入男子项目数和女子项目数:");y=0;scanf("%d%d",&m,&w);if(m<=20&&m>=1&&w<=20&&w>=1)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}for(i=1;i<=m+w;i++){printf("输入第%d个项目的名称:\n",i);scanf("%s",& p[i].name);printf("输入第%d个项目的前5名的学校编号:\n",i); for(j=1;j<=5;j++){y=0;while(1){scanf("%d",&x);if(x>=1&&x<=20)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}p[i].snum[j]=x;sch[x].score+=integral[j-1];if(i<=m)sch[x].male+=integral[j-1];else sch[x].female+=integral[j-1];}}void print(int i){printf("%d%d%s%d%d%d%d%d%d",sch[i].num,setw(10),sch[i].name,setw(8),sch[i].score,setw( 9),sch[i].male,setw(10),sch[i].female);}void bianhao() //按编号排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].num>sch[j].num){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按编号排列:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);}void zongfen() //按学校总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].score<sch[j].score){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按学校总分排列:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);ofstream fout;fout.open("运动会分数统计.txt");fout<<"编号学校名称总分男子总分女子总分"<<endl;for(i=1;i<=n;i++){fout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9)<<sch[i].male<<setw(10)<<sch[i].female<<endl; }fout.close();void malezf() //按学校男总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].male<sch[j].male){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按学校男子总分排列:\n");printf("编号学校名称总分男子总分女子总分\n"); for(i=1;i<=n;i++)print(i);}void femalezf() //按学校女总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].female<sch[j].female){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按学校女子总分排列:\n");printf("编号学校名称总分男子总分女子总分\n"); for(i=1;i<=n;i++)print(i);printf("\n");}void cxsch() //查询学校信息{int i,y,s;printf("输入需要查询的学校编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}printf("该学校相关信息:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++){if(sch[i].num==s){print(i);break;}}printf("\n");}void cxxm() //查询项目信息{int i,y,s;printf("输入需要查询的项目编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}printf("%s前5名学校编号及名称为\n",p[s].name);printf("名次编号学校名称\n");for(i=1;i<=5;i++)printf(" %d %d%d%s\n",i,p[s].snum[i],setw(12),sch[ p[s].snum[i] ].name); printf("\n");}void solve() //菜单函数{int z;while(1){printf("\n选择您需要的操作(选择序号):\n");printf("1.按学校编号排序输出\n");printf("2.按学校总分排序输出\n");printf("3.按学校男总分排序输出\n");printf("4.按学校女总分排序输出\n");printf("5.查询某个学校成绩\n");printf("6.查询某个项目成绩\n");printf("7.结束\n\n");scanf("%d",&z);if(z==1)bianhao();if(z==2)zongfen();if(z==3)malezf();if(z==4)femalezf();if(z==5)cxsch();if(z==6)cxxm();if(z==7)break;}}int main() //主函数{input();solve();return 0;}#include<stdio.h>#include<string>#include<iomanip>#include<fstream>using namespace std;int n; //n个学校int m; //m个男子项目int w; //w个女子项目struct pro //表示项目的结构体{string name; //项目名称int snum[6]; //前5名学校的编号}p[21];struct school //表示学校的结构体{int num;string name; //学校名称int score; //学校总分int male; //男子总分int female; //女子总分}sch[21];int integral[5]={7,5,3,2,1};//前五名得分void input(){int i,j,y,x;printf("输入学校数目:");y=0;while(1){scanf("%d",&n);if(n>=1&&n<=20)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}for(i=1;i<=n;i++){printf("输入第%d个学校的名称:",i);scanf("%s",&sch[i].name);sch[i].score=0;sch[i].female=0;sch[i].male=0;sch[i].num=i;}printf("输入男子项目数和女子项目数:");y=0;while(1){scanf("%d%d",&m,&w);if(m<=20&&m>=1&&w<=20&&w>=1)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}for(i=1;i<=m+w;i++){printf("输入第%d个项目的名称:\n",i);scanf("%s",& p[i].name);printf("输入第%d个项目的前5名的学校编号:\n",i); for(j=1;j<=5;j++){y=0;while(1){scanf("%d",&x);if(x>=1&&x<=20)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}p[i].snum[j]=x;sch[x].score+=integral[j-1];if(i<=m)sch[x].male+=integral[j-1];else sch[x].female+=integral[j-1];}}}void print(int i){printf("%d%d%s%d%d%d%d%d%d",sch[i].num,setw(10),sch[i].name,setw(8),sch[i].score,setw( 9),sch[i].male,setw(10),sch[i].female);}void bianhao() //按编号排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].num>sch[j].num){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按编号排列:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);}void zongfen() //按学校总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].score<sch[j].score){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按学校总分排列:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);ofstream fout;fout.open("运动会分数统计.txt");fout<<"编号学校名称总分男子总分女子总分"<<endl;for(i=1;i<=n;i++){fout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9) <<sch[i].male<<setw(10)<<sch[i].female<<endl; }fout.close();}void malezf() //按学校男总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].male<sch[j].male){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按学校男子总分排列:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);}void femalezf() //按学校女总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].female<sch[j].female){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按学校女子总分排列:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);printf("\n");}void cxsch() //查询学校信息{int i,y,s;printf("输入需要查询的学校编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}printf("该学校相关信息:\n");printf("编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++){if(sch[i].num==s){print(i);break;}}printf("\n");}void cxxm() //查询项目信息{int i,y,s;printf("输入需要查询的项目编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf("输入数据有误,请重新输入:");}printf("%s前5名学校编号及名称为\n",p[s].name);printf("名次编号学校名称\n");for(i=1;i<=5;i++)printf(" %d %d%d%s\n",i,p[s].snum[i],setw(12),sch[ p[s].snum[i] ].name); printf("\n");}void solve() //菜单函数{int z;while(1){printf("\n选择您需要的操作(选择序号):\n"); printf("1.按学校编号排序输出\n");printf("2.按学校总分排序输出\n");printf("3.按学校男总分排序输出\n");printf("4.按学校女总分排序输出\n");printf("5.查询某个学校成绩\n");printf("6.查询某个项目成绩\n");printf("7.结束\n\n");scanf("%d",&z);if(z==1)bianhao();if(z==2)zongfen();if(z==3)malezf();if(z==4)femalezf();if(z==5)cxsch();if(z==6)cxxm();if(z==7)break;}}int main() //主函数{input();solve();return 0;}。
C语言运动会计分程序编写

C语言运动会计分程序编写简介本文档将指导您使用C语言编写一个运动会计分程序。
该程序可以用于记录运动会中的各项比赛成绩,并进行排名和统计。
通过编写此程序,您将学习C语言的基本语法和数据结构的应用。
目录•准备工作•程序框架•功能实现– 1. 添加参赛项目– 2. 添加运动员– 3. 记录成绩– 4. 排名和统计•总结准备工作在开始编写程序之前,您需要确保您已经安装了C语言的编译器。
您可以选择使用gcc或者其他常用的C语言编译器进行开发。
程序框架在编写程序之前,我们需要先设计程序的框架。
该程序需要实现以下功能:•添加参赛项目•添加运动员•记录成绩•排名和统计首先,我们需要定义一些数据结构来存储参赛项目、运动员和成绩信息。
接下来,我们将编写一系列的函数来实现上述功能。
以下是程序的框架:#include <stdio.h>// 定义数据结构:参赛项目struct Event {char name[50]; // 项目名称int participantCount; // 参赛人数// 其他项目相关信息...};// 定义数据结构:运动员struct Athlete {char name[50]; // 运动员姓名int score; // 运动员成绩// 其他运动员相关信息... };// 函数:添加参赛项目void addEvent();// 函数:添加运动员void addAthlete();// 函数:记录成绩void recordScore();// 函数:排名和统计void rankAndStats();int mn() {// 主程序逻辑return 0;}void addEvent() {// 添加参赛项目的具体逻辑}void addAthlete() {// 添加运动员的具体逻辑}void recordScore() {// 记录成绩的具体逻辑void rankAndStats() {// 排名和统计的具体逻辑}功能实现现在,我们将逐步实现程序的各个功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计工程训练 报告运动会分数统计系统课程名称 姓名 院(系) 专业班级 学号 指导教师教务处制C 语言程序设计工程训练 信息科学与技术学院1 需求分析. (1)2 系统总框图和功能模块说明 (2)2.1 系统总框图 (2)2.2 功能模块说明 (2)3 系统设计. (3)3.1 主要结构体 (3)3.2 主要功能函数 (3)3.3 关键函数的流程图 (4)4 系统调试. (4)5 总结. (7)6 源程序清单. (7)1需求分析1问题描述运动会分数统计参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1〜m女子m+仁m+w不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由使用者设定。
(m<=20 ,n <=202. 基本要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分;3) 可以按学校编号、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;5) 可以按项目编号查询取得前三或前五名的学校。
3. 测试数据1) 首先进入成绩录入界面,先输入参赛学校数,再输入男子组数和女子组数;2) 然后进入总目录;3) 输入:1输入成绩;4) 输入:2统计各校总分;5) 输入:3统计各校项目得分;6) 输入:4按学校总分排序输出;7) 输入:5按男团体总分排序输出;8) 输入:6按女团体总分排序输出;9) 输入:7按学校编号查询学校某个项目的成绩;10) 输入:8按项目编号查询取得前三名或前五名的学校;11) 输入:0退出;2系统总框图和功能模块说明2.1 系统总框图2.2 功能模块说明1) 输入:1输入成绩;............. .............. 输入某一项目的成绩2)输入: 2统计各校总分;........ •…统计各校所有项目总分之和3)输入:3 统计各校项目得分;••…•…输出各校各项目得分4)输入:4 按学校总分排序输出;………按照总分从大到小排序5)输入:5 按男团体总分排序输出;••…仅按照男子团体总分从大到小排序6) 输入:6按女团体总分排序输出;••…仅按照女子团体总分从大到小排序按项目编号查询取得前三名或前五名的学校*按学校编号查询学校某个项目的成绩按女团体总分排序输出按男团体总分排序输出1『按学校总分排序输出1统计各校个项目得分7) 输入:7按学校编号查询学校某个项目的成绩;•…输入学校编号及项目编号可查询该校的该项目成绩8) 输入:8按项目编号查询取得前三名或前五名的学校;•…输入项目编号可查询该项目获得名次的学校9) 输入:0退出;....... 退出系统3系统设计3.1主要结构体菜单号choo学校:num项目:ab男团、de女团、ke3.2主要功能函数void exit0()void in put()void each()void biaohao()void zongfen()void nanzon g()void nvzon g()void xuexiao()void xia ngmu()void main()3.3关键函数的流程图void exitO()void input()void each() void biaohao()Z -----------------------------------------------------------------------------------------------------------------------------void zongfen() void nanzon g() void nvzon g()void xuexiao() void xia ngmu()void main()4系统调试<1>开始界面,分别输入3、7、3.***运动会分数统计* *输入1后显示请选拝'1请愉人项甘1先号:1请摻頭第一、第二 弟三的名输丸荻芝学校代号,I 输入完冋2 H M MH M M3 ****** 4MWKHWK 5****** fl****** 9S.总号号成各l i w -1的五目 1分个得岀的出询询刖2多47^7 有几几 共有有少男女12345676?绩的f的五旦项或 分辻一一得蛍某罚Kin分学职的杳一族备校目入井学男辜苗 充岳 dE-一yFC ■-濒一也--止*N1Q输入2后显示请如2 学校代号=团体总成绩 坝或 S个三 得拦屮臺前询i ^^t l w s-l r •■\计期勇玄于项冷 -1嗨绩的的五mr:刖1分 个三 得前八負^学取E 三1234 5 65^13-号号学校代号:团休总成绩 1 : 5 喊绩的f的五 IT —別1分±-・ 得普某 ..屮出逆肆得 /且幫 «遗询<a备杳一二 一刖吨,^・小••戏J.•戏 " 二二一二冷 * * 二★二舞二 砂二一映123456789输入5后显示请选择;5学校代号:男子团体总成绩1 : 5输入6后显示 请选择;6学校代号:女子团体总成绩请选7更查询的学校1弋号’ 1 吏查询曲项刖弋号;1I 1所牟屜第1项目成绩为5肾学校un^刖分 得岀岀某前的出 分an^yt学取 询 分忌总号号叢S子总 成各&雇3JJ 检目 入^#学男玄子 H个一一二输入8后显示12345678校.学绩的f的五亘 项或个三岀岀某前 咸各鳥团团校目入丰学男十Z卄卄北二 I 二123456789分 得岀岀某前wiis八学取总询 的霽查分总总号号 成各套团里目入学男蛊子^^个_输入7后显示123J-5&78输入95总结本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。
学习的路很长。
再有要多问,几个人共同讨论会有意想不到的效果6源程序清单#in clude<stdio.h>#in clude<stdlib.h>int a,b,c,d,i,j;struct node{int num;};struct node *f[22];void exitO(){FILE *fp;int k;alp:if((fp=fope n( "e:\\sore.txt","w"))==NULL){prin tf("creat error\ n");prin tf(" 1*****try agai n\n");printf(" 2*****tui chu\n");printf(” 3*****return men u\n"); //回到主菜单//alj: scanf("%d",&k); if(k==1) goto alp;else if(k==2) exit(O);else if(k==3) return;else {printf(”输入错误,请重新输入:");goto alj;}} prin tf(fp,"\n\n");fprintf(fp," * 运动会分数统计表*\n\n\n");printf(fp," * 项目代号*");for(i=1;i<=c+d;i++)prin tf(fp,"%5d",i);prin tf(fp,"");printf(fp,"\n * 学校代号*");for(i=1;i<=a;i++){prin tf(fp,"%10d ",i);for(b=1;b<=c+d;b++){prin tf(fp,"%5d",f[i][b] .n um);}prin tf(fp,"\n");} prin tf(fp,"\n\n");printf(fp," the %d school numbers\n\n",a); /* 注:本次运动会有%d个学校参赛*/printf(fp," 1 ~ %d组是男子组,%d~ %d组是女子组\n",c,c+1,c+d); /* 其中1 ~ %d组是男子组,%d ~ %d组是女子组*/printf("\n* 比赛成绩已保存到当前路径下的sore.txt 文件中*\n\n");/* 比赛成绩已保存到当前路径下的"sore.txt" 文件中*/fclose(fp);exit(1);}/*主菜单*/int choose(){int choo;prin tf("\n\n 1******printf(” 2******printf(” 3****** printf(” 4******输入成绩\n");统计各学校的总分\n"); 统计各学校各项目的得分\n"); 按学校总分排序输出\n");printf(” 5****** 按男团体总分排序输出\n");printf(” 6****** 按女团体总分排序输出\n");printf(” 7****** 按学校编号查询学校某个项目的成绩\n"); printf(” 8****** 按项目编号查询取得前三或前五名的学校\n"); printf(” 9****** 退出\n\n ”);prin tf(" 请选择:");sea nf("%d",&choo);return(choo-l);}/*输入信息*/void in put(){int ab,ac,ae,af,g=1,get[5]={0,0,0,0,0};prin tf("\n 请输入项目代号:");ale:sca nf("%d",&ab);if(ab>c+d||ab<1){printf("\n 此项目代号不存在,重新输入:\n");goto ale;}ae=0;for(i=0;i<=a;i++){if(f[i][ab]. nu m!=0){ae=1;break;}}if(ae==1){al2: prin tf("\n 此项目成绩已被录入过,是否要重新录入:\n"); // 是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入) printf(” 1++++是\n");〃(若重新录入,以前的该项目成绩将被删除) printf(” 2++++否\n ”);//不要,待查证后再录入//sca nf("%d",&af);if(af==2){printf(" 已取消录入!\n");return;}else if(af==1){for(i=1;i<=a;i++){ 此项目成绩曾经已被录入过, ////if(f[i][ab]. nu m!=0){f[i][O]. num=f[i][0]. nu m-f[i][ab]. num;if(ab<=c)f[i][c+d+1]. num=f[i][c+d+1]. nu m-f[i][ab]. num;elsef[i][c+d+2]. num=f[i][c+d+2]. nu m-f[i][ab]. num;}f[i][ab] .n um=0;}}elsegoto al2;}al: printf("\n 此项目是以前几名为胜出者:\n"); // 选择得分标准//printf(” 3 ------ 以前三名\n");printf(” 5 ------ 以前五名\n");sca nf("%d",&ac);if(ac==3){prin tf(" 请按照第一、第二、第三的名次依次输入获胜学校代号:");af=5;for(i=0;i<3;i++){alq: scan f("%d", &ae);if(ae>a||ae<1){printf(” %d 学校代号不存在,重新输入第%d名的学校代号:",ae,g);goto alq;}for(b=0;b<5;b++){if(ae==get[b]){",g); printf(" 同一个学校不能在同一项目中有两个名次,请重新输入第%d£的学校代号:goto alq;}elseget[b]=ae;}f[ae][0]. num=f[ae][0]. num+af;f[ae][ab]. num=af;if(ab<=c)f[ae][c+d+1]. num=f[ae][c+d+1]. nu m+af;f[ae][c+d+2]. num=f[ae][c+d+2]. num+af;if(af>3)af=af-2;elseaf■-;g++;}}else if(ac==5){prin tf(" 请按照第一、第二、第三、第四、第五的名次依次输入获胜学校代号:");af=7;for(i=0;i<5;i++){alw: scan f("%d",&ae);if(ae>a||ae<1){printf(” %d 学校代号不存在,重新输入第%d名的学校代号:",ae,g);goto alw;}for(b=0;b<5;b++){if(ae==get[b]){",g); printf(" 同一个学校不能在同一项目中有两个名次,请重新输入第%d£的学校代号:goto alw;}elseget[b]=ae;}f[ae][0]. num=f[ae][0]. num+af;f[ae][ab]. num=af;if(ab<=c)f[ae][c+d+1]. num=f[ae][c+d+1]. nu m+af;elsef[ae][c+d+2]. num=f[ae][c+d+2]. num+af;if(af>3)af=af-2;elseaf■-;g++;}}elseprintf(" 输入完成! \n");}/*学校成绩*/void each(){printf("\n 学校代号:团体总成绩\n"); for(i=1;i<=a;i++){printf(" %d : %d\n",i,f[i][0] .n um); }}/*各项目成绩*/void biaohao(){prin tf("\n 项目代号:”);for(i=1;i<=c+d;i++){if(i>9)prin tf(" %d ",i);elseprin tf("%5d ",i);}prin tf("\n 学校代号:\n");for(i=1;i<=a;i++){prin tf("%7d ",i);for(b=1;b<=c+d;b++){if(f[i][b]. nu m>9)prin tf("%6d",f[i][b]. nu m);elseprin tf("%7d",f[i][b]. nu m);}prin tf("\n");}}/*按学校总分排序输出*/void zongfen(){struct nod{int num;};int ha;struct nod *de;de=(struct nod *)malloc(sizeof(struct no d)*a+1); printf("\n 学校代号:团体总成绩\n");for(i=1;i<=a;i++){de[i].ke=i;de[i]. num=f[i][0]. num;}for(i=1;i<=a;i++){for(b=i;b<=a;b++){if(de[b]. num >de[i]. num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b]. num;de[b]. num=de[i]. num;de[i]. num=ha;}}}for(i=1;i<=a;i++){prin tf(" %d : %d\n",de[i].ke,de[i]. nu m);}}/*按男子团队总分排序*/void nanzon g(){struct nod{int ke;int num;};int ha;struct nod *de;de=(struct nod *)malloc(sizeof(struct no d)*a+1); printf("\n 学校代号:男子团体总成绩\n"); for(i=1;i<=a;i++){de[i].ke=i;de[i]. num=f[i][c+d+1]. num;}for(i=1;i<=a;i++){for(b=i;b<=a;b++){if(de[b]. num >de[i]. num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b]. num;de[b]. num=de[i]. num;de[i]. num=ha;}}}for(i=1;i<=a;i++){prin tf(" %d : %d\n",de[i].ke,de[i]. nu m);}}/*按女子团队总分排序*/void nvzon g(){struct nod{int ke;int num;};int ha;struct nod *de;de=(struct nod *)malloc(sizeof(struct no d)*a+1); printf("\n 学校代号:女子团体总成绩\n"); for(i=1;i<=a;i++) {de[i].ke=i;de[i]. num=f[i][c+d+2]. num;}for(i=1;i<=a;i++){for(b=i;b<=a;b++){if(de[b]. num >de[i]. num){ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b]. num;de[b]. num=de[i]. num;de[i]. num=ha;}}}for(i=1;i<=a;i++){printf(" %d : %d\n",de[i].ke,de[i].num);}}/*按学校编号查询学校某个项目的成绩*/void xuexiao(){int dr,dt;prin tf("\n 要查询的学校代号:");aly:sca nf("%d", &dr);if(dr>a||dr<1){printf(" 学校代号不存在,重新输入:");goto aly;}printf(”要查询的项目代号:");alo:sca nf("%d", &dt);if(dt>c+d||dt<1){printf(" 项目代号不存在,重新输入:");goto alo;}printf(”第%d 所学校的第%d 项目成绩为%d\n",dr,dt,f[dr][dt].num); }/*按项目编号查询取得前三或前五名的学校*/void xia ngmu(){int ge,sedy=0;prin tf("\n 要查询的项目代号:");all:sca nf("%d", &ge);if(ge>c+d||ge<1){printf(" 没有此项目代号,重新输入:\n");goto all;}for(i=1;i<=a;i++){if(f[i][ge]. nu m==2)sedy=1;}if(sedy==0){printf(”此项目没有录入成绩\n");return;}for(i=1;i<=a;i++){if(f[i][ge]. num==7){printf(" 此项目取前5名学校成绩高到低依次为:\n");break;}}if(i==a+1)printf(”此项目取前3名学校成绩高到低依次为:\n ");for(i=7;i>0;i--){for(b=1;b<=a;b++){if(f[b][ge]. num==i)printf(” %d 号学校\n",b);}}}void(*g[])()={i nput,each,biaohao,z ongfen,nanzong,nvzon g,xuexiao,xia ngmu,exitO};/*主函数*/void mai n(){int choos;prin tf("\n\n * * * 运动会分数统计* * *\n\n\n");prin tf(" 共有多少个学校参赛:");sea nf("%d",&a);while(a<=0||a>20){if(a<=0){prin tf("\n 参赛学校个数不能是负数或零\n\n");prin tf(" 共有多少个学校参赛:");sca nf("%d",&a);}if(a>20){prin tf("\n 参赛学校个数不能大于20\n\n");prin tf(" 共有多少个学校参赛:");sca nf("%d",&a);}}prin tf(" 有几个男子组:");sca nf("%d",&c);prin tf(" 有几个女子组:");sca nf("%d", &d);for(i=0;i<=a;i++){f[i]=(struct node *)malloc(sizeof(struct no de)*(c+d+3)); for(j=0;j<=c+d+2;j++)f[i][j]. nu m=0;}choos=choose();while(1){while(choos<0||choos>8)choos=choose();(*g[choos])();prin tf("\n");choos=choose();}}程序设计工程训练成绩评定标准表欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚•谢谢!你的意见是我进步的动力,希望您提出您宝贵的意见!让我们共同学习共同进步!学无止境•更上一层楼。