表达式求值程序设计说明书Word格式文档下载.docx

上传人:b****1 文档编号:15335420 上传时间:2022-10-29 格式:DOCX 页数:24 大小:59.63KB
下载 相关 举报
表达式求值程序设计说明书Word格式文档下载.docx_第1页
第1页 / 共24页
表达式求值程序设计说明书Word格式文档下载.docx_第2页
第2页 / 共24页
表达式求值程序设计说明书Word格式文档下载.docx_第3页
第3页 / 共24页
表达式求值程序设计说明书Word格式文档下载.docx_第4页
第4页 / 共24页
表达式求值程序设计说明书Word格式文档下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

表达式求值程序设计说明书Word格式文档下载.docx

《表达式求值程序设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《表达式求值程序设计说明书Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。

表达式求值程序设计说明书Word格式文档下载.docx

充分地分析和理解问题本身,弄清要求做什么。

在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。

最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

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