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

合集下载

c语言课程设计--运动会分数统计系统讲课教案

c语言课程设计--运动会分数统计系统讲课教案

课程设计报告课程名称C语言课程设计课题名称运动会分数统计系统专业电气工程及其自动化班级学号姓名指导教师王颖2012年 6 月25 日湖南工程学院课程设计任务书课程名称C语言课程设计课题运动会分数统计系统专业班级电气工程及其自动化学生姓名学号指导老师王颖审批任务书下达日期2012年6月16日任务完成日期2012年6月25日运动会分数统计系统一、问题描述:参加运动会的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 成绩 类型 性别 项目编号 学校编号 运动员编号精品文档前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

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总结本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。

运动会计分系统_课程设计报告书

运动会计分系统_课程设计报告书

编号:B04931082学号:201240450137 Array课程设计教学院计算机学院课程名称高级语言程序设计Ⅱ题目运动会比赛计分系统专业软件工程班级(一)班姓名包先跃同组人员石奇、吕鹏飞、陈立阳指导教师祁文青2013 年06 月29 日课程设计任务书2012 ~2013 学年第 2 学期学生姓名:包先跃专业班级: 12软件工程指导教师:祁文青工作部门:计算机学院一、课程设计题目:运动会比赛计分系统二、课程设计内容:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。

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

三、进度安排1.分析问题,给出数学模型,选择数据结构。

2.设计算法,给出算法描述。

3.给出源程序清单。

4. 编辑、编译、调试源程序。

5. 撰写课程设计报告。

四、基本要求1.界面友好,函数功能要划分好。

2.总体设计应画一流程图。

3.程序要加必要的注释。

4.要提供程序测试方案。

5.程序一定要经得起测试,要能运行起来,不能运行的程序是没有价值的。

目录目录 (3)一概述 (3)二总体方案设计 (4)三详细设计 (6)5.1.1提出问题 (9)5.1.2解决问题 (10)5.1.3提出问题 (10)5.1.4分析问题 (10)5.1.5解决问题 (10)5.1.6提出问题 (10)5.1.7分析问题 (10)5.1.8解决问题 (10)5.2算法的效率及改进设想 (10)四程序的调试与运行结果分析 (12)(一)用户手册 (12)(二)调试过程中出现的问题和处理方式 (16)五课程设计总结 (17)附录:(源程序) (18)参考文献 (28)一概述1.课程设计的目的1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。

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

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

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

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

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

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

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

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

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

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

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

比赛评分系统 C语言课程设计

比赛评分系统 C语言课程设计

武汉理工大学华夏学院课程设计课程名称C语言课程设计题目比赛评分系统的设计专业软件工程班级软件1121班姓名成绩_________________指导教师王绪梅2013年2月25日至2013年3月1 日课程设计任务书学生姓名:专业班级:软件1121指导教师:王绪梅工作单位:信息工程系设计题目:比赛评分系统的设计要求完成的主要任务:1. 任务描述学校要举办一个歌咏比赛,请设计一个比赛评分程序,对参赛的选手进行评分。

(给分的原则为:满分为10分;计分方法是:裁判给出分数后,去掉两个最高分和两个最低分后的平均分为选手的最后得分(精确到小数点后两位).)要求系统实现以下功能:⑴设参赛人数为n位(n<50),裁判人数为m(m为不少于11的奇数)位;⑵系统能录入参赛人员资料;参赛选手按序号依次比赛,统计最后得分;⑶能够查阅选手的得分情况;⑷比赛结束后,显示出“名次表”;⑸公布一、二、三等奖的得奖选手名单。

2.本课程涉及的知识点变量的定义、输入和输出函数、数组的应用、循环语句、选择语句等等。

