C语言课程设计之校运动会管理系统的设计与实现
一 题目要求
课题:校运动会管理系统的设计与实现 具体要求:
(1)信息初始化,依次输入:
N—参赛学校总数 M—男子竞赛项目数 W—女子竞赛项目总数 各项目名次取法有以下几种:
①取前五名:第一名得分7分,第二名得分5分,第三名得分3分,第四名2分,第五名得分1分。
②取前三名:第一名得分5分,第二名得分3分,第三名得分2分。 ③用户自定义:各名次权值由用户定义。
(2)提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
二 需求分析
根据题目要求,将学校的信息和比赛项目等信息存放到指定的文件中,并能实现相关信息的浏览功能,故在程序中应提供输入,输出,显示,查找,排序等操作。
三 总体设计
由需求分析可讲系统分为信息输入模块,比赛录入模块和查询模块三个模块,并追加一些辅助模块以增加程序的功能,方便使用。
四 详细设计
1
主函数
主要通过main()函数及choose()函数实现.
void main() /***************主函数**************/ {
int choos
printf("\n\n * * * 运动会分数统计 * * *\n\n\n"); printf("共有多少个学校参赛:");
scanf("%d",&a); while(a<=0||a>20) {
if(a<=0) {
printf("\n 参赛学校个数不能是负数或零\n\n");
printf("共有多少个学校参赛:"); scanf("%d",&a); }
if(a>20) {
printf("\n 参赛学校个数不能大于20\n\n"); printf("共有多少个学校参赛:"); scanf("%d",&a); } }
printf("有几个男子组:");
scanf("%d",&c); printf("有几个女子组:"); scanf("%d",&d); for(i=0;i<=a;i++) {
f[i]=(struct node *)malloc(sizeof(struct node)*(c+d+3)); for(j=0;j<=c+d+2;j++) f[i][j].num=0; }
choos=choose();
while(1) {
while(choos<0||choos>8) choos=choose(); (*g[choos])(); printf("\n"); choos=choose(); } }
int choose() {
int choo;
printf("\n\n 1*输入成绩\n"); printf(" 2*统计各学校的总分\n"); printf(" 3*按学校编号排序输出\n"); printf(" 4*按学校总分排序输出\n"); printf(" 5*按男团体总分排序输出\n"); printf(" 6*按女团体总分排序输出\n");
printf(" 7*按学校编号查询学校某个项目的成绩\n");
printf(" 8*按项目编号查询取得前三或前五名的学校\n"); printf(" 9*退出\n\n"); printf("请选择:");
scanf("%d",&choo);
2 成绩输入
当选择1 时进行成绩的输入.实现的功能函数为input(),相关实现如下:
{ void input()
int ab,ac,ae,af,g=1,get[5]={0,0,0,0,0}; printf("\n请输入项目代号:"); ale:scanf("%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].num!=0) { ae=1; break; } }
if(ae==1)
{
al2: printf("\n此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入):\n");
printf(" 1++++重新录入(若重新录入,以前的该项目成绩将被删除)\n"); printf(" 2++++不要,待查证后再录入\n\n"); scanf("%d",&af); if(af==2) {
printf("您已取消录入!!!!!\n"); return; }
else if(af==1) {
for(i=1;i<=a;i++) {
if(f[i][ab].num!=0) {
f[i][0].num=f[i][0].num-f[i][ab].num;
if(ab<=c)
f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num; else
f[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num; }
f[i][ab].num=0; }
}
else
goto al2; }
al: printf("\n此项目是以前几名为胜出者:\n\n"); printf(" 3-------以前三名\n"); printf(" 5-------以前五名\n\n"); scanf("%d",&ac); if(ac==3) {
printf("\n请依次输入获胜学校代号:"); af=5;
for(i=0;i<3;i++) {
alq: scanf("%d",&ae); if(ae>a||ae<1)
{
printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g);
goto alq; }
for(b=0;b<5;b++) {
if(ae==get[b]) {
printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!!!\n",g); goto alq; } 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 if(ac==5) {
printf("请依次输入获胜学校代号:"); af=7; for(i=0;i<5;i++) {
alw: scanf("%d",&ae); if(ae>a||ae<1) {
printf("%d学校代号不存在,重新输入第%d名的学校代号\n",ae,g); goto alw; }
for(b=0;b<5;b++) {
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; …… 此处隐藏:2503字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




