表达式求值程序设计说明书Word格式文档下载.docx
- 文档编号:15335420
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:24
- 大小:59.63KB
表达式求值程序设计说明书Word格式文档下载.docx
《表达式求值程序设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《表达式求值程序设计说明书Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
充分地分析和理解问题本身,弄清要求做什么。
在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。
最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。
3、详细设计和编码:
定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。
4、完成课程设计报告
①需求和规格说明:
设计题目和问题描述:
题目要解决的问题是什么;
②设计思路:
主要算法思想,程序功能图,函数之间的调用关系图;
设计表示:
每个函数或过程的功能,列出每个过程或函数所调用的过程或函数,并画出各函数的流程图;
详细设计:
主要算法的伪代码;
③调试报告:
调试过程中遇到的主要问题,是如何解决的;
对设计和编码的回顾讨论和分析;
改进设想;
经验和体会等;
④程序实现注释;
⑤附录:
源程序清单和结果。
如果题目规定了测试数据,则结果要求包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。
四.提交的成果
1.设计说明书一份,内容包括:
1)中文摘要100字;
关键词3-5个;
2)前言;
3)系统分析(包含需要的系统流程图);
4)系统总体设计(包含总体软件结构图、总体数据结构);
5)详细设计;
6)系统测试(包含测试方案、测试用例、测试结果及软件可靠性分析);
7)软件使用说明书(核心界面说明);
8)设计总结、参考文献、致谢等。
2.刻制光盘一张。
五.主要参考文献
1王爽.汇编语言(第二版).清华大学出版社,2008。
2沈美明,温冬婵.IBM-PC汇编语言程序设计(第二版).清华大学出版社,2001。
3[美]KipR.Irvine著,温玉洁,等译.Intel汇编语言程序设计(第五版).电子工业出版社,2007。
4钱晓捷.汇编语言程序设计(第二版).电子工业出版社,2003。
5罗云彬.Windows环境下32位汇编语言程序设计(第二版).电子工业出版社,2006。
6WindowsAPI函数参考手册.人民邮电出版社,2002。
六.各阶段时间安排(共1周):
日期
内容
地点
星期一
教师讲解设计要求,准备参考资料
机房
星期二
分析系统,方案设计
星期三
方案设计,编程
星期四
编程
星期五
编程,答辩
摘要
随着时代的进步,人们不再使用古代的计算器。
取而代之的是现今利用计算机编程技术的产品——计算器,这节省了人们大量的计算时间。
通过电流在晶体管等上面的存储信息,将人们想要计算的数字,通过重复的加减乘除运算从而计算实现出来。
本程序是利用汇编语言的编译环境masmplus来实现的。
程序通过将读入的中缀表达式转换为后缀表达式,然后读取后缀表达式,输出结果。
关键字:
汇编语言;
Masmplus;
中缀表达式;
后缀表达式
1概述
1.1课程了解
表达式计算是实现程序设计语言的基本问题之一。
设计一个程序,演示通过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实现对算术表达式进行四则混合运算。
在计算机中,算术表达式由常量、变量、运算符和括号组成。
由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。
在读入表达式的字符序列的同时完成运算符和运算数的识别处理,然后进行运算数的数值转换在进行四则运算。
在运算之后输出正确运算结果。
1.2课程设计目的
1.要求学生达到熟练掌握汇编语言的基本知识和技能。
2.了解并掌握汇编语言的设计方法,具备初步的独立分析和设计能力。
3.提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
4.培养算法分析能力。
分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
5.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
1.3课程设计内容
程序功能:
对实数内的加减乘除乘方运算能正确的运算出结果,并能正确对错误输入和无定义的运算报错,能连续测试多组数据。
设计一个表达式求值的程序。
该程序必须可以接受包含(,),+,-,*,/,%,和^(求幂运算符,a^b=ab)的中缀表达式,并求出结果。
如果表达式正确,则输出表达式的结果;
如果表达式非法,则输出错误信息。
算法运行:
将输入的中缀表达式改为后缀表达式,并进行运算。
算法输出:
输出后缀表达式和表达式运算结果。
1.4系统功能模块的划分
“表达式求值”包括四个模块:
保存输入的操作数和运算符;
比较各个元素的优先级高低;
对算术表达式进行四则运算;
输出所得的结果。
2系统需求分析
2.1系统目标
设计一个程序,演示用算符优先法对算术表达式求值的过程。
利用算符优先关系,实现对算术四则混合运算表达式的求值。
其中涉及到对输入数据和运算符号的保存,比较各个元素之间优先级高低,算法完成清零和按回车换行按等号出结果等问题。
2.2主体功能
能够处理以字符序列的形式输入的不含变量的实数表达式,正确处理负数与小数,判断表达式是否语法正确(包含分母不能为零的情况),正确实现对算术四则混合运算表达式的求值,能够将计算中遇到的问题和结果以文件的形式予以存储。
2.3开发环境
Masmplus
2.4系统功能模块的分析
保存输入的操作数和运算符:
只要功能就是把输入的操作数字和运算符号保存在程序中,再经过子程序的调用,从而来完成算法的计算;
比较各个元素的优先级高低:
在输入操作数和运算符号以后,应该先比较元素运算符号的优先级高低从而来决定算法的先后;
对算术表达式进行四则运算:
这是计算模块的功能,对已经保存好的操作数和运算符号根据优先级的高低来进行运算;
输出结果:
将最后运算所得的结果输出。
3系统分析
3.1系统总体分析
保存输入的数据
保存输入的运算符
计算
表达式是否合法
输出错误提示
输出表达是值
结束
图3.1系统总体分析流程图
图3.1讲述在算法的开始,先保存输入到程序的操作数和运算符并且比较各个运算符之间的优先级先后,然后才能进行计算。
最后,若是输入的表达式错误则会输出错误指令,若是正确将会输出此表达式的计算结果。
3.2优先级的判断
取得元素优先级低
取得元素优先级高
图3.2判断优先级模块流程图
图3.2是子程序判断元素优先级的流程图。
若是取得的元素优先级低则返回“<
”,若是取得的优先级高,则输出“>
”。
3.3表达式的四则运算
符号为*符号为+
符号为/符号为-
图3.3四则运算模块流程图
图3.3是子程序运算模板流程图。
先输入操作数和运算符,最后得到结果。
4系统详细设计
我们在编写整体程序代码的时候应该先行编写各个子程序模块,在确定输入操作数和运算符的存储和确定优先级的高低才能进行一个算法表达式的运算。
4.1在汇编环境下输入并保存操作数
DSEGSEGMENT
STR1DB0AH,0DH,'
pleaseinputtheexpression:
("
N"
jumpout)$'
SIGN1DW0
SIGN2DW0
SIGN3DW0
NUMBDW20HDUP(0)
在汇编语言的程序编码坏境下判断数字是否输入完毕,判断括号是否是配对的并且保存已经输入的数值。
4.2保存运算符和比较运算符的优先级
NUMBDW20HDUP(0)
MARKDB'
A'
DB10HDUP(0);
ERRORDB'
YOURINPUTAREWRONG$'
DSEGENDS
DISPMACROM
LEADX,M
MOVAH,9
INT21H
ENDM
CHOICEMACROASC1,HAO1,HH
CMPAL,ASC1;
JNEOTHER&
HAO1;
MOVCH,HH;
JMPOTHER7;
CSEGSEGMENT
START:
ASSUMECS:
CSEG,DS:
DSEG
CALLCLEAR
MOVAX,DSEG;
MOVDS,AX;
LEADI,NUMB;
LEASI,MARK;
DISPSTR1
CALLCR
disperror
MOVAX,0
MOVDX,0
MOVBX,0
MOVCX,0
STA1:
CALLCR
INPUT:
MOVAH,01;
INT21H;
CMPAL,'
N'
JEJ_SHU
='
JEPD
CMPAL,28H;
JBINPUT;
CMPAL,39H;
JAINPUT;
CMPAL,2FH
JBEJUD
INCWORDPTRSIGN1
SUBAL,30HMOVAH,0;
XCHGAX,[DI];
MOVBX,10;
MULBX;
ADD[DI],AX;
JMPINPUT;
PD:
CMPWORDPTRSIGN2,0JEJUD;
JMPBC;
JUD:
CMPWORDPTRSIGN1,0
JNEFUH;
-'
JNEFUH1
MOV[DI],DX
FUH:
ADDDI,2;
MOVWORDPTRSIGN1,0;
FUH1:
CALLADVANCE
CMPCH,5
JNEPY
INCWORDPTRSIGN2
MOVWORDPTRSIGN3,1;
PY:
CMPCH,1
JNEAGAIN;
DECWORDPTRSIGN2
在保存输入的数值以后,继续保存输入的运算符并且给运算符赋权值,进而判断各个运算符的优先级。
将asc码转换成16进制数并判断数值指针。
4.3表达式的四则运算
JNENEXT1
SUBDI,2
XCHGBX,[DI]
SUBDI,2
XCHGAX,[DI]
IMULBX
MOV[DI],AX
ADDDI,2
JMPFINISH
NEXT1:
C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 表达式求值程序设计 说明书 表达式 求值 程序设计