3. 要求完成的任务⑴完成整个规定任务的设计及调试,最后得出正确结果,并经教师检查及答辩;⑵写出规范的课程设计报告,在设计思想描述时一定要画出程序算法流程图;⑶课程设计结束后交设计说明书等文档和设计内容:⑷从2月26日起,学生每天至少要到设计教室半天以上;设计报告撰写格式要求:设计报告的主要内容是详细写出在设计过程中所用到的主要技术或方法;课程设计报告按通用格式书写,具体要求见资料:“课程设计说明书的书写内容与格式”时间安排:第一天:学生先在实验室集中,由指导教师介绍课程设计的目的、布置任务后选题;第二天-第四天:学生在实验室完成设计,经教师检查并回答提问,确认设计完成;第五天:教师在计算机上先检查设计报告、学生修改后打印提交指导教师签字:2013年2月20日系主任签字:2013年2月23日目录1.设计题目................................................................. 错误!未定义书签。

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 需求分析. (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码算法;画出函数的调用关系图。

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

C语言运动会计分程序编写

C语言运动会计分程序编写

任:参加运会有 n 个学校,学校号 1⋯⋯ n。

比分红 m个男子目,和 w 个女子目。

目号男子 1⋯⋯ m,女子 m+1⋯⋯ m+w。

不一样的目取前五名或前三名分;取前五名的分分: 7、5、3、2、1,前三名的分分: 5、3、2;哪些取前五名或前三名由学生自己定。

( m<=20,n<=20)功能要求: 1). 能够入各个目的前三名或前五名的成;2).能各学校分,3).能够按学校号、学校分、男女体分排序出;4). 能够按学校号学校某个目的状况;能够按目号获得前三或前五名的学校。

定:入数据形式和范: 20 之内的整数(假如做得更好能够入学校的名称,运目的名称)出形式:有中文提示,各学校分数整形界面要求:有合理的提示,每个功能能够立菜,依据提示,能够达成有关的功能要求。

存构:学生自己依据系功能要求自己,可是要求运会的有关数据要存在数据文件中。

(数据文件的数据写方法等有关内容在 c 言程序的上,自学解决)在最后的上交猜中指明你用到的存构;数据:要求使用 1、所有合法数据; 2、整体非法数据; 3、局部非法数据。

行程序,以保程序的定。

