计算机软件设计 毕业论文,计算器软件设计(毕业论文).docx

PAGE \* MERGEFORMAT1

1 选题背景

计算机软件技术基础课程设计的目的是,通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于解决实际问题中,它是理论与实践相结合的重要过程。设计要求学会如何对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。学习此课程,要求学生对软件技术的各个组成部分的基础知识、发展趋势有全面、系统的了解;掌握基本数据结构,达到能熟练运用解决实际问题的程度;掌握操作系统基本原理和类型,了解系统各种管理功能。通过自学了解软件工程的基本概念,软件设计开发的过程和相关技术。

课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《计算机软件技术基础》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。

计算机软件技术基础课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

在这次的课程设计中我选择的题目是具有表达式求值功能的计算器软件设计。表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。深入了解栈的特性,以便在解决实际问题中灵活运用它们,同时加深对这种结构的理解和认识。

2 任务简述

设计、开发一种计算器软件系统。通过此系统可以实现算术计算器基本功能,以及+-*/()等基本运算的表达式求值功能,并提供进行这些操作的界面(字符界面、图形界面均可)。系统应该至少提供以下模块:

主函数main()的功能是:根据菜单的选项调用各函数,并完成相应的功能。

Menu()的功能是:显示英文提示菜单。

Quit()的功能是:退出菜单。

CreateExpression ()的功能是:创建中缀表达式。

TransmitExpression ()的功能是:转换表达式,以用户创建的中缀表达式为入口参数,输出结果为后缀表达式。

EvaluateExpression ()的功能是:以后缀表达式作为入口参数,完成表达式的计算结果。

CreateStack()的功能是:创建一个堆栈,为表达式的转换、求值算法提供技术支撑。

Pop()的功能是:表达式转换、求值过程中关于堆栈的弹出信息操作。

9)Push()的功能是:表达式转换、求值过程中关于堆栈的入栈信息操作。

3 问题分析

要实现具有表达式求值功能的计算器软件设计,就要对数据结构中的栈有深刻的理解。以字符列的形式从终端输入语法正确的、不含变量的整数表达式。利用已知的算符优先关系,实现对算术四则混合运算表达式的求值,并仿照教科书的例子在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。

一般来说,计算机解决一个具体问题时,需要经过几个步骤:首先要从具体问题抽象出一个适当的数学模型,然后设计一个解决此数学模型的算法,最后编出程序,进行测试,调试直至得到想要的答案。对于算术表达式这个程序,主要利用栈,把运算的先后步骤进行分析并实现简单的运算!为实现算符优先算法,可以使用两个栈,一个用以寄存运算符,另一个用以寄存操作数和运算结果。

演示程序是以用户于计算机的对话方式执行,这需要一个模块来完成使用者与计算机语言的转化。

程序执行时的命令:本程序为了使用具体,采用菜单式的方式来完成程序的演示,几乎不用输入什么特殊的命令,只需按提示输入表达式即可。(要注意输入时格式,否者可能会引起一些错误)

这次课程设计中我们主要应该解决如下问题:

在输入中缀表达式的时候系统怎样将中缀表达式转换为后缀表达式;

计算机如何判断符号的优先级别;

系统如何判断输入符号的优先级别进行相应的计算;

左括号的右括号的匹配问题;

应该解决如何存储;

如何利用后缀表达式求取最后的结果;

如何输入中缀表达式输出后缀表达式;

如何在main函数中调用等问题;

除数为0时程序如何报错;

界面如何能够设计的美观一点。

4 设计原理

4.1栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值