欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    猜人物游戏.docx

    • 资源ID:12667653       资源大小:370.63KB        全文页数:37页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    猜人物游戏.docx

    1、猜人物游戏课程设计报告 ( 2011-2012年度第二学期)名 称: 汇编语言课程设计 题 目: 猜人物游戏 院 系 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 一周 成 绩: 日期:2012年 6月29日一、课程设计的目的与要求1 课程设计目的:本课程设计在完成教学大纲规定的全部内容和所有实践环节的基础上展开,旨在深化学生对汇编语言程序设计课程的掌握和理解。主要目的如下:1.1 深入了解汇编语言语法和使用规范,熟练运用汇编语言进行编程。1.2 进一步了解汇编语言的执行原理,能够设计合理有效的算法实现汇编编程过程1.3 熟练使用CV调试器、debug调试器等进行程序的调试,解决编程

    2、过程中的编译、逻辑错误,独立完成程序各项功能的实现。2 课程设计的要求1.1 创建一个文件,包含16个著名的演艺明星的5方面的特征。1.2 系统向用户提出几个连续的问题,用户根据自己心中的明星的特点来回答“是”、“否”、“不知道”。1.3 系统给出猜中的明星姓名,如果没有猜中,系统可以继续提问。1.4 如果该明星在文件中不存在,可以提供界面输入该明星的信息。二、设计正文1 需求分析经分析本次程序设计的主要内容主要分为如下的三个方面的分析:11 创建一个文件用来存储游戏中人物的信息,如:性别、语言、国籍、职业等等信息。其中除了几个基本的问题之外,每个人物都要有其独自的一个特征。计算并设计每条信息

    3、的长度以及整条人物信息的长度和存储形式。12 设计游戏中的问题,即根据每个人物的信息来设计问题,比如:“该人物是否为女性?”、“是否为一名歌手吗?”等等。其次,要对每个人物独特的特征单独提出问题,这些问题是系统最后给出答案的关键。13 算法和数据结构的设计。通过对用户给出的问题的答案的分析与筛选,用一定的算法设计计算出用户所要找的人物,如果在文件中没有找到相应的人物信息,系统将给出提示,要求用户输入该人物的信息,并且进行保存。2 总体设计21 设计思路1)创建message文件,在文件中写入一些人物的信息。在本程序中,设计人物信息存储方式采用的的是简化的存储方式,即利用数字来代替人物的一些信息

    4、。例如其中的一条信息为:“21111Be good at piano ZhouJieLun ”。其中前5个数字分别代表问题中前5个问题的答案,这样使得存储变得简单而易操作。之后的一个字符串是用来存储人物的独特特征的,最后就是人物的名字。2)初始化操作,设计屏幕界面,进行清屏操作。给出提示信息和操作信息。3)打开文件message,将信息读入buffer缓冲区,在缓冲区中对信息进行筛选和修改操作。4)创建文件extro,用来暂时储存用户选择的答案信息和输入的人物信息。当程序执行完,将用户输入的信息存储到message文件中后,该文件将为删除。5)当用户不再继续执行程序时,关闭文件message,

    5、程序正常结束。22 系统功能结构(如图1-1)1) 操作界面:在程序运行开始,要在屏幕中显示游戏介绍、使用方法和操作流程以及一些必要的信息提示语句。2) 文件(message)打开、读入缓冲区、写入信息、关闭文件。3) 文件(extro)的创建、储存信息、将信息转存、删除文件。4) 程序结束。图1-1 系统功能结构图23 技术路线和实现方法2.3.1 打开文件并存储到缓冲区buffer中。 使用DOS系统功能调用10H中的6H,进行清屏操作。使用DOS系统功能调用INT 21H的3DH功能,获得文件句柄;使用DOS系统功能调用中INT 21H的3FH功能,读文件进入buffer缓冲区,并得到缓

    6、冲区实际存入字节数,即文件长度。打开文件message,并将内容信息存入缓冲区buffer。使用DOS系统功能调用INT 21H的3CH创建文件extro,保存文件句柄。 2.3.2 缓冲区buffer中信息处理。在buffer缓冲区中进行的操作是:根据系统给出的问题,对用户的回答进行分析。若用户输入的答案与缓冲区中相应位置的信息一致则进行下一个问题的回答;如果不匹配,就将buffer缓冲区中该条信息的标志成N,当进行信息处理时方便进行筛选,最后便于系统给出正确的人物名字。2.3.3 信息处理阶段。将buffer中的信息进行处理分析,如果该条信息的标志位N,则判断该条信息不是用户所要查找的人物

    7、的信息,继续读下一条信息。直到该条信息没有背标记为N时,记录此时buffer中的位置,并根据该位置去读取文件中特殊特征的信息进行再次验证是否满足用户所想的人物的信息,并且根据该条信息可以最终判定系统中是否有用户猜想的人物。 2.3.4 最终查找结果操作 若查找到该人,则显示出该人物的名字,并且让用户判定是否是用户所要找的人物。如果没有用户要找的人物,则提示用户输入该人物的特征信息和名字,系统将进行存储,以待以后的用户进行查找。 3 详细设计31 模块划分、流程图3.1.1 缓冲区buffer中处理过程(如图3-1)Y N 图3-1 buffer缓冲区处理过程3.1.2 系统主流程图(如图3-2

    8、) 图3-2 系统主流程图32 数据分析与定义数据段定义如下:data segment ;input data segment code here STRING DB The game has began.Please guess a REAL FAMOUSE charactor in your mind first!,$ STRING1 DB Then answer the questions.,$ STRING10 DB *Pay attention to that:(Answer: 1.yes 2.no 3.do not know)*,$ STRING0 DB I will guess

    9、the Charactor who is in your mind According to your answers!,$ S DB Are you ready? Let us have a try! Press each button to begin,$ STRING00 DB -,$ STRING01 DB I guess.the charactor is-,$ STRING02 DB Is it right?(Y OR N),$ STRING2 DB Do you want to continue?(Y or N),$ STRING3 DB Is it ,$ STRING4 DB N

    10、ot find the charactor! Please write down the charactor. ,$ STRING5 DB Unique charactor:(26),$ STRING6 DB Name:(15),$ FILE DB message.txt,0 ;message文件ASCIIZ串 FILE1 DB extro.txt,0 ;extro文件ASCIIZ串 QUE1 DB Is the charactor a femal?,$ QUE2 DB Is the charactor speak Chinese?,$ QUE3 DB Is the charactor a s

    11、inger?,$ QUE4 DB Is the charactor from Taiwan?,$ QUE5 DB Is the charactor on the world?,$ HANDLE DW ? ;message文件句柄 HANDLE1 DW ? ;extro文件句柄 count db ? ;初始化人物个数 BUFFER0 DB ? BUFFER DB 1024 DUP(?) ;用来存储message文件中内容 BUFFER1 DB 26 DUP(?) ;特征信息存储 BUFFER2 DB 15 DUP(?) ;姓名信息存储 ERROR DB NUMBER WRONG!,$ ;数字越界

    12、错误提示信息 ERROR1 DB OPEN FILE WRONG!,$ ;打开文件错误 ERROR2 DB CREATE FILE WRONG!,$ ;创建文件错误 ERROR3 DB WRITE FILE WRONG!,$ ;写文件错误data ends33 界面设计使用DOS下系统功能调用10H中的6H,设置文字颜色和背景颜色。调用宏进行清屏。宏定义为:MACRO1 MACRO PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,6 MOV AL,0 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,79 MOV BH,74H INT 10H

    13、POP DX POP CX POP BX POP AXENDM对于提示语句的输出,设置好显示方式,使得界面更加友好。 程序运行界面如图3-3:图3-34 编码实现(源程序)源程序见附录5 运行结果1) 初始状态下,文件中内容存储如图3-4图3-42)例如:查找周杰伦图3-5承接图3-5,当用户确定系统判断正确时,系统会提示是否继续游戏,输入Y时将继续游戏。如图3-6:图3-63) 如果系统没有找到该人的信息,(或者在上图系统问“Is it right ?”,若输入为N时)系统会提示没有找到与用户提供的信息一致的人,则要求用户输入该人的特征信息和姓名。如下图3-7:图3-7承接图3-7,我们继续

    14、操作,输入特征信息为“A teacher at huaidan”,姓名输入:“Subeilin”,如下图3-8。图3-84) 此时,当我们想继续游戏查找“SaBeining”这个人时,我们不妨先看一下message文件夹中是否已经将用户输入的这条信息储存到文件中,打开文件夹可以看到,该条信息已经被储存到文件夹中去了,如下图3-9:图3-95) 继续执行改程序,我们查找“SaBeining”这个人,执行结果如下图3-10所示:图3-10由运行结果可知,确实可以查找出新添加进去的信息的人物。三、课程设计结论汇编课程是一门理论性和实践性都很强的学科,只有实际动手编写算法、上机运行和调试程序,才能更好

    15、地理解和掌握所学的知识,提高程序设计和问题分析能力。一周的汇编语言程序设计很快就结束了,通过本次课程设计,对汇编语言有了更加深刻的理解,使用更为熟练,同时训练了调试程序的能力。通过自己设计程序的全部流程,对每个环节都要十分清楚。代码完成后深切的感觉到,编写代码前的设计十分的重要。因为,如果等到完成了许多功能后,再需要增添一个功能,或改写一个光标的位置,汇编语言的改写比java等高级语言麻烦的多,十分不好改,毕竟汇编是一种低级语言,没有面向对象的概念,很有可能大部分带都重写,导致效率十分低。在程序的调试过程中熟悉了通过观察各个寄存器内值的变化来跟踪程序的运行是否有误。在程序设计分析时,不知道该如

    16、何进行人员信息的存储,既用以往的存储方式,即把每个人物的信息用英文字符串来存储,在实际操作中我发现,这样做非常繁琐,对字符串中字符的个数的计算非常麻烦。除此之外,对于不同人物的信息的长短也不尽相同,很难控制和界定每个属性的个数。在这样的情况下,我尝试从问题的答案入手,分别用1、2、3来代替yes、no、do not known三个答案形式,这样简化了输入的繁琐。从这个基础上,我试图同样用1、2、3来代替message文件夹中各个人物的基本信息。这样,可能需要很多个字符串才能将人员信息描述完整的信息,我仅仅用了5个字符就搞定了,在算法中进行信是省去了不少功夫,而与用实际描述的字符串信息比较,达到

    17、的效果是一样的。可以说这样的信息存储方案是一个不错的选择。 对于系统的灵活性,随着使用人数的增多,信息量的增大,在查询时,系统提问的问题的个数也将增多,直到满足用户查找人的特征为止。该系统也实现了将人员信息有效的存储并且有效的查询的功能。 在编程的过程中,在算法部分花了很大的精力。各种条件的判断,不符合条件的信息的删除,符合条件的信息的筛选,都是必须要谨慎考虑的问题。用汇编语言编写程序的一大特点是,在使用某个寄存器之前,必须要考虑此时寄存器的使用会不会将之前的参数改变,因此,在每使用一个寄存器之前,一定要将不能被改变的参数存储到堆栈中或者保存到内存单元中。在这方面也是在编程的过程中深深体会到了

    18、,也吃了不少这方面的亏,可是这样也提高了我分析程序的能力,以及自己查找错误的能力。紧接着,文件的打开、读入、写入、关闭,出现了一些错误,包括各项操作进行的顺序,功能调用的入口参数,都产生了逻辑错误,通过深入学习功能调用,和进行程序调试,解决了问题。与此同时,编写过程中,经常会遇到逻辑错误,通过CV调试,单步跟踪,更改操作对象,或更改设计思路等等方式,逐项解决错误。程序的编写过程中也暴露出自身的问题,基本功不够扎实,对一些功能调用的理解不够全面,对以前学过的数据结构等知识有些遗忘,而且平时上机练习力度不够,通过此次课程设计,提醒自己要加强动手操作能力,多多上机练习,提高主动学习的积极性,这样才能

    19、不断提高,才能享受编程的乐趣。 四、参考文献 1傅德胜,孙文静.高级汇编语言程序设计及应用.东南大学出版社,2009年12月第1版2马力妮.80x86汇编语言程序设计.机械工业出版社,2007年7月第1版3詹仕华.汇编语言程序设计.北京:中国电力出版社,2008.24温冬蝉,沈美明.IBM PC汇编语言程序设计.北京:清华大学出版社,2002.3附录(源程序):MACRO1 MACRO ;清屏 PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,6 MOV AL,0 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,79 MOV BH,74H IN

    20、T 10H POP DX POP CX POP BX POP AXENDMdata segment ;数据段定义 STRING DB The game has began.Please guess a REAL FAMOUSE charactor in your mind first!,$ STRING1 DB Then answer the questions.,$ STRING10 DB *Pay attention to that:(Answer: 1.yes 2.no 3.do not know)*,$ STRING0 DB I will guess the Charactor who

    21、 is in your mind According to your answers!,$ S DB Are you ready? Let us have a try! Press each button to begin,$ STRING00 DB -,$ STRING01 DB I guess.the charactor is-,$ STRING02 DB Is it right?(Y OR N),$ STRING2 DB Do you want to continue?(Y or N),$ STRING3 DB Is it ,$ STRING4 DB Not find the chara

    22、ctor! Please write down the charactor. ,$ STRING5 DB Unique charactor:(26),$ STRING6 DB Name:(15),$ FILE DB message.txt,0 FILE1 DB extro.txt,0 QUE1 DB Is the charactor a femal?(1.yes 2.no 3.do not known),$ QUE2 DB Is the charactor speak Chinese?(1.yes 2.no 3.do not known),$ QUE3 DB Is the charactor

    23、a singer?(1.yes 2.no 3.do not known),$ QUE4 DB Is the charactor from Taiwan?(1.yes 2.no 3.do not known),$ QUE5 DB Is the charactor on the world?(1.yes 2.no 3.do not known),$ HANDLE DW ? HANDLE1 DW ? count db ? BUFFER0 DB ? BUFFER DB 1024 DUP(?) BUFFER1 DB 26 DUP(?) BUFFER2 DB 15 DUP(?) ERROR DB NUMB

    24、ER WRONG!,$ ERROR1 DB OPEN FILE WRONG!,$ ERROR2 DB CREATE FILE WRONG!,$ ERROR3 DB WRITE FILE WRONG!,$data endsstack segment STACK ;input stack segment code herestack endscode segment CODE ;代码段定义 assume cs:code,ds:data,ss:stackSTART: mov ax,data mov ds,ax MOV count,15;初始化人物个数 MACRO1;清屏宏调用 BEGIN: ;显示提

    25、示信 CALL PROC1 LEA DX,STRING00 MOV AH,9 INT 21H CALL PROC1 LEA DX,STRING MOV AH,9 INT 21H CALL PROC1 LEA DX,STRING1 MOV AH,9 INT 21H call proc1 CALL PROC1 mov ah,9 lea dx,STRING10 INT 21H CALL PROC1 call PROC1 LEA DX,STRING0 MOV AH,9 INT 21H CALL PROC1 LEA DX,S MOV AH,9 INT 21H CALL PROC1 LEA DX,STRI

    26、NG00 MOV AH,9 INT 21H CALL PROC1 MOV AX,3D00H;OPEN FILE LEA DX,FILE ; MOV AL,01H;READ AND WRITE OPEN INT 21H JC ERR1;OPEN WRONG MOV HANDLE,AX MOV AH,3CH;CREATE FILE1 MOV CX,0 LEA DX,FILE1 INT 21H JC ERR2 MOV HANDLE1,AX MOV AH,3FH;READ TO BUFFER LEA DX,BUFFER MOV BX,HANDLE MOV CX,1024 INT 21H mov ah,

    27、1 int 21h ; mov bl,47;every message 47 ; div bl;ax real count ;mov count,al ; pop cx;收集信息阶段 ; mov count,cl Q1: MOV SI,0 XOR CX,CX mov cl,count;7 LEA DX,QUE1 MOV AH,9 INT 21H CALL PROC1 MOV AH,1 INT 21H PUSH DX PUSH CX PUSH BX PUSH AX MOV BUFFER0,AL MOV AH,40H;WRITE FILE1 MOV BX,HANDLE1 MOV CX,1 LEA

    28、DX,BUFFER0 INT 21H POP AX POP BX POP CX POP DX cmp AL,3;数字越界处理 ja ERR cmp AL,1 jb ERR CMP AL,1 JNZ LOP2LOP1: CMP BUFFERSI,1 JZ ADD1 MOV BUFFERSI,NADD1:ADD SI,47 LOOP LOP1 JMP Q2LOP2:CMP BUFFERSI,1 JNZ ADD2 MOV BUFFERSI,NADD2:ADD SI,47 LOOP LOP2 ;next1:CALL PROC1 ;lea dx,BUFFER ;MOV AH,9 ;INT 21H Q2:MOV SI,0XOR CX,CX mov cl,countCALL PROC1 LEA DX,QUE2 MOV AH,9 INT 21H CALL PROC1 MOV AH,1 INT 21H PUSH DX PUSH CX PUSH BX PUSH AX MOV BUFFER0,AL MOV AH,40H;WRITE FILE1 MOV BX,HANDLE1 MOV CX,1 LEA DX,BUFFER0 INT 21H POP AX POP BX POP CX POP DX


    注意事项

    本文(猜人物游戏.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开