数据及果在上交的猜中写明;#include<stdio.h>#include<string>#include<iomanip>#include<fstream>using namespace std;int n,m,w;struct pro // 表示项目的构造体{string name; // 项目名称int snum[6]; // 前 5 名学校的编号}p[21];struct school // 表示学校的构造体{int num;string name; // 学校名称int score; // 学校总分int male; // 男子总分int female; // 女子总分}sch[21];int integral1[5]={7,5,3,2,1};//前五名得分int integral2[3]={5,3,2};//前三名得分void input(){int i,j,y,x;printf(" 输入学校数量:");y=0;scanf("%d",&n);if(n>=1&&n<=20)y=1;if(y)break;elseprintf(" 输入数占有误,请从头输入:");for(i=1;i<=n;i++){printf(" 输入第 %d 个学校的名称 :",i);scanf("%s",&sch[i].name);sch[i].score=0;sch[i].female=0;sch[i].male=0;sch[i].num=i;}printf(" 输入男子项目数和女子项目数:");y=0;scanf("%d%d",&m,&w);if(m<=20&&m>=1&&w<=20&&w>=1)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}for(i=1;i<=m+w;i++){printf(" 输入第 %d 个项目的名称 :\n",i);scanf("%s",& p[i].name);printf(" 输入第 %d 个项目的前 5 名的学校编号:\n",i); for(j=1;j<=5;j++){y=0;while(1){scanf("%d",&x);if(x>=1&&x<=20)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}p[i].snum[j]=x;sch[x].score+=integral[j-1];if(i<=m)sch[x].male+=integral[j-1];else sch[x].female+=integral[j-1];}}void print(int i){printf("%d%d%s%d%d%d%d%d%d",sch[i].num,setw(10),sch[i].name,setw(8),sch[i].score,setw( 9),sch[i].male,setw(10),sch[i].female);}void bianhao() // 按编号排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].num>sch[j].num){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按编号摆列 :\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);}void zongfen() // 按学校总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].score<sch[j].score){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按学校总分摆列:\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);ofstream fout;fout.open(" 运动会分数统计.txt");fout<<" 编号学校名称总分男子总分女子总分"<<endl;for(i=1;i<=n;i++){fout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9)<<sch[i].male<<setw(10)<<sch[i].female<<endl; } fout.close();void malezf() // 按学校男总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].male<sch[j].male){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按学校男子总分摆列:\n");printf(" 编号学校名称总分男子总分女子总分\n"); for(i=1;i<=n;i++)print(i);}void femalezf() // 按学校女总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].female<sch[j].female){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按学校女子总分摆列:\n");printf(" 编号学校名称总分男子总分女子总分\n"); for(i=1;i<=n;i++)print(i);printf("\n");}void cxsch() // 查问学校信息{int i,y,s;printf(" 输入需要查问的学校编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}printf(" 该学校有关信息:\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++){if(sch[i].num==s){print(i);break;}}printf("\n");}void cxxm() // 查问项目信息{int i,y,s;printf(" 输入需要查问的项目编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}printf("%s 前 5 名学校编号及名称为\n",p[s].name);printf(" 名次编号学校名称\n");for(i=1;i<=5;i++)printf(" %d %d%d%s\n",i,p[s].snum[i],setw(12),sch[ p[s].snum[i] ].name); printf("\n");}void solve() // 菜单函数{int z;while(1){printf("\n 选择您需要的操作(选择序号 ):\n");printf("1. 按学校编号排序输出\n");printf("2. 按学校总分排序输出\n");printf("3. 按学校男总分排序输出\n");printf("4. 按学校女总分排序输出\n");printf("5. 查问某个学校成绩\n");printf("6. 查问某个项目成绩\n");printf("7. 结束 \n\n");scanf("%d",&z);if(z==1)bianhao();if(z==2)zongfen();if(z==3)malezf();if(z==4)femalezf();if(z==5)cxsch();if(z==6)cxxm();if(z==7)break;}}int main() // 主函数{input();solve();return 0;}#include<stdio.h>#include<string>#include<iomanip>#include<fstream>using namespace std;int n; //n 个学校int m; //m 个男子项目int w; //w 个女子项目struct pro // 表示项目的构造体{string name; // 项目名称int snum[6]; // 前 5 名学校的编号}p[21];struct school // 表示学校的构造体{int num;string name; // 学校名称int score; // 学校总分int male; // 男子总分int female; // 女子总分}sch[21];int integral[5]={7,5,3,2,1};//前五名得分void input(){int i,j,y,x;printf(" 输入学校数量:");y=0;while(1){scanf("%d",&n);if(n>=1&&n<=20)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}for(i=1;i<=n;i++){printf(" 输入第 %d 个学校的名称 :",i);scanf("%s",&sch[i].name);sch[i].score=0;sch[i].female=0;sch[i].male=0;sch[i].num=i;}printf(" 输入男子项目数和女子项目数:");y=0;while(1){scanf("%d%d",&m,&w);if(m<=20&&m>=1&&w<=20&&w>=1)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}for(i=1;i<=m+w;i++){printf(" 输入第 %d 个项目的名称 :\n",i);scanf("%s",& p[i].name);printf(" 输入第 %d 个项目的前 5 名的学校编号:\n",i); for(j=1;j<=5;j++){y=0;while(1){scanf("%d",&x);if(x>=1&&x<=20)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}p[i].snum[j]=x;sch[x].score+=integral[j-1];if(i<=m)sch[x].male+=integral[j-1];else sch[x].female+=integral[j-1];}}}void print(int i){printf("%d%d%s%d%d%d%d%d%d",sch[i].num,setw(10),sch[i].name,setw(8),sch[i].score,setw( 9),sch[i].male,setw(10),sch[i].female);}void bianhao() // 按编号排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].num>sch[j].num){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按编号摆列 :\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);}void zongfen() // 按学校总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].score<sch[j].score){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按学校总分摆列:\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);ofstream fout;fout.open(" 运动会分数统计.txt");fout<<" 编号学校名称总分男子总分女子总分"<<endl;for(i=1;i<=n;i++){fout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9) <<sch[i].male<<setw(10)<<sch[i].female<<endl; }fout.close();}void malezf() // 按学校男总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].male<sch[j].male){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按学校男子总分摆列:\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);}void femalezf() // 按学校女总分排序{int i,j;school t;for(i=1;i<n;i++){for(j=i;j<=n;j++)if(sch[i].female<sch[j].female){t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n 按学校女子总分摆列:\n");printf(" 编号学校名称总分男子总分女子总分\n");for(i=1;i<=n;i++)print(i);printf("\n");}void cxsch() // 查问学校信息{int i,y,s;printf(" 输入需要查问的学校编号:"); y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf(" 输入数占有误,请从头输入}printf(" 该学校有关信息:\n");printf(" 编号学校名称总分男子总分:");女子总分\n");for(i=1;i<=n;i++){if(sch[i].num==s){print(i);break;}}printf("\n");}void cxxm() // 查问项目信息{int i,y,s;printf(" 输入需要查问的项目编号:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;else printf(" 输入数占有误,请从头输入:");}printf("%s 前 5 名学校编号及名称为\n",p[s].name);printf(" 名次编号学校名称\n");for(i=1;i<=5;i++)printf(" %d %d%d%s\n",i,p[s].snum[i],setw(12),sch[ p[s].snum[i] ].name); printf("\n");}void solve() // 菜单函数{int z;while(1){printf("\n 选择您需要的操作(选择序号 ):\n"); printf("1. 按学校编号排序输出\n");printf("2. 按学校总分排序输出\n");printf("3. 按学校男总分排序输出\n");printf("4. 按学校女总分排序输出\n");printf("5. 查问某个学校成绩\n");printf("6. 查问某个项目成绩\n");printf("7. 结束 \n\n");scanf("%d",&z);if(z==1)bianhao();if(z==2)zongfen();if(z==3)malezf();if(z==4)femalezf();if(z==5)cxsch();if(z==6)cxxm();if(z==7)break;}}int main() // 主函数{input();solve();return 0;}。

