运动会积分系统(C语言)

合集下载

C语言课程设计运动会成绩管理系统

C语言课程设计运动会成绩管理系统

课程设计任务书题目:运动会成绩管理系统一、课程设计时间共计1周,20学时。

二、课程设计内容用C语言编写软件完成以下任务:1 录入运动员信息;2 按项目查询运动员成绩;3 按系排名(参照运动员的总成绩)。

三、课程设计要求1. 程序质量:✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“运动员信息录入”、“按项目查询运动员信息”、“按系排名”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字指导教师:________ 学生签名:________五、说明书成绩沈阳航院设计用纸目录一、需求分析 ...................................... 错误!未定义书签。

二、程序流程图 .................................. 错误!未定义书签。

三、核心技术的实现说明及相应程序段.. 错误!未定义书签。

四、课设总结 ...................................... 错误!未定义书签。

五、参考文献 ...................................... 错误!未定义书签。

六、源程序 .......................................... 错误!未定义书签。

一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为3个模块,每一个模块对应一个函数。

在这些函数当中,添加学生数据函数,按系排名(参照学生总成绩)函数,按项目查询学生成绩函数的实现严格按照题目的要求。

主函数及菜单函数控制程序的整体运行。

1. 添加学生数据函数主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能;2. 按系排名(参照学生总成绩)函数按照题目的具体要求实现的是参照不同院系的学生的总成绩给出院系的排名;3. 按项目查询函数允许按照项目名称对学生的各项成绩进行查询;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

c语言课程设计运动会分数统计系统

c语言课程设计运动会分数统计系统
1.4 实现提示
3.数据结构:线性表 4.数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由
系统根据基本表自动生成。
运动员编号 char
学校编号 char
项目编号 char
性别 类型 char char
成绩 float
运动员编号 学校编号
姓名 校名
初始化时完成录入
项目编号
项目名
3. 可以假设 n≤20,m≤30,w≤20,姓名长度不超过 20个字符。每个项目 结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入 运动员编号、学校编号和成绩等。
组、函数和 C 语言基本图形编程等方法, 把编程和实际结合起来, 增强对不同的问题运用和
灵活选择合适的数据结构以及算法描述的本领, 熟悉编制和调试程序的技巧, 掌握分析结果
的若干有效方法, 进一步提高上机动手能力, 培养使用计算机解决实际问题的能力, 养成提
供文档资料的习惯和规范编程的思想, 为以后在专业课程中应用计算机系统解决计算、 分析、
3
1.1 问题描述 .....................................................
3
1.2 基本要求 .....................................................
3
1.3 测试数据 .....................................................
9
4.1.1 类属性的详细设计 ........................................
10
第五章 测试与维护 .........................................

运动会成绩处理系统(C语言简单类型版)

