1、 课 程 设 计 报 告 课程名称课程名称 数据结构 课题名称课题名称 运动会分数统计 专专 业业 班班 级级 学学 号号 姓姓 名名 指导老师指导老师 2013 年年 6 月月 29 日日 课 程 设 计 内 容课 程 设 计 内 容 1.1.课程设计目的:课程设计目的: 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相 成的必不可少的一个教学环节。通常,实习题中的问题比平时的习题复杂得多, 也更接近实际。实习着眼于原理与应用的结合点,使读者学会如何把书上学到的 知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上 的知识变“活” ,起到深化理解和灵活掌握
2、教学内容的目的。平时的练习较偏重 于如何编写功能单一的“小”算法,而实习题是软件设计的综合训练,包括问题 分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以 至一整套软件工作规范的训练和科学作风的培养。 2.2.课程设计题目课程设计题目 1 1)运动运动会分数统计会分数统计 任务:参加运动会有 n 个学校,学校编号为 1n。比赛分成 m 个男子项 目,和 w 个女子项目。项目编号为男子 1m,女子 m+1m+w。不同的项目 取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积 分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。 (mm+w|j=
3、0,输出此次运动会没有这个项 目。否则,使用 for 循环输出相关数据,从而实现查询功能。 void search(int n,int m,int w) /*查询函数*/ readfromfile(); int c,i,j,k,d,l,q=0; printf(“t*查询系统*nn“); printf(“tt*1.按学校编号查询*n“); printf(“tt*2.按项目编号查询*n“); do k=-1;d=-1;l=-1; printf(“请选择要实现功能的编号(12):“); scanf(“%d“, switch(c) case 1: printf(“要查询的学校编号:“); /*查找学校
4、编号下标*/ scanf(“%d“, for(i=0;im+w|j=0 k=0 k5 hi-1.cj- 1.rangek!= 0 scanf(“%d “, s=2 结束 错误:这个学 校没有参加 k+ 要查询的 项目编号 运动会无 此项目 这个项目 取前几名 输入名次 2 继续 , 0 跳出 N Y N Y N Y N Y Y N 图 4 查询函数流程图 4.4.调试分析调试分析 调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到 相关的问题所在。本系统调试过程中遇到的主要问题、原因和解决方法如下面介 绍。 调试过程中出现的问题和处理方式: (1)程序出现语法错误 发现是输入名
5、次信息的地方忘带地址符 scanf(“%d“, (2)在输出模块不能将全部的学校信息输出,属于算法编写错误,正确的 程序应该为:if(hrememberi.mscorehj.mscore) k=rememberi;rememberi=rememberj;rememberj=k; 5. 5. 程序使用及说明程序使用及说明 本程序的运行环境为 Microsoft Visual C+6.0,在进入该程序软件打开文档, 然后对本程序进行调试,调试完毕,用户可根据需求从主菜单选择相应的功能, 用户根据窗口的提示进行操作, 依自己的需求选择相应序号调用功能函数对用户 需求进行单独运算。 6. 6. 测试结
6、果测试结果 软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用 户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件 测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据软 件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例 (即输入数 据及其预期的输出结果) ,并利用这些测试用例去运行程序,以发现程序错误或 缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而 付出了过高的代价。 图 5 信息的录入 图 6 参赛学校信息统计输出 图 7 学校成绩排序输出 图 8 查询输出 7. 7. 总结总结 经过数据结构课程设计时间学习,我对数据结构有了更进一步的认识和了