C语言综合训练课程设计_运动会成绩管理程序设计

C语言综合训练课程设计_运动会成绩管理程序设计

沈航北方科技学院课程设计说明书课程名称C语言综合训练教学部工学一部专业网络工程班级 B041111学号学生姓名指导教师2011年9月沈航北方科技学院课程设计任务书教学部工学一部专业网络工程课程设计题目运动会成绩管理程序设计班级B041111 学号姓名课程设计时间: 2011 年 8 月 29 日至 2011 年 9月 15 日课程设计的内容及要求:(一)主要内容设计一个运动会成绩管理程序,主要实现以下功能:1、检录功能,登录参赛运动员的信息;2、记录成绩功能,每项比赛结束后记录参赛运动员的成绩;3、针对不同比赛对运动员的成绩排名次;4、可对运动员的信息和成绩进行修改、删除、查询操作。

(二)基本要求1、系统采用C程序设计语言实现;2、独立完成系统的设计、编码和调试,通过指导教师当场验收;3、交出完整的课程设计报告。

三)主要参考书[1]谭浩强.C程序设计(第三版). 北京:清华大学出版社,2005.7[2]高涛,陆丽娜.C语言程序设计.西安西安交通大学出版社,2007.2 (四)评语(五)成绩指导教师史俊 2011 年 7 月 2 日负责教师年月日运动会成绩管理程序设计于硕目录摘要 (2)1.绪论 (2)2.系统分析 (2)2.1功能需求 (2)2.2数据需求 (3)2.3性能需求 (3)3.总体设计 (3)3.1功能模块设计 (3)3.2系统设计方案 (4)4.详细设计 (5)4.1录入信息模块 (5)4.2查询信息模块 (7)4.3修改信息模块 (8)4.4删除信息模块 (9)4.5成绩排名模块 (10)5.调试和测试 (12)5.1测试 (12)5.2调试 (12)6.结论 (13)结束语 (13)参考文献 (13)附录1—用户手册 (14)附录2—源程序 (18)摘要运动会是一个全民健身的活动,在运动会里可以提高人们的身体素质,培养人们的素养。

在参加运动会的过程中我们可以看到激情和友情的碰撞,人们用自己的实力来赢得第一。

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

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

课程设计运动会成绩管理系统课程设计名称:数据结构课程设计专业班级:学生姓名:学号:指导教师:课程设计时间:表格1计算机类专业课程设计任务书学生姓名专业班级学号题目运动会成绩管理系统课题性质工程设计课题来源D.自拟课题。

指导教师同组姓名主要内容一个运动会成绩管理系统是根据学校的实际运动会工作专门设计的一个管理信息系统。

