C语言-校际运动会管理系统

合集下载

校运动会管理系统报告C语言(含完整代码)

校运动会管理系统报告C语言(含完整代码)

目录陈一、程序分析与设计 (2)二、流程图 (4)三、源程序清单 (4)四、调试过程 (15)五、程序有待改进的地方 (19)六、本次实习的收获和建议 (19)附录......................................................... 错误!未定义书签。

一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)1.题目描述初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;即要求输入一些基础数据,如院系名称,每个院系参赛选手及选手编号。

竞赛项目名称与代号。

这些数据存储在文本文件中,不需要每次都单条录入。

各项目名次取法有如下几种:取前4名:第1名得分6,第2名得分4,第3名得分2,第4名得分1;由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。

所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。

2.需求分析根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。

3.总体设计根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。

具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

4.详细设计(1)主函数主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。

其中功能模块用菜单方式选择。

(2)密码登陆函数首先进入欢迎界面,提示用户输入密码进入系统,密码输入次数限制为三次,三次输入错误则退出系统,登陆成功显示菜单栏(3)菜单函数提醒用户根据要求选择功能,以及多次功能选取(4)输入函数进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。

运动会管理系统c语言程序设计

运动会管理系统c语言程序设计

运动会管理系统C语言程序设计
简介
运动会管理系统是一个用C语言编写的程序,用于管理学校或机构举办的各类
运动会活动。

该系统能够帮助组织者有效地安排赛程、记录成绩以及生成相关报表,提高管理效率和赛事质量。

功能模块
1. 用户登录
•提供管理员和裁判员两类用户登录选项
•管理者可以对比赛项目、队伍信息进行管理
•裁判员可以录入比赛成绩
2. 赛事管理
•管理者可以添加、编辑、删除赛事项目
•每个赛事项目包括项目名称、参赛队伍、赛程安排等信息
3. 队伍管理
•管理者可以添加、编辑、删除参赛队伍
•每个参赛队伍包括队名、队员信息等
4. 成绩录入
•裁判员可以录入每个队伍在各个项目中的成绩
•系统可以自动计算并显示队伍的总成绩
5. 报表生成
•系统可以根据录入的成绩数据生成成绩报表
•报表可以按照项目、队伍等不同维度展示成绩数据
技术实现
该系统基于C语言编写,采用了结构体、文件读写、数据处理等基本功能和技术。

通过数据结构的设计和文件操作,实现了用户登录、赛事管理、队伍管理、成绩录入、报表生成等功能。

系统优势
•界面简洁明了,操作便捷高效
•数据处理准确可靠,确保成绩数据的准确性
•面向对象的设计,方便扩展和维护
结语
运动会管理系统C语言程序设计为学校或机构举办运动会提供了一种高效的管理方式,使赛事组织更加顺畅和专业化。

通过不断的优化和改进,该系统能够更好地满足不同运动会的管理需求,为相关活动的顺利进行提供有力支持。

C语言课程设计校际运动会管理系统

C语言课程设计校际运动会管理系统

中国地质大学本科生课程论文封面课程名称C语言课程设计教师姓名邵老师本科生姓名赵鸿本科生学号20091000477本科生专业应用化学所在院系材化学院类别: C.本科生日期: 2010 年7 月5 日课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录课程设计评语 (2)目录 (3)1.课程论文题目 (4)2.程序设计思路 (4)3.功能模块图 (4)4.数据结构设计 (5)5.算法设计 (7)6.程序代码 (11)7.程序运行结果 (20)8.编程中遇到的困难及解决方法 (23)9.总结心得及良好建议 (23)10.致谢 (24)课程论文题目1.校际运动会管理系统一、题目要求(1)信息初始化输入:N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数;各项目名次取法有如下几种:取前5名:第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;用户自定义:各名次权值由用户指定。

