模拟计算器程序
1. 问题描述
设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。
2. 基本要求
程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’ 符号后,窗口显示出结果。
3. 测试数据
程序输入不少于5种不同的表达式进行测试。
4. 实现提示
可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。
5. 选做内容
如果用户输入的表达式不合法,可以判别出来并给出相应的错误提示。
有错误。
1、实现思路
本设计只要求程序支持算术运算+、-、*、/、=、以及C(清除)、Q(关闭)操作。对此对程序作如下分析:
1、 要实现计算器的+、-、*、/、=,首先进行变量定义,要有scanf函数对数字进行输入,并对输入的符号进行判断,然后执行相应的计算。
2、 对字符的判断我用的是if语句,如果所输入的字符对应于+、-、*、/中的一个然后我就对其进行标记。
3、 然后用多分支选择结构switch语句对进行选择计算,分别进行加减乘除。最后用printf函数输出结果(result)
4、 接着编写清除程序,要清屏,开头要包括windows和stdlib函数。当执行完输出语句后要对接下来的输入的字符进行判断,如果输入为C则执行清屏语句system("CLS"),然后用goto语句进行循环使程序跳到loop1即开始新的计算,如果输入为Q,则程序跳到loop2,使程序关闭。
5、 程序的N—S流程图如下
2、实现过程
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
void main() /* 主函数*/
{int act,x; /*定义整型变量*/
float num1=0,num2=0,result; /*定义浮点型变量*/
char c; /*定义字符型变量*/
loop1:scanf("%f%c%f",&num1,&c,&num2); /*输入*/
if(c=='+') /*判断*/
{act=1;
} /*做计算加法标志值*/
if(c=='-')
{act=2;
} /*做计算减法标志值*/
if(c=='*')
{act=3;
} /*做计算乘法标志值*/
if(c=='/')
{act=4;} /*做计算除法标志值*/
switch(act) /*根据运算符号运算*/
{case 1:result=num1+num2;break; /*做加法*/
case 2:result=num1-num2;break; /*做减法*/
case 3:result=num1*num2;break; /*做乘法*/
case 4:result=num1/num2;break; /*做除法*/
}
printf("%.2f\n",result); /*输出结果*/
x=getchar(); /*输入一个字符*/
if(x=='c') /*判断字符*/
system("CLS"); /*清屏*/
if(x=='q')
goto loop2; /*跳到loop2(结尾)*/
goto loop1; /*跳到loop1(循环)*/
loop2:; /* 标识符*/
}
求帮遍一个C++程序。
1、 要实现计算器的+、-、*、\/、=,首先进行变量定义,要有scanf函数对数字进行输入,并对输入的符号进行判断,然后执行相应的计算。2、 对字符的判断我用的是if语句,如果所输入的字符对应于+、-、*、\/中的一个然后我就对其进行标记。3、 然后用多分支选择结构switch语句对进行选择计算,分别进行...
编写一个完整的c++程序,实现:求两个整数的最大值
include <iostream> using namespace std;int main(){ int a = 10;int b = 100;int c = a - b;\/\/ int sr[] = { a, b };int i = unsigned(c) >> (sizeof(int)* 8 - 1);\/\/推断c的最高位是0或者1,0则c是正数,1则c是负数。由此能够得出大小。\/\/unsigned类型的数字,往...
求达人帮写一个c++程序读取一行文本,将所有4字母单词替换成单词“love...
||第一个C++程序如下:include<iostream> include<string> using namespace std;void main()string str;printf("Input a line:");cin>>str;for(string::iterator iter = str.begin(); iter != str.end(); ++iter){ if( ((*iter >= 'a' ) && (*iter <= 'z')) ||du((*iter >...
用c++编写一个程序,要求创建一个类,输入若干个学生的数据,包括学号,姓名...
void print(Student s[], int);}stu[MAX];void Student::input(Student s[], int n){for (int i = 0; i < n; i++){cout << "输入第" << i + 1 << "个学生的学号:";4、cin >> s[i].num;cout << "输入第" << i + 1 << "个学生的姓名:";cin >> s[i].nam...
求以下c++代码(大一新生,课没上,实验要做)
if (c >= 'A' && c <= 'Z') { printf("%c\\n", c + 32);} else if (c >= 'a' && c <= 'z') { printf("%c\\n", c - 32);} else { printf("%c\\n", c);} return 0;} 以上所有程序都可以编译运行,并且符合题目要求。
编一个c++程序,输入十个数,输出最大值跟最小值.
int main(){ int a[10],n,max,min,maxxiabiao,minxiabiao;for(n=0;n<=9;n++){ scanf("%d",&a[n]);} max=min=a[0];maxxiabiao=minxiabiao=0;for(n=0;n<=9;n++){ if(a[n]>max){ max=a[n];maxxiabiao=n;} else if(a[n]<min){ min=a[n];minxiabiao=n;} } p...
C语言(最好C++)编一下这个程序
若女利用Fp链接进以 printf("Pls enter the information of teacher:\\n注意中间一空格间隔,性别只可为大写的F或M,Ex:张三 187 M\\n");for (int i = 0; i < n; i++){ cin >> teacher->name >> teacher->weight >> teacher->sex;if (teacher->sex == 'M')...
用c++编写一个程序
楼主稍等片刻,我正在帮你编,快好了,写好后我会将代码献上。以下是代码:include<iostream>#include<string>using namespace std;\/*编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为...
怎么用c++编写一个输入输出整数的程序?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...
C++如何编程简单的程序
1、首先我们打开Visual Studio软件,打开新建项目界面,如下图所示 2、接下来在应用程序设置界面中选择控制台程序,然后选择空项目选项,如下图所示 3、然后我们在C++项目的源文件文件夹下面新建C++文件,如下图所示 4、最后我们在C++文件中简单的输出一些内容即可,如下图所示 工具\/材料 Visual Studio ...