运动会成绩处理系统(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语言程序的设计运动会成绩统计系统方案

程序设计工程训练 报告运动会分数统计系统课程名称 姓名 院(系) 专业班级 学号 指导教师教务处制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总结本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。

c++运动会分数统计系统

c++运动会分数统计系统

#include<stdio.h>#include<malloc.h>#include<string.h>#include<process.h> //此头文件包含用于和宏指令的作用声明#define N 4 //学校个数#define bm 3 //男团体个数#define gm 2 //女团体个数void xuanze();void xunhuan();struct match //声明结构体类型项目{int matchnum;int rank[3]; //rank是排名变量}mat[bm+gm];struct school //声明结构体类型学校{int schoolnum;struct match mat[bm+gm];int total;int boytotal;int girltotal;}sch[N];void start() /*开始界面*/{printf(" 欢迎使用运动会分数统计系统\n\n");printf(" \n");}void input() //输入成绩{int i,j,k;for(i=0;i<N;i++) //初始化,i为学校编号,j为名次,k为项目编号{sch[i].total=0;sch[i].boytotal=0;sch[i].girltotal=0;for(k=0;k<bm+gm;k++)if(k%2==1){sch[i].mat[k].rank[0]=0; //开始引用成员sch[i].mat[k].rank[1]=0;sch[i].mat[k].rank[2]=0;sch[i].mat[k].rank[3]=0;sch[i].mat[k].rank[4]=0;sch[i].mat[k].matchnum=k+1;}else{sch[i].mat[k].rank[0]=0; //开始引用成员sch[i].mat[k].rank[1]=0;sch[i].mat[k].rank[2]=0;sch[i].mat[k].matchnum=k+1;}}printf("{在下面输入成绩}\n");printf("注:输入说明:\n");printf(" 1.学校编号为1--%d; 项目编号为1--%d (1-%d为男子项目,%d-%d为女子项目).\n",N,bm+gm,bm,bm+1,bm+gm);printf(" 2. 成绩只能是'0'或'1'\n('0'表示没获得该项目的该名次,'1'表示获得了该项目的该名次.)\n",N);for(i=0;i<N;i++){printf("请输入学校编号: ");loop3:scanf("%d",&sch[i].schoolnum); //loop是起循环跳转作用,在此处起标记作用,与下面的goto相搭配,下同if(sch[i].schoolnum<0||sch[i].schoolnum>N){printf("输入错误(只能是1-%d)请重新输入:",N);goto loop3; //goto与loop搭配,当输入错误时跳转至上面loops,直到输入正确时才跳出}printf("项目编号");for(k=0;k<bm+gm;k++)printf("%d ",sch[i].mat[k].matchnum);printf("\n");for(j=0;j<3;j++){loop: printf("第(%d)名:",j+1);for(k=0;k<bm+gm;k++)scanf(" %d",&sch[i].mat[k].rank[j]);for(k=0;k<bm+gm;k++)if(sch[i].mat[k].rank[j]!=0&&sch[i].mat[k].rank[j]!=1){printf("输入错误,请重新输入,成绩只能是'0'或'1'\n");goto loop;}}}}void totaljisuan() //计算总分{int i,k,b;for(i=0;i<N;i++)for(k=0,b=0;k<bm+gm;k++){if(k%2==1){b=sch[i].mat[k].rank[0]*7+sch[i].mat[k].rank[1]*5+sch[i].mat[k].rank[2]*3+sc h[i].mat[k].rank[3]*2+sch[i].mat[k].rank[4]*1;sch[i].total=sch[i].total+b;}else{b=sch[i].mat[k].rank[0]*5+sch[i].mat[k].rank[1]*3+sch[i].mat[k].rank[2]*2;sch[i].total=sch[i].total+b;}if(k<bm)sch[i].boytotal=sch[i].boytotal+b;if(k>=bm)sch[i].girltotal=sch[i].girltotal+b;}}void menu(){printf("\n\n **系统菜单**\n"); //菜单printf("\t\t ************************************\n");printf("\t\t* 1.统计各学校总分 *\t \n"); //在此处用换码符/t方便输出,上下同printf("\t\t* 2.按学校编号排序输出 *\t \n");printf("\t\t* 3.按学校总分排序输出 *\t \n");printf("\t\t* 4.按男团体总分排序输出 *\t \n");printf("\t\t* 5.按女团体总分排序输出 *\t \n");printf("\t\t* 6.按学校编号查询学校某个项目情况 *\t \n");printf("\t\t* 7.按项目编号查询取得名次的学校 *\t \n");printf("\t\t* 0.退出 *\t \n");printf("\t\t ************************************\n");}void funct0() //退出系统{printf("\n\t\t******* 谢谢使用! *******\n");printf("\n\t\t******* 谢谢使用! *******\n");exit(0);}void funct1() //统计各学校总分{int i,q;printf(" **********统计各学校总分**********\n");printf(" **学校编号**\t\t\t\t**总分**\n");for(i=0;i<N;i++)printf("\t%d\t\t\t\t%d\n",sch[i].schoolnum,sch[i].total);printf("\n");printf("\n");printf("########## 0:退出;1:返回目录。

运动会分数统计系统-c语言课程设计报告书

运动会分数统计系统-c语言课程设计报告书

课程设计报告课程名称《C语言程序设计》课题名称运动会分数统计系统专业电气工程及其自动化班级电气工程学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称《C语言程序设计》课题运动会分数统计系统专业班级电气工程及其自动化学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日第一部分《C语言课程设计》任务书前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。

通常,课程设计的课题比平时的习题复杂得多,也更接近实际。

课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。

为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。

学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。

学习委员将课程设计报告与磁盘收齐后交指导老师。

一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

C++运动会分数统计系统(word文档良心出品)

C++运动会分数统计系统(word文档良心出品)

课程设计报告运动会分数统计系统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语言运动会计分程序编写简介本文档将指导您使用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() {// 排名和统计的具体逻辑}功能实现现在,我们将逐步实现程序的各个功能。

C语言程序设计运动会成绩统计系统

C语言程序设计运动会成绩统计系统

程序设计工程训练报告运动会分数统计系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1 需求分析................................................................2 系统总框图和功能模块说明................................................2.1 系统总框图........................................................2.2 功能模块说明......................................................3 系统设计................................................................3.1 主要结构体.........................................................3.2主要功能函数........................................................3.3 关键函数的流程图...................................................4 系统调试................................................................5 总结.................................................................... 6源程序清单..............................................................1 需求分析1问题描述运动会分数统计参加运动会有n个学校,学校编号为1……n。

运动会计分程序

运动会计分程序

➢ 能力目标
培养学生使用集成开发环境进行软件开发、调试的综合能力。
➢ 素质目标
使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需
要的职业能力。
项目实现
➢任务一:设计项目中的数据结构
➢任务二:数据验证
➢任务三:函数的编写
➢任务四:主函数的编写
任务一:设计项目中的数据结构
1.任务描述
定义能够完成项目要求的数据结构
}
updateTotalScore( );
sort( );
print( );
相关知识
➢ 单链表的查找
对单链表的结点依次扫描,检测其数据域是否是我们所要查好的值,
若是返回该结点的指针,否则返回NULL。
➢ 单链表的插入
在一个单链表中存在两个连续结点p、q(其中p为q的直接前驱),之
间插入一个新结点s。
存储结构如下:
head1
head2
7
0
8
3
1
1
22
9
7
8
-9
5
8
Null
17
Null
拓展训练
训练内容:约瑟夫问题。
说明:n位小朋友围成一圈,从某位小朋友开始,
依次编号为1到n,从编号为1的开始1-3报数,数
到3的退出圈子,这样不断循环下去,问最后剩下
的人编号是多少?
提示:可以使用循环链表。
C语言程序设计
出现1次。
任务三:函数的编写
1.任务描述
该任务需要编写的函数
insert( )
updateTotalScore( )
sort( )
print( )
2.任务涉及的知识要点

C语言程序设计运动会成绩统计系统

C语言程序设计运动会成绩统计系统

程序设计工程训练报告运动会分数统计系统课程名称 姓名 院(系)专业班级 学号 指导教师教务处制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<=20)2. 基本要求: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按女团体总分排序输出;••…仅按照女子团体总分从大到小排序7) 输入:7按学校编号查询学校某个项目的成绩;•…输入学校编号及项目编号可查询该校的该项按项目编号查询取得前三名或前五名的学校按男团体总分排序输出1T按学校总分排序输出1F统计各校个项目得分统计各校分数输入成绩目成绩8) 输入:8按项目编号查询取得前三名或前五名的学校;•…输入项目编号可查询该项目获得名次的学校9) 输入:0退出;....... 退出系统3 系统设计3.1 主要结构体菜单号choo学校:num项目:ab男团、de女团、ke3.2 主要功能函数void exit0()void input()void each()void biaohao()void zongfen()void nanzong()void nvzong()void xuexiao()void xiangmu()void main()3.3关键函数的流程图void zongfen() void nanzon g() void nvzon g()4系统调试<1>开始界面,分别输入3、7、3.输入1后显示请场入反冃代尸:1请呻昭第一、第二 第三和名棍恢旅辅人菽牲半校仪帛1£^ol-rl F 9r分 牛 得岀'It K ±l s3i i少男女示几儿 屁;编void xuexiao() void xia ngmu()void main()-M 的五绩的f的近输入2后显示冃前 理』 分 - ■5出 F r rl千帛 rn .-一l:h 面问l Tn .--I:b 询闻,匸环卫蓉宜总E '.'-耳巧也 吗董爲需L J-■»出出蕃 常冃逼汙J7逞取 K H 1 m —r 「订 进宀—f-学总広需嚅 ZJTgoss奉黑 “一刖Irj rr r t-n -I A 丄 M上鸟卫,尸 -T%—■¥I-r I M .J .r■> ; ;T ■ 1三12345£7"9WM 学驾号:团严 顶或 廿 个二得巒#前 讦目“世电-■T 学取 茅曇只#1£ 、-比」r—I*"紅入甘学杲玄壬..n 出输入5后显示请选择*5 学校代号啰子团休总成绩1 : 52 :3 3: 2校学绩的 的古 俗出岀某前的岀总询 的^K K ^S'囹号号成各套团1S 入学男窓子 Iz z1S 34567B 9输入6后显示 ;青选择I 6 校学 绩的 f i n E 富学校的五1女子团体总成绩0 酉 1得岀岀某前 的出SSW分畠專学取 总询的香一 分总思号号成各套团团校目 入男学校代号 1 2 *123456789输入7后显示! 11顶目成绩为51分得出出某】 的出输 分^14*学取 总^^^-询分刍特畐号号 我各各吱団用瑁吕输入8后显示5总结本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。