(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。

2.程序设计思路根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。

根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。

具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

3.功能模块图(每个功能模块都标注函数名称,如右图)4.数据结构设计数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。

比如学校结构体成员包括学校校名、竞赛项目、得分;项目结构体成员包括项目名、权值。

C语言课程设计校际运动会管理系统

C语言课程设计校际运动会管理系统

优化策略:根据测试结果进 行代码优化、性能优化等
测试目的:确保系统在各种 情况下都能正常运行
优化效果:提高系统稳定性、 响应速度和用户体验
07
系统部署与维护
系统部署方案与实施
硬件需求:服 务器、网络设 备、存储设备

软件需求:操 作系统、数据 库管理系统、 Web服务器等
部署步骤:安 装操作系统、 安装数据库管 理系统、安装 Web服务器、 部署应用程序
系统安全测试与优化
安全测试:对 系统进行安全 漏洞扫描,确
保系统安全
优化措施:加 强系统安全防 护,提高系统
安全性能
安全策略:制 定安全策略, 确保系统安全
运行
安全培训:对 系统管理人员 进行安全培训, 提高安全意识
和技能
系统可用性测试与优化
测试方法:黑盒测试、白盒 测试、灰盒测试等
测试内容:功能测试、性能 测试、兼容性测试等
单击此处添加副标题
C语言课程设计校际运动
会管理系统
汇报人:
目录
01 02 03 04 05 06
添加目录项标题 系统概述
系统需求分析 系统设计 系统实现
系统测试与优化
01
添加目录项标题
02
系统概述
系统的目标和意义
提高校际运动会 的管理效率
方便学生、教师 和管理人员查询 比赛信息
提供实时的比赛 成绩和排名
测试方法: 黑盒测试、 白盒测试、 灰盒测试
测试内容: 功能测试、 性能测试、 兼容性测 试、安全 性测试
测试工具:
JMeter、
Seleniu
m

Appium

测试结果 分析:找 出问题, 提出优化 方案

C课程设计--校际运动会管理系统

C课程设计--校际运动会管理系统

{ printf("%13d%12d\n",de[i].ke,de[i].num); } } void nvzong() { struct nod { int ke; int num; }; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf(" 按女子团体总分排序输出\n\n"); 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("%15d%13d\n",de[i].ke,de[i].num); } } void xuexiao() { int dr,dt;
{ if(ae==get[b]) { printf(" 同一个学校不能在同一项目中有两个名次 , 请重新输入第 %d 名的学校代号! ! !\n",g); goto alw; } else get[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].num+af; else f[ae][c+d+2].num=f[ae][c+d+2].num+af; if(af>3) af=af-2; else af--; g++; } } else goto al; printf("\n\n 输入完成 ! ! ! ! \n"); } void each() { printf("\n 对应的格式为:\n 学校代号:团体总成绩\n\n "); for(i=1;i<=a;i++) { printf("%2d:%3d ",i,f[i][0].num); if(i%3==0) printf("\n "); } } void biaohao() { printf("\n 项目代号 "); for(i=1;i<=c+d;i++) { if(i>9) printf("%4d ",i);

C语言课程设计报告-学校运动会管理系统

C语言课程设计报告-学校运动会管理系统

C语言课程设计报告-学校运动会管理系统研究方案一、研究背景和意义学校运动会是中小学教育体育活动中的重要组成部分,通过开展运动会可以增强学生体质,培养团队合作精神,丰富校园文化。

而学校运动会管理系统作为一种信息化管理工具,能够提高运动会的组织效率和管理水平,有助于实现运动会的顺利进行。

然而目前的学校运动会管理系统存在一些问题,如功能不完善、操作过于复杂、数据统计不准确等。

本研究旨在针对这些问题,提出一种新的学校运动会管理系统,改善运动会管理工作,提高运动会的组织效率和管理水平。

二、研究目标和内容本研究的主要目标是设计和开发一种功能完善、易操作且准确统计数据的学校运动会管理系统。

具体内容包括:1. 分析当前学校运动会管理系统存在的问题和不足,明确改进方向。

2. 设计学校运动会管理系统的整体架构和功能模块,并选择合适的开发工具和技术。

3. 利用所选开发工具和技术进行系统的开发和实现。

4. 对开发完成的学校运动会管理系统进行实地调查和测试,收集相关数据。

5. 对采集到的数据进行整理和分析,总结系统的优缺点,并提出改进建议。

三、方案实施情况1. 针对学校运动会管理系统的问题和不足进行调研和分析,形成问题清单。

2. 根据问题清单,设计学校运动会管理系统的整体架构和功能模块。

3. 选择合适的开发工具和技术,准备开发所需要的环境和资源。

4. 利用所选开发工具和技术进行系统的开发和实现,包括数据库设计、界面设计、功能实现等。

5. 对开发完成的学校运动会管理系统进行实地调查和测试,收集用户的意见和建议。

6. 对收集到的数据进行整理和分析,评估系统的优缺点,并提出改进建议。

数据采集和分析为了对学校运动会管理系统进行评估和改进,我们进行了实地调查和数据采集。

具体步骤如下:1. 设计调查问卷,包括系统使用体验、功能满意度、操作便捷性等方面。

2. 针对学校运动会参与者和管理者,分别发放问卷,要求实名填写,并保证数据的保密性。

C语言实现校运动会项目管理系统

C语⾔实现校运动会项⽬管理系统本⽂实例为⼤家分享了C语⾔实现校运动会项⽬管理系统的具体代码,供⼤家参考,具体内容如下源码#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 3 //参与运动会的学院数⽬//定义⼀个结构体typedef struct project{char xiangmu[40]; //⽐赛项⽬名称char name[N][40]; //学院名称float score[N]; //单项成绩int no[N]; //单项名次struct project *next; //指向下⼀节点的指针} Proj;typedef struct sumno{char name[40];float sum;} SumNo;//函数声明放在这⾥void ListCreate(Proj *L, int n); //创建链表节点void ListSearch(Proj *L); //查找某个运动会项⽬信息void ListModify(Proj *L); //修改某个运动会项⽬信息void ListDelete(Proj *L); //删除某个运动会项⽬信息void Input(Proj *p, int i); //输⼊运动会项⽬信息void Output(Proj *L); //输出每个运动会项⽬的学院成绩排名信息void PerRank(Proj *L); //计算每个运动会项⽬的学院成绩排名并输出void SumRank(Proj *L); //所有项⽬每个学院的总成绩和排名void Menu(); //校运动会项⽬管理系统的菜单//校运动会项⽬管理系统的主函数⼊⼝int main(){int item, n; //item⽤于接收输⼊的命令,n⽤于接收输⼊的项⽬数Proj *L = NULL; //初始化⼀个头节点L = (Proj *)malloc(sizeof(Proj)); //为头节点开辟内存空间L->next = NULL; //将头节点的指针域置空do{Menu(); //菜单printf("请输⼊相应的数字,进⾏相应的操作:\n");scanf("%d", &item);system("cls");switch (item){case 1:printf("请输⼊您要录⼊的项⽬数⽬:");scanf("%d", &n);ListCreate(L, n); //创建项⽬链表节点getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 2:ListSearch(L); //查找项⽬的相关信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 3:ListModify(L); //修改项⽬信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 4:ListDelete(L); //删除项⽬的信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 5:PerRank(L); //计算每个运动会项⽬的学院成绩排名Output(L); //输出每个运动会项⽬的学院成绩排名信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 6:SumRank(L); //所有项⽬每个学院的总成绩和排名getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 0:printf("即将退出校运动会项⽬管理系统....."); //退出校运动会项⽬管理系统 exit(0);default:printf("您输⼊的指令不正确,请重新输⼊");}printf("\n\n");} while (item);return 0;}//创建链表,将新⽣成的节点插⼊到链表的表头void ListCreate(Proj *L, int n){int i;for (i = 0; i < n; i++){Proj *p;//将新⽣成的节点插⼊到链表中p = NULL;p = (Proj *)malloc(sizeof(Proj));Input(p, i);p->next = L->next;L->next = p;}}//查找项⽬信息void ListSearch(Proj *L){int k;char n[40];Proj *p = L->next;if (p == NULL)printf("数据为空,⽆法查找!");else{printf("请输⼊您要查找的项⽬名称:");scanf("%s", n);while (strcmp(p->xiangmu, n) != 0){p = p->next;if (p == NULL){printf("没有找到相关信息\n");return;}}PerRank(L);printf("该项⽬的相关信息如下:\n");printf("学院名称\t单项成绩\t单项名次\n\n");for (k = 0; k < N; k++){printf("%s\t\t", *((p->name) + k));printf("%.2f\t\t", *((p->score) + k));printf("%d\t\n", *((p->no) + k));}printf("\n\n");}}//修改项⽬的相关信息void ListModify(Proj *L){int item, k, a;char n[40], m[40];Proj *p = L->next;if (p == NULL)printf("数据为空,⽆法修改!");else{printf("请输⼊您要修改的项⽬名称:");scanf("%s", n);while (strcmp(p->xiangmu, n) != 0){p = p->next;if (p == NULL){printf("没有找到相关信息\n");return;}}printf("您是否需要修改项⽬名称(是输⼊1,不是输⼊0):"); scanf("%d", &a);if (a == 1){printf("请输⼊您修改后的项⽬名称:");scanf("%s", m);strcpy(p->xiangmu, m);printf("修改成功!");}else if (a == 0){printf("请输⼊您要修改的学院:");scanf("%s", n);for (k = 0; k < N; k++){if (strcmp(*((p->name) + k), n) == 0)break;}printf("请输⼊你要修改的项⽬信息类型:\n");printf("1、学院名称\n2、该学院该项⽬的成绩\n");scanf("%d", &item);switch (item){case 1:printf("请输⼊修改后的学院名称:");scanf("%s", m);strcpy(*((p->name) + k), m);printf("修改成功");break;case 2:printf("请输⼊您修改后的该学院该项⽬的成绩:"); scanf("%f", (p->score) + k);printf("修改成功");break;default:printf("您输⼊的指令错误!");break;}}elseprintf("您输⼊错误!");}}//删除项⽬的相关信息void ListDelete(Proj *L){char n[40];Proj *p = L->next, *pre = L; //定义p指针指向头节点的指向,定义pre指向头节点,pre始终指向p的前驱节点 if (p == NULL)printf("数据为空,⽆法删除!");else{printf("请输⼊您要删除的项⽬名称:");scanf("%s", n);while (strcmp(p->xiangmu, n) != 0){pre = p;p = pre->next;if (p == NULL){printf("没有找到相关信息,⽆法删除\n");return;}}pre->next = p->next;free(p);printf("删除成功");}}//计算每个运动会项⽬的学院成绩排名void PerRank(Proj *L){int i, j, k;float t;char na[40] = {' '};Proj *p = L->next;if (p == NULL)printf("数据为空,⽆法排序!");else{while (p != NULL){for (i = 0; i < N; i++){for (j = 0; j < N - i - 1; j++){if (*((p->score) + j) < *((p->score) + j + 1)){t = *((p->score) + j);*((p->score) + j) = *((p->score) + j + 1);*((p->score) + j + 1) = t;strcpy(na, *((p->name) + j));strcpy(*((p->name) + j), *((p->name) + j + 1));strcpy(*((p->name) + j + 1), na);}}}for (k = 0; k < N; k++)*((p->no) + k) = k + 1;p = p->next;}}}//所有项⽬每个学院的总成绩和排名;void SumRank(Proj *L){int i, j, k;float t;SumNo s[N],s0;Proj *p = L->next;for (i = 0; i < N; i++){strcpy(s[i].name, *((p->name) + N - i - 1));s[i].sum = 0;}if (p == NULL)printf("数据为空!");else{while (p != NULL){for(i=0;i<N;i++)s[i].sum += *((p->score) + i);p = p->next;}for (j = 0; j < N; j++){for (k = 0; k < N - j - 1; k++){if(s[k].sum>s[k+1].sum){s0 = s[k];s[k] = s[k + 1];s[k + 1]= s0;}}}p = L->next;printf("学院名称\t总成绩\t\t总排名\n");for (i = N - 1; i >= 0; i--){printf("%s\t\t", s[i].name);printf("%.2f\t\t", s[i].sum);printf("%d\t\t", N - i);printf("\n");}}}//输⼊项⽬的相关信息void Input(Proj *p, int i){int j;printf("请输⼊第%d个⽐赛项⽬名称:", i + 1);scanf("%s", p->xiangmu);for (j = 0; j < N; j++){printf("请输⼊第%d个学院的名称:", j + 1);scanf("%s", (p->name) + j);printf("请输⼊该学院的该项⽬的成绩:");scanf("%f", (p->score) + j);}}//输出全部项⽬信息void Output(Proj *L){int k;Proj *p = L->next;while (p != NULL){printf("\t\t项⽬:%s\n\n", p->xiangmu);printf("学院名称\t单项成绩\t单项名次\n\n");for (k = 0; k < N; k++){printf("%s\t\t", *((p->name) + k));printf("%.2f\t\t", *((p->score) + k));printf("%d\t\n", *((p->no) + k));}printf("\n\n");p = p->next;}}//校运动会项⽬管理系统的菜单void Menu(){printf("\n\n");printf("\t\t\t===================校运动会项⽬管理系统==================\n"); printf("\t\t\t* 作者:XXX 班级:⼈⼯智能XXXX 学号:XXXXXXXXX *\n");printf("\t\t\t* *\n");printf("\t\t\t* 1>. 录⼊运动会项⽬信息 *\n");printf("\t\t\t* 2>. 查找某个运动会项⽬信息 *\n");printf("\t\t\t* 3>. 修改某个运动会项⽬信息 *\n");printf("\t\t\t* 4>. 删除某个运动会醒⽬信息 *\n");printf("\t\t\t* 5>. 每个运动会项⽬的学院成绩排名 *\n");printf("\t\t\t* 6>. 所有项⽬每个学院的总成绩和排名 *\n");printf("\t\t\t* 0>. 退出管理系统 *\n");printf("\t\t\t* 欢迎使⽤本系统!*\n");printf("\t\t\t=========================================================\n"); printf("\t\t\t输⼊选项,按回车进⼊选项: \n");}主菜单截图以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

C语言课程设计-学校运动会管理系统(含调试图)计算机演示教学

C语言课程设计-学校运动会管理系统(含调试图)计算机XXXXX大学XXXXXXXXX学院XXXX—XXXX学年第一学期《C程序设计》课程设计题目名称:学校运动会管理系统姓名学号班级指导教师编写日期成绩:目录1需求分析 (4)2总体设计 (4)3详细设计: (5)3.1信息录入 (5)3.2信息修改 (5)3.3信息删除 (6)3.4信息查询 (6)3.5信息输出及退出系统 (7)4程序运行结果及分析 (7)6参考文献 (8)7致谢 (8)1需求分析在进行管理得方法和手段方面,最有效得工具就是电脑管理了系统实现运动,会的信息记录和存储,进行全面自动管理,大幅度提高了信息管理得效率,使得运动会能够更加圆满得完成。

因此,校运动会管理系统显得尤为重要。

2总体设计本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。

有几种目标:●支持输入各个项目的基本信息;●可以按比赛项目编号或名称查询、删除、修改信息;●可以按运动员编号或姓名查询、删除、修改信息;●数据输入信息并能随时查询。

3详细设计:3.1信息录入3.2信息修改3.3信息删除3.4信息查询3.5信息输出及退出系统4程序运行结果及分析5结论与心得由于对较为复杂的系统程序不能很灵活地开发,在整个过程中遇到了不少的困难;但整个实践过程使我们在C编程方面有了更好的了解,同时在程序开发方面的能力得到了一定的提高,而且还增强了我们对于各种实践的兴趣。

整个实践过程让我们认识到:勤奋与实践最能挺升自身的能力。

6参考文献[1]谭浩强,《C程序设计(第四版)》,北京:清华大学出版社,2010.67致谢能够完成这次课程设计要感谢c语言课程的老师,他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。

这篇论文是在老师的精心指导和大力支持下才完成的。

最后还要感谢各位同学的帮助。

8附源代码#include<iostream>#include<fstream>#include<string>using namespace std;void fun1(){cout<<"******************************"<<endl;cout<<endl; cout<<"******学校运动会管理系统******"<<endl;cout<<"----数据录入请按:1----"<<endl;cout<<"----数据修改请按:2----"<<endl;cout<<"----数据删除请按:3----"<<endl;cout<<"----数据查询请按:4----"<<endl;cout<<"----数据显示请按:5----"<<endl;cout<<"----退出系统请按:6----"<<endl;cout<<endl; cout<<"*******************************"<<endl;cout<<endl; cout<<"*****请输入一个数据,并按回车键!*****"<<endl;}class Match{public: Match *next;//为创建链表做准备int number; //比赛项目编号char call[10]; //比赛项目名称char time[10]; //比赛时间char place[20]; //比赛地点friend void input1();};void input1(){ofstream fout("e:\\比赛项目.dat",ios::app);char ch; Match a;do { cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."<<endl; cin>>a.number>>a.call>>a.place>>a.time;a.next=NULL;fout.write((char *)&a,sizeof(Match));cout<<"是否继续输入,如果继续键入Y|y"<<endl;cin>>ch;}while(ch=='y'||ch=='Y');fout.close();}Match *head1; void creat(){head1=NULL;Match *p,*q=head1;ifstream fin("e:\\比赛项目.dat",ios::in);if(!fin){cout<<"文件打开失败!"<<endl; exit(0);}p=new Match;fin.read((char*)p,sizeof(Match));while(!fin.eof()){if(head1==NULL) head1=p;else q->next=p;q=p;p=new Match;fin.read((char*)p,sizeof(Match));}fin.close();} int change1() //对比赛项目相关信息修改{ cout<<"您正在进行修改比赛项目有关事项操作!"<<endl; creat();Match *p1;p1=head1;cout<<"请输入要修改比赛项目的编号:"<<endl;int number1;//要修改的比赛项目编号 int sign=0;//设置的标记变量 cin>>number1;while(p1!=NULL){ if(p1->number==number1) {sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要修改的记录!"<<endl;else{cout<<"请选择要修改比赛项目的那些信息"<<endl;cout<<"------修改比赛项目的编号----1"<<endl;cout<<"------修改比赛项目的名称----2"<<endl;cout<<"------修改比赛时间----3"<<endl;cout<<"------修改比赛地点----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//新的整形数据 char info[20];//新的字符数组 cin>>a;switch(a) { case 1:cout<<"请输入新的比赛编号:"<<endl;cin>>nu;p1->number=nu;cout<<"比赛项目编号修改成功!"<<endl;break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;cin>>info;strcpy(p1->call,info);cout<<"比赛项目名称修改成功!"<<endl;break;case 3:cout<<"请输入新的比赛时间:"<<endl;cin>>info;strcpy(p1->time,info);cout<<"比赛项目时间修改成功!"<<endl;break;case 4:cout<<"请输入新的比赛地点:"<<endl;cin>>info;strcpy(p1->place,info);cout<<"比赛项目地点修改成功!"<<endl;break;ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;}fout.close();}return 0;}int delete1() //对比赛项目相关信息进行删除{creat();Match *p1,*p2;p2=p1=head1;cout<<"请选择要删除比赛项目的那些信息"<<endl;cout<<"------删除比赛项目的编号----1"<<endl;cout<<"------删除比赛项目的名称----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int n;cin>>n;int num,flag=0;char cal[10];switch(n) {case 1: cin>>num;while(p1!=NULL){if(p1->number==num){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;p2->next=p1->next;case 2: cin>>cal;while(p1!=NULL){if(!strcmp(p1->call,cal)){flag=1;break;} p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;elsep2->next=p1->next;} ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;}fout.close();return 0;}void print1(){creat();Match *p1=head1;cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<<endl; break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;cin>>info;strcpy(p1->call,info);cout<<"比赛项目名称修改成功!"<<endl;break;case 3:cout<<"请输入新的比赛时间:"<<endl;cin>>info;strcpy(p1->time,info);cout<<"比赛项目时间修改成功!"<<endl;break;case 4:cout<<"请输入新的比赛地点:"<<endl;cin>>info;strcpy(p1->place,info);cout<<"比赛项目地点修改成功!"<<endl;break;}ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;}fout.close();}return 0;}int delete1() //对比赛项目相关信息进行删除{creat();Match *p1,*p2;p2=p1=head1;cout<<"请选择要删除比赛项目的那些信息"<<endl;cout<<"------删除比赛项目的编号----1"<<endl;cout<<"------删除比赛项目的名称----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int n;cin>>n;int num,flag=0;char cal[10];switch(n) {case 1: cin>>num;while(p1!=NULL){if(p1->number==num){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;else p2->next=p1->next;case 2: cin>>cal;while(p1!=NULL){if(!strcmp(p1->call,cal)){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;else p2->next=p1->next;}ofstream fout("e:\\比赛项目.dat",ios::out);p1=head1;while(p1!=NULL){fout.write((char*)p1,sizeof(Match));p1=p1->next;} fout.close();return 0;}void print1(){creat();Match *p1=head1;cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<<endl;while(p1!=NULL){cout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl; p1=p1->next;}}void find1(){creat();Match *p1;p1=head1;int sign=0;//设置的标记变量 cout<<"请选择要查询比赛项目的哪些信息"<<endl; cout<<"------按比赛项目的编号查询----1"<<endl;cout<<"------按比赛项目的名称查询----2"<<endl;cout<<"------按比赛时间查询----3"<<endl;cout<<"------按比赛地点查询----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//查询整形数据条件char info[20];//查询字符型数据条件 cin>>a;switch(a){case 1:cout<<"请输入要查询的比赛编号:"<<endl;cin>>nu;while(p1!=NULL){if(p1->number==nu){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;else cout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl;break;case 2:cout<<"请输入要查询的比赛项目名称:"<<endl;cin>>info while(p1!=NULL) { if(p1->call==info) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl;break;case 3:cout<<"请输入要查询的比赛时间:"<<endl;cin>>info;while(p1!=NULL){if(!strcmp(p1->time,info)) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl; break;case 4:cout<<"请输入要查询的比赛地点:"<<endl; cin>>info;while(p1!=NULL){if(!strcmp(p1->place,info)){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->call<<'\t'<<p1->time<<'\t'<<p1->place<<endl;break;}}class Athlet{public: Athlete *next;int number;//运动员的编号 char name[10];//运动员的姓名 char part[20];//运动员所属工作单位或省份 char sex[20];//运动员性别 int age;//运动员年龄 friend void input2();};void input2(){ofstream fout("e:\\运动员.dat",ios::app);char ch;Athlete b;do{cout<<"请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."<<endl; cin>>b.number>>>>b.sex>>b.age>>b.part;b.next=NULL;fout.write((char *)&b,sizeof(Athlete));cout<<"是否继续输入,如果继续键入Y|y"<<endl;cin>>ch;}while(ch=='y'||ch=='Y');}Athlete *head4; void creat2(){head4=NULL;Athlete *p,*q=head4;ifstream fin("e:\\运动员.dat",ios::in);if(!fin){ cout<<"文件打开失败!"<<endl; exit(0); } p=new Athlete;fin.read((char*)p,sizeof(Athlete));while(!fin.eof()){ if(head4==NULL) head4=p;else q->next=pq=p;p=new Athlete;fin.read((char*)p,sizeof(Athlete));}fin.close();}int change2() //对运动员相关信息修改{ cout<<"您正在进行修改运动员基本信息操作!"<<endl;creat2();Athlete *p1;p1=head4;cout<<"请输入要修改运动员的编号:"<<endl;int number1;//要修改的运动员编号 int sign=0;//设置的标记变量 cin>>number1;while(p1!=NULL){if(p1->number==number1){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要修改的记录!"<<endl;else{cout<<"请选择要修改运动员的哪些信息"<<endl;cout<<"------修改运动员的编号----1"<<endl;cout<<"------修改运动员的姓名----2"<<endl;cout<<"------修改运动员所属工作单位或省份----3"<<endl; cout<<"------修改运动员性别----4"<<endl;cout<<"------修改运动员年龄----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//新的整形数据 char info[20];//新的字符数组 cin>>a;switch(a){case 1:cout<<"请输入新的运动员编号:"<<endl;cin>>nu;p1->number=nu;cout<<"运动员的编号修改成功!"<<endl;break;case 2:cout<<"请输入新的运动员姓名:"<<endl;cin>>info;strcpy(p1->name,info);cout<<"运动员姓名修改成功!"<<endl;break;case 3:cout<<"请输入新的运动员所属工作单位或省份:"<<endl;cin>>info;strcpy(p1->part,info);cout<<"运动员所属工作单位或省份修改成功!"<<endl;break;case 4:cout<<"请输入新的性别:"<<endl;cin>>info;strcpy(p1->sex,info);cout<<"运动员性别修改成功!"<<endl;break;case 5:cout<<"请输入新的年龄:"<<endl;cin>>nu;p1->age=nu, cout<<"运动员年龄修改成功!"<<endl;break;}ofstream fout("e:\\运动员.dat",ios::out);p1=head4;while(p1!=NULL){fout.write((char*)p1,sizeof(Athlete));p1=p1->next;}fout.close();}return 0;}int delete2()//对运动员相关信息进行删除{creat2();Athlete *p1,*p2;p2=p1=head4;cout<<"请选择要删除运动员的哪些信息"<<endl;cout<<"------删除运动员的编号----1"<<endl;cout<<"------删除运动员的姓名----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int n;cin>>n;int num,flag=0;char na[10];switch(n) {case 1: cin>>num;while(p1!=NULL){if(p1->number==num){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;elsep2->next=p1->next;case 2: cin>>na;while(p1!=NULL){if(!strcmp(p1->name,na)){flag=1;break;}p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;else p2->next=p1->next;}ofstream fout("e:\\运动员.dat",ios::out);p1=head4; while(p1!=NULL)}fout.write((char*)p1,sizeof(Athlete));p1=p1->next;}fout.close();return 0;}void find2(){ creat2();Athlete *p1;p1=head4;int sign=0;//设置的标记变量 cout<<"请选择要查询运动员的哪些信息"<<endl; cout<<"------按运动员的编号查询----1"<<endl;cout<<"------按运动员的姓名查询----2"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//查询整形数据条件 char info[20];//查询字符型数据条件cin>>a;switch(a){ case 1:cout<<"请输入要查询的运动员编号:"<<endl;cin>>nu;while(p1!=NULL){if(p1->number==nu){sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->part<<'\t'<<p1->sex<<'\t'<<p1->age<<endl;break;case 2:cout<<"请输入要查询的运动员姓名:"<<endl;cin>>info;while(p1!=NULL){if(p1->name==info) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;elsecout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->part<<'\t'<<p1->sex<<'\t'<<p1->age<<endl;break;}}void print2(){ creat2();Athlete *p1=head4;cout<<"请分别输出运动员编号、姓名、所属省份或工作单位、性别、年龄."<<endl;while(p1!=NULL){cout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->part<<'\t'<<p1->sex<<'\t'<<p1->age<<endl; p1=p1->next;}}class Message { public: Message *next;char name[10];//运动员姓名 char avent[10];//运动员参加的某比赛项目名称int score //成绩 int ca;//名次 friend void input3();};void input3(){ofstream fout("e:\\比赛赛事.dat",ios::app);char ch;Message c;do{ cout<<"请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次."<<endl; cin>>>>c.avent>>c.score>>c.ca;c.next=NULL;fout.write((char *)&c,sizeof(Message));cout<<"是否继续输入,如果继续键入Y|y"<<endl;cin>>ch;}while(ch=='y'||ch=='Y');fout.close();}Message *head7;void creat3(){head7=NULL;Message *p,*q=head7;{ifstream fin("e:\\比赛赛事.dat",ios::in);if(!fin){ cout<<"文件打开失败!"<<endl; exit(0);} p=new Message;fin.read((char*)p,sizeof(Message));while(!fin.eof()){if(head7==NULL) head7=p;elseq->next=p;q=p;p=new Message;fin.read((char*)p,sizeof(Message));}fin.close();}int change3() //修改比赛赛事信息{cout<<"您正在进行修改比赛赛事有关事项操作!"<<endl;creat3();Message *p1;p1=head7;cout<<"请输入参赛运动员姓名及参赛项目名称! "<<endl;char na[20];char info[20];int sign=0;//设置的标记变量cin>>na>>info;while(p1!=NULL){if((p1->name==na)&&(p1->avent==info)) {sign=1;break;}p1= p1->next;}if (sign==0) cout<<"没有找到要修改的记录!"<<endl;else{cout<<"请选择要修改比赛赛事的哪些信息"<<endl;cout<<"------修改参赛运动员的姓名----1"<<endl;cout<<"------修改比赛项目的名称----2"<<endl;cout<<"------修改比赛成绩----3"<<endl;cout<<"------修改比赛名次----4"<<endl;cout<<"请输入对应信息的编号"<<endl;int a;int nu;//新的整形数据 char info[20];//新的字符数组 cin>>a;switch(a){case 1:cout<<"请输入新的参赛运动员姓名:"<<endl;cin>>info;strcpy(p1->name,info);cout<<"参赛运动员姓名修改成功!"<<endl; break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;cin>>info;strcpy(p1->avent,info);cout<<"比赛项目名称修改成功!"<<endl;break;case 3:cout<<"请输入新的比赛成绩:"<<endl;cin>>nu;p1->score=nu;break;}ofstream fout("e:\\比赛赛事.dat",ios::out);p1=head7;while(p1!=NULL)cout<<"比赛项目成绩修改成功!"<<endl;break;case 4功!"<<endl;{fout.write((char*)p1,sizeof(Message));p1=p1->next;}fout.close();} return 0;}int delete3() //对比赛赛事相关信息进行删除{creat3();Message *p1,*p2;p2=p1=head7;cout<<"请输入要删除的参赛运动员姓名及比赛项目名称:"<<endl;int flag=0;char na[20];char info[20];cin>>na>>info;while(p1!=NULL){if((p1->name==na)&&(p1->avent==info)){flag=1;break;} p2=p1;p1= p1->next;}if (flag==0) cout<<"没有找到要删除的记录!"<<endl;elsep2->next=p1->next;ofstream fout("e:\\比赛赛事.dat",ios::out);p1=head7; while(p1!=NULL){fout.write((char*)p1,sizeof(Message));p1=p1->next;}fout.close();return 0;}void print3(){ creat3();Message *p1=head7;cout<<"请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次."<<endl;while(p1!=NULL){cout<<p1->name<<'\t'<<p1->avent<<'\t'<<p1->score<<'\t'<<p1->ca<<endl; p1=p1->next;20 }}void find3(){creat3();Message *p1;p1=head7;int sign=0;//设置的标记变量 cout<<"请输入要查询的参赛运动员姓名和比赛项目名称! "<<endl; char na[20];char info[20];//查询字符型数据条件 cin>>na>>info;while(p1!=NULL) { if((p1->name==na)&&(p1->avent==info)) {sign=1;break;} p1= p1->next;}if (sign==0) cout<<"没有找到要查询的记录!"<<endl;else}int find()//进行查找{cout<<endl;cout<<"\t\t\t请输入要查询的信息:"<<endl;cout<<"\t\t比赛项目信息查询请按:1"<<endl;cout<<"\t\t运动员信息查询请按:2"<<endl;cout<<"\t\t比赛赛事信息查询请按:3"<<endl;int j;cin>>j;switch(j) { case 1:find1();break;case 2:find2();break;case 3:find3();break;default:cout<<"输入数据有误!"<<endl;cout<<p1->name<<'\t'<<p1->avent<<'\t'<<p1->score<<'\t'<<p1->ca<<endl;}return 0;}int input(){ cout<<endl;cout<<"\t\t\t请输入要输入的信息:"<<endl;cout<<"\t\t比赛项目信息输入请按:1"<<endl;cout<<"\t\t运动员信息输入请按:2"<<endl; cout<<"\t\t比赛赛事信息输入请按:3"<<endl;int j;cin>>j;switch(j) { case 1:input1();break;case 2:input2();break;case 3:input3();break;default:cout<<"输入数据有误!"<<endl;}return 0;}int print(){ cout<<endl;cout<<"\t\t\t请输入要显示输出的信息:"<<endl;cout<<"\t\t比赛项目信息显示输出请按:1"<<endl; cout<<"\t\t运动员信息显示输出请按:2"<<endl; cout<<"\t\t比赛赛事信息显示输出请按:3"<<endl;int j;cin>>j;switch(j){ case 1:print1();break;case 2:print2();break;case 3:print3();break;default:cout<<"输入数据有误!"<<endl;}return 0;}int change(){cout<<endl;cout<<"\t\t\t请输入要修改的信息:"<<endl;cout<<"\t\t比赛项目信息修改请按:1"<<endl;cout<<"\t\t运动员信息修改请按:2"<<endl;cout<<"\t\t比赛赛事信息修改请按:3"<<endl;int j; cin>>j;switch(j){ case 1:change1();break;case 2:change2();break;case 3:change3();break;22 default:cout<<"输入数据有误!"<<endl;}return 0;}int deleted() { cout<<endl;cout<<"\t\t\t请输入要删除的信息:"<<endl;cout<<"\t\t比赛项目信息删除请按:1"<<endl; cout<<"\t\t运动员信息删除请按:2"<<endl;cout<<"\t\t比赛赛事信息删除请按:3"<<endl;int j;cin>>j;switch(j){case 1:delete1();break;case 2:delete2();break;case 3:delete3();break;default:cout<<"输入数据有误!"<<endl;}return 0;}int main(){ int i;do{fun1(); cin>>i;switch(i) { case 1:input();break; case 2:change();break;case 3:deleted();break;case 4:find();break;case 5: print();break;case 6: return 0;default:cout<<"您输入数据有误!"<<endl;}}while(1);return 0;}。

运动会管理系统课程设计c语言

运动会管理系统课程设计介绍运动会是学校生活中的一项重要活动,为了更好地组织和管理运动会,开发一个运动会管理系统是非常必要的。

本文将详细介绍一个基于C语言的运动会管理系统的设计和实现。

需求分析在开始设计运动会管理系统之前,首先需要进行需求分析,明确系统需要具备的功能和特点。

根据任务名称,我们可以总结出以下需求:1.学生信息管理:包括学生基本信息(姓名、性别、年龄等)和参加项目信息(报名项目、成绩等)。

2.项目管理:包括项目的创建、修改和删除。

3.成绩管理:包括成绩录入、查询和统计。

4.报名管理:学生可以报名参加感兴趣的项目。

5.排名管理:根据成绩对学生进行排名,并显示排名结果。

系统设计基于以上需求,我们可以进行系统设计。

数据结构设计首先需要定义适当的数据结构来存储学生和项目信息。

以下是一个可能的数据结构设计:typedef struct {char name[50];char gender[10];int age;} Student;typedef struct {char name[50];int score;} Project;功能模块划分根据需求分析,我们可以将系统功能划分为以下几个模块:1.学生信息管理模块:用于管理学生的基本信息和参加项目信息。

2.项目管理模块:用于管理项目的创建、修改和删除。

3.成绩管理模块:用于录入、查询和统计成绩。

4.报名管理模块:用于学生报名参加感兴趣的项目。

5.排名管理模块:根据成绩对学生进行排名,并显示排名结果。

系统流程图graph LRA[开始] --> B[学生信息管理]A --> C[项目管理]A --> D[成绩管理]A --> E[报名管理]A --> F[排名管理]B --> G[添加学生信息]B --> H[修改学生信息]B --> I[删除学生信息]C --> J[添加项目]C --> K[修改项目]C --> L[删除项目]D --> M[录入成绩]D --> N[查询成绩]D --> O[统计成绩]E --> P[报名参加项目]F --> Q[根据成绩排名]实现基于以上设计,我们可以开始实现运动会管理系统。

C语言课程设计报告—校际运动会管理系统_3

C语言课程设计校际运动会管理系统C语言程序设计报告书一、C 语言程序设计的目的二、巩固已学习的内容, 复习程序设计和上机调试的基本方法方法。

通过学习一个综合程序的设计与编写, 使学生能够在较短的时间内掌握综合程序设计的基本步骤和方法。

通过学习课本上的习题, 举一反三, 学会构建程序的柜架以及部分常用的算法代码的收发室。

在加强的基础上, 动手两个程序的完整设计与编写。

三、课程设计报告正文(一)、题目(1)信息初始化, 输入:N-参赛学校总数, M-男子竞赛项目数, W-女子竞赛项目数;各项目名次取法有以下几种:《1》取前5名: 第1名得分7, 第2名得分5, 第3名得分3, 第4名得分2, 第5名得分1. 《2》取前3名: 第1名得分5, 第2名得分3, 第3名得分2.《3》用户自定义: 各名次权值由用户指定。

(2)提醒用户填写比赛结果, 输入各项目获奖运动员的信息。

(3)所有信息记录完毕后, 用户可以查询各个学校的比赛成绩, 生成团体总分报表, 查看参赛学校信息和比赛项目信息等。

[提示](1)总体设计: 系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。

(2)数据结构采用结构体数组, 包括学校、项目、运动员三个结构体。

比如学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。

(二)题目的总体要求是要建立三个模块: 信息输入模块、比赛结果录入模块以及查询模块。

在建立完之后, 要求该程序能够在用户将各种必要的信息记录之后, 用户可以查询所有学校的比赛成绩, 而且也可以生成团体总分表, 查看参赛学校信息和比赛项目信息等一切录入的信息, 为此, 要示编程人员能通过一些具体的程序将以上的功能加以实现。

在建立三个模块的大前提下, 我们将采用结构体, 循环体, 指针和各种函数来实现这种功能, 在数据结构体中, 要采用结构体数组, 其中包括学校、项目、运动员三个结构体。

学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“校际运动会" 管理系统一.题目要求设计校际运动会管理系统,实现学校、运动员信息和运动项目的录入,比赛结果的输入,各个学校比赛结果的查询,生成团体总分报表,查看参赛学校信息和比赛项目信息。

要求功能选择用菜单实现。

二.需求分析根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。

一、总体设计根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。

具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

二、详细设计1、主函数主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。

其中功能模块用菜单方式选择。

流程图[程序]main(){menu();/*menu 是菜单函数*/}菜单函数程序如下:menu(){ int o,n;do{ puts("\t\t*****************MENU********************");puts("\n\n\t\t 1.The information to writein\n");puts("\t\t 2.The race result records to writein\n");puts("\t\t 3.Search the information\n");puts("\t\t 4.Exit\n");puts("\n\t\t*****************************************");puts("\n\nChoice you number:");scanf("%d",&n);if(n<1||n>4){o=1;getchar();} /*对选择的数字进行判断*/else o=0;}while(o==1); /*选择功能*/switch(n){ case 1:writein();break; /*信息输入模块*/case 2:resultin();break; /*比赛结果输入模块*/case 3:search();break; /*查询模块*/case 4:exit(0); /*退出*/}}各个模块的设计1、信息输入[数据结构]数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。

比如学校结构体成员包括学校校名、竞赛项目、得分;项目结构体成员包括项目名、权值。

struct student{ char shool[10];char name[10];char item[10];char sex;int position;int mark;}stu[C]; /*stu[N]中每个数组元素对应一个学生*/struct item{ char name[10];char sex;int mark;}it[C]; /*it[C]中每个数组元素对应一个项目*/struct shool{ char name[10];char item[10];int mark;}sho[C] /* sho[C]每个数组元素对应一个学校;*/[信息输入模块]根据题意把与运动员的学校、名字、项目、性别、名次、分数作为结构体成员,如果要存放若干个运动员的信息就用结构体数组。

struct student{ char shool[10];char name[10];char item[10];char sex;int position;int mark;}stu[C]; /*stu[C]中每个数组元素对应一个运动员*/stu[C]中的C为运动员的个数,程序中采用宏定义的方式定义C=100,C的值可随时在源程序中改变。

图2 输入模块流程图/******************输入模块*****************/writein() /*输入模块*/{ int t,r,i=0;extern j;char F,M;y=1;printf("\nPlease writein the student's name:\t");scanf("%s",&stu[i].name); /*输入名字*/printf("\nPlease writein the student's shool:\t");scanf("%s",&stu[i].shool);/*输入学校*/printf("\nPlease writein the student's item:\t");scanf("%s",&stu[i].item); /*输入项目*/loop_1: printf("\nPlease writein the student's sex(W or M):\t");scanf("%s",&stu[i].sex); /*输入性别*/if(stu[i].sex!='W'&&stu[i].sex!='M')goto loop_1; /*选择函数*/printf("\nPleasewritein the student's position:\t");scanf("%d",&stu[i].position);mark(j,i);loop_2:printf("\n\nDo again?\t1).Yes\t2).No\t");scanf("%d",&t);if(t!=2&&t!=1)goto loop_2; /*调用goto结构*/if(t==2)menu();i++;if(t==1);f=1;printf("Success\nPress any key+enter to menu..");scanf("%d",&r); /*返回主函数*/menu();}[结果录入模块]该模块的功能是输入男女运动员的成绩,并由用户选择或定义各名次的分数。

[流程图]提醒用户先输入运动员信息输入学校的代号、男女运动项目的代号用户选择或定义各名次的分数输入成绩并反回主函数[程序]/**********************结果录入模块*********************/resultin() /******结果录入模块*****/{ int h,r; extern N,M,W,y;if(y==0){ printf("Please establish system first!!\nPress any key +enter to menu.. "); scanf("%d",&r); /******提醒用户输入运动员的基本信息*******/ menu();}printf("\nThe number of shool attended is:");scanf("%d",&N);printf("\nThe number of men item is:");scanf("%d",&M);printf("\nThe number of women item is:");scanf("%d",&W); /****输入学校的代号、男女运动项目的代号****/printf("\nThere are three form of marked you can choice:");printf("\n\n\t1).1th--7,2th--5,3th--3,4th--2,5th--1.");printf("\n\n\t2).1th--5,2th--3,3th--1.");printf("\n\n\t3).Define by youself."); /*****用户自定义********/loop: printf("\n\nChoice the number(1--3):");scanf("%d",&h);if(h>0&&h<4)switch(h){case 1:j=1;break;case 2:j=2;break;case 3:define_mark();} /*******选择积分模式*********/else goto loop; /*******输入错误重新选择*******/printf("Success\nPress any key+enter to menu..");scanf("%d",&r);menu(); /*******返回主函数*******/}[查询模块]该模块的功能是所有信息记录完毕后用户可以查询学校比赛成绩,查看参赛学校信息和比赛项目信息等。

[流程图]选择查询模式并选择查询项目学校查询程序项目查询程序返回主菜单[程序]/*****************查询模块*****************/search(){ int e;char c;extern f;loop:printf("\nThe form of searching you want to choice:\n\t1).By school\n\t2).Bt item\n\t3).To menu\t"); /************选择查询模式**************/scanf("%d",&e);switch(e){ case 1:search_school();break;case 2:search_item();break;case 3:menu();}if(e>4||e<1)goto loop;printf("Press any key+enter to menu..");scanf("%s",&c);menu();}search_school() /**********学校查询程序***********/{ int x,sum=0,w=0;struct student s;printf("\nPlease enter the name of the school that you want to search:");scanf("%s",&s.shool);printf_face();for(x=0;x<C;x++)if(strcmp(s.shool,stu[x].shool)==0) /***********调用stu结构体************/ { sum+=stu[x].mark;printf_one(x);w=1;} /***********读出结构体的数据*********/printf_sum(sum);if(w==0){printf("\n\n*The name is wrong,press again!");search_school();}}search_item() /*********项目查询程序********/{ int x,sum=0,w=0;struct student s;printf("\nPlease enter the name of the item that you want to search:");scanf("%s",&s.item);printf_face(); /********数据输入*********/for(x=0;x<C;x++)if(strcmp(s.item,stu[x].item)==0) / ********调用stu数组******/{ sum+=stu[x].mark;printf_one(x);w=1;}printf_sum(sum); /*******数据输出*********/if(w==0){ printf("\n\n*The name is wrong,press again!");search_item();}}[程序中调用的函数]记分的函数即用来确定不同的名次所得的不同分数。

相关文档
最新文档