C语言
设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C (清除)、A(全清除) 操作。基本要求:程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’ 符号后,窗口显示出结果。(不用考虑运算符的优先级)
这个怎么写呀,求求 了,基本要求这一块我不会,还有清除和全清除这两个操作。
你要的是那种可以计算一长串表达式的计算器吗
比如 3+5*7-9/2+0.5*7 这样的式子一次性输入进去?
还是说一次输入2个数字和1个符号
额外减小 发表于 2022-12-19 09:05
你要的是那种可以计算一长串表达式的计算器吗
比如 3+5*7-9/2+0.5*7 这样的式子一次性输入进去?
还是说 ...
对,可以计算一长串表达式的计算器 Sirenarya 发表于 2022-12-19 09:08
对,可以计算一长串表达式的计算器
那我之前尝试做过这样一个计算器,但是失败了{:10_277:}
我当时是想搞有优先级的计算器,设计思路是对表达式本身进行化简,但因为我设计的太过复杂所以没成功
请问你说的不考虑运算符优先级就是说从头两个数字开始算吗,如果是,那我也试试看 窗…窗口?{:10_257:} GUI吗 本帖最后由 额外减小 于 2022-12-19 09:28 编辑
应该就是程序运行的黑框框的字符界面罢 额外减小 发表于 2022-12-19 09:19
那我之前尝试做过这样一个计算器,但是失败了
我当时是想搞有优先级的计算器,设计思路是对 ...
是的,要求没有那么复杂 额外减小 发表于 2022-12-19 09:26
应该就是程序运行的黑框框的字符界面罢
是的是的 点击标题查看文章: c++实现带界面简单计算器
不过这里只有#号结尾的式子,你可以改改代码
我测试了,可以运行的
如果满意,别忘了点击右下角设置最佳答案
不满意可以跟帖发问哦~ 高山 发表于 2022-12-20 08:20
点击标题查看文章: c++实现带界面简单计算器
不过这里只有#号结尾的式子,你可以改改代码
我测试了,可 ...
现在我的问题是,计数器中我不知道怎么弄那个清除,用system(“cls”)没得出结果就清屏了{:10_254:} 高山 发表于 2022-12-20 08:20
点击标题查看文章: c++实现带界面简单计算器
不过这里只有#号结尾的式子,你可以改改代码
我测试了,可 ...
c++不会{:10_266:} #include <stdio.h>
#include <stdlib.h>
int num;
char fuhao;
void getnum_fuhao() {
num = 0;
char temp;
while(true) {
temp = getchar();
if('0' <= temp && temp <= '9') {
num *= 10;
num += (temp - '0');
}
else if(temp == ' ' || temp == '\n') continue;
else break;
}
fuhao = temp;
}
double input;
void getinput_fuhao() {
getnum_fuhao();
if(fuhao != '.') input = num;
else {
int num_before_point = num;
getnum_fuhao();
input = num;
while(input >= 1) {
input /= 10;
}
input += num_before_point;
}
//printf("input:%lf\n", input);
}
int main()
{
double result;
char op;
while(true) {
while(true) {
getinput_fuhao();
//printf("result:%lf\n", result);
//printf("op:%c\n", op);
switch(op) {
case '+': result += input; break;
case '-': result -= input; break;
case '*': result *= input; break;
case '/':
if(input == 0) printf("除数不能为零!");
elseresult /= input;
}
if(fuhao == '=') {
printf("%lf\n", result);
break;
}
if(fuhao == 'a' || fuhao == 'A') {
result = 0;
op = '+';
break;
}
if(fuhao == 'c' || fuhao == 'C') {
system("cls");
result = 0;
op = '+';
break;
}
op = fuhao;
}
}
return 0;
} tommyyu 发表于 2022-12-21 17:09
太感谢了!!!!
页:
[1]