数据结构 课程设计 运动会计分(C语言)

数据结构 课程设计 运动会计分(C语言)

1.问题描述纸质的运动会分数信息统计无法满足人们对信息处理的需求,包括信息查找,排名等各方面信息处理人工处理很慢,严重影响运动会进程,“运动会分数统计系统”是为了帮助人们更快更准确的处理信息。

2.需求分析(1)输入学校基本信息(2)输入项目基本信息(3)输入运动员比赛信息(4)统计运动员信息(5)对同一项目运动员排名(6)对各学校总分排名(7)按学校编号、学校总分、男女团体总分排序输出(8)可对某项目进行修改3.主界面设计为了实现运动会分数统计系统各功能的管理,设计一个含有多个菜单项的主控菜单子程序一链接系统的各项子功能,方便用户使用本系统。

主界面如下:4.存储结构设计本系统主要采用数组结构体类型来表示存储在“运动会分数统计系统”中的信息。

第一个结构体为学校信息包括学校名、学校编号、学校参加比赛运动员获奖积分男子总积分、女子总积分。

第二个结构体为项目属性项目编号、项目名第三个结构体为运动员信息运动员排名、运动员编号、运动员姓名、参加项目编号、积分、学校编号、学校名。

5.系统功能设计(1)输入残社学校数量、男子项目数、女子项目数(2)输入学校编号和学校名字(3)输入项目编号、项目名字(4)输入结束项目编号、选取项目获奖名次、输入获奖的运动员姓名所在学校运动员积分(5)按学校编号排序输出可以一次输出所有参赛学校信息(6)按学校总分排序输出可以按学校运动员总分排序输出(7)按学校男运动员总分排序输出(8)按学校女运动员总分排序输出(9)查询某个项目成绩可以通过项目编号查询运动员成绩(10)修改某项项目获奖名单可以对项目中的获奖运动员进行修改(11)显示运动会上统计的信息6.模块设计本模块包含两个模块 主程序模块和数据结构操作模块 主程序模块7.系统子程序功能设计(1)Ssum(school sa[],athlete sb[][M]) / /统计学校分数 (2)print(school c[],int i){//学校相关信息输出 (3)snorder(school c[]){//按学校编号排序 (4)saorder(school c[])//按学校总分排序 (5)sforder(school c[])//按学校女子总分排序 (6)smorder(school c[])//按学校男子总分排序(7)Snoquery(school sb[],athlete sa[][M])//按学校编码查询 (8)Pnorder(athlete d[][M])//按项目编号查询排名(9)udefine(athlete a[][M],school b[])//修改项目获奖运动员 (10) menu(school b[],athlete sa[][M])//菜单选项 (11)main(int argc, char* argv[])8.本系统10个子程序之间的主要调用关系图9.数据类型定义typedef struct {//运动员属性 int arank;//排名 int No; //编号char Name[20];//姓名int Pno; //参加项目编号数据结构操作模块Main()1103 47568921222int grade;//成绩int Sno; //学校编号char Sna[20];//学校名字}athlete;typedef struct{//学校属性int No; //学校编号char Name[20];//学校名字int Msum; //男运动员总分int Fsum; //女运动员总分int Fnum; //输出标记int Pnum; //项目种类}school;typedef struct{//项目属性int No; //项目编号char Name[20];//项目名}project;10.系统子函数部分详细设计void Ssum(school sa[],athlete sb[][M])//统计学校分数{int i,j,k;for(i=0;i<n;i++){sa[i].Fsum=0;sa[i].Msum=0;//初始化总分。

c语言课程设计运动会比赛计分系统(含任务书)

c语言课程设计运动会比赛计分系统(含任务书)

c语言课程设计运动会比赛计分系统(含任务书)第一篇:c语言课程设计运动会比赛计分系统(含任务书)一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。

(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。

(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

二、课程设计名称及内容课程设计名称:运动会比赛计分系统设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。

三、任务和要求要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:(1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;(2)取前3名:第一名得分5,第二名得分3,第三名得分2;(3)用户自定义:各名次权值由用户指定。

四、设计方案提示(1)界面系统以菜单方式工作(2)输入数据并存入文件使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。

对输入的信息进行合法性判断,直到输入正确为止。

都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。

C语言课程设计报告_运动会分数统计系统

C语言课程设计报告_运动会分数统计系统

课程设计报告课程名称《C语言程序设计》课题名称运动员分数统计系统专业电气工程及其自动化班级电气1186学号201113010628姓名何长学指导教师王颖2012 年6月15日湖南工程学院课程设计任务书课程名称《C语言程序设计》课题运动员分数统计系统专业班级电气1186学生姓名何长学学号201113010628指导老师王颖审批任务书下达日期2012年6月04日任务完成日期2012年6月15 日一、设计内容与设计要求1.课程设计目的:全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。

2.课题题目⑴班级成绩管理系统⑵班级档案管理系统⑶飞机订票系统⑷猜数字游戏⑸电子英汉词典设计⑹心算抢答系统⑺运动会分数统计系统⑻小学生心算CAI系统3.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。

具体要求如下:⑴设计课题题目:每位同学根据自己学号除以8所得的余数加一选择相应题号的课题。

换题者不记成绩。

⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。

②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。

④调试分析以及设计体会:测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。

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

程序设计报告( 2014 / 2015 学年第 2 学期)题目:运动会积分系统专业组长学号姓名组员学号姓名指导教师指导单位日期成员分工组长()组员()组员()评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性运动会积分系统一、课题内容和要求学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。

请设计一个积分系统,方便学校对比赛成绩进行统计管理。

二、需求分析运动会积分系统的功能框架图如图1所示。

图1 功能框架图管理员:1)以管理员身份登录,预先设定参加运动会的系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分)2)管理员凭密码进入录入成绩状态,填写比赛结果,输入各项目获奖运动员的信息,但录入完成后不得修改成绩。

可以按各系院编号输出总分;按总分排序;按男团体总分排序;按系院编号查询;按项目编号查询;按女团体总分排序。

3)审核各院系提交的复核申请,予以批准后修改成绩。

