表达式求值程序设计 说明书

上传人:第*** 文档编号:78877720 上传时间:2019-02-15 格式:DOCX 页数:37 大小:148.76KB
返回 下载 相关 举报
表达式求值程序设计  说明书_第1页
第1页 / 共37页
表达式求值程序设计  说明书_第2页
第2页 / 共37页
表达式求值程序设计  说明书_第3页
第3页 / 共37页
表达式求值程序设计  说明书_第4页
第4页 / 共37页
表达式求值程序设计  说明书_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《表达式求值程序设计 说明书》由会员分享,可在线阅读,更多相关《表达式求值程序设计 说明书(37页珍藏版)》请在金锄头文库上搜索。

1、汇编语言实训 课程设计任务书题 目: 表达式求值程序 班 级: 计算机科学与技术一班 学生姓名: 赵旭尧 学 号: 14730141 题目类型: 软件工程(R) 指导教师: 刘树群 一 题目简介该设计要求学生使用汇编语言,设计并开发出针对四则运算表达式进行求值的命令行或窗口程序。通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。二 设计任务1、查阅文献资料,一般在5篇以上;2、通过键盘输入表达式,

2、进行针对整数的 “加减乘除”四则运算表达式进行求值,有良好的界面;3、完成软件结构设计和算法设计;4、完成系统的软件开发和测试工作;5、撰写设计说明书;6、做好答辩工作。三 主要内容、功能及技术指标1、实现功能及指标:使用Win32的窗口程序模式,实现表达式求值程序及测试界面程序的设计与开发;支持整数的四则运算、位运算和小括号等;使用文本框对表达式进行交互式编辑和输出。2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关

3、系,并画出函数之间的调用关系图。3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。4、完成课程设计报告 需求和规格说明:设计题目和问题描述:题目要解决的问题是什么; 设计思路:主要算法思想,程序功能图,函数之间的调用关系图; 设计表示:每个函数或过程的功能,列出每个过程或函数所调用的过程或函数,并画出各函数的流程图; 详细设计:主要算法的伪代码; 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等; 程序实现注释; 附录:源程序清单和结

4、果。如果题目规定了测试数据,则结果要求包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。四 提交的成果1. 设计说明书一份,内容包括:1) 中文摘要100字;关键词3-5个;2) 前言;3) 系统分析(包含需要的系统流程图);4) 系统总体设计(包含总体软件结构图、总体数据结构);5) 详细设计;6) 系统测试(包含测试方案、测试用例、测试结果及软件可靠性分析);7) 软件使用说明书(核心界面说明);8) 设计总结、参考文献、致谢等。2. 刻制光盘一张。五 主要参考文献1 王爽.汇编语言(第二版).清华大学出版社, 2008。2 沈美明,温冬婵.IBM-PC汇编语言程序设计(第二

5、版).清华大学出版社, 2001。3 美Kip R.Irvine著,温玉洁,等译.Intel汇编语言程序设计(第五版).电子工业出版社, 2007。4 钱晓捷.汇编语言程序设计(第二版). 电子工业出版社, 2003。5 罗云彬.Windows环境下32位汇编语言程序设计(第二版).电子工业出版社, 2006。6 Windows API函数参考手册.人民邮电出版社, 2002。六 各阶段时间安排(共1周):日期内容地点星期一教师讲解设计要求,准备参考资料机房星期二分析系统,方案设计机房星期三方案设计,编程机房星期四编程机房星期五编程,答辩机房摘要随着时代的进步,人们不再使用古代的计算器。取而代

6、之的是现今利用计算机编程技术的产品计算器,这节省了人们大量的计算时间。通过电流在晶体管等上面的存储信息,将人们想要计算的数字,通过重复的加减乘除运算从而计算实现出来。本程序是利用汇编语言的编译环境masmplus来实现的。程序通过将读入的中缀表达式转换为后缀表达式,然后读取后缀表达式,输出结果。关键字:汇编语言;Masmplus;中缀表达式;后缀表达式目录1 概述11.1课程了解11.2 课程设计目的11.3 课程设计内容11.4系统功能模块的划分12 系统需求分析22.1 系统目标22.2 主体功能22.3 开发环境22.4系统功能模块的分析23系统分析33.1系统总体分析33.2优先级的判

7、断43.3表达式的四则运算44系统详细设计54.1在汇编环境下输入并保存操作数54.2保存运算符和比较运算符的优先级54.3表达式的四则运算84.4算法的清零和回车换行84.5输出计算结果104.6括号和负号的细节问题125系统测试145.1加法运算145.2减法运算145.3乘法运算145.4除法运算155.5混合运算156软件使用说明16设计总结17参考文献18致谢19附录201 概述 1.1课程了解表达式计算是实现程序设计语言的基本问题之一。设计一个程序,演示通过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实现对算术表达式进行四则混合运算。在计算机中,算术表达式由常量