该系统能够对项目、运动员、成绩进行有效管理。

对以上信息管理主要包括:登记各项比赛成绩、根据预赛成绩产生预(决)赛名单,同时能够进行适当的统计工作和结果输出,可以满足各个单位、个人成绩查询的需求。

任务要求1、撰写课程设计说明书。

其要求如下:(1)基本要求:①能反映完成了上述设计内容要求。

②要求撰写不少于5000个文字(20页)的文档。

③文档中至少要包括:数据流图、数据字典、E-R图、数据库表的详细说明、系统功能结构图、主要功能模块说明。

④课程设计说明书一律用碳素墨水书写,其中用户界面设计可以附界面的计算机截图或手工绘图。

(2)文档格式要求(遵循数据库原理及应用课程设计大纲上的要求)其中,正文部分:①分章、层次等,每一章从新一页开始。

②章节安排可如下安排.概述:包括项目背景、编写目的、软件定义、开发环境等内容。

.需求分析:问题陈述、需完成的功能。

以数据流图和数据字典表达。

.概念结构设计:将上述需求分析的成果抽象为ER模型图。

.逻辑结构设计:把ER模型图转换为关系表;描述每一个基本表关系。

并进行规范化;定义视图、定义索引、主关键字、定义权限。

.软件功能设计:画出系统功能结构图,描述每个功能所完成的任务。

.代码设计和界面设计:给出主要功能的代码并有适当的说明;界面设计要合理,给出主要界面。

2、一个可运行的运动会成绩管理系统原型。

参考文献[1]、张海潘。

软件工程导论。

北京:清华大学出版社,2003年[2]、王珊。

数据库系统概论。

北京:高等教育出版社,2006年[3]、赛奎春,白伟明,赵玉君等。

运动会分数统计 课程设计

运动会分数统计  课程设计

攀枝花学院学生课程设计(论文)题目:乒乓球比赛分数统计系统的设计与实现学生姓名:张建军学号:************ 所在院(系):计算机学院专业:计算机科学与技术班级:一班指导教师:陈尧职称:讲师2011年 1 月 1 日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书摘要数据结构是一门专业基础课,学习数据结构要求我们学会研究计算机加工的数据结构特性,以便为应用涉及的数据结构选择适当的逻辑结构、存储结构及其相应的算法。

本系统根据系统特点确立了数据的存储方式,采用了顺序存储结构对数据进行存储。

主要功能包括数据的录入,插入,分数统计,多种显示、查询方式并能随时将数据存入数据文件以及从数据文件中读取数据,对校乒乓球比赛分数统计实为便利。

编写本程序主要是为了初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能,训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养严谨的科学态度和良好的工作作风。

提高综合运用所学的理论知识和方法独立分析和解决问题的能力本课程设计的系统开发平台为Windows XP,程序设计语言为C语言,程序运行平台可为Windws98/2000/XP/Seven。

关键词C语言,乒乓球比赛分数统计系统,数据结构,顺序存储结构1 题目与要求1.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 本系统涉及的知识点结构、数组、循环、函数、分支、指针1.3 功能要求1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

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

一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:(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)输入数据并存入文件使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。

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

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

(3)显示所有记录将文件中的所有记录以表格的形式输出。

如果文件未打开会出现“文件打开失败!按任意键返回...”,关闭文件。

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

-:算法设计:信息输入模块、比赛结果录入模块以及查询模题目的总体要求是要建立三个模块:信息输入模块、建立三个模块块。

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

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

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

(1)在此程序中,包括儿个头文件:;;;;接下来,定义全)局变量,其中包括“参赛学校项目数N;男子项目数M;女子项目数W;参赛学校g_school:竞赛项目g_sport;各名次链表指针ptrHead, ptrThis, ptrNew; 总体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。

总体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。

(2)各种结构的分析:)各种结构的分析:静态存储方式:它是指在程序运行期间由系统分配固定的存储空间的方式,全局变量全部存静态存储方式: 放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放,在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。

用static声明局部变量:使用该变量可以使局部变量的值在函数调用结束后不消失而保留原值,这即为静态局部变量的特点。

静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。

对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它己有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。

