基于C++实现的多功能计算器

目录
1 问题描述 5
2 需求分析 5
2.1 数据需求 5
2.2 功能需求 5
2.3 非功能需求 5
3 概要设计 5
3.1抽象数据类型 5
3.2 总体设计 5
3.3 功能模块设计 5
3.4 用户界面设计 5
4 详细设计及系统实现 5
4.1 存储结构 5
4.2 核心算法 5
4.3 各功能实现 5
5 系统调试分析 5
6 课程设计总结 5
参考文献 5
附录:源码以及其它相关材料 5
2 需求分析
本演示程序是用Visual Studio软件中的MFC应用在C++环境下编写,完成计算器的各项功能。
2.1 数据需求
1、 输入的形式以及输入值的范围:通过在MFC 设计的计算器界面中可通过点击按钮输操作数0-9、(双目)运算符+、-、*、/、,(单目)运算符ln、sin、cos、tan。由以上输入的操作数和运算符组成输入数据表达式。在一元多项式计算器中通过键盘依次输入系数、变量以及指数组成输入数据的一元多项表达式,在一元多项式的计算两个一元多项式的和、差、积并分别正序、逆序输出的功能的时候需要输入两个一元多项式的式子,例如2x3+1x0-3x7。
2、 输出的形式:在多功能计算器中输出输入表达式的值,输出的形式为浮点型数据,如果输入表达式正确,最后会返回这个数学表达式的结果,如果输入的数学表达式不正确,则会输出表达式不正确的提示性文字。在求两个一元多项式的和、差、积的操作的时候,程序正确运行时最后会输出两个一元多项式的和、差、积分别按照指数递增和指数递减的对应字符串,而在一元多项式计算器中的输出形式依然是一元多项式或者常数。
3、 功能需求(程序所能达到的功能):计算表达式的值以及一元多项式的运算、完成按钮和输入数据的联系以及对话框之间的联系、保存输入表达式的历史记录、清空输入对话框数据、撤回、清空所有数据。

本代码运用了栈的顺序存储结构以及单链表的链式存储结构
栈的顺序存储结构,定义运算符栈以及操作数栈,顺序栈便于接下来括号匹配以及表达式计算
 class YusuanfuStack
{
public:
	char Stack[100];
	int top;
	int MAXsize;
	YusuanfuStack()//相当于是一个自定义函数,一旦开始定义的时候变会自动调用这个对应的程序//
	{
		this->top = -1;
		this->MAXsize = MAX;
	}
class CaozuoshuStack
{
public:
	double Stack[100];
	int top;
	int MAXsize;
	CaozuoshuStack()
	{
		this->top = -1;
		this->MAXsize = MAX;
	}
单链表的链式存储结构,定义链表节点,链式存储便于一元多项式指数比较以及相应系数相加。
typedef struct Exp
	{
		float xishu;
		int zhishu;
	}Exp;
	typedef struct Node
	{
		Exp data;
		struct Node* next;
	}Node;
	typedef struct Node* Linklist;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值