版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 - 1 - 数据结构课程数据结构课程 设计报告设计报告 擦擦 数数 游游 戏戏 班班 级级:软件 092 姓姓 名名: 指导教师指导教师: 成成 绩绩:_ 年 月 日 - 2 - 摘要摘要: : 随着计算机技术的飞速发展,数据结构在计算机领域内显的尤为重要。而数 据结构这门学科,根据数据的不同结构和组织方法以及进行数据处理的不同算法, 通过分析和比较选择出较好的设计方案。 擦数游戏这道题目,对算法和编程能力都有很高的要求。这正体现出了此次数 据结构课程设计的特点。 对此题,首先要建立一个合适的数学模型,根据数学模型用 c 语言编程。 建立的数学模型,要求计算平均数的方法,而此题的平均数分子和
2、分母都要求 是整数,这就要对分子和分母进行约束。 在用 c 语言编程的时候,要用到的语句主要有判断语句,输入和输出语句等。 关键词:数据结构,数学模型,算法,c 语言编程 - 3 - 目目录录 1.引言引言 .- 4 - 2.需需求求分析:分析: .- 5 - 3.概要设计概要设计 .- 5 - 3.1 课程设计流程图课程设计流程图.- 5 - 3.2 主要的数据结构及完成本课程设计所用的方法主要的数据结构及完成本课程设计所用的方法.- 6 - 4.详细设计详细设计 .- 7 - 4.14.1 建立数学模型建立数学模型.- 7 - 4.24.2 编写程序实现建立的数学模型编写程序实现建立的数学
3、模型.- 8 - 4.3 程序各个部分的说明程序各个部分的说明.- 10 - 5.测试结果测试结果 .- 11 - 6.调试分析调试分析 .- 13 - 7.设计体会设计体会 .- 15 - 8.结束语结束语 .- 16 - 9.参考文献参考文献 .- 16 - - 4 - 擦数游戏擦数游戏 1.引言引言 本次课程设计的目的本次课程设计的目的:是对数据结构所学内容的进一步的理解与巩固,是将计 算机课程与实际问题相联接的关键步骤。通过课程设计,能够提高分析问题、 解决问题,从而运用所学知识解决实际问题的能力。 实验环境实验环境:window 2000 及以上,c-free 所有版本,turbo2
4、.0 实验的任务要求实验的任务要求: 任务:任务: 对擦数游戏建立数学模型,找合适的工具编写程序 要求:要求: 1. 完成需求分析 2. 建立数学模型 3. 用 c 语言编写程序 4. 调试 2.需求分析:需求分析: 在黑板上从 1 开始写出一组连续的自然数,然后擦去其中的一个数 k,其余的 - 5 - 数的平均值为 a/b(a,b 为整数)。试编写程序求出被擦去的数 k。 仔细阅读题目,就可以发现这道题目对算法的要求比较高,正好能体现这次 数据结构课程设计的目的。 在软硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,因此可以选用 c- free3.5。硬件的配置要求也不需要很高,学校
5、提供的机房就行了 3.概要设计概要设计 3.1 课程设计流程图课程设计流程图 开始 输入最后一个自然数 n 输入删除数 k 后的平均值 a/b 你输入的平均数错误 是 否 (n-1)%b=0 (p-n)/(n-1)/b)=a =(p-1)/(n-1)/b) 所删除的数是 k 图 1 结 束 - 6 - 3.2 主要的数据结构及完成本课程设计所用的方法主要的数据结构及完成本课程设计所用的方法 在黑板上从 1 开始写出一组连续的自然数,然后擦去其中的一个数 k,其余 的数的平均值为 a/b(a,b 为整数)。试编写程序求出被擦去的数 k。 分析题目,可以知道: 1. 这组数是从 1 开始的一组连续
6、的自然数; 2. 擦去其中的一个数 k 后,其余的数的平均值 a/b; 3. a,b 为整数; 4. 这一组数需自己输入,平均数 a/b 为已知,但也必须自己输入; 5.删去一个数 k 后,平均数有范围,需对 a/b 加一个范围,方便输入。 4.详细设计详细设计 4.14.1 建立数学模型建立数学模型 在黑板上从 1 开始写出一组连续的自然数,然后擦去其中的一个数 k,其 余的数的平均值为 a/b(a,b 为整数)。试编写程序求出被擦去的数 k。 分析题目,首先假设这一组连续的自然数的最后一个数为 n 则这一组数的总和为 p=1+2+n= n(1) 2 n 删去一个数 k 后,其余的数的平均值
7、为 a b 由关系可知 a 1 pk bn - 7 - 所以 (1) a kpn b 在这个题目中,这组连续的自然数,平均数都为已知,但都需要输入者自 己输入。这组连续的自然数无需再加任何条件就可以输入,但平均数是有一个 范围的。 通过对上述模型的分析,就可以对平均数 a/b 做一个限制。 其中: b 为擦了一个数 k 后,这组数的个数 n-1 的约数,即 (n-1)%b=0 在 b 的基础上,再对 a 加一个条件,即 (p-n)/(n-1)/b)=a=(p-1)/(n-1)/b) 这样通过输入 n,a 和 b 就可以得到被删除的数 k。 4.24.2 编写程序实现建立的数学模型编写程序实现建
8、立的数学模型 #include int main() int n,k,a,b,i,j,q; int p=0; printf(-|n); printf( 请输入这组自然数的最后一个数:); scanf(%d, if(n0) printf(-|n); printf( n 必须为自然数:); printf(-|n); - 8 - else for(i=1;i=n;i+) p=p+i; printf(-|n); printf( 1n 这 n 个数之和为 p=%dn,p); printf(-|n); printf( 请输入擦除一个数 k 后的平均数 a/b .n); printf(-|n); print
9、f( 其中:n); printf( b 是%d 的约数.n,n-1); printf(-b=); scanf(%d, printf(n); if(n-1)%b!=0) printf(你输入的 b 不正确!); printf(-|n); else j=(p-n)/(n-1)/b); q=(p-1)/(n-1)/b); printf( a 必须是%d 与%d 中的一个整数.nn,j,q); printf(-a=); scanf(%d, printf(n); if(aq) - 9 - printf(-|n); printf( 在这组数中 a 不可能为这个数!n); else k=p-a*(n-1)/
10、b); printf( 则所删除的数 k 为%dn,k); printf(-|n); 4.3 程序各个部分的说明程序各个部分的说明 (1)定义变量定义变量 int n,k,a,b,i,j,q; int p=0; (2)计算这组数的总和计算这组数的总和 for(i=1;i=n;i+) p=p+i; printf( 1n 这 n 个数之和为 p=%dn,p); (3)输入输入 n,a,b 首先输入这组自然数 printf( 请输入这组数的最后一个数:); - 10 - scanf(%d, scanf(%d, 最后输入 a: printf( a 必须是%d 与%d 中的一个整数.nn,j,q); s
11、canf(%d, (4)判断输入的平均数是否符合要求判断输入的平均数是否符合要求 最用 ifelse 语句判断输入的平均数是否正确 if(n-1)%b!=0) printf(你输入的 b 不正确!); printf(-|n); else j=(p-n)/(n-1)/b); q=(p-1)/(n-1)/b); printf( a 必须是%d 与%d 中的一个整数.nn,j,q); printf(-a=); scanf(%d, printf(n); if(aq) printf(-|n); printf( 在这组数中 a 不可能为这个数!n); else k=p-a*(n-1)/b); - 11 -
12、 printf( 则所删除的数 k 为%dn,k); printf(-|n); (5)输出被删除的数输出被删除的数 k k=p-a*(n-1)/b); printf( 则所删除的数 k 为%dn,k); 5.测试结果测试结果 任选三组数来测试程序的可行性。 (1) - 12 - (2) (3) 程序运行结果正确。 - 13 - 6.调试分析调试分析 1.输入的 n 不是自然数: 2.输入 n 为自然数,b 不是(n-1)的约数 3.输入 n 为自然数,b 是(n-1)的约数,但 a 不在(p-n)/(n-1)/b)=a=(p-1)/(n-1)/b)这 个范围内: - 14 - 4.输入的 n
13、为自然数,平均数 a/b 也符合条件,就可以得到被删除的数 k - 15 - 5.在调试过程中还发现,当输入的 n 过大时,由于计算机配置,结果在运行的过程 中得不到预期的结果: 7.设计体会设计体会 经过这次课程设计,我对数据结构这门课程有了进一步的理解,对 c 编程有 了一定的提高。另外也提高了我分析问题、解决问题,从而运用所学知识解决实 际问题的能力。 就比如数我做的这题,擦数游戏。初看题目,很简单的一个数学问题,但是 再看题目,就会发现简单的数学题目,用计算机实现就有难度了。因为计算机语 言跟现实中的语言是有差别的,需要把数学的算法转换成数据结构算法,再编程 实现。 通过这次课程设计,我发现了自己平时学数据结构这门课还有很多没有注意 到的地方。虽然说这次的课题顺利完成了,但我对数据结构这门课的学习还没有 完成,以后还必须对数据结构进行复习巩固。 以前在数据结构这门课上,我学到的仅仅是理论知识,但这次的课程设计让 我感受到课上的东西用到实际问题的难处。在今后对计算机方面知识的学习中, 我要注意理论联系实际,这样才可以把学到的东西运用出来,真正的做到学以致 用! - 16 - 8.结束语结束语 感谢我的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 严寒和寒冷地区居住建筑节能设计标准
- 消防给水工程监理规划
- 机械伤害及其防护考试试题及答案
- 照明亮化设施检修维护保养管理制度
- 水产品加工卫生检查记录表
- 液压站维护规程
- 数控车技师理论试题及答案
- 2026年冷链仓储作业管理合同协议
- 2026年跨境贸易货物清关代理合同协议
- 颌下区瘘护理查房
- 2025年重庆市从“五方面人员”中选拔乡镇领导班子成员考试历年参考题库含答案详解
- 安徽省2025-2026学年八年级下学期期中道德与法治试卷(含答案)
- 2026年中国中煤能源集团有限公司校园招聘笔试参考试题及答案解析
- 中国电信网络工程师岗位介绍及招聘要求
- 工会事业单位财会制度
- 神经内科诊疗指南及技术操作规范
- esh知识培训教学课件
- 公务员压力管理能力提升
- 2025年那曲地区聂荣县辅警招聘考试题库附答案解析
- 甲状腺癌诊疗指南(2025版)
- 电力监理知识培训内容课件
评论
0/150
提交评论