如在定义局部变量时不赋初值的话,则对静态局部不说,编译时白动赋初值0(对数值型变量)或空字符?总体设计信息输入模块比赛结果录入模块查询模块设置参赛信息设置竞赛项目总数主菜单设置竞赛项目信息设置项目名次取法生成报表打印竞赛项目信息填充参赛信息请输入您的选择开始。

而对自动变量来说,如果不赋初值则它的值是一个不确定的值。

虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。

Malloc函数函数的作用是在内存的动态存储区中分配一个长度为size的连续空间。

此函数的值是一个指向分配域起始地址的指针,如果此函数未能成功地执行,则返回空指针。

链表是动态地进行存储分配的一种结构,所谓建立动态链表是指在程序执行过程中从无到有地建立一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。

循环结构是结构程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复循环结构杂程序的基本构造单元。

通常用while> do---while语句实现循环,最常用的是for语句的循环,夺循环中还有循环的嵌套,它是指一个循环体内又包含另一个完整的循环结构。

用语句来实现从循环体内跳出来,即提前结束循环,接着执行循环下面的语句,但break 语句不能用于循环语句和swich语句之外的任何其他语句中。

另外一种就是continue语句,它的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

Swich语句语句是多分支选择语句,它后面括号内的“表达式” ,ANSI标准允许它为任何类型。

当表达式的值与一个case后面的常量表达式的值相等时,就执行此case后面的语句, 若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句,每一个case的常量表达式的值必须都不相同;否则就会出现相互矛盾的现象。

各个case和default的出现次序不影响执行结果,执行完一个case 后面的语句后,流程控制转移到下一个case继续执行。

“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。

