表达式求值程序设计 说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言实训课程设计任务书
题目:表达式求值程序班级:计算机科学与技术一班
学生姓名:赵旭尧学号:14730141
题目类型:软件工程(R)指导教师:刘树群
一.题目简介
该设计要求学生使用汇编语言,设计并开发出针对四则运算表达式进行求值的命令行或窗口程序。
通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。
二.设计任务
1、查阅文献资料,一般在5篇以上;
2、通过键盘输入表达式,进行针对整数的“加减乘除”四则运算表达式进行求值,有良好的界面;
3、完成软件结构设计和算法设计;
4、完成系统的软件开发和测试工作;
5、撰写设计说明书;
6、做好答辩工作。
三.主要内容、功能及技术指标
1、实现功能及指标:①使用Win32的窗口程序模式,实现表达式求值程序及测试界面程序的设计与开发;②支持整数的四则运算、位运算和小括号等;
③使用文本框对表达式进行交互式编辑和输出。
2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。
3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。
4、完成课程设计报告
①需求和规格说明:设计题目和问题描述:题目要解决的问题是什么;
②设计思路:主要算法思想,程序功能图,函数之间的调用关系图;
设计表示:每个函数或过程的功能,列出每个过程或函数所调用的过程或函数,并画出各函数的流程图;
详细设计:主要算法的伪代码;
③调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等;
④程序实现注释;
⑤附录:源程序清单和结果。如果题目规定了测试数据,则结果要求包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。
四.提交的成果
1. 设计说明书一份,内容包括:
1) 中文摘要100字;关键词3-5个;
2) 前言;
3) 系统分析(包含需要的系统流程图);
4) 系统总体设计(包含总体软件结构图、总体数据结构);
5) 详细设计;
6) 系统测试(包含测试方案、测试用例、测试结果及软件可靠性分
析);
7) 软件使用说明书(核心界面说明);
8) 设计总结、参考文献、致谢等。
2. 刻制光盘一张。
五.主要参考文献
1 王爽.汇编语言(第二版).清华大学出版社, 2008。
2 沈美明,温冬婵.IBM-PC汇编语言程序设计(第二版).清华大学出版社, 2001。
3[美]Kip R.Irvine著,温玉洁,等译.Intel汇编语言程序设计(第五版).电子工业出版社, 2007。
4 钱晓捷.汇编语言程序设计(第二版). 电子工业出版社, 2003。
5 罗云彬.Windows环境下32位汇编语言程序设计(第二版).电子工业出版社,
2006。
6Windows API函数参考手册.人民邮电出版社, 2002。
六.各阶段时间安排(共1周):
摘要
随着时代的进步,人们不再使用古代的计算器。取而代之的是现今利用计算机编程技术的产品——计算器,这节省了人们大量的计算时间。通过电流在晶体管等上面的存储信息,将人们想要计算的数字,通过重复的加减乘除运算从而计算实现出来。
本程序是利用汇编语言的编译环境masmplus来实现的。程序通过将读入的中缀表达式转换为后缀表达式,然后读取后缀表达式,输出结果。
关键字:汇编语言;Masmplus;中缀表达式;后缀表达式
目录
1 概述 (1)
1.1课程了解 (1)
1.2 课程设计目的 (1)
1.3 课程设计内容 (1)
1.4系统功能模块的划分 (1)
2 系统需求分析 (3)
2.1 系统目标 (3)
2.2 主体功能 (3)
2.3 开发环境 (3)
2.4系统功能模块的分析 (3)
3系统分析 (4)
3.1系统总体分析 (4)
3.2优先级的判断 (5)
3.3表达式的四则运算 (5)
4系统详细设计 (6)
4.1在汇编环境下输入并保存操作数 (6)
4.2保存运算符和比较运算符的优先级 (6)
4.3表达式的四则运算 (9)
4.4算法的清零和回车换行 (9)
4.5输出计算结果 (11)
4.6括号和负号的细节问题 (13)
5系统测试 (15)
5.1加法运算 (15)
5.2减法运算 (15)
5.3乘法运算 (15)
5.4除法运算 (16)
5.5混合运算 (16)
6软件使用说明 (17)
设计总结 (18)
参考文献 (19)
致谢 (20)
附录 (21)
1 概述
1.1课程了解
表达式计算是实现程序设计语言的基本问题之一。设计一个程序,演示通
过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实
现对算术表达式进行四则混合运算。
在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的
运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严
格地从左到右进行。在读入表达式的字符序列的同时完成运算符和运算数的识
别处理,然后进行运算数的数值转换在进行四则运算。在运算之后输出正确运
算结果。
1.2 课程设计目的
1.要求学生达到熟练掌握汇编语言的基本知识和技能。 2.了解并掌握汇编语言的设计方法,具备初步的独立分析和设计能力。 3.提高程序设计和
调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用
基本调试方法,迅速找出程序代码中的错误并且修改。 4.培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。5.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
1.3 课程设计内容
程序功能:对实数内的加减乘除乘方运算能正确的运算出结果,并能正确
对错误输入和无定义的运算报错,能连续测试多组数据。设计一个表达式求值
的程序。该程序必须可以接受包含(,),+,-,*,/,%,和^(求幂运算符,a^b=ab)的中缀表达式,并求出结果。如果表达式正确,则输出表达式
的结果;如果表达式非法,则输出错误信息。
算法运行:将输入的中缀表达式改为后缀表达式,并进行运算。
算法输出:输出后缀表达式和表达式运算结果。
1.4系统功能模块的划分
“表达式求值”包括四个模块:保存输入的操作数和运算符;比较各个元
素的优先级高低;对算术表达式进行四则运算;输出所得的结果。