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

合集下载

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

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

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

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

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

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

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

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

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

C语言课程设计____运动会分数统计系统源代码

C语言课程设计____运动会分数统计系统源代码

源代码:#in clude<stdio.h>#in clude<math.h>#in elude <coni o.h>#i nclude <process.h>#defi ne n 2〃学校数目#defi ne m 1〃男子项目数目#defi ne w 1〃女子项目数目#defi ne null 0typedef struct{int ite mnum; II 项目编号int top; II取名次的数目int ran ge[5]; II 名次分数int mark[5]; II}itemnode; II定义项目结点的类型typedef struct{int school num; II 学校编号int score; II学校总分int mscore; //男团体总分int wscore; //女团体总分item node c[m+w]; // 项目数组}head no de;//定义头结点类型head node h[ n];〃定义一个头结点数组void in put in formatio n() // 输入信息,建立系统{int i,j,k,s;for(i=0;i< n;i++){h[i].score=0;h[i].mscore=0;h[i].wscore=0;}for(i=0;i< n;i++){printf("***** 学校编号:");scan f("%d", &h[i].school nu m);for(j=0;j<m+w;j++){//初始化头结点//输入头结点信息、、*****scan f("%d",&h[i].c[ j].item nu m); printf("***** 取前 3 名or 前 5 名:"); scan f("%d",&h[i].c[ j].top);printf("*****获得几个名次:”);scan f("%d",&k);for(s=0;s<5;s++)h[i].c[ j].range[s]=0, h[i].c[j].mark[s]=O;for(s=0;s<k;s++){printf("***** 名次:");scan f("%d",&h[i].c[j].ra nge[s]);if(h[i].c[ j].top==3) switch(h[i].c[j].range[s]){case 0: h[i].c[ j].mark[s]=0; break;case 1: h[i].c[ j].mark[s]=5; break;case 2: h[i].c[ j].mark[s]=3; break;case 3: h[i].c[ j].mark[s]=2; break; }elseswitch(h[i].c[j].ra nge[s]) 〃输入项目信息//初始化排名和分数//输入所获名次信息case 0: h[i].c[ j].mark[s]=O; break;case 1: h[i].c[ j].mark[s]=7; break;case 2: h[i].c[ j].mark[s]=5; break;case 3: h[i].c[ j].mark[s]=3; break;case 4: h[i].c[ j].mark[s]=2; break;case 5: h[i].c[ j].mark[s]=1; break;h[i].score=h[i].score+h[i].c[j].mark[s]; //按取前三名还是取前五名分别记分if(j<=m-1)h[i].mscore=h[i].mscore+h[i].c[ //是男子项目则记到男子分数里面去elseh[i].wscore=h[i].wscore+h[i].c[ //是女子项目则记到女子项目里面去}prin tf("\n");}}}j].mark[s]; j].mark[s];void output。

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语言课程设计报告-学校运动会管理系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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语言版))班级: 姓名: X X X设计题目:运动会分数统计系统设计时间:指导教师: XX XX XX评语:_______________________________________________________________________________________________________________________________________________________________________________________________评阅成绩: 评阅教师:《数据结构(C语言版)》课程设计实验报告运动会分数统计系统一、题目与要求(一)、运动会分数统计(限1 人完成)任务:参加运动会有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)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

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语言课设—运动会分数统计

图 4 按编号排列流程图
i,j,s,n
输出“输入需要查询的项目编号: ”
读入 s
s>=1&&s>=n


用 break 语句结束循环
输出“输入数据有误,请重新输入: ”
图 5 输入查询项目编号流程图
沈阳大学
课程设计说明书
No.6
i,j,t,sch[i].score for i=1 to (n-1)
for j=i to n
sch[i].score<sch[j].score


t =sch[i] sch[i]=sch[j] sch[j]=t
输出“按学校总分排序: ”
输出“编号 图 6学校按学名校称总分排总列分流程图男子总分 女子总分”
for i=1 to n
输出 sch[i].score
图 6 按学校总分排列流程图
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;}
struct pro // 表示项目的结构体 { string name; // 项目名称 int snum[6]; // 前 5 名学校的编号 }p[21];
学校结构体
沈阳大学
课程设计说明书
No.3
struct school // 表示学校的结构体 { int num; string name; // 学校名称 int score; // 学校总分 int male; // 男子总分 int female; // 女子总分 }sch[21];

