




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国地质大学(武汉)设计名称:一单挑游戏前言计算机对社会发展所具有的广泛而深远的影响。人类文化的内涵是随着社会发展而进化的。在现代信息社会中,计算机已不仅仅是一种工具,而且是一种文化。信息技术对人类社会进行的全方位渗透,已经形成一种新的文化形态信息时代的计算机文化。计算机知识成为当代知识分子结构中不可缺少的重要部分。C语言是今年来国内外得到迅速推广使用的一种高级语言。C语言功能丰富,表达能力强,使用灵活方便,应用广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的语言特点,因此C语言对我们来说很重要。设计是一门重要的计算机基础课程,通过学习,学生不仅要掌握高级程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。此次上机实习,不但要使同学们的程序设计能力上一台阶,同时要提高与程序设计和软件开发有关的各种综合能力。由于课时和上机时间的仓促,所以我对很多内容还来不及消化,对上机演练十分陌生,还有一些知识遗忘,因而这次程序设计的实习实际上是对我的一次集中的强化练习。虽然其时间短,任务重,但我们的确达到了此次课程设计的目的。本次实习得到刘文中老师的指导和帮助,至此表示感谢 ! 目录一、C语言课程设计的目的 4二、课程设计报告正文 三、运行与测试报告 4四、后记: 5 C语言课程设计报告一、C语言课程设计的目的:进一步消化和巩固已学过的C 语言程序设计基础理论,学习和实践程序设计的各种技能,利用C 语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。课程设计报告正文。二、课程设计报告正文1.课程设计题目的原文:简单计算机模拟期棋盘对弈。其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。游戏规则如下: (1)计算机移动时,使用相应函数扫描棋盘矩阵,寻找未占单元:发现空单元之后,置为“O”,未发现时,报告平局后推出。 (2)轮到对弈者时,使用想要函数要求对弈者回答想把“X放在哪里。 (3)谁先三点连成一线了,则报告谁胜出。 (4)计算机与对弈者每下一步棋都会使相应位置变为“O”和“X”,便于在屏上显示矩阵。 2.题目的分析(需求分析):其中棋盘左上角坐标为(1,1),右下角坐标为(3,3)。所以棋盘位置用2维数组代表,初始状态每一位置均应为“ ”(空)。其分隔线(即棋盘线)可用或|来分隔。实现棋盘的显示。计算机移动时,使用for函数扫描棋盘矩阵,寻找未占单元:发现空单元之后,置为“O”,未发现时,报告平局后退出。 轮到对弈者时,使用想要函数要求对弈者回答想把“X放在哪里,通过x、y坐标实现。 谁先三点连成一线了,则报告谁胜出,通过循环把每一横行竖行,对角线分别判断。计算机与对弈者每下一步棋都会使相应位置变为“O”和“X”,便于在屏上显示矩阵。 3.整体设计与模块划分:根据前面的分析,我的的程序准备设计二维数组储存数据,棋盘显示函数显示棋盘内容,检查函数实现是否结束的判断,并判断输赢。玩家,计算机移动函数,实现走棋。来解决问题。程序主要用到了for循环和do while循环,if语句,输入输出语句。代码设计:本程序不需要模块的设计,所以功能不够强大,这也是程序应用中的一大致命缺点,只能实现人机对战。如果想让程序更完备,需要增加模块以实现更多选择。本程序只需要函数就能实现人机对战。下面对主要函数、代码进行分析。主函数分析:主函数的功能比较简单,形式比较简洁,主要功能为:本程序不需要让程序能回到主函数里,所以就不用建立了菜单函数。只需要一般的形式就足够。通过循环反复执行,来实现走棋,通过判断语句实现输赢判断。程序:int main(void) char done; printf(This is the game of Tic Tac Toe.); printf(you will be playing against the computer.n); done= ; init_qipan(); do disp_qipan(); get_player_move();done=check();if(done!= )break;get_computer_move();done=check();while(done= );if(done=X)printf(You won!);elseprintf(I won! n);disp_qipan();getchar();return 0;公共函数分析:分程序没有交错,因而,本程序没有用到公共函数,但如果想丰富程序就必然要使用公共函数,这是本程序的一个缺点。公共函数很实用,具体的作用是在每个功能模块的最后调用该函数,可以不必重新进入系统菜单就继续按用户的意图运行程序。各种函数分析:我的的程序以二维数组储存数据init_qipan函数实现了数组赋初值,在显示时使显示空棋盘,棋盘显示函数显示棋盘内容,每走一棋显示一次。检查函数实现是否结束的判断,并判断输赢。玩家,计算机移动函数,实现走棋。程序主要用到了for循环和do while循环,if语句,scanf,printf输入输出语句。程序:void init_qipan(void)/* 函数实现了数组赋初值*/ int i,j; for(i=0;i3;i+) for(j=0;j3;j+) qipanij= ; void player_move(void) /*玩家走棋*/ int x,y; printf(轮到你了:); scanf(%d%*c%d,&x,&y); /*输入坐标实现放棋*/x-;y-; if(qipanxy!= ) printf(错误, 请再试一次n); player_move();/*由于走棋错误实现重新走棋*/ else qipanxy=X; void computer_move(void) /*电脑走棋*/ int i,j; for(i=0;i3;i+) /*如出现空字符则放0表示*/ for(j=0;j3;j+) if(qipanij= ) break; if(qipanij= ) break; if(i*j=9) printf(平局n); exit(0); else qipanij=0; void disp(void) /*棋盘显示函数显示棋盘内容*/ int t; for(t=0;t3;t+) printf(%c|%c|%c ,qipant0,qipant1,qipant2); if(t!=2) printf(n-|-|-n); /*使现棋盘形状*/ printf(n); char check(void) /*检查函数实现是否结束的判断,并判断输赢。*/ int i;for(i=0;i3;i+)if(qipani0=qipani1&qipani0=qipani2)return qipani0;for(i=0;i3;i+)if(qipan0i=qipan1i&qipan0i=qipan2i) return qipan0i;for(i=0;i3;i+)if(qipan00=qipan11&qipan00=qipan22)return qipan00; for(i=0;i3;i+) if(qipan02=qipan11&qipan11=qipan20) return qipan02; /*每行每列每对角线都检查一遍,返回值代表输赢代码*/return ; 三、运行与测试报告:列举出,在输入数据的范围和格式符合规范和不符合规范两种情形下,运行程序所得到的运行结果(截图);如果类似问题在编程时已经考虑到了,对不合规范的输入数据进行了处理,列出对应的代码,分析并说明所采取的处理方法;如果运行结果不能令人满意,提出改进或讨论意见。四、后记:通过此次C语言程序设计实践,本人实在是获益不浅。C语言是这个学期开的课程,但这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手。结果,第一次的上机我只坐了一个下午什么也没干。回去以后,我想这样不行,这样下去还得了。我就重新学了一遍我们这个学期的教材,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白。温习过后,开始做题几乎花了我百分之九十的时间,而且还是在一些在其他大学读计算机专业的同学的帮助下和在上网查看了大量的资料之后才做出来。最后,想说两句,这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验!附录:源代码#include stdio.h #include stdlib.h void init_qipan(); void player_move(); void computer_move(); void disp(); char check(); int main(void) /*通过循环反复执行,来实现走棋,通过判断语句实现输赢判断。*/ char done; done= ; void init_qipan(void)/* 函数实现了数组赋初值*/ int i,j; for(i=0;i3;i+) for(j=0;j3;j+) qipanij= ; void player_move(void) /*玩家走棋*/ int x,y; printf(轮到你了:); scanf(%d%*c%d,&x,&y); /*输入坐标实现放棋*/x-;y-; if(qipanxy!= ) printf(错误, 请再试一次n); player_move();/*由于走棋错误实现从新走棋*/ else qipanxy=X; void computer_move(void) /*电脑走棋*/ int i,j; for(i=0;i3;i+) /*如出现空字符则放0表示*/ for(j=0;j3;j+) if(qipanij= ) break; if(qipanij= ) break; if(i*j=9) printf(平局n); exit(0); else qipanij=0; void disp(void) /*棋盘显示函数显示棋盘内容*/ int t; for(t=0;t3;t+) printf(%c|%c|%c ,qipant0,qipant1,qipant2); if(t!=2) printf(n-|-|-n); /*使现棋盘形状*/ printf(n); char check(void) /*检查函数实现是否结束的判断,并判断输赢。*/int i;for(i=0;i3;i+)if(qipani0=qipani1&qipani0=qipani2) return qipani0; for(i=0;i3;i+)if(qipan0i=qipan1i&qipan0i=qipan2i) return qipan0i; for(i=0;i3;i+)if(qipan00=qipan11&qipan00=qipan22)return qipan00;for(i=0;i3;i+) if(qipan02=qipan11&qipan11=qipan20) return qipan02; /*每行每列每对角线都检查一遍,返回值代表输赢代码*/return ; 谢谢 C语言学后感:C语言简介 C语言是目前世界上流行、使用最广泛的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。 C语言的发展历史 C语言的发展颇为有趣。它的原型ALGOL 60语言。 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。 1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。 而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本可移植的C语言编译程序。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。 1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE PLUS、DBASE 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。 C语言的特点 1. 简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2. 运算符丰富 C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 3. 数据结构丰富 C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 4. C是结构式语言 结构式语言的显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025下半年四川绵阳安州区考核招聘教师9人备考考试题库附答案解析
- 2025上海宋庆龄幼儿园工作人员招聘1人备考考试题库附答案解析
- 2025下半年陕西咸阳市事业单位招聘209人备考考试题库附答案解析
- 2025广东深圳市退役军人事务局招聘1人备考考试题库附答案解析
- 2025云南玉溪市红塔区发展和改革局城镇公益性岗位招聘1人备考考试题库附答案解析
- 2025版痔疮病情详解及护理方法分享
- 中学组织教育活动实施纲要
- 财税咨询方案写作范文
- 建筑方案设计中标公司名单
- 山东八年级第一学期物理第一次月考9月份考试试题以及答案(适合沪科版)
- 2025至2030中国聚烯烃行业项目调研及市场前景预测评估报告
- 2025四川达州宣汉县国有资产管理服务中心县属国有企业招聘劳动合同职工26人笔试历年参考题库附带答案详解
- 2025年下半年杭州市上城区丁兰街道办事处招聘编外工作人员11人考试参考题库及答案解析
- 2025年合肥市广播电视台(文广集团)招聘12人考试参考题库及答案解析
- 2025年大队委竞选面试题库及答案
- 2025年信用管理专业题库- 信用管理对企业市场风险的控制
- 6.2 用7~9的乘法口诀求商(课件)数学青岛版二年级上册(新教材)
- 普通饮片车间共线生产风险评估报告
- 新教科版小学1-6年级科学需做实验目录
- GB/T 8492-2024一般用途耐热钢及合金铸件
- 读懂诗家语省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论