1:计算器的小数点设置了不可重复,但是在实际使用时小数点只能用一次了,比如1.2+3.4中1.2可以打出来,但是3.4的小数点打不出来
2:退格符号在遇到小于0的情况下会先无脑消去负号,比如我输入-56本来点退格想要的是先退6,再退5,最后-,但是现在是先-,再6,再5
小数点代码是:
if bl_xsd=false then
if ii_flag=0 then
sle_1.text=''
ii_flag=1
end if
bl_xsd=true
else
messagebox('错误','小数点重复!')
return
end if
sle_1.text=sle_1.text+this.text
退格键代码是:
if len(sle_1.text)>0 then
sle_1.text=left(sle_1.text,len(sle_1.text) - 1)
else
return
end if
用PB编写一个计算器,遇到2个问题,求高手解答
答案:2 悬赏:70 手机版
解决时间 2021-04-06 13:08
- 提问者网友:蓝琪梦莎
- 2021-04-05 21:56
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-04-05 22:52
#include#include#includeusingnamespacestd;constdoublepi=3.14159265;constdoublee=2.718281828459;constintSIZE=1000;typedefstructnode//为了处理符号而建立的链表(如:1+(-2)){chardata;node*next;}node;typedefstructstack_num//存储数的栈{double*top;double*base;}stack_num;typedefstructstack_char//存储运算符号的栈{char*top;char*base;}stack_char;stack_numS_num;//定义stack_charS_char;//定义charfu[18]={'\n',')','+','-','*','/','%','^','Q','L','C','S','T','c','s','t','('};intcompare[1000];//表现出各运算符号的优先级doubleshu[1000];//存储"数"的数组doubledai_result;//运算的结果,是为了处理M运算(简介函数里有M的定义)intbiao=0;//和dia_result一样,为了处理M运算charline[SIZE];//输入的所要计算的表达式voidinit()//初始化{compare[fu[0]]=-2;//用数字的大小表现出符号的优先级compare[fu[1]]=-1;compare[fu[2]]=2;compare[fu[3]]=2;compare[fu[4]]=4;compare[fu[5]]=4;compare[fu[6]]=4;compare[fu[7]]=5;for(inti=8;i=3)return0;elsereturn1;}voidoutput(doubleresult)//打出结果{printf("所得结果是:");cout>cc){if(cc=='M'){system("cls");introduce();printf("您上次所得结果为:");coutnext=NULL;inti;for(i=0;line[i]!='\0';i++)//建立链表{p=newnode;p->data=line[i];p->next=head->next;head->next=p;head=p;}//deletep;q=(node*)malloc(sizeof(node));head=root;if(root->next->data=='+'||root->next->data=='-')//处理第一个字符{p=newnode;p->data='0';p->next=head->next;head->next=p;}if(root->next!=NULL){for(q=root->next;q;q=q->next){if(q->data=='('&&(q->next->data=='-'||q->next->data=='+')){p=newnode;p->data='0';p->next=q->next;q->next=p;}}}//deleteq;p1=newnode;intqi=-1;for(p1=root->next;p1;p1=p1->next){line[++qi]=p1->data;}line[++qi]='\0';}voidinput()//输入{cin>>line;if(biao==0)tackle_fuhao();//处理负号check();//检查表达式是否合法}voidintroduce()//对计算器的符号功能的简要介绍{cout>start){if(start!="on"){cout<<"您所输入的字符无效,请按照介绍的继续输入:"<
全部回答
- 1楼网友:执傲
- 2021-04-05 23:35
可以私聊我~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