




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告 课程名称 C 语言程序设计 课题名称 运动会分数统计系统 专 业 机械设计及其自动化 班 级 1185 班 学 号 201113090526 姓 名 谭信 指导教师 王颖 2012 年 6 月 22 日 湖南工程学院 课 程 设 计 任 务 书 课程名称 C 语言程序设计 课 题 运动会分数统计系统 专业班级 机械设计 1185 学生姓名 谭信 学 号 201113090526 指导老师 王颖 审 批 王颖 任务书下达日期 2012 年 6 月 1 日 任 务 完 成 日 期 2012 年 6 月 22 日 湖南工程学院c 语言程序设计课程设计 - 3 - 前 言 现代科学飞速发展,世界也不断的变化,人类的生活随着科技的发展也 发生着惊天动地的变化。作为新时代的大学生,我们应该不断努力学习科学 文化知识,以适应社会的发展要求,以现代化的科学知识为祖国做贡献。而 C语言作为一种计算机语言,无疑是我们将来工作不可缺少的一门技能,所 以我们应该认真学好 C语言。但只是课本上的知识是不够的,我们应该将从 课本上学到的理论知识应用到实践中,通过不断的实践,在实践中发现错误 解决错误,并不断创新,最后能熟练的运用所学的知识,充分掌握这种工具。 就现有知识水平、经验来看,对我来说,本程序的算法设计上已经是最精简 的了。C 语言知识博大精深,有必要对 C语言的专著进行研究学习,多阅读 别人的程序代码、多动手实践操作与设计,这样便对程序算法精简改进提供 了可能。想学的更深更透彻的话就必须进一步掌握运用 C进行程序设计的能 力;进一步理解和运用面向过程程序设计的思想和方法;初步掌握开发一个 小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用互 联网查找相关的知识并学习;学海之路何其宽广,有必要让我们孜孜不倦的 求索下去。 目 录 绪 论1 第一章 需求分析 1.1 程序的功能及要求5 1.2 系统的性能要求5 1.3 测试数据6 第二章 概要设计 2.1 结构体6 2.2 主程序(main)6 2.3 模块的功能6 2.4 程序模块机之间的调用关系7 第三章 详细设计 3.1 宏定义8 3.2 数据类型定义8 3.3 函数之间的调用关系图8 3.4 算法设计 9 第四章 调试分析 4.1 不足之处10 4.2 错误规范10 4.3 算法的时空分析10 4.4 存在的问题10 第五章 测试结果11 第六章 用户使用手册 6.1 运行环境12 6.2 用户界面12 6.3 操作过程13 第七章 参考文献14 第八章 设计体会15 第九章 附录17 课程设计评分表29 湖南工程学院c 语言程序设计课程设计 - 5 - 绪 论 运动会分数统计系统是一个方便管理各项分数标准的一个程序,有了 这个程序,可以吧每一个同学的信息及成绩都保留下来,为评比成绩和得 优提供方便,程序的顺利及简便运行时现在科学不可缺少的一部分,有了 程序的帮助,我们做任何事都能事半功倍,提高效率,节省时间。 根据任务书的综合要求,本系统的开发主要完成以下功能和性能。 (1) 学生成绩查询系统,成绩录入、增加、删除、修改,数据查询,排 序显示构成。 (2) 按学生总分及学校编号,分为有男女组,有团体组,有前三名和前 五名之分。 (3) 按项目编号查询即奇偶性取得前三或前五名的学校或者编号来查询 所得总分 (4) 另外还涉及包括系统的功能分析、系统的功能模块设计、程序流程 图或结构框图、逻辑结构设计,数据库中的表、视图等各功能 板块。 一、目的 全面熟悉、掌握 C语言基本知识,掌握 C程序设计中的顺序、分支、循环 三种结构及数组、函数和 C语言基本图形编程等方法,把编程和实际结合起来, 增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉 编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手 能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范 编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设 计等学习环节打下较扎实的基础。 二、设计要求 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解 决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。 1. 设计正确,方案合理。 2. 界面友好,使用方便。 3. 程序精炼,结构清晰。 4. 设计报告 5000字以上,含程序设计说明,用户使用说明,源程序清 单及程序框图。 5. 上机演示。 6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的 C源程 序编写、调整和运行。源程序及编译生成各文件均保存在软盘中; 7. 按本任务书的要求,按附录的要求编写课程设计报告 (Word 文档 格式) 。并用 A4的复印纸打印并装订; 8. 在 2012年 6月 24日之前,请各班学习委员收齐课程设计报告和源程 序软盘交王颖老师 ,联系电话:8883238。 三、进度安排 第一周 星期四: 课题讲解,查阅资料 第二周 星期一: 总体设计,详细设计 星期二: 编程,上机调试、修改程序 星期三: 上机调试、完善程序 星期四: 上机调试、完善程序 星期五: 答辩 星期六-星期天:撰写课程设计报告 湖南工程学院c 语言程序设计课程设计 - 7 - 一、问题描述: 参加运动会的 n个学校编号为 ln。比赛分成 m个男子项目和 w个女 子项目,项目编号分别为 lm 和 m1mw。由于各项目参加人数差别 较大,有些项目取前五名,得分顺序为 7,5,3,2,1;还有些项目只取 前三名,得分顺序为 5,3,2。设计一个统计程序按名次产生各种成绩单、 得分报表。 二、基本要求: 1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、 名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男 子团体总分、女子团体总分和团体总分;均按名次排序。 2.比赛项目既要有径赛,又要有田赛。 三、测试数据: 对于 n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项 目取前三名,设计一组实例数据。 四、实现提示: 1数据结构:线性表 2数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由 系统根据基本表自动生成。 表 1-1 表 1-2 3. 可以假设n20,m30,w20,姓名长度不超过20个字符。每个项目 姓名运动员编号 校名学校编号 项目名项目编号 初始化时完成录入 floatcharcharcharcharchar 成绩类型性别项目编号学校编号运动员编号 结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入 运动员编号、学校编号和成绩等。 五、选作内容: 允许用户指定某项目采取其他名次取法。 比如例图法,结构图系法,树状法,等等。 每个人的思维都是有所不同的,程序的设计故也是千差万别,有简单与复 杂之分。编号的不同也是选取方法不同的标准之一,运用数组和指针我觉得是 比较实用的,对于各种数据的组合来说。所以,只要程序符合,方法不一。 湖南工程学院c 语言程序设计课程设计 - 9 - 第一章 需求分析 1. 程序的功能及要求 参加运动会有 n个学校,学校编号为 1n。比赛分成 m个男子项目, 和 w个女子项目。项目编号为男子 1m,女子 m+1m+w。不同的项目取前五名 或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为: 5、3、2;哪些项目取前五名或前三名由学生自己设定。 (m数据输入(输入成绩如图) 图 1- 1 输入: 请输入学校编号:1 项目编号 1 2 3 4 5 6 7 第名: 1 1 1 1 1 1 0 第名: 1 1 1 1 1 0 0 第名: 1 1 1 1 0 0 0 请输入学校编号: 2 项目编号 1 2 3 4 5 6 7 第名: 1 1 1 0 0 1 0 第名: 0 0 1 0 1 1 1 第名: 0 1 0 1 1 1 0 输入成绩后出现总目录(下图) ; 图 1- 2 (1)输入:1 输出: 图 1- 3 (2)输入:1 返回总目录,再输入:2 输出: 图 1- 4 (3)输入:1 返回总目录,再输入:3 输出: 湖南工程学院c 语言程序设计课程设计 - 17 - 图 1- 5 (4)输入:1 返回总目录,再输入:4 输出: 图 1- 6 (5)输入:1 返回总目录,再输入:5 输出: 图 1- 7 (6)输入:1 返回总目录,再输入:6,学校编号输入:1,项目编号输入:5 输出: 图 1- 8 (7)输入:2,返回上一级,再输入学校编号:2,项目编号:1 输出: 图 1- 9 (8)输入:1,返回总目录;再输入:7,输入项目编号:7 输出: 图 1 10- (9)如果输入提示外的数字,例如输入:4 则输出错误提示: 图 1- 11 (10)输入:0 输出: 图 1- 12 湖南工程学院c 语言程序设计课程设计 - 19 - 第六章 用户使用手册 1、运行环境 Windows,VC+6.0 2、用户界面 图 1- 13 图 1- 14 3、操作过程 (1)用户进入运动会分数统计系统程序欢迎界面 (2)录入成绩,先输入要输入的学校编号,1 或 2;再输入对应学校的 1-7 项目的成绩(成绩用 0或 1:0表示没获得该项目的该名次, 1表示获得 了该项目的该名次)当成绩录入错误时会有错误提示。 (3)进入总目录,按提示,输入 0-7中的一个数; 输入:0 则推出系统; 输入:1 统计各学校总分并输出;然后选择0或1 (0表示退 出系统, 1表示返回总目录) ; 输入:2 按学校编号排序输出;然后选择0或1 (0表示退出 系统, 1表示返回总目录) ; 输入:3 按学校总分排序输出;然后选择0或1 (0表示退出 系统, 1表示返回总目录) ; 输入:4 按男团体总分排序输出;然后选择0或1 (0表示退 出系统, 1表示返回总目录) ; 输入:5 按女团体总分排序输出;然后选择0或1 (0表示退 出系统, 1表示返回总目录) ; 输入:6 按学校编号查询学校某个项目编号;选择学校编号 1或 2;然后 选择项目编号 1-7;输出项目成绩;然后选择 0或 1或 2(0表示退出系统, 1表示返回总目录, 2表示返回上一级) ; 输入:7 按项目编号查询取得名次的学校;选择项目编号 1-7;输出成 绩;然后选择 0或 1或 2(0表示退出系统, 1表示返回总目录, 2表 示返回上一级) ; 湖南工程学院c 语言程序设计课程设计 - 21 - 第七章 参考文献 (1) C 程序设计 (第三版) 作者:谭浩强 清华大学出版社 (2) 数据结构 (C 语言版) 作者:严蔚敏,吴伟民 出版社:清华大学出 版社 (3) 数据结构题集 (C 语言版)作者:严蔚敏,吴伟民 出版社:清华大学 出版社 (4) c 语言程序设计 (c 语言版) 作者:陈世清 出版社:浙江大学出 版社 (5) C 语言程序设计教程 作者:谭浩强等 出版社:高等教育出版社 (6) C 程序设计 作者:谭浩强 出版社:北京清华大学出版社 (7) C 语言程序设计 作者:郭浩志 出版社:北京邮电大学出版社 (8) C 陷阱与缺陷 作者:谭浩强、张基温 出版社:人民邮电出版社 (9) C 程序设计经典教程 作者:谭浩强 出版社:清华大学出版社 第八章 设计体会 通过这次为期一周的课程设计,正确的写出一个程序需要平时不断地努力, 不断地实践,从实践中了解经常犯的错误。我们不能知识着手于书本上的理论 知识,还应该不断实验,有些东西是书本上没有的,只能通过时间学习到。但 同时我们也不能离开书本上的理论,理论可以使我们更加了解它的工作原理。 更加准确的把握各种算法和语言。有了理论的基础,我们在实践上也就更容易 上手。所以我们应该理论联系实践,学好 C语言,提高编程能力。 本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不 仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。学习的 路很长。再有要多问,几个人共同讨论会有意想不到的效果。 其实这些通过最近的课程设计觉得最重要一点就是:我们一定要自己动手, 这样才能真正的学到东西。书本知识固然重要,但我们更要学会将书本知识应 用到实际中才会发现错误,也才能改进,才能达到学习的最终目的。 而且我也总结出了一点点的经验如下: 1、要对系统的功能和要求做出详细的分析,并合理分解任务。 2、把分解出来的子任务,做给一个相对独立的模块。 3、在设计一个模块之前,要简单构想一下总界面的显视情况。 4、针对构想出来的界面进行程序的编写。 如此我对 C语言的编程实践更有所认识。在遇到程序调试不通过时,会通 过缩小范围的分析来锁定问题所在。通过这次实验,熟悉了从自然语言转换成 伪代码再转换为流程图的过程。在程序中设定合适的全局变量,可以简化程序 的编写难度。运用函数可以减少编写时的代码量,也使程序条理清晰。通过本 次 C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一 定的体验。随着实验的成功与报告的完成,有点微微的成就感使人难忘。伴随 着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。对 C 语言的学习,我会加倍努力。 这次课程设计虽然只有短短的两周时间,但此过程中我得到的收获却没有 时间的界限。在这期间,我有刚开始对于设计的茫然,也有设计过程中面对不 熟悉的知识的焦急,更有面对程序运行出错时的惆怅,同时还有当自己把设计 的思路一点点想清楚,把程序代码上出现的错误一个个改正确,把程序成功运 行出来的那份难以表述的喜悦!成功的背后有过一丝丝彷徨,但拨开乌云的天 湖南工程学院c 语言程序设计课程设计 - 23 - 空通常看到的是美丽的彩虹! 另外对于我精神上的收获确实不少,学习上也受益匪浅。 通过这次“运动会分数统计系统”课题的设计,通过这个阶段的实践,使 我对 C 语言进行了深入的学习。同时设计的过程中,为了实现预期的功能,我 利用了图书馆内相关的资料进行参考,也使我懂得一些初次学习过程中不太熟 悉的知识。在实践中,我利用图书馆和网络,查找了相关的信息。也明确在以 后的学习过程中,我应该多利用这些有效的途径来充实自己的知识点,学习得 更深入, “善假于物”也是一种有效的学习方法。在程序调试的过程中,遇到了 好几个自己没能及时解决的问题,我选择的是请教老师和同学,在你们的指导 下,我成功调试出程序。学习的过程除了需要自己要独立思考问题之外,还应 该要有与他人的互动。我想这也就是集体的智慧,团结的力量!在此过程中, 我也发现了许多自己的不足。在我刚开始设计的时候,头脑里没有一点清晰的 思路,这就与平时自己看得少,练得少有关系。所以我觉得学习任何一门语言 还是需要多看书,多编写程序,特别是当自己突然有一丝灵感的时候,最好记 录下来,甚至把它想出来,想明白。实践的过程中,要明确自己写这些程序是 为了达到什么目的,实践后,要考虑这样编写是不是最好的,还能不能做其它 方法来做,在编写这个程序中遇到了什么样的错误,为什么会遇到,以后应该 怎样避免。这样的学习,就会更深入,学习得更好! 虽然我的课程设计师存在许多的问题,究其原因还是因为自己平时没有认 真听老师讲课,但是我还是希望老师能够白忙中抽空看看我的课程设计的报告, 我将非常感谢 第九章 附录 1、源程序 #include #include #define N 2 /学校个数 #define bm 4 /男团体个数 #define gm 3 /女团体个数 void xuanze(); void xunhuan(); struct match /项目 int matchnum; int rank3; matbm+gm; struct school /学校 int schoolnum; struct match matbm+gm; int total; int boytotal; int girltotal; schN; void huanyingni() /*开始界面,欢迎使用*/ printf(“nn 湖南工程应用技术学院机设 1185 班 谭信nnn“); printf(“t*_ _ _ _ _ _ _ _ _ _ _ _ _ _*nn“); printf(“ 欢迎使用运动会分数统计系统 nn“); printf(“t*_ _ _ _ _ _ _ _ _ _ _ _ _ _*nn “); void input() /输入成绩 int i,j,k; for(i=0;iN) printf(“输入错误(只能是 1-%d)请重新输入:“,N); goto loop3; printf(“项目编号 “); for(k=0;k=bm) schi.girltotal=schi.girltotal+b; void mulu() printf(“nn *系统目录 *n“); /目录 printf(“tt *n“); printf(“tt* 1.统计各学校总分 *t n“); printf(“tt* 2.按学校编号排序输出 *t n“); printf(“tt* 3.按学校总分排序输出 *t n“); printf(“tt* 4.按男团体总分排序输出 *t n“); printf(“tt* 5.按女团体总分排序输出 *t n“); printf(“tt* 6.按学校编号查询学校某个项目情况 *t n“); printf(“tt* 7.按项目编号查询取得名次的学校 *t n“); printf(“tt* 0.退出 *t n“); printf(“tt *n“); void funct0() /退出系统 printf(“ntt* 谢谢使用! *n“); printf(“ntt* 谢谢使用! *n“); exit(0); void funct1() /统计各学校总分 int i,q; printf(“ *统计各学校总分*n“); printf(“ *学校编号*tttt* 总分*n“); for(i=0;ischi+1.schoolnum) sch1=schi; schi=schi+1; schi+1=sch1; printf(“ *按学校编号排序*n“); printf(“ *学校编号*tttt* 总分*n“); for(i=0;iN;i+) printf(“t%dtttt%dn“,schi.schoolnum,schi.total); printf(“n“);printf(“n“); printf(“# 0:退出;1 :返回目录。 n“); printf(“*请选择: “); loop2: scanf(“%d“, if(q=0) funct0(); if(q=1) xunhuan(); else printf(“输入错误(只能是 0 或 1) ,请重新输入:“); goto loop2; void funct3() /按学校总分排序 struct school sch1; int i,j,q; for(j=0;jN-1;j+) for(i=0;iN-j-1;i+) if(schi.totalschi+1.total) sch1=schi; schi=schi+1; schi+1=sch1; printf(“ *按学校总分排序*n“); printf(“ *学校编号*tttt* 总分*n“); for(i=0;iN;i+) printf(“t%dtttt%dn“,schi.schoolnum,schi.total); printf(“n“);printf(“n“); printf(“# 0:退出;1 :返回目录。 n“); printf(“*请选择: “); loop2: scanf(“%d“, if(q=0) funct0(); if(q=1) xunhuan(); else printf(“输入错误(只能是 0 或 1) ,请重新输入:“); goto loop2; void funct4() /按男团体总分排序 struct school sch1; int i,j,q; for(j=0;jN-1;j+) for(i=0;iN-j-1;i+) if(schi.boytotalschi+1.boytotal) sch1=schi; schi=schi+1; schi+1=sch1; printf(“ *按男团体总分排序*n“); printf(“ *学校编号*tt*总分*n“); for(i=0;iN;i+) printf(“t%dtttt%dn“,schi.schoolnum,schi.boytotal); printf(“n“);printf(“n“); printf(“# 0:退出;1 :返回目录。 n“); printf(“*请选择: “); loop2: scanf(“%d“, if(q=0) funct0(); if(q=1) xunhuan(); else printf(“输入错误(只能是 0 或 1) ,请重新输入:“); goto loop2; void funct5() /按女团体总分排序 湖南工程学院c 语言程序设计课程设计 - 29 - struct school sch1; int i,j,q; for(j=0;jN-1;j+) for(i=0;iN-j-1;i+) if(schi.girltotalschi+1.girltotal) sch1=schi; schi=schi+1; schi+1=sch1; printf(“ *按女团体总分排序*n“); printf(“ *学校编号*tt*总分*n“); for(i=0;iN;i+) printf(“t%dtttt%dn“,schi.schoolnum,schi.girltotal); printf(“n“);printf(“n“); printf(“# 0:退出;1 :返回目录。n“); printf(“*请选择: “); loop2:scanf(“%d“, if(q=0) funct0(); if(q=1) xunhuan(); else printf(“输入错误(只能是 0 或 1) ,请重新输入:“); goto loop2; void funct6() /按学校编号查询学校某个项目情况 int i,n,m,q; printf(“ *按学校编号查询学校某个项目情况 *n“); loop1: printf(“*请输入所要查询的学校编号: “); scanf(“%d“, if(n!=1 goto loop1; printf(“*请输入所要查询的项目编号: “); scanf(“%d“, for(i=0;iN;i+) if(n=schi.schoolnum) printf(“学校编号: %d 项目编号: %dn“,n,m); if(schi.matm.rank0=1) printf(“第一名(获得) “); if(schi.matm.rank1=1) printf(“第二名(获得) “); if(schi.matm.rank2=1) printf(“第三名(获得) “); else printf(“本校该项目未进入前三名“); printf(“n“);printf(“n“); printf(“# 0:退出;1 :返回目录;2:返回上一级。n“); printf(“*请选择: “); loop2: scanf(“%d“, if(q=1) xunhuan(); if(q=0) funct0(); if(q=2) goto loop1; else printf(“输入错误(只能是 0 或 1 或 2) ,请重新输入: “); goto loop2; void funct7() /按项目编号查询取得名次的学校 int i,t,q; printf(“ *按项目编号查询取得名次的学校 *n“); loop1: printf(“*请输入所要查询的项目编号: “) ; scanf(“%d“, printf(“项目编号:%dn“,t) ; for(i=0;iN;i+) if(schi.matt-1.rank0=1) printf(“获得第一名的学校编号是:%d n“,schi.schoolnum); if(schi.matt-1.rank1=1) printf(“获得第二名的学校编号是:%d n“,schi.s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目管理第4章教学
- 荆门污水顶管施工方案
- 糖尿病肾病护理教学查房
- 数码相机的基础知识
- 中山职业技术学院《幼儿园活动设计与指导艺术》2023-2024学年第一学期期末试卷
- 濮阳医学高等专科学校《普通话语音》2023-2024学年第二学期期末试卷
- 天府新区航空旅游职业学院《中学综合实践》2023-2024学年第二学期期末试卷
- 岳阳职业技术学院《营销工程》2023-2024学年第二学期期末试卷
- 玻璃门衣柜施工方案
- 重庆经贸职业学院《大学物理B》2023-2024学年第二学期期末试卷
- 《界面图标设计》课件
- 法兰快速接头规格1
- 《中国传统图案》课件
- 火龙罐综合灸疗法
- IT项目管理方法论
- 登录用户协议
- 有丝分裂说课
- 14S501-1球墨铸铁单层井盖及踏步施工
- 基于PLC洗车系统设计
- 加强理解沟通-争做阳光少年主题班会
- 低压综合配电箱二次配线工艺守则
评论
0/150
提交评论