学生体育成绩c语言课程设计

学生体育成绩c语言课程设计

学生体育成绩c语言课程设计设计学生体育成绩管理系统的C语言课程项目是一个很好的实践机会,可以涵盖诸如数据结构、文件操作、用户界面等方面的概念。

以下是一个简单的示例,展示了如何开始这样一个项目。

请注意,这只是一个基础框架,你可能需要根据具体需求进行修改和扩展。

#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct {char name[50];int id;float sportsScore;} Student;// 函数声明void addStudent();void displayAllStudents();void saveToFile();void loadFromFile();// 全局变量Student students[100]; // 假设最多有100名学生int studentCount = 0;int main() {int choice;// 加载已有数据loadFromFile();do {// 用户菜单printf("\nStudent Sports Score Management System\n");printf("1. Add Student\n");printf("2. Display All Students\n");printf("3. Save to File\n");printf("4. Exit\n");printf("Enter your choice: ");scanf("%d", &choice);switch (choice) {case 1:addStudent();break;case 2:displayAllStudents();break;case 3:saveToFile();break;case 4:printf("Exiting the program.\n");break;default:printf("Invalid choice. Please enter a valid option.\n");}} while (choice != 4);return 0;}// 添加学生信息void addStudent() {if (studentCount < 100) {printf("Enter student name: ");scanf("%s", students[studentCount].name);printf("Enter student ID: ");scanf("%d", &students[studentCount].id);printf("Enter sports score: ");scanf("%f",&students[studentCount].sportsScore);studentCount++;printf("Student added successfully.\n");} else {printf("Student database is full.\n");}}// 显示所有学生信息void displayAllStudents() {if (studentCount > 0) {printf("\nList of Students:\n");for (int i = 0; i < studentCount; i++) {printf("Name: %s, ID: %d, Sports Score: %.2f\n", students[i].name, students[i].id, students[i].sportsScore);}} else {printf("No students in the database.\n");}}// 将学生信息保存到文件void saveToFile() {FILE *file = fopen("students.dat", "wb");if (file != NULL) {fwrite(students, sizeof(Student), studentCount, file);fclose(file);printf("Data saved to file successfully.\n");} else {printf("Error saving to file.\n");}}// 从文件加载学生信息void loadFromFile() {FILE *file = fopen("students.dat", "rb");if (file != NULL) {studentCount = fread(students, sizeof(Student), 100, file);fclose(file);printf("Data loaded from file.\n");} else {printf("No existing data file found.\n");}}这个简单的程序实现了学生体育成绩管理系统的基本功能,包括添加学生、显示所有学生、保存到文件以及从文件加载数据。

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

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

数据结构课程设计-运动会分数统计(C语⾔版)⽬录第⼀章绪论 (1)1.1 运动会分数统计系统的背景 (1)1.2 运动会分数统计系统的任务和⽬标 (1)第⼆章运动会分数统计系统的需求分析 (2)2.1 功能需求 (2)2.2 功能模块 (2)2.3 数据要求 (3)2.4 性能要求 (3)第三章系统开发⼯具及关键技术 (4)3.1 系统开发⼯具 (4)3.1.1 CodeBlocks (4)3.2 关键技术 (4)3.2.1 C语⾔ (4)3.2.2 数组 (4)3.2.3 链表 (4)第四章运动会分数统计系统的实现 (5)4.1 数据结构设计 (5)4.2 结构定义 (5)4.3 系统界⾯的实现 (6)4.3.1 主菜单窗⼝ (6)4.3.2 输⼊各个项⽬成绩并存储⽂件 (6)4.3.3 统计各学校总分 (8)4.3.4 按学校编号排序输出 (8)4.3.5 按学校总分排序输出 (8)4.3.6 按男团体总分排序输出 (9)4.3.7 按⼥团体总分排序输出 (9)4.3.8 按学校编号查询学校某个项⽬情况 (10)4.3.9 按项⽬编号查询取得名次的学校 (10)第五章结束语 (11)5.1 课程设计总结 (11)5.2 致 (11)参考⽂献 (12)附录 (13)第⼀章绪论1.1 运动会分数统计系统的背景在信息技术已经深⼊⼈类⼯作⽣活的今天,计算机软件得到了⼴泛的应⽤,越来越多的政府和企业将其业务纳⼊计算机软件系统。

