好文档 - 专业文书写作范文服务资料分享网站

C++ 计算器 课程设计模板资料

天下 分享 时间: 加入收藏 我要投稿 点赞

C++面向对象程序设计

2.定义判断函数 bool judge()

{//判断是不是加减乘除与浮点数}

3.定义对栈函数

void tozhan(stack&,stack&) {//加减乘除四则运算及浮点数算法} 4.定义运算函数 void mem()

{//初始界面显示;数字类字符与数字转换压入数字栈;考虑

优先级调整运算顺序;括号及输出处理} 5定义小数运算函数 float fraction() {//处理小数}

3.3 输入输出的设计

①、界面设计

程序运行后会出现一个简捷的窗口,并有相应的操作提示语,便于用户操作。 ②、功能设计

数据输入完成后,软件运行时自动调用不同的函数模块实现不同的运算,结束时将输入算式和结果以等式的形式在界面输出,输出后可按任意键退出。

5

C++面向对象程序设计

第4章 软件实现

4.1软件源代码

#include #include using namespace std;

void first() //定义界面函数 {

cout<<\---\

cout<<\ 欢迎使用计算器 \

cout<<\---\

cout<<\【该计算器具备整型数据、浮点型数据的算术(加、减、乘、除)运算 】\

cout<<\【功能。依次输入第一个运算数、运算符(+,-,*,/),第二个运算数,】\

cout<<\【然后输出结果。实现单运算符表达式计算的功能。输入的操作数可以包】\

6

C++面向对象程序设计

cout<<\【含整数或浮点数。如果遇到错误的表达式,应输出错误提示信息。表达】\

cout<<\【式可以有括号,并且+-*/分优先级的 】\ cout<

void mem(); bool judge(char,char);

void tozhan(stack&,stack&); float fraction(float,float); void main() { mem(); }

void mem() {

first();

int used,pr; float t; char c;

stack num;

7

C++面向对象程序设计

stack oper; t=0;pr=0;used=0;

cout<<\请输入待求表达式:\ while(cin>>c, !cin.eof()) {

if (isdigit(c)) { used=1; t=t*10+(c-'0'); continue;

} //将输入的数字类字符转换成数字; if (c=='+'||c=='-'||c=='*'||c=='/'||c=='.') { if(used) {

num.push(t); t=0; used=0;

} //将转化好的数字压入数字栈;

if (oper.empty()||oper.top()=='(') {oper.push(c);continue;} //向操作符栈里压入第一个操作符;解决括号问题;

8

C++面向对象程序设计

while(!judge(c,oper.top())) {

tozhan(num,oper);

if (oper.empty()||oper.top()=='(') break;

} //根据运算符号优先级,调整运算顺序,并处理优先运算部分; oper.push(c); continue; } if (c=='(') {

pr++;oper.push(c);continue; //括号入栈,作为括号内运算的标志; } if (c==')') {

pr--; //括号结束,整理括号内的运算结果; if (used) {num.push(t);t=0;used=0;} while(!oper.empty()) {

if (oper.top()=='(') break; tozhan(num,oper);

9

C++ 计算器 课程设计模板资料

C++面向对象程序设计2.定义判断函数booljudge(){//判断是不是加减乘除与浮点数}3.定义对栈函数voidtozhan(stack&,stack&){//加减乘除四则运算及浮点数算法}4.定义运算函数voidmem()
推荐度:
点击下载文档文档为doc格式
38rs92wglq4vbt01gdv99bpag891bi0044f
领取福利

微信扫码领取福利

微信扫码分享