擦数游戏数据结构课程设计报告_第1页
擦数游戏数据结构课程设计报告_第2页
擦数游戏数据结构课程设计报告_第3页
擦数游戏数据结构课程设计报告_第4页
擦数游戏数据结构课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 编写程序实现建立的数学模型编写程序实现建立的数学模型.- 8 -4.3 程序各个部分的说明程

3、序各个部分的说明.- 10 -5.测试结果测试结果 .- 11 -6.调试分析调试分析 .- 13 -7.设计体会设计体会 .- 15 -8.结束语结束语 .- 16 -9.参考文献参考文献 .- 16 - - 4 -擦数游戏擦数游戏1.引言引言 本次课程设计的目的本次课程设计的目的:是对数据结构所学内容的进一步的理解与巩固,是将计算机课程与实际问题相联接的关键步骤。通过课程设计,能够提高分析问题、解决问题,从而运用所学知识解决实际问题的能力。实验环境实验环境:window 2000 及以上,c-free 所有版本,turbo2.0实验的任务要求实验的任务要求:任务:任务:对擦数游戏建立数学模

4、型,找合适的工具编写程序要求:要求:1. 完成需求分析2. 建立数学模型3. 用 c 语言编写程序4. 调试2.需求分析:需求分析:在黑板上从 1 开始写出一组连续的自然数,然后擦去其中的一个数 k,其余的 - 5 -数的平均值为 a/b(a,b 为整数)。试编写程序求出被擦去的数 k。仔细阅读题目,就可以发现这道题目对算法的要求比较高,正好能体现这次数据结构课程设计的目的。在软硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,因此可以选用 c-free3.5。硬件的配置要求也不需要很高,学校提供的机房就行了3.概要设计概要设计 3.1 课程设计流程图课程设计流程图 开始输入最后一个自然

5、数 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 开始的一组连续的自然数;2. 擦去其中的一个数 k 后,其余的数的平均值 a/b;3. a,b 为整数;4. 这一组数需自己输入,平均数 a/b

6、 为已知,但也必须自己输入;5.删去一个数 k 后,平均数有范围,需对 a/b 加一个范围,方便输入。4.详细设计详细设计 4.14.1 建立数学模型建立数学模型在黑板上从 1 开始写出一组连续的自然数,然后擦去其中的一个数 k,其余的数的平均值为 a/b(a,b 为整数)。试编写程序求出被擦去的数 k。分析题目,首先假设这一组连续的自然数的最后一个数为 n则这一组数的总和为p=1+2+n= n(1)2n 删去一个数 k 后,其余的数的平均值为ab由关系可知 a1pkbn - 7 -所以 (1)akpnb在这个题目中,这组连续的自然数,平均数都为已知,但都需要输入者自己输入。这组连续的自然数无

7、需再加任何条件就可以输入,但平均数是有一个范围的。通过对上述模型的分析,就可以对平均数 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 编写程序实现建立的数学模型编写程序实现建立的数学模型#includeint main() int n,k,a,b,i,j,q; int p=0; printf(-|n); printf( 请输入这组自然数的最后一个数:); scan

8、f(%d,&n); 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); printf( 其中:n); printf( b 是%d 的约数.n,n-1); printf(-b=); scanf(%d,&b); printf(n); if(n-1)%b!=0) printf

9、(你输入的 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,&a); printf(n); if(aq) - 9 - printf(-|n); printf( 在这组数中 a 不可能为这个数!n); else k=p-a*(n-1)/b); printf( 则所删除的数 k 为%dn,k); printf(-|n); 4.3 程序各个部分的说明程序各个部分的说明 (1)定义变量定义变量int n,k,a

10、,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,&n);再输入 b: printf( b 是%d 的约数.n,n-1);scanf(%d,&b);最后输入 a: printf( a 必须是%d 与%d 中的一个整数.nn,j,q); scanf(%d,&a);(4)判断输入的平均数是否符合要求判断输入的平均数是否符合要求最用 ifelse

11、语句判断输入的平均数是否正确 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,&a); printf(n); if(aq) printf(-|n); printf( 在这组数中 a 不可能为这个数!n); else k=p-a*(n-1)/b); - 11 - printf( 则所删除的数 k 为%dn,k); printf(-|n); (5)输出被删

12、除的数输出被删除的数 kk=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 为自然数,平均数 a/b 也符合条件,就可以得到被删除的数 k - 15 -5.在调试过程中还发现,当输入的 n 过大

13、时,由于计算机配置,结果在运行的过程中得不到预期的结果:7.设计体会设计体会经过这次课程设计,我对数据结构这门课程有了进一步的理解,对 c 编程有了一定的提高。另外也提高了我分析问题、解决问题,从而运用所学知识解决实际问题的能力。就比如数我做的这题,擦数游戏。初看题目,很简单的一个数学问题,但是再看题目,就会发现简单的数学题目,用计算机实现就有难度了。因为计算机语言跟现实中的语言是有差别的,需要把数学的算法转换成数据结构算法,再编程实现。通过这次课程设计,我发现了自己平时学数据结构这门课还有很多没有注意到的地方。虽然说这次的课题顺利完成了,但我对数据结构这门课的学习还没有完成,以后还必须对数据结构进行复习巩固。以前在数据结构这门课上,我学到的仅仅是理论知识,但这次的课程设计让我感受到课上的东西用到实际问题的难处。在今后对计算机方面知识的学习中,我要注意理论联系实际,这样才可以把学到的东西运用出来,真正的做到学以致用! - 16 -8.结束语结束语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论