普通用户:1)普通用户可以查询各个比赛成绩,生成团体总分报表,查看参赛院系的成绩和各比赛项目最终名次等。

2)允许提交复核申请,提请管理员修改成绩。

三、概要设计1 主要结构体typedef struct node1{int school; /*院系编号*/int record; /*项目成绩*/struct node1 *next; /*链域*/}Schools;typedef struct {int item; /*项目编号*/Schools *firstschool; /*链域指向链表中第一个结点*/}ITEM;typedef struct {int z; /* 项目总数*/ITEM a[MAX];}ALLitems;typedef struct node2 {int item; /*该院系获奖的项目*/int record; /*项目成绩*/struct node2 *next; /*链域*/}Items;typedef struct {int school; /*院系编号*/int score; /*院系总分*/int boys; /*男团体总分*/int girls; /*女团体总分*/Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ }SCHNode;typedef struct {int n; /* 院系总数*/SCHNode b[MAX];}ALLNode;ALLitems *g1;ALLNode *g2;2 主要函数流程图图2登录函数四、源程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<io.h>//#include <conio.h> /*屏幕操作函数*/#define MAX 50//#define NULL 0struct user{char user_Name[6];char user_Pass[6];}stu[1] = { "admin", "admin" };//初始化用户名和对应密码void print_Passwd(void){int i = 0;//当前账号标记int flag1 = 0;//登录成功标记int flag = 0;//密码正确标记char p[6];//临时用户名char s[6];//临时密码char num = 0;//密码次数char temp;//登录后改密码printf("请输入登录名:\n");scanf("%s", p);if (strcmp(stu[i].user_Name, p) == 0){flag = 1;}if (1 == flag){printf("请输入密码:\n");scanf("%s", s);}else{printf("没有此用户:\n");exit(0);}while (strcmp(stu[i].user_Pass, s) != 0){printf("密码错误!\n");printf("请重新输入密码:\n");scanf("%s", s);}printf("登录成功!\n");printf("注:你是管理员!\n");}typedef struct node1{int school; /*院系编号*/int record; /*项目成绩*/struct node1 *next; /*链域*/}Schools;typedef struct {int item; /*项目编号*/Schools *firstschool; /*链域指向链表中第一个结点*/}ITEM;typedef struct {int z; /* 项目总数*/ITEM a[MAX];}ALLitems;typedef struct node2 {int item; /*该院系获奖的项目*/int record; /*项目成绩*/struct node2 *next; /*链域*/}Items;typedef struct {int school; /*院系编号*/int score; /*院系总分*/int boys; /*男团体总分*/int girls; /*女团体总分*/Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ }SCHNode;typedef struct {int n; /* 院系总数*/SCHNode b[MAX];}ALLNode;ALLitems *g1;ALLNode *g2;void funct1(ALLitems *g1, ALLNode *g2){Schools *p1;Items *p2;int i = 1, j, k, m, w, h, x;p1 = (Schools *)malloc(sizeof(Schools));p2 = (Items *)malloc(sizeof(Items));if (!p1 || !p2)exit(1);printf("\n ******输入各个项目信息******\n\n");printf(" 输入男子项目总数m:");scanf("%d", &m);if (m < 0 || m>20){printf(" 输入有误,m是20以内的整数,请重新输入:");scanf("%d", &m);}printf(" 输入女子项目总数w:");scanf("%d", &w);if (w < 0 || w>20){printf(" 输入有误,w是20以内的整数,请重新输入:");scanf("%d", &w);}printf(" 输入参加运动会的院系总数n:");scanf("%d", &g2->n);if (g2->n < 0 || g2->n>20){printf(" 输入有误,n是20以内的整数,请重新输入:");scanf("%d", &g2->n);}g1->z = m + w;printf(" 则项目编号为男子1-%d,女子%d-%d", m, m + 1, g1->z);printf("\n\n ****记录运动会成绩****");printf("\n\n (输入0标志结束)\n");printf("\t项目1:50米、项目2:100米、项目3:200米、项目4:400米、项目5:1500米、\n");printf("\t项目6:跳高、项目7:跳远、项目8:标枪、项目9:铅球、项目10:铁饼\n");for (k = 1; k <= g1->z; k++){g1->a[k].item = k;g1->a[k].firstschool = NULL;}for (k = 1; k <= g2->n; k++){g2->b[k].school = k;g2->b[k].firstitem = 0;g2->b[k].score = 0;g2->b[k].boys = 0;g2->b[k].girls = 0;}g2->b[0].score = 0;g2->b[0].boys = 0;g2->b[0].girls = 0;while (i != 0){printf("\n 项目:");scanf("%d", &i);if (i != 0){printf(" 请输入前三名:\n");h = 3;do{printf(" 第%d名:院系(院系编号为数字)", h);scanf("%d", &x);p1 = (Schools *)malloc(sizeof(Schools));p1->school = x;p2 = (Items *)malloc(sizeof(Items));p2->item = i;if (h == 3) p2->record = p1->record = 2;if (h == 2) p2->record = p1->record = 5;if (h == 1) p2->record = p1->record = 10;p1->next = g1->a[i].firstschool;g1->a[i].firstschool = p1;p2->next = g2->b[x].firstitem;g2->b[x].firstitem = p2;g2->b[x].score = g2->b[x].score + p2->record; /* 累计总分*/if (i <= m) g2->b[x].boys = g2->b[x].boys + p2->record; /* 累计男团体总分*/else g2->b[x].girls = g2->b[x].girls + p2->record; /* 累计女团体总分*/h--;} while (x != 0 && h != 0);}}}void save(){FILE *fp1, *fp2;fp1 = (FILE *)malloc(sizeof(FILE));fp2 = (FILE *)malloc(sizeof(FILE));if ((fp1 = fopen("sports1", "wb")) == NULL){printf("cannot open file.\n");return;}if (fwrite(g1, sizeof(ALLitems), 1, fp1) != 1)printf("file write error.\n");fclose(fp1);if ((fp2 = fopen("sports2", "wb")) == NULL){printf("cannot open file.\n");return;}if (fwrite(g2, sizeof(ALLNode), 1, fp2) != 1)printf("file write error.\n");fclose(fp2);}void funct2(ALLNode *g2) /* 输出各院系总分*/{int k;printf("\n\n ****** 输出各院系总分******\n");printf(" 院系编号\t 总分\n");for (k = 1; k <= g2->n; k++)printf(" %d\t\t\t %d\n", k, g2->b[k].score);printf("\n");system("pause");printf(" 按任意键返回主菜单......");getchar();}void funct3(ALLNode *g2) /* 按院系编号排序输出*/ {int k;Items *p2;p2 = (Items *)malloc(sizeof(Items));printf("\n\n ****** 按院系编号排序输出******\n");printf(" 院系编号\t\t\t获奖情况\n");scanf("%d", &k);for (k = 1; k <= g2->n; k++){printf("\t\t\t%d\t", k);p2 = g2->b[k].firstitem;while (p2 != NULL){printf("\t\t项目%d:得%d分", p2->item, p2->record);p2 = p2->next;}printf("\n");}printf("\n");system("pause");printf("按任意键返回主菜单......");getchar();}void funct4(ALLNode *g2) /* 按院系总分排序输出*/ {int i, j, k;Items *p2;printf("\n\n ****** 按院系总分排序输出******\n");printf(" 院系编号\t\t总分\n");scanf("%d", &k);//printf("输入要查询的项目编号:");for (i = 2; i <= g2->n; i++){printf("%d\t", k);p2 = g2->b[k].firstitem;while (p2 != NULL){printf("%d \t\t%d\n", g2->b[k].school, g2->b[k].score);p2 = p2->next;}printf("\n");g2->b[0].score = g2->b[i].score;g2->b[0].boys = g2->b[i].boys;g2->b[0].girls = g2->b[i].girls;g2->b[0].school = g2->b[i].school;j = i - 1;while (g2->b[0].score<g2->b[j].score&&j>0){g2->b[j + 1].score = g2->b[j].score;g2->b[j + 1].boys = g2->b[j].boys;g2->b[j + 1].girls = g2->b[j].girls;g2->b[j + 1].school = g2->b[j].school;j--;}g2->b[j + 1].score = g2->b[0].score;g2->b[j + 1].boys = g2->b[0].boys;g2->b[j + 1].girls = g2->b[0].girls;g2->b[j + 1].school = g2->b[0].school;}for (k = 1; k <= g2->n; k++)printf("%d \t\t%d\n", g2->b[k].school, g2->b[k].score);system("pause");printf("按任意键返回主菜单......");getchar();}void funct5(ALLNode *g2) /* 按男团体总分排序输出*/ {int i, j, k;Items *p2;p2 = (Items *)malloc(sizeof(Items));printf("\n\n ****** 按男团体总分排序输出******\n");printf("院系编号\t\t男团体总分\n");scanf("%d", &k);//printf("输入要查询的院系编号:");for (i = 2; i <= g2->n; i++){printf("%d\t", k);p2 = g2->b[k].firstitem;while (p2 != NULL){printf("%d\t\t %d\n", g2->b[k].school, g2->b[k].boys);p2 = p2->next;}printf("\n");g2->b[0].score = g2->b[i].score;g2->b[0].boys = g2->b[i].boys;g2->b[0].girls = g2->b[i].girls;g2->b[0].school = g2->b[i].school;j = i - 1;while (g2->b[0].boys<g2->b[j].boys&&j>0){g2->b[j + 1].score = g2->b[j].score;g2->b[j + 1].boys = g2->b[j].boys;g2->b[j + 1].girls = g2->b[j].girls;g2->b[j + 1].school = g2->b[j].school;j--;}g2->b[j + 1].score = g2->b[0].score;g2->b[j + 1].boys = g2->b[0].boys;g2->b[j + 1].girls = g2->b[0].girls;g2->b[j + 1].school = g2->b[0].school;}for (k = 1; k <= g2->n; k++)printf("%d\t\t %d\n", g2->b[k].school, g2->b[k].boys);system("pause"); // 暂停等待printf("按任意键返回主菜单......");getchar();void funct6(ALLNode *g2) /* 按女团体总分排序输出*/ {int i, j, k;Items *p2;p2 = (Items *)malloc(sizeof(Items));printf("\n\n ****** 按女团体总分排序输出******\n");printf("院系编号\t\t女团体总分\n");scanf("%d", &k);// printf("输入要查询的项目编号:");for (i = 2; i <= g2->n; i++){printf("%d\t", k);p2 = g2->b[k].firstitem;while (p2 != NULL){printf("%d\t\t %d\n", g2->b[k].school, g2->b[k].girls);p2 = p2->next;}printf("\n");g2->b[0].score = g2->b[i].score;g2->b[0].boys = g2->b[i].boys;g2->b[0].girls = g2->b[i].girls;g2->b[0].school = g2->b[i].school;j = i - 1;while (g2->b[0].girls<g2->b[j].girls&&j>0){g2->b[j + 1].score = g2->b[j].score;g2->b[j + 1].boys = g2->b[j].boys;g2->b[j + 1].girls = g2->b[j].girls;g2->b[j + 1].school = g2->b[j].school;j--;}g2->b[j + 1].score = g2->b[0].score;g2->b[j + 1].boys = g2->b[0].boys;g2->b[j + 1].girls = g2->b[0].girls;g2->b[j + 1].school = g2->b[0].school;}for (k = 1; k <= g2->n; k++)printf("%d\t\t %d\n", g2->b[k].school, g2->b[k].girls);system("pause");printf("按任意键返回主菜单......");getchar();}void funct7(ALLNode *g2) /* 按院系编号查询院系某个项目情况*/int i, j;Items *p2;printf("\n ****** 按院系编号查询院系某个项目情况******\n");printf(" 输入要查询的院系编号:");scanf("%d", &i);printf("\t项目1:50米、项目2:100米、项目3:200米、项目4:400米、项目5:1500米、\n");printf("\t项目6:跳高、项目7:跳远、项目8:标枪、项目9:铅球、项目10:铁饼\n");printf(" 输入要查询的项目编号:");scanf("%d", &j);p2 = g2->b[i].firstitem;while (p2 != NULL){if (p2->item == j)printf(" 院系编号:%d\t项目%d:得%d分\n", i, p2->item, p2->record);p2 = p2->next;}printf("\n");system("pause");printf(" 按任意键返回主菜单......");getchar();}void funct8(ALLitems *g1) /* 按项目编号查询取得名次的院系*/{int i;Schools *p1;printf("\n*** 按项目编号查询取得名次的院系***\n");printf("输入要查询的项目编号:");scanf("%d", &i);printf("项目编号\t\t\t取得名次的院系\n");printf("%d\t", i);p1 = g1->a[i].firstschool;while (p1 != NULL){printf(" 学校%d:得%d分", p1->school, p1->record);p1 = p1->next;}printf("\n\n");system("pause");printf("按任意键返回主菜单......");getchar();}void main(){printf("管理员请按1,普通用户请按2\n");scanf("%d", &temp);if (1 == temp){int t;void print_Passwd(void);while (1){print_Passwd();break;}g2 = (ALLNode*)malloc(sizeof(ALLNode));g1 = (ALLitems*)malloc(sizeof(ALLitems));if (!g2 || !g1)exit(1);//textcolor(WHITE);//textbackground(BLUE);//clrscr();system("cls");for (;;){printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");printf("\t\t 运动会分数统计系统\n");printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");printf("\t\t* 1.输入各个项目成绩并存储文件*\t \n");printf("\t\t* 2.统计各院系总分*\t \n");printf("\t\t* 3.按院系编号排序输出*\t \n");printf("\t\t* 4.按院系总分排序输出*\t \n");printf("\t\t* 5.按男团体总分排序输出*\t \n");printf("\t\t* 6.按女团体总分排序输出*\t \n");printf("\t\t* 7.按院系编号查询院系某个项目情况*\t \n");printf("\t\t* 8.按项目编号查询取得名次的院系*\n");printf("\t\t* 0.退出*\n");printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t 请选择(0-8):");loop1:scanf("%d", &t);system("cls");switch (t){case 1:funct1(g1, g2); save(); break;case 2:funct2(g2); break;case 5:funct5(g2); break;case 6:funct6(g2); break;case 7:funct7(g2); break;case 8:funct8(g1); break;case 0:exit(0);default:{ printf("输入有误,请重新选择:");goto loop1; }}//clrscr();system("cls");}}else{int u;g2 = (ALLNode*)malloc(sizeof(ALLNode));g1 = (ALLitems*)malloc(sizeof(ALLitems));if (!g2 || !g1)exit(1);//textcolor(WHITE);//textbackground(BLUE);//clrscr();system("cls");for (;;){printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");printf("\t\t 运动会分数统计系统\n");printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");printf("\t\t* 1.统计各院系总分*\t \n");printf("\t\t* 2.按院系编号排序输出*\t \n");printf("\t\t* 3.按院系总分排序输出*\t \n");printf("\t\t* 4.按院系编号查询学校某个项目情况*\t \n");printf("\t\t* 5.按项目编号查询取得名次的院系*\n");printf("\t\t* 0.退出*\n");printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t 请选择(0-5):");loop2:scanf("%d", &u);system("cls");switch (u){case 1:funct2(g2); break;case 4:funct7(g2); break;case 5:funct8(g1); break;case 0:exit(0);default:{ printf("输入有误,请重新选择:");goto loop2; }}//clrscr();system("cls");}}}五、测试数据及其结果分析图一登录界面图二管理员界面图三普通用户界面图四输入信息图六查询院系某个项目结果分析(1)进入管理员界面需要正确输入密码,普通用户不需要输入密码,但管理员界面的功能更多(2)输入信息时项目和院系编号必须输入数字且不能超过预先设定的项目总数和院系总数(3)总分排序和团体总分排序要先输入项目编号,进行查询和排序时也需要输入正确的院系编号和项目编号六、调试过程中的问题(1)运行时出现runtime check failure #2或runtime check failure#3说明有变量越界或有变量没有初始化,需要扩大变量范围或给变量赋值(2)调试时出现乱码或程序终止则很有可能输入了错误的数据类型,需要重启程序并正确输入数据类型(3)选择普通用户后无法显示菜单界面只有光标但输入数字可以选择功能,问题是system(”cls”)函数放在了选择之前导致了清屏(4)结构体定义时缺最后的分号,struct node1{ } 应改为struct node1{ };(5)在定义字符串变量时要指定数据长度七、课程设计总结经过一个星期的C语言上机实验我学到了很多,也对C语言的特点和用法有了进一步的了解和体会,C语言与其他语言相比有着独有的特点,主要体现在以下几个方面:1. 简洁紧凑、灵活方便、2. 运算符丰富、3. 数据结构丰富、4.C语法限制不太严格、程序设计自由度大、5.C语言适用范围大,可移植性好。

相关文档
最新文档