8、、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。在读入表达式的字符序列的同时完成运算符和运算数的识别处理,然后进行运算数的数值转换在进行四则运算。在运算之后输出正确运算结果。1.2 课程设计目的 1要求学生达到熟练掌握汇编语言的基本知识和技能。 2了解并掌握汇编语言的设计方法,具备初步的独立分析和设计能力。 3提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 4培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平

9、。5初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。 1.3 课程设计内容 程序功能:对实数内的加减乘除乘方运算能正确的运算出结果,并能正确对错误输入和无定义的运算报错,能连续测试多组数据。设计一个表达式求值的程序。该程序必须可以接受包含(,),+,-,*,/,%,和(求幂运算符,ab=ab)的中缀表达式,并求出结果。如果表达式正确,则输出表达式的结果;如果表达式非法,则输出错误信息。算法运行:将输入的中缀表达式改为后缀表达式,并进行运算。算法输出:输出后缀表达式和表达式运算结果。1.4系统功能模块的划分“表达式求值”包括四个模块:保存输入的操作数和运算符;比较各个元

10、素的优先级高低;对算术表达式进行四则运算;输出所得的结果。2 系统需求分析 2.1 系统目标 设计一个程序,演示用算符优先法对算术表达式求值的过程。利用算符优先关系,实现对算术四则混合运算表达式的求值。其中涉及到对输入数据和运算符号的保存,比较各个元素之间优先级高低,算法完成清零和按回车换行按等号出结果等问题。2.2 主体功能 能够处理以字符序列的形式输入的不含变量的实数表达式,正确处理负数与小数,判断表达式是否语法正确(包含分母不能为零的情况),正确实现对算术四则混合运算表达式的求值,能够将计算中遇到的问题和结果以文件的形式予以存储。 2.3 开发环境 Masmplus2.4系统功能模块的分

11、析保存输入的操作数和运算符:只要功能就是把输入的操作数字和运算符号保存在程序中,再经过子程序的调用,从而来完成算法的计算;比较各个元素的优先级高低:在输入操作数和运算符号以后,应该先比较元素运算符号的优先级高低从而来决定算法的先后;对算术表达式进行四则运算:这是计算模块的功能,对已经保存好的操作数和运算符号根据优先级的高低来进行运算;输出结果:将最后运算所得的结果输出。3系统分析3.1系统总体分析 保存输入的运算符保存输入的数据计算表达式是否合法输出表达是值输出错误提示结束图3.1系统总体分析流程图图3.1讲述在算法的开始,先保存输入到程序的操作数和运算符并且比较各个运算符之间的优先级先后,然

12、后才能进行计算。最后,若是输入的表达式错误则会输出错误指令,若是正确将会输出此表达式的计算结果。返回“”图3.2判断优先级模块流程图图3.2是子程序判断元素优先级的流程图。若是取得的元素优先级低则返回“”。3.3表达式的四则运算输出结果为x+y输出结果x*y 符号为*符号为+四则运算(x,y)输出结果为x/y 符号为/符号为-输出结果为x-y 图3.3 四则运算模块流程图图3.3是子程序运算模板流程图。先输入操作数和运算符,最后得到结果。4系统详细设计 我们在编写整体程序代码的时候应该先行编写各个子程序模块,在确定输入操作数和运算符的存储和确定优先级的高低才能进行一个算法表达式的运算。4.1在

13、汇编环境下输入并保存操作数DSEG SEGMENTSTR1 DB 0AH,0DH, please input the expression:(Njump out)$SIGN1 DW 0SIGN2 DW 0SIGN3 DW 0NUMB DW 20H DUP(0)在汇编语言的程序编码坏境下判断数字是否输入完毕,判断括号是否是配对的并且保存已经输入的数值。4.2保存运算符和比较运算符的优先级NUMB DW 20H DUP(0) MARK DB A DB 10H DUP(0) ;ERROR DB YOUR INPUT ARE WRONG$DSEG ENDSDISP MACRO MLEA DX,MMOV AH,9INT 21HENDMCHOICE MACRO ASC1,HAO1,HH CMP AL,ASC1 ;JNE OTHER&HAO1 ;MOV CH,HH ;JMP OTHER7 ;ENDMCSEG SEGMENTSTART:ASSUME CS:CSEG,DS:DSEGCALL CLEARMOV AX,DSEG ;MOV DS,AX ;LEA DI,NUMB ;LEA SI,MARK ;DISP STR1CALL CRdisp errorMOV AX,0MOV DX,0MOV BX,0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号