|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C (清除)、A(全清除) 操作。
基本要求:程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’ 符号后,窗口显示出结果。(不用考虑运算符的优先级)
这个怎么写呀,求求 了,基本要求这一块我不会,还有清除和全清除这两个操作。
- #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("除数不能为零!");
- else result /= 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;
- }
复制代码
|
|