在执行swich 语句时,根据swich后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断程净流程图开始请输入您的选择csip q编号n=0 i<=2 i=0 i=l 0 2 1 MAX—M MAX—W男团总分女团总分r团体总分输出t生成报表结束HOU第6页2010/9/5项目名次的取法及每一名次的分值开始请选择编号0 1 2 0 7输入名次051513 t二i 2322 i=i+l 3 2 i>0 4 1 n<5 n<3 输出KW KW ■丄■■卜\ I \ I ( ■丄"■卜■丄"V 1 ■\ I I•丄■ •士■丄"■尢■丄"■丄"■丄"■丄"■“■卜■丄"■尢■丄"■丄"■丄"■丄"■卜■丄"■“■丄"■丄"■尢■丄"■丄"■" ■"<r^********** choice your number:()二、课程设计体会在此次的C语言的课程设计中,,我不仅学到了许多有庆这方面的专业知识,更重要的是我学会了如何在拿到一个题目时进行简单的程序分析,并编译出一些相对简单的程序,当然了,对自己编译出的不对的程序, 我也能进行一些分析,并对其进行完善。

在此次的学习过程中,老师教给了我们很多的东西,从一开始的不懂VC++这种软件,到最后的我们可以进行较熟练的应用它,也许在这过程中,我们无论是学生还是老师都遇到了一些小的困难, 但是在我们师生的共同努力下,我们最终还是克服了它,单从这一点来说,我们就学到了许多的东西,比如teamwork,同学之间的相互帮助以及与老师的配合,都证明了这一点,我相信这是我此次学习C语言程序的最大收获。

在我的程序设计的过程中,遇到了很大有难题,特别是在刚拿到我的题目时,头脑中根本没有头绪,更不要说去编译程序了,当时真的很担心是否可以完成老师布置的任务,但慢慢的在学习的过程中,我开始懂得了一些编译的方法,就尝试着去编译一些程序,结果还是很好,最后我编出了我题目的程序,但是在程序的运行过程中,又遇到了新的难题,那就是我所编的程序中有太多的错误,根本无法进行运行,没办法,只好硬着头皮修改,不过还好,在老师和同学们的帮助下, 我最终将我的程序成功地进行了运行,在我自己的程序运行时,心中有一种说不出的高兴,是的,自己这儿天的努力总是没有白费。

五.附录:源代码:#include<>#include<>#include<>#define n 2#define m 1#define w 1typedef struct{int top;int range[5];int mark[5];int itemnum;}itemnode;typedef struct{int schoolnum;int score;int mscore:int wscore:itemnode c[m+w]; }headnode; headnode hln];void input (){int i, j, k, s;for(i=0;i<n;i++){h[i]・ schoolnum=0;h[i]・ score^O:h[i]・ mscore=0;h[i]・ wscore=0;} for(i=0;i<n;i++) printfCXn 学校编号:〃);scanf("%d",&h[i]. schoolnum);for(j=0;j<m+w;j++){printfC\n 项目编号:〃);scanf&h[i]. c[j]. itemnum);printfCXn取前3或前5名:〃);scanf&h[i]. c[j].top);while(hLi]. c[j]. top!=3&&h[i]. c[j]. top! =5){printfC\n输入错误,请重新输入!scanf&h[i]. c[j]. top):break;}printfC\n获得几个名次:〃);scanf("%d", &k);for(s=0;s<5;s++)h[i」.c [j]. range[s]=0;for(s=0;s<k;s++){1: printf (,z\n 名次:”);scanf&h[i]. c[j]. range[s]);if (h[i]. c[j]. top二二3)switch(h[i]・ c[j]・ rangeLs])case 0:hLi]・ c [j]・ marktsJ^O;break;case 1:h[i]・ c[j]・ mark[s」二5;break;case 2:h[i]・c[j]・mark[sJ=3;break;case 3:hLi]・ c[j]・mark[sJ =2;break;default: {puts(〃输入错误!请重新输入!〃);goto 1;}}elseswitch(h[i]・ c[j]・ range LS]){case 0:h[i]・ c[j].mark[s」二0;break;case l:h[i]・ c[j]・ mark[sJ=7;break;case 2:h[i]・c[j].mark[sJ=5;break;case 3:h[i]・ c[j].marktsJ^S;break;case 4:h[i]・c[j]・mark[sJ=2;break;case 5:h[i]・c[j]・markEsJ^l:break;default: {puts(〃输入错误!请重新输入!〃);goto 1;}}h[i]・ score二h[i]・ score+h[i]・ cLj]・ mark[s]; if(j<=m-l) h[i]・ mscore=h[i]・ mscore+h[i]・ c [ j]・ markLs]; elseh[i]・ wscore二h[i]・ wscore+h[i]・ c [ j]・ markEs];}printfCW);}void output ()int choice, i, j, t;int a[n];int sign;do{printf ("\ri***************************l・按学校编号输出printf (〃*****************************2・按学校总分输出printf ("*****************************3・按男团总分输出printf ("*****************************4.按.女团总分输出printf ("***************************** 请根据提 /]< 进彳亍操作!:〃);scanf &choice);printf("\n");switch(choice)case 1:for(i=0:i<n;i++)printf ("\n 学校编号:%d\n,,> h[i]. schoolnum);printf ("学校总分:%d\n,z, h[i]. score);printf ("男团总分:%d\n,z, h[i]. mscore);printf ("女团总分:%d\n", h[i]. wscore);printf("\n");}break;case 2:for(i=0;i<n;i++)a[i]=i;for(i=0;i<n;i++){for(j=i+l;j<n;j++)if (h[a[i]]. score<hLj]. score){t=a[i];a[i]=a[j];a[j]二t;}} for(i=0;i<n;i++) printf (〃\n 学校编号:%d\n", h[a[i] ]. schoolnum);printf(〃****************** 分:%d\n", h[a[i]]. score);printf(〃****************** 分:%d\n", h[a[i]]. mscore);printf(〃****************** 分:%d\n", h[a[i]]. wscore);printf("\n");} break;case 3:for(i=0;i<n;i++) a[i]=i;for(i=0;i<n;i++)for(j=i+l;j<n;j++) if (h[aLi]]・ niscore〈h[j]・ mscore)t=a[i];a[i]二a[j];a[j]=t;printf (〃\n 学校编号:%d\n,z, h[a[i]]. schoolnum);printf("****************** 学校总分:%d\n", h[a[i]]. score);printf("******************男团总分:%d\n", h[a[i]]. mscore);女团总printf("****************** 分:%d\n", h[a[i] ]. wscore);printf ("\rT);}break;case 4:for(1=0;i<n;i++)for(i=0;i<n;i++){for(j=i+l;j<n;j++)if (h[i]・ wscore<hLj]・ wscore){t=a[i];a[i]=a[j];printf (z,\n 学校编号:%d\n,z, h[a[i]]. schoolnum);printf("****************** 学校总分:%d\n", h[a[i]]. score);printf("******************男团总分:%d\n", h[a[i]]. mscore);女团总printf("****************** 分:%d\n", h[a[i]]. wscore);printf("\n");}break;}scanf&sign);printf("\n");}while(sign二二1);void chaxun()int choice;int i, j, k, s;printf ("\n*****l:按学校编号查询\n");printf ("\n*****2:按项目编号查询\n");printf (,z\n*****请选择查询方式:");scanf &choice);switch(choice){case 1:do{printf C要查询的学校编号:〃);scanf&i);if((i>n)||(i<=0))printf C错误:这个学校没有参加此次运动会!\n〃);else{printf ("******************要查询的项目编号:”);scanf&j); 辻(j>m+wi Ij==0)printf ("******************此次运动会没有这个项目******************\n");else{printf (“这个项目取前%d名,该学校的成绩如下:\n", h[0]. c[j-l]. top);for(k=0;k<5;k++)if(h[i-1]. cEj~l]. range[k]!=0)printf (〃名次:%d\n", h[i~l]. c[j~l]. range Ek]);}}printf (z/是否继续操作(1/0) :〃);scanf &s);printf("\n");}while(s==l);break;case 2:do{printf C要查询的项目编号:〃);scanf &s);if(s>m+w Is==0)printf (〃此次运动会不包括这个项目\n〃);else{printf (z/该项目取前%d名,取得名次的学校\n", h[0]. c [s~lL top);for(i=0; i<n;i++)for(j=0;j<5;j++)if (h[il. c[sT]. range[j] !=0)printf C学校编号:%d, 名次:%d\n", h[i]. schoolnum, h[i]. c[s~l]. range[j]);}printf (z/是否继续操作(1/0) :〃);scanf &i);printf("\n");}while(i==l);break;void write ()int i, j, s;FILE *fp;if ((fp=fopen (z,sportsdata 结果.txt", "a+"))二二NULL){printf C不能打开文件\n");exit (1);}fputs (“学校编号学校总分男子总分女子总分fp);fputs("\n",fp);for(i=0;i<n;i++){fprintf (fp,,,%2d\t\t schoolnum);fprintf(fp, "%2d\t\t",h[i].score);fprintf (fp,,,%2d\t\t,/, h[i]. mscore);fprintf (fp, "%2d ", h[i]. wscore);}fclose (fp);void read (){FILE *fp;int i, j, s;if((fp二fopen("〃,〃r〃))二二NULL){printf(z/文件不存在,不能打开文件!\n〃); exit ⑴;}for(i=0;i<n;i++){fscanf (fp, ,&h[i]. schoolnum);[j]. itemnum);f scanf (fp, &h[i]・ c [ j]・ top);[j]・ range [s]);入信息....................... ;printf("\n\n 2・读取信息曲##\n〃);printf("\n\n nunn3・显不信息unnn\n f);printf("\n\n nunn.............. 4. 查询信息曲##\n〃);printf("\n\n nnnn.............. 5. 退出程序nnnn\n f);pr intf ************* ** ********** ******** **** ******** **** *** **** *******聊#\n〃);printf(〃\n\n请根据提示选择操作!:〃);scanf&choice);if (choice==l)flagl=0;else辻((fphopenC〃,〃:r〃))!=:NULL )flag2-0;else{system("cls");printfC没有信息,请你录入信息!\n〃);}}while(flagl&&flag2);switch(choice){case 1:printf ("\n二二二二二二二二二二请输入信息二二二二二二二二\n");input ();write ();printf ("==========信息己存入档=====〃);main ();case 2:read();write;break;case 3:printf (〃二二二二二二二二二二二输出信息二二二二二二二二二二\n");if (flagl)read();out put ();main ();case 4:pri ntf (===========ift] ==========\n);if(flagl)read ();chaxun ();main ();case 5:printf (,z\n 退出系统!谢谢使用!\n\n") ; exit (0);default:printf ("输入错误! \n") ; exit (0);}六主要知识点面向过程程序设计方法界面制作,switch的应用。

相关文档
最新文档