随着社会进步,体育事业的发展,为了提⾼运动会成绩统计准确,减少设计者们的⼯作量,开发了本系统。

1.2 运动会分数统计系统的任务和⽬标任务:参加运动会有n个学校,学校编号为1……n。

⽐赛分成m个男⼦项⽬,和w个⼥⼦项⽬。

项⽬编号为男⼦1……m,⼥⼦m+1……m+w。

不同的项⽬取前前三名积分;前三名的积分分别为:5、3、2。

(m、w<=20,n<=10)。

⽬标:1.可以输⼊各个项⽬的前三名或前五名的成绩;2.能统计各学校总分;3.可以按学校编号、学校总分、男⼥团体总分排序输出;4.可以按学校编号查询学校某个项⽬的情况;可以按项⽬编号查询取得前三或前五名的学校。

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

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

printf("%s
%s
%s
%f
%f
%f
\n",stu[i].num,stu[i].name,stu[i].xibie,stu[i].race,stu[i].jump,stu[i].h
igh);
}
} void sort() {int i,j;
printf("********************* 按 系 成 绩 排 序 结 果 如 下 **********************************\n\n");
-I-
山西工商学院课程设计报告
第 1 章 概要设计
1.1 题目的内容与要求
1. 添加学生数据函数 主要实现程序最初运行时学生数据的录入以及其后的 运行中学生数据的追加功能;
2. 按系排名(参照学生总成绩)函数 按照题目的具体要求实现的是参照不 同院系的学生的总成绩给出院系的排名;
3. 按项目查询函数 允许按照项目名称对学生的各项成绩进行查询; 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中
认:\n",i);
scanf("%s%s%s",stu[i].num,stu[i].name,stu[i].xibie);
printf("\n 请输入第%d 个学生的赛跑比赛、跳远比赛、跳高比赛,用空格分开,
并按回车键确认:\n",i);
scanf("%f%f%f",&stu[i].race,&stu[i].jump,&stu[i].high);
int n; while(1) {
menu(); printf("\n 请输入您要选择的操作序号,按回车键确认:"); scanf("%d",&n); switch(n) {

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

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

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

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

换题者不记成绩。

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

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

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

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

⑤关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。

设计课题七:运动会分数统计系统一、问题描述:参加运动会的n 个学校编号为l ~n 。

比赛分成m 个男子项目和w 个女子项目,项目编号分别为l ~m 和m +1~m +w 。

由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。

设计一个统计程序按名次产生各种成绩单、得分报表。

二、基本要求:1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分;均按名次排序。

2.比赛项目既要有径赛,又要有田赛。

三、测试数据:对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。

四、实现提示:1.数据结构:线性表2.数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由系统根据基本表自动生成。

3. 可以假设n ≤20,m ≤30,w ≤20,姓名长度不超过20个字符。

每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入运动员编号、学校编号和成绩等。

五、选作内容:允许用户指定某项目采取其他名次取法。

姓名运动员编号 校名学校编号 项目名项目编号 初始化时完成录入 floatchar char char char char 成绩类型 性别 项目编号 学校编号 运动员编号目录一: 需求分析: ............ 错误!未定义书签。

二:概要设计: ............ 错误!未定义书签。

三: 详细设计: . (9)四:调试分析及其体会: (11)五:使用说明: (14)六:附录: (16)七:评分表: (33)一.需求分析1问题描述运动会分数统计系统参加运动会有n个系,系编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)2.基本要求:(1). 运动员检录;(2).运动员检录,(3).运动员成绩排序;(4). 运动员评奖3.测试数据《1》输入:1进入添加系的界面,根据提示,再输入:汽车系。

再输入:8,成功添加了一个系。

再输入:2进入运动项目添加界面,根据提示,再输入:跳高;1;0;1;2;3。

之后输入0。

再次进入系统界面。

《2》输入:3查看输出结果。

《3》:输入:4查看输出结果。

《4》:输入:5查看输出结果。

《5》:输入:6查看输出结果。

《6》:输入:7根据提示输入项目编号:2。

查看输出结果。

《7》:输入:8根据提示输入系编号:3。

查看输出结果。

二、概要设计1.数据结构<1>系:名称,编号,男子团体总分,女子固体总分。

<2>运动项目:项目编号,名称,男子项目,女子项目,前三名,前五名,第一名系的编号,第二名系的编号,第三名系的编号,第四名系的编号,第五名系的编号。

2.程序模块及之间的调用关系三、详细设计1、数据类型定义(1)系的定义:typedef struct Department //系的结构{char name[20]; //系的名称int number; //系的编号int boy; //男子团体总分int girl; //女子团体总分Department *next; }Department;(2)运动项目定义:typedef struct Sport //运动项目结构{char name[20]; //运动项目名称int isboy; //0为女项目,1为男项目int is3; //0为取前五名,1为取前五名int number; //项目编号int first; //第一名系的编号int second; //第二名系的编号int third; //第三名系的编号int fourth; //第四名系的编号int fifth; //第五名系的编号Sport *next;}Sport;、2、函数之间的调用关系(1)系调用图department_adddepartment_Order<1>Department department_searchdepartment_addmarkdepartment_showdepartment_isexistdepartment_outputdepartment_readdepartment_writedepartment_getlongsport_isexistsport_addsport_getlongsport_write<2>Sport sport_readsport_outputsport_search3、算法设计主要算法的设计思想:本程序主要是使用链表来实现操作。

一个运动会包括运动项目和参加运动会的成员。

因此构造两个链表Department,Sport。

为了操作的方便,并且能够保存输入数据,所以通过文件操作来实现数据的写和读。

每次添加新的数据后都要输入0退出,数据才能保存。

对于总分的排序使用了冒泡排序。

为了使整个程序看起来更加友好,又添加了程序启动画面。

四、调试分析以及设计体会1、调试中遇到问题及解决方法1)、程序调试过程中常会出现一些小错误,如i,j混淆少括号少分号等小问题都可以按照提示找到,然后改正。

2)、语句错误语句使用不当造成程序无法运行出正常的结果。

3)、在排序过程中输出的结果是按总分顺序排序的,但是却不能够正确的输出是哪个学校的总分,解决方法是在新申请的顺序表的节点中加入了一个纪录学校代号的内容,在输出的同时就可以把学校代号也正确的输出来了。

