MATLAB课程设计报告猜数游戏设计.docx
《MATLAB课程设计报告猜数游戏设计.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计报告猜数游戏设计.docx(11页珍藏版)》请在冰豆网上搜索。
![MATLAB课程设计报告猜数游戏设计.docx](https://file1.bdocx.com/fileroot1/2022-12/14/24e2da9b-db4b-49c1-bfd2-7e0aad904223/24e2da9b-db4b-49c1-bfd2-7e0aad9042231.gif)
MATLAB课程设计报告猜数游戏设计
前言2
课程设计的目的及意义3
课程设计要求及思路3
课程设计流程4
课程设计程序5
程序运行过程7
调试分析9
心得体会11
参考文献12
前言
MATLAB是目前国际上最流行、应用最广泛的科学与工程计算软件,具有语言简洁紧凑、使用方便、编程效率高、图形功能强、工具箱全面等特点,伸手广大科技工作者的喜爱。
近年来,MATLAB已成为理工科院校自动控制、通信技术、天子线性以及电气自动化等专业的必修课程,为烟具系统和分析使用实验提供了极大便利。
在通常的我们的学习过程中,专业知识的学习与实践是靠课堂讲授和数量不多的作业以及十分有限的实验来完成二者的结合。
所学的抽象理论、复杂计算,由于实践机会不多,难以较快的掌握,当结合仿真实验学习时,在掌握了原理与方法的基础上,对于复杂的计算可以迅速的得出结果,而且还可以很快地作出相应的图表曲线,其物理性质与规律性将一览无遗,并且可以方便频繁地应用软件工具对基本原理、计算方法、先进技术、复杂系统进行反复的实验研究,参与者的创造性、想象力也可以在仿真平台上尽情的发挥与展现,每个仿真模型建立的过程就是一次对专业知识、数理基础和计算机知识的巩固、完善与提高。
因此采用仿真实验方法,既加深了对专业知识的理解,又提高了学习效率,加之信息科学发展迅速。
用于研发、测试的仪器更新速度加快,随着技术含量的提高,价格也越来越昂贵,并不是所有从事研究与开发的人员都能够拥有相应的仪器设备,计算机仿真可以在一定程度上克服没有仪器设备所带来的问题。
MATLAB是MATrix和LABoratory两词的缩写,是1984年由美国Mathworks公司推出的计数值计算、符号运算和图形处理等多种功能于一体的科学计算工具软件。
新的版本包括基本部分的28个函数库和专业扩展部分的功能性工具箱和学科性工具箱,如信号处理、神经网络和金融等工具箱,可以满足不同专业人员到达的思维方法和书写习惯,使得编程和调试效率大大提高。
特别是可适应多种平台,并且随计算机硬、软件的更新而及时升级。
因此,.MATLAB在国外的大学工学院校中,特别是数值及时用的最频繁地电子信息类学科中,已成为每个学生都应掌握的工具了。
目前已成为世界各国在科学分析和计算领域的主流软件,并被IEEE评述为国际公认的最优秀的科技应用软件。
课程设计的目的及意义
目的:
通过本次课程设计,可以使我进一步认识MATLAB理论方法和实际意义,对理论知识进行必要实践、培养我们设计和仿真的基本能力,以便最终和生产实践以及其他科学结合。
意义:
1、掌握Matlab的功能、程序的设计和调试方法。
2、熟悉MATLAB开发软件,达到能够熟练使用的层次。
3、培养学生的应用开发能力,为以后的毕业设计奠定一定的基础。
4、掌握MATLAB相关工具箱中函数的使用。
课程设计要求及思路
设计要求:
用matlab编写一个程序——猜数游戏,随机产生1--100之间的一个数,开始时可猜3次,如猜测的数大于产生的数,则显示"High",小于则显示"Low",等于则显示:
“你真聪明!
”。
不对让用户选择降低难度(y\n),输入y提示个位与十位之和,输入n则不提示,可猜5次,同时提示大或小,如果5次还不中,提示:
“你真笨!
”继续玩请输入1,推出则输入2,退出提示:
“猜数游戏结束,欢迎下次再玩”。
设计思路:
MATLAB是一个功能强大的常用数学软件,它不但可以解决数学中的数值计算问题,还可以解决符号演算问题,并且能够方便地绘出各种函数图形,但嘴主要的还是在仿真领域,是其他软件无法比拟的。
MATLAB语言具有不同于其他高级语言的特点,它被称为第四代计算机语言,MATLAB语言最大的特点就是简单和直接。
正如第三代计算机语言(如Fortran语言与C语言)使人们摆脱对计算机硬件操作一样,MATLAB语言使人们从烦琐的程序代码中解放出来。
它丰富的函数使开发者无须重复编程,只要简单的调用和使用即可。
本次课程设计主要用到了Matlab的程序编程并没有涉及的仿真领域,编程时主要使用到了一些常用的命令:
fix(100*rand)%产生1到100之间的随机整数
int2str(n)%转换为串
symsyn%定义符号
disp('')%输出函数
Break%中断循环
input('')%输入函数
floor(x)%取整
课程设计流程
Y
N
Y
N
Y
N
Y
N
Y
N
Y
N
课程设计程序
%猜数游戏,在1--100之间猜数
functionf=csyx(a1)%定义函数
clear
clc
symsynz
x=fix(100*rand);%产生1到100之间的随机整数
n=3;
test=1;
fork=1:
3
numb=int2str(n);%转换为串
disp('')%输出
disp('-------------------------------------------------------------')
disp(['你有',numb,'次机会(在1---100之间猜一个数输入)'])
guess=input('你猜的数是:
');%输入所猜的数
ifguessdisp('-sorry!
太小了-')
elseifguess>x
disp('-sorry!
太大了-')
elseifguess==x
disp('-你真聪明-')
z=imread('zq.jpg','jpg');%读取同目录下的图片
imshow(z)%显示图片
csyx(93);
else
continue;%继续执行
test=0;
break;%中断循环
end%if语句结束
n=n-1;
disp('-------------------------------------------------------------')
end%for循环结束
j=input('要降低难度?
(y/n):
');
ifj==y
t1=floor(x./10);%取整
t2=x-t1*10;
t=t1+t2;
s=int2str(t);
disp(['这个数的个位与十位之和是:
',s,'加油'])
n=5;
test=1;
fork=1:
5
numb=int2str(n);
disp('')
disp('-------------------------------------------------------------')
disp(['你有',numb,'次机会(在1---100之间猜一个数输入)'])
guess=input('你猜的数是:
');
ifguessdisp('---sorry!
太小了---')
elseifguess>x
disp('---sorry!
太大了---')
else
disp('---你答对了---')
z=imread('zq.jpg','jpg');%读取同目录下的图片
imshow(z)%显示图片
test=0;
break;%中断循环
end%if语句结束
n=n-1;
disp('-------------------------------------------------------------')
end%for循环结束
elseifj==n
n=5;
test=1;
fork=1:
5
numb=int2str(n);%转换为串
disp('')
disp('-------------------------------------------------------------')
disp(['你有',numb,'次机会(在1---100之间猜一个数输入)'])
guess=input('你猜的数是:
');
ifguessdisp('---sorry!
太小了---')
elseifguess>x
disp('---sorry!
太大了---')
else
disp('---你猜对了---')
z=imread('zq,jpg','jpg');%读取同目录下的图片
imshow(z)%显示图片
test=0;
break;
end%if语句结束
n=n-1;
disp('-------------------------------------------------------------')
end%for循环结束
end%if语句结束
iftest==1
m=int2str(x);
disp('')
disp('-------------------------------------------------------------')
z=imread('cw.jpg','jpg');
imshow(z)
disp('对不起,你猜错了!
')
disp(['你猜的数是(',m,')'])
end
k=input('要继续吗?
请输入1,退出输入2:
');
ifk==2
disp('------------------------------')
disp('|猜数游戏结束,欢迎下次再玩|')
disp('------------------------------')
pause;
quit;
elseifk==1
end
csyx
(1);
end%function函数结束
程序运行过程
(一)、启动Matlab6.5软件,把程序m文件、图片素材复制到Matlab6p5\work目录下。
(二)、在命令窗口上打开m文件并按F5键运行程序。
运行过程如下:
1、猜数正确时:
2、猜数错误时:
调试分析
(一)、运行环境(软、硬件环境)
硬件:
8086以上CPU,内存512M以上。
软件:
WINDOWS操作系统,Matlab编译链接软件。
(二)、调试中遇到的问题
1、开始运行程序时“j=input('要降低难度?
(y/n):
');”语句执行时提示错误信息。
2、for循环语句和if条件语句在编写程序时注意与end搭配使用,如果for、if语句过多的话可能会出现多写或少写end命令。
3、在“disp('')”语句中提示程序的随机数和还有猜数的次数时不能正确显示提示内容。
4、程序执行到结尾时需要提示“继续,输入1、退出,输入2”语句不能正确做出提示。
(三)、问题解决方案
经过同学和老师的帮助,最终解决了在编写程序时遇到的上述问题:
1、执行程序,“j=input('要降低难度?
(y/n):
');”语句时提示错误信息:
“?
?
?
Undefinedfunctionorvariable'y'.Errorin==>csyxat31ifj==y”。
表示没有定义函数变量“y”,解决方法是在程序开头用syms命令定义变量y,如:
symsy。
2、编写完程序后运行总是提示错误信息,分析之后才发现最后一行少了一句“end”,在后面加上“end”命令此问题解决。
3、在disp('')语句中要提示程序产生的随机数和猜数剩余的次数,要用到int2str(n)命令,把n矩阵转换为字符串之后才能在disp('')中显示。
4、程序执行到结尾时需要提示“继续,输入1、退出,输入2”语句不能正确做出提示。
要解决这个问题就要用到exit、quit命令和定义函数function,但用exit时没有效果,最后选用了quit命令执行“输入2时退出”,命令中quit字母必须小写。
“输入1继续”需要用function定义函数,在由定义的函数来执行,如程序中使用的是:
“functionf=csyx(a1)......csyx
(1)end”。
5、因为Matlab软件工具和函数繁多、计算机型号不同,在安装Matlab版本时都会出现一些问题,导致程序运行时时常发生一些错误,但又不是程序本身的问题。
心得体会
这学期是我首次接触到MATLAB这门对我来说完全陌生的课程,在MATLAB的第一堂课中,看到老师在教室演示MATLAB的有关应用时,我感到这是一门很有趣、很有用用途的一门课程。
开始学习时我觉得有点困难,对实验指导书上的题目只能是照葫芦画瓢的模仿,但是随着学习的深入和上机次数的增多,我的学习有点入门的感觉,在学习中我们先后学习了MATLAB的桌面环境、矩阵的使用、M文件的编写、文件的输入与输出、图形绘制与分析,我对MATLAB已经有了初步的认识和了解。
作为一款强大的科学计算工具软件,我们在专业的学习中应该体现学习这门课的价值。
通过本次课程设计,可以使我进一步认识MATLAB的使用方法和实际意义,对理论知识进行必要实践、培养我独立思考的能力。
,让我把以前所学的知识更近一步的复习和得到合理的运用,同时也提高了我们的学习兴趣,这从一种角度上来说,也培养了我们独立思考、综合运用知识的能力.
这次我做的是“猜数游戏”课程设计,在调试程序时遇到了许多问题,在周老师的指导下,我们把程序调试通过了。
通过这次的课程设计我相当于又从头又学习了一遍MATLAB基础知识,不仅加深对基础知识的理解,而且对我的分析和解决问题的能力有了很大的提高。
在程序中大量使用条件语句和循环语句,还用到了两张图片素材,分别是在猜数正确与错误时提示玩家的。
经过这次课程设计,我收获的很多,不仅掌握了许多以前不知道的一些命令,而且还能编写一些MATLAB的小程序,许多命令都要在网络上做参考,互联网上关于MATLAB的教程多不胜数,利用好网络资源能够帮我们解决许许多多的问题。
参考文献
1罗建军。
MATLAB教程[M],北京:
电子工业出版社2005
2刘卫国.MATLAB程序设计与应用[M],北京:
高等教育出版社。
2002
3周开利,邓春晖,MATLAB基础及应用教程[M],北京:
北京大学出版社,2007
4张森,张正亮,MATLAB仿真技术与应用实例教程[M],北京:
机械工业出版社2004
5赵红怡,现代图像处理技术及MATLAB实现北京:
人民邮电出版社,2001
6刘敏,MATLAB通信仿真与应用[M],北京:
国防工业出版社2001
7张平,MATLAB教基础与应用简明教程[M],北京:
北京航空航天大小额出版社2001
8于润伟,朱晓慧.MATLAB基础及应用.第二版.机械工业出版社,2008
9罗建军,MATLAB教程[M].北京:
电子工业出版社,2005
10张志涌,徐彦琴等.MATLAB教程,6x版本.2004年北京北京航空航天
大学出版社
11陈桂明等.MATLAB程序设计.2002年北京科学出版社
12程毛林.MATLAB软件在多元统计分析中的应用.数理统计与管理.
2008(3)279-2845
13matlab教程网