1、 课 程 设 计 说 明 书 课 程 数据结构 题 目 运动会分数统计系统 姓 名 学 号 专业班级 指导教师 完成日期 2012 年 12 月 25 日 - 1 - 1 1、绪言、绪言 21 世纪是个信息化的时代,现代计算机技术的发展,为各行各业的发展创 造了一个全新的时代背景人们的生活、 工作等已经越来越离不开计算机科学 的运用,体育作为个人、家庭、社会的一个主要实践领域,大大小小的运动会也 在各大中院校中展开,自从计算机科学涉及运动领域后,人们对运动会的管理也 从人工的向自动化转变。运用数据结构的知识解决运动会分数统计的问题,编写 一个程序来完成运动会分数统计系统. 本程序设计中, 可以
2、输入参加运动会的学 校编号及项目编号; 根据具体情况选择输入参加项目的男女类别和取成绩名次类 别;最后选择输入名次;实现数据统计,排序输出,学院及项目查询等功能。 数据结构课程设计是为数据结构课程独立开设的实践性教学环节。 课程设计 的目的是要求学生达到熟练掌握 C 语言的基本知识和技能; 了解并掌握数据结构 与算法的设计方法, 具备初步的独立分析和设计能力; 提高程序设计和调试能力。 学生通过上机实习, 验证自己设计的算法的正确性。 学会有效利用基本调试方法, 迅速找出程序代码中的错误并且修改;培养算法分析能力,分析所设计算法的时 间复杂度和空间复杂度,进一步提高程序设计水平;初步掌握软件开
3、发过程的问 题分析、系统设计、程序编码、测试等基本方法和技能。 - 2 - 2 2、需求分析、需求分析 2.1 功能需求功能需求 本系统主要是运动会分数统计方案设计。任务:参加运动会有 n个学校,学 校编号为 1n。比赛分成 m 个男子项目,和 w 个女子项目。项目编号为男子 1m,女子 m+1m+w。不同的项目取前五名或前三名积分;取前五名的 积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或 前三名由学生自己设定。 (m m+w | j=0,输出此次运动会没有这个项目。否则,使用 for 循环输出相 关数据,从而实现查询功能。 功能模块图如图 1 所示。 - 6
4、 - 运动运分数统计程序 比 赛 成 绩 输 入 模 块 比 赛 成 绩 输 出 模 块 查 询 比 赛 成 绩 模 块 调 用 统 计 结 果 模 块 按 学 校 编 号 输 出 模 块 按 学 校 总 分 输 出 模 块 按 男 团 总 分 输 出 模 块 按 女 团 总 分 输 出 模 块 按 项 目 编 号 查 询 模 块 按 学 校 编 号 查 询 模 块 图图 1 功能模块图功能模块图 - 7 - 4 4、系统的实现与调试系统的实现与调试 4.1 系统实现系统实现 建立数据库、应用系统的编码开发、系统的运行。 1:主菜单界面,首先运行文件运动会统计分数。 2:输入信息: 程序首先赋
5、初值,定义学校的个数为 2,男生项目为 1,女生项目为 1。 - 8 - 3:查询信息(例如按编号查询) - 9 - 4.2 调试调试 调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到 相关的问题所在。本系统调试过程中遇到的主要问题、原因和解决方法如下面介 绍。 调试过程中出现的问题和处理方式: (1)程序出现语法错误 发现是输入名次信息的地方忘带地址符 scanf(“%d“, (2)在输出模块不能将全部的学校信息输出,属于算法编写错误,正确的程序 应该为:if(hrememberi.mscorem+w|j=0) printf(“此次运动会没有这个项目nnn“); /学校编号
6、超出范围,则输出警告 else printf(“这个项目取前 %d 名,该学校的成绩如下:n“, h0.cj-1.top); for(k=0;km+w|s=0) printf(“此次运动会不包括这个项目.nnn“); /项目编号超出范围则输出警告 else printf(“该项目取前 %d 名,取得名次的学校n“,h0.cs-1.top); for(i=0; in;i+) for(j=0;j5;j+) if(hi.cs-1.rangej!=0) printf(“学校编号:%d,名次:%dn“,hi.schoolnum,hi.cs-1.rangej); /输出该项目取得名次学校的成绩 printf(“nnn 继续 2,跳出 0n“); scanf(“%d“, printf(“nnn“); while(i=2); break; void writedat