2、设计体会通过这次课程设计使我进一步达到理论与实际相结合,提高了自己组织数据及编写程序的能力,使我们能够根据问题要求和数据对象的特性,学会数据组织的方法,把现实世界中的实际问题在计算机内部表示出来并用软件解决问题,培养良好的程序设计技能,掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务,锻炼自己的动脑能力,学会用自己的思路解决现实中的实际问题,虽然一开始也走了一些弯路不过在同学和老师的点拨下完成了该程序,这次课程设计中遇到了很多问题,一开始准备用二维数组存放的可考虑到同一个学校同一个项目有好几个人参加,就不能用二维数组了,如果每个学校都申请一个二维数组也非常不方便,还是用顺序表方便也不浪费空间,在这次课程设计的过程中虽然很多次都参照了课本及资料,不过这使我更加熟悉了顺序表以及结构体的定义及实现,调试过程中也遇到了一些问题也都是自己独立思考完成的,还有一个体会是,遇到不会的地方可以参考课本也可以去图书馆或网上查资料,当然主要思路有了也就简单点了,一开始思路不是很清楚就开始在敲程序了,浪费了很多时间,在老师的指导下,把自己的思路理清楚了再来敲程序果真是事半功倍,这真是个很好的收获。

3、性能分析在排序时用到了直接插入排序,从算法描述中可以看到,在搜索插入位置时,遇到关键字相等的元素就停止比较和移动元素,可以确定该算法是稳定的排序算法。

从空间角度上看,它只需要一个元素的辅助空间r[0]。

从时间角度上看,主要时间耗费在关键字的比较和移动元素上。

n为顺序表表长,平均时间复杂度为O (n2)最坏时间复杂度为O(n2)辅助存储空间r[0]。

2、调试结果<1>多组数据输入与输出:(1)输入:3输出:系名编号男团总分女团总分总分法律系 6 0 0 0电子系 5 3 2 5数学系 4 6 0 6历史系 3 9 7 16中文系 2 15 11 26计算机系 1 21 11 32旅游系7 0 7 7(2)输入:4输出: 系名编号男团总分女团总分总分法律系 6 0 0 0电子系 5 3 2 5数学系 4 6 0 6旅游系7 0 7 7历史系 3 9 7 16中文系 2 15 11 26计算机系 1 21 11 32(3)输入:5输出:法律系 6 0 0 0 电子系 5 3 2 5数学系 4 6 0 6旅游系7 0 7 7历史系 3 9 7 16中文系 2 15 11 26计算机系 1 21 11 32 (4)输入:6输出:法律系 6 0 0 0电子系 5 3 2 5数学系 4 6 0 6旅游系7 0 7 7历史系 3 9 7 16中文系 2 15 11 26计算机系 1 21 11 32(5)输入:7输出:请输入项目编号:输入:1回车输出:项目名:100m项目类型:女子项目第一名:计算机系第二名:中文系第三名:法律系第四名:无第五名:无(6)输入:8输出:请输入系的编号:再输入2则输出:系名:中文系男子团体总分:3 女子团体部分:10 总分:13 (7)输入:0 退出五、使用说明1、运行环境Windows,VC++6.02、用户界面4、操作过程(1)用户进入程序启动界面,等load完成后进入主菜单.主菜单有以下9个选项1.输入系别2.输入运动项目3.按系别编号输出总分4.按总分排序5.按男团体总分排序6.按女团体总分排序7.按项目编号查询8.按系别编号查询0.退出(2)输入0~8中的一个数(3)输入1,进行添加系操作,分别输入系的名称和编号(4)输入2,进行添加运动项目操作,分别输入项目名称,编号,项目类型,名次选取,排名情况(5)输入0,则退出系统,并且保存输入的信息.每次添加完都要输入0退出系统才有效(6)输入3,输出按系编号总分排名.(7)输入4,输出按总分排名(8)输入5,输出按男团体总分排序(9)输入6,输出按女团体总分排序(10)输入7,进入按项目编号查询界面.输入要查询的项目编号(11)输入8,进入按系别编号查询界面,输入要查询的系的编号六附录1、源程序#include<iostream.h>#include<iomanip.h>#include<string.h>#include<fstream.h>#include<stdlib.h>#include<ctype.h>#include<stdio.h>#include<conio.h>typedef struct Department //系的结构{char name[20]; //系的名称int number; //系的编号int boy; //男子团体总分int girl; //女子团体总分Department *next; }Department;typedef struct Sport //运动项目结构{char name[20]; //运动项目名称int isboy; //0为女项目,1为男项目int is3; //0为取前五名,1为取前五名int number; //项目编号int first; //第一名系的编号int second; //第二名系的编号int third; //第三名系的编号int fourth; //第四名系的编号int fifth; //第五名系的编号Sport *next;}Sport;int getint(int a) //字符转换成数字{return (int)(a-'0');}Department * head1;//-------启动画面函数----------void Cover(){ system("color 1b");char line[]={"程序读取中请耐心等待..."};char bar[]={"...."};int i,j,k=0,x=0,y=0;for(i=0;i<=strlen(line)/2;){system("cls");for(j=0;j<9;j++) //改变行坐标cout<<endl;for(j=0;j<(75-strlen(line))/2;j++) //改变列坐标cout<<" ";for(j=1;j<=i;j++) //进度显示器cout<<"●";for(x=strlen(line)/2;x>i;x--)cout<<"○";if(k==4)i++;cout<<endl;for(j=0;j<(75-strlen(line))/2;j++) //行坐标定位cout<<" ";cout<<line; //输出线条cout<<endl;for(j=0;j<(65-strlen(bar))/2;j++)cout<<" ";cout<<(i+7)*5<<"% Loading";cout.write(bar,k);cout<<endl;for(j=0;j<10;j++)cout<<endl;for(j=0;j<24;j++)cout<<" ";cout<<"程序设计员5080906 石行"<<endl;for(j=0;j<24;j++)cout<<" ";for(j=0;j<=18;j++)cout<<"─";cout<<endl;for(j=0;j<10000000;j++);//延时效果k++;if(k>4)k=0;}}void department_add() //添加系{Department * p;int mark=0;p=new Department;cout<<"请输入系的名称:";cin>>p->name;char c;while (mark!=1){cout<<"请输入系的编号:";cin>>c;if (!isdigit(c))//是否为数字{cout<<"数据非法"<<endl;}else{mark=1;p->number=c;}}p->boy=0;p->girl=0;p->next=head1->next;head1->next=p;cout<<"成功添加了一个系"<<endl;}int department_getlong(Department *first)//得到链表长度{int i=0;while (first->next!=NULL){i++;first=first->next;}return i;}void department_write()//将系数据写入文本{Department * p;p=head1;p=p->next;ofstream outfile("Department.txt",ios::out);outfile<<department_getlong(p)+1<<" ";while (p!=NULL){outfile<<p->name<<" "<<p->number<<" "<<p->boy<<" "<<p->girl<<" ";}outfile.close();cout<<"Write Success!"<<endl;}void department_read()//从文本读入系数据{int i;ifstream infile ("Department.txt",ios::in);infile>>i;while(i>0){Department * p;p=new Department;infile>>p->name>>p->number>>p->boy>>p->girl;p->next=head1->next;head1->next=p;i--;}cout<<"Department Data Read Success!"<<endl;}void department_output(Department *p)//输出系{cout<<"系名编号男团总分女团总分总分\t\n";while(p){cout<<p->name<<"\t"<<getint(p->number)<<"\t"<<p->boy<<"\t"<<p->girl<<"\t"<<(p->girl+p->boy)<<endl;p=p->next;}}int department_isexist(int a)//检验系是否存在{int b=0;Department *p;p=head1;p=p->next;while(p){if(p->number==a){return 1;}}return 0;}void department_show(int a)//输出所有系{Department *p;p=head1;p=p->next;while(p){if(p->number==a){cout<<p->name<<"";return;}p=p->next;}cout<<"无";}void department_search(int a)//按编号搜索系{Department *p;p=head1;p=p->next;while(p){if(p->number==a){cout<<"系名:"<<p->name<<""<<"男子团体总分:"<<p->boy<<" "<<"女子团体总分:"<<p->girl<<""<<"总分:"<<(p->boy+p->girl)<<"";return;}p=p->next;}cout<<"无此编号";}void department_addmark(int a,int b,int c)//a为分数,b为系编号,c=1表示男,c=0表示女{Department *p;p=head1;p=p->next;while(p){if(p->number==b){if(c=='1'){p->boy=p->boy+a;}else{p->girl=p->girl+a;}}p=p->next;}}void department_order(Department *temp,int type) //type=0按总分,type=1按男总分,type=2按女总分,{Department *p,*q,*small,*temp1;temp1=new Department;temp1->next=NULL;p=temp;while(p){small=p;q=p->next;while(q){switch(type){case 0:if((q->boy+q->girl)<(small->girl+small->boy)){small=q;}break;case 1:if(q->boy<small->boy){small=q;}break;case 2:if(q->girl<small->girl){small=q;}break;default:cout<<"error"<<endl;}if(small!=p){temp1->boy=p->boy;p->boy=small->boy;small->boy=temp1->boy;temp1->girl=p->girl;p->girl=small->girl;small->girl=temp1->girl;strcpy(temp1->name,p->name);strcpy(p->name,small->name);strcpy(small->name,temp1->name);temp1->number=p->number;p->number=small->number;small->number=temp1->number; //将系的名字互换}q=q->next;}p=p->next;}}Sport * head2;int sport_isexist(int a) //检查运动项目(编号)是否已经存在{int b=0;Sport *p;p=head2;p=p->next;while(p){if(p->number==a){return 1;}p=p->next;}return 0;}void sport_add() //添加项目{Sport * p;int mark=0;p=new Sport;cout<<"请输入项目名称:";cin>>p->name;char c;while (mark!=1){cout<<"请输入项目编号:";cin>>c;if (!isdigit(c)){cout<<"数据非法"<<endl;}else{if(sport_isexist(c)){cout<<"该编号已存在"<<endl;}else{mark=1;p->number=c;}}}mark=0;while (mark!=1){cout<<"请输入项目类型(0为女子项目,1为男子项目):";cin>>c;p->isboy=(int)(c-'0');//字符转换成数字if (!isdigit(c)){cout<<"数据非法"<<endl;}else if(p->isboy<0||p->isboy>1){cout<<"数据非法"<<endl;}else{mark=1;p->isboy=c;}}mark=0;while (mark!=1){cout<<"请输入项目名次情况(0为取前3名,1为取前5名):";cin>>c;p->is3=(int)(c-'0');if (!isdigit(c)){cout<<"数据非法"<<endl;}else if(p->is3<0||p->is3>1){cout<<"数据非法"<<endl;}else{mark=1;p->is3=c;}}mark=0;while (mark!=1){cout<<"请输入第一名的系的编号:";cin>>c;if (!isdigit(c)){cout<<"数据非法"<<endl;}else{if(!department_isexist(c)){cout<<"该系不存在,请先添加";}else{mark=1;p->first=c;if(p->is3=='0')department_addmark(5,c,p->isboy);elsedepartment_addmark(7,c,p->isboy);}}}mark=0;while (mark!=1){cout<<"请输入第二名的系的编号:";cin>>c;if (!isdigit(c)){cout<<"数据非法"<<endl;}else{if(!department_isexist(c)){cout<<"该系不存在,请先添加";}else{mark=1;p->second=c;if(p->is3=='0')department_addmark(3,c,p->isboy);elsedepartment_addmark(5,c,p->isboy);}}}mark=0;while (mark!=1){cout<<"请输入第三名的系的编号:";cin>>c;if (!isdigit(c)){cout<<"数据非法"<<endl;}else{if(!department_isexist(c)){cout<<"该系不存在,请先添加";}else{mark=1;p->third=c;if(p->is3=='0')department_addmark(2,c,p->isboy);elsedepartment_addmark(3,c,p->isboy);}}}mark=0;if(p->is3=='1'){while (mark!=1){cout<<"请输入第四名的系的编号:";cin>>c;if (!isdigit(c)){cout<<"数据非法"<<endl;}else{if(!department_isexist(c)){cout<<"该系不存在,请先添加";}else{mark=1;p->fourth=c;department_addmark(2,c,p->isboy);}}}mark=0;while (mark!=1){cout<<"请输入第五名的系的编号:";cin>>c;if (!isdigit(c)){cout<<"数据非法"<<endl;}else{if(!department_isexist(c)){cout<<"该系不存在,请先添加"<<endl;}else{mark=1;p->fifth=c;department_addmark(1,c,p->isboy);}}}}else{p->fourth='0';p->fifth='0';}p->next=head2->next;head2->next=p;cout<<"成功添加了一个运动项目"<<endl;}int sport_getlong(Sport *first) //得到项目链表长度{int i=0;while (first->next!=NULL){i++;first=first->next;}return i;}void sport_write() //将项目数据写入文本文档{Sport * p;p=head2;p=p->next;ofstream outfile("Sport.txt",ios::out);outfile<<sport_getlong(p)+1<<" ";while (p!=NULL){outfile<<p->name<<" "<<p->number<<" "<<p->isboy<<" "<<p->is3<<" "<<p->first<<" "<<p->second<<" "<<p->third<<" "<<p->fourth<<" "<<p->fifth<<" ";p=p->next;}outfile.close();cout<<"Write Success!"<<endl;}void sport_read() //从文本读取项目数据{int i;ifstream infile ("Sport.txt",ios::in);infile>>i;while(i>0){Sport * p;p=new Sport;infile>>p->name>>p->number>>p->isboy>>p->is3>>p->first>>p->second>>p->thir d>>p->fourth>>p->fifth;p->next=head2->next;head2->next=p;i--;}cout<<"Sport Data Read Success!"<<endl;}void sport_output(Sport *p) //输出项目的情况{cout<<"name "<<"\t"<<"Num"<<""<<"B/G"<<""<<" 3/5"<<" "<<" first"<<""<<"second"<<" "<<"third"<<" "<<"fourth"<<" "<<"fifth"<<" "<<endl;while(p){cout<< p->name <<"\t" <<" " <<getint(p->number)<<"" << getint(p->isboy)<<"" <<getint(p->is3)<<""<<" ";department_show(p->first);department_show(p->second);department_show(p->third);department_show(p->fourth);department_show(p->fifth);//printf("\n");p=p->next;cout<<"\n";}cout<<endl;}void sport_search(int a) //搜索项目{Sport *p;p=head2;p=p->next;while(p){if(p->number==a){cout<<"项目名:"<<p->name<<endl<<"项目类型:";if(p->isboy==1){cout<<"男子项目";}else{cout<<"女子项目";}cout<<endl<<"第一名:";department_show(p->first);cout<<endl<<"第二名:";department_show(p->second);cout<<endl<<"第三名:";department_show(p->third);cout<<endl<<"第四名:";department_show(p->fourth);cout<<endl<<"第五名:";department_show(p->fifth);return;}p=p->next;}cout<<"无此编号";}void main() //运动会程序主函数{Cover();system("color 2b"); //改变背景,前景色head1=new Department;head1->next=NULL;head2=new Sport;head2->next=NULL;//school_add();sport_read();department_read();//sport_add();Department * p1;Sport * p2;p1=head1;p1=p1->next;p2=head2;p2=p2->next;char choose;char temp;//string ch=" ";int a=1;while(a!=0){cout<<endl;cout<<" .oO欢迎使用运动会分数统计系统Oo. "<<endl;cout<<"**********************************************************"<<endl;cout<<" * *"<<endl;cout<<" * 1.输入系别; 2.输入运动项目*"<<endl;cout<<" * *"<<endl;cout<<" * 3.按系别编号输出总分; 4.按总分排序; *"<<endl;cout<<" * *"<<endl;cout<<" * 5.按男团体总分排序; 6.按女团体总分排序; *"<<endl;cout<<" * *"<<endl;cout<<" * 7.按项目编号查询; 8.按系别编号查询; *"<<endl;cout<<" **"<<endl;cout<<" * 0.退出*"<<endl;cout<<" * *"<<endl;cout<<" * 提示:需先输入系别后才能输入运动项目*"<<endl;cout<<" * *"<<endl;cout<<"**********************************************************"<<endl;cout<<" 请选择:";//cin>>ch;//choose=int(ch[0])+int(ch[1])-'0'; //处理异常状态cin>>choose;if (!isdigit(choose)){system("cls");cout<<"操作非法1"<<endl;}else{switch(getint(choose)){case 1:system("cls");department_add();break;case 2:system("cls");cout<<"当前项目:"<<endl;sport_output(p2);cout<<"当前系:"<<endl;department_output(p1);sport_add();break;case 3:system("cls");department_output(p1);break;case 4:system("cls");department_order(p1,0);department_output(p1);break;case 5:system("cls");department_order(p1,1);department_output(p1);break;case 6:system("cls");department_order(p1,2);department_output(p1);break;case 7:system("cls");cout<<"请输入项目编号:";cin>>temp;sport_search(temp);break;case 8:system("cls");cout<<"请输入系的编号:";cin>>temp;department_search(temp);break;case 0:system("cls");a=0;break;default:system("cls");cout<<"操作非法\n";}}}department_write();sport_write();system("exit");}七、课程设计评分表课程名称:C语言程序设计项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名:日期:。

相关文档
最新文档