标志为kco的什么牌子计算器好用什么样子

当前位置: >
计算器按钮图标
计算器按钮图标图片[矢量图,EPS格式]
210 次浏览 / 4 共享分
196 次浏览 / 4 共享分
195 次浏览 / 4 共享分
190 次浏览 / 4 共享分
187 次浏览 / 4 共享分C语言程序设计 简单计算器(急急急!!!!)_百度知道
C语言程序设计 简单计算器(急急急!!!!)
在功能上尽量模拟windows操作系统中的计算器系统界面不做强制要求
要在VC上运行的
按默认排序
其他7条回答
#include &dos.h&
/*DOS接口函数*/#include &math.h&
/*数学函数的定义*/#include &conio.h&
/*屏幕操作函数*/#include &stdio.h&
/*I/O函数*/#include &stdlib.h&
/*库函数*/#include &stdarg.h&
/*变量长度参数表*/#include &graphics.h&
/*图形函数*/#include &string.h&
/*字符串函数*/#include &ctype.h&
/*字符操作函数*/#define UP 0x48
/*光标上移键*/#define DOWN 0x50
/*光标下移键*/#define LEFT 0x4b
/*光标左移键*/#define RIGHT 0x4d
/*光标右移键*/#define ENTER 0x0d
/*回车键*/void *
/*全局变量,保存光标图象*/struct /*使用调色板信息*/int
GraphD /* 图形设备驱动*/int
GraphM /* 图形模式值*/int
/* 错误代码*/int
/* 可用颜色的最大数值*/int
MaxX, MaxY; /* 屏幕的最大分辨率*/double
AspectR /* 屏幕的像素比*/void drawboder(void); /*画边框函数*/void initialize(void);
/*初始化函数*/void computer(void);
/*计算器计算函数*/void changetextstyle(int font, int direction, int charsize);
/*改变文本样式函数*/void mwindow(char *header);
/*窗口函数*/int specialkey(void) ;
/*获取特殊键函数*/int arrow();
/*设置箭头光标函数*//*主函数*/int main(){
initialize();/* 设置系统进入图形模式 */
computer(); /*运行计算器 */
closegraph();/*系统关闭图形模式返回文本模式*/
return(0);
/*结束程序*/}/* 设置系统进入图形模式 */void initialize(void){
int xasp, /* 用于读x和y方向纵横比*/
GraphDriver = DETECT; /* 自动检测显示器*/
initgraph( &GraphDriver, &GraphMode, && );/*初始化图形系统*/
ErrorCode = graphresult();
/*读初始化结果*/
if( ErrorCode != grOk )
/*如果初始化时出现错误*/
printf(&Graphics System Error: %s\n&,
grapherrormsg( ErrorCode ) ); /*显示错误代码*/
exit( 1 );
getpalette( &palette );
/* 读面板信息*/
MaxColors = getmaxcolor() + 1; /* 读取颜色的最大值*/
MaxX = getmaxx();
/* 读屏幕尺寸 */
MaxY = getmaxy();
/* 读屏幕尺寸 */
getaspectratio( &xasp, &yasp ); /* 拷贝纵横比到变量中*/
AspectRatio = (double)xasp/(double)/* 计算纵横比值*/}/*计算器函数*/void computer(void){
/*定义视口类型变量*/
int color, height,
int x, y,x0,y0, i, j,v,m,n,act,flag=1;
float num1=0,num2=0,
/*操作数和计算结果变量*/
char cnum[5],str2[20]={&&},c,temp[20]={&&};
char str1[]=&9*/Qc=^%&;/* 定义字符串在按钮图形上显示的符号 */
mwindow( &Calculator& );
/* 显示主窗口 */
color = 7;
/*设置灰颜色值*/
getviewsettings( &vp );
/* 读取当前窗口的大小*/
width=(vp.right+1)/10;
/* 设置按钮宽度
height=(vp.bottom-10)/10 ;
/*设置按钮高度
x = width /2;
/*设置x的坐标值*/
y = height/2; /*设置y的坐标值*/
setfillstyle(SOLID_FILL, color+3);
bar( x+width*2, y, x+7*width, y+height );
/*画一个二维矩形条显示运算数和结果*/
setcolor( color+3 );
/*设置淡绿颜色边框线*/
rectangle( x+width*2, y, x+7*width, y+height );
/*画一个矩形边框线*/
setcolor(RED);
/*设置颜色为红色*/
outtextxy(x+3*width,y+height/2,&0.&); /*输出字符串&0.&*/
x =2*width-width/2;
/*设置x的坐标值*/
y =2*height+height/2;
/*设置y的坐标值*/
for( j=0 ; j&4 ; ++j ) /*画按钮*/
for( i=0 ; i&5 ; ++i )
setfillstyle(SOLID_FILL, color);
setcolor(RED);
bar( x, y, x+width, y+height ); /*画一个矩形条*/
rectangle( x, y, x+width, y+height );
sprintf(str2,&%c&,str1[j*5+i]);
/*将字符保存到str2中*/
outtextxy( x+(width/2), y+height/2, str2);
x =x+width+ (width / 2) ; /*移动列坐标*/
y +=(height/2)*3; /* 移动行坐标*/
x =2*width-width/2;
/*复位列坐标*/
gotoxy(x,y); /*移动光标到x,y位置*/
/*显示光标*/
putimage(x,y,rar,XOR_PUT);
strcpy(str2,&&);
/*设置str2为空串*/
while((v=specialkey())!=45)
/*当压下Alt+x键结束程序,否则执行下面的循环*/
while((v=specialkey())!=ENTER)
/*当压下键不是回车时*/
putimage(x,y,rar,XOR_PUT); /*显示光标图象*/
if(v==RIGHT)
/*右移箭头时新位置计算*/
if(x&=x0+6*width)
/*如果右移,移到尾,则移动到最左边字符位置*/
x=x+width+width/2;
} /*否则,右移到下一个字符位置*/
if(v==LEFT) /*左移箭头时新位置计算*/
} /*如果移到头,再左移,则移动到最右边字符位置*/
x=x-width-width/2;
} /*否则,左移到前一个字符位置*/
if(v==UP) /*上移箭头时新位置计算*/
y=y0+4*height+height/2;
} /*如果移到头,再上移,则移动到最下边字符位置*/
y=y-height-height/2;
} /*否则,移到上边一个字符位置*/
if(v==DOWN) /*下移箭头时新位置计算*/
if(y&=7*height)
} /*如果移到尾,再下移,则移动到最上边字符位置*/
y=y+height+height/2;
} /*否则,移到下边一个字符位置*/
putimage(x,y,rar,XOR_PUT);
/*在新的位置显示光标箭头*/
c=str1[n*5+m];
/*将字符保存到变量c中*/
if(isdigit(c)||c=='.')
/*判断是否是数字或小数点*/
if(flag==-1)
/*如果标志为-1,表明为负数*/
strcpy(str2,&-&); /*将负号连接到字符串中*/
} /*将标志值恢复为1*/
sprintf(temp,&%c&,c); /*将字符保存到字符串变量temp中*/
strcat(str2,temp); /*将temp中的字符串连接到str2中*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,str2);
/*显示字符串*/
if(c=='+')
num1=atof(str2);
/*将第一个操作数转换为浮点数*/
strcpy(str2,&&); /*将str2清空*/
/*做计算加法标志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='-')
if(strcmp(str2,&&)==0) /*如果str2为空,说明是负号,而不是减号*/
/*设置负数标志*/
num1=atof(str2);
/*将第二个操作数转换为浮点数*/
strcpy(str2,&&); /*将str2清空*/
act=2; /*做计算减法标志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='*')
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,&&); /*将str2清空*/
act=3; /*做计算乘法标志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='/')
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,&&); /*将str2清空*/
act=4; /*做计算除法标志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='^')
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,&&); /*将str2清空*/
act=5; /*做计算乘方标志值*/
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='%')
num1=atof(str2); /*将第二个操作数转换为浮点数*/
strcpy(str2,&&);
/*将str2清空*/
act=6; /*做计算模运算乘方标志值*/
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*画矩形*/
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='=')
num2=atof(str2); /*将第二个操作数转换为浮点数*/
switch(act)
/*根据运算符号计算*/
case 1:result=num1+num2; /*做加法*/
case 2:result=num1-num2; /*做减法*/
case 3:result=num1*num2; /*做乘法*/
case 4:result=num1/num2; /*做除法*/
case 5:result=pow(num1,num2); /*做x的y次方*/
case 6:result=fmod(num1,num2); /*做模运算*/
setfillstyle(SOLID_FILL,color+3); /*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/
sprintf(temp,&%f&,result); /*将结果保存到temp中*/
outtextxy(5*width,height,temp); /*显示结果*/
if(c=='c')
num1=0; /*将两个操作数复位0,符号标志为1*/
strcpy(str2,&&); /*将str2清空*/
setfillstyle(SOLID_FILL,color+3);
/*设置用淡绿色实体填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆盖结果区*/
outtextxy(5*width,height,&0.&); /*显示字符串*/
if(c=='Q')exit(0);
/*如果选择了q回车,结束计算程序*/
putimage(x,y,rar,XOR_PUT); /*在退出之前消去光标箭头*/
/*返回*/}/*窗口函数*/void mwindow( char *header ){
cleardevice();
/* 清除图形屏幕 */
setcolor( MaxColors - 1 );
/* 设置当前颜色为白色*/
setviewport( 20, 20, MaxX/2, MaxY/2, 1 ); /* 设置视口大小 */
height = textheight( &H& );
/* 读取基本文本大小
settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*设置文本样式*/
settextjustify( CENTER_TEXT, TOP_TEXT );/*设置字符排列方式*/
outtextxy( MaxX/4, 2, header );
/*输出标题*/
setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 );
/*设置视口大小*/
drawboder(); /*画边框*/}void drawboder(void)
/*画边框*/{
/*定义视口类型变量*/
setcolor( MaxColors - 1 );
/*设置当前颜色为白色 */
setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*设置画线方式*/
getviewsettings( &vp );/*将当前视口信息装入vp所指的结构中*/
rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*画矩形边框*/}/*设计鼠标图形函数*/int arrow(){
int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*定义多边形坐标*/
setfillstyle(SOLID_FILL,2); /*设置填充模式*/
fillpoly(8,raw);
/*画出一光标箭头*/
size=imagesize(4,4,16,16);
/*测试图象大小*/
rar=malloc(size);
/*分配内存区域*/
getimage(4,4,16,16,rar); /*存放光标箭头图象*/
putimage(4,4,rar,XOR_PUT); /*消去光标箭头图象*/
return 0;}/*按键函数*/int specialkey(void){
while(bioskey(1)==0);
/*等待键盘输入*/
key=bioskey(0);
/*键盘输入*/
key=key&0xff? key&0xff:key&&8;
/*只取特殊键的扫描值,其余为0*/
return(key);
/*返回键值*/}
//最简单的计算器代码 不是乱码 绝对可用#include &windows.h&void main()??&system(&calc&);??&哈哈,缓解一下现场紧张的气氛 实现计算器重难点在于解析符号 包括+-*/()等
要是有加减乘除 可以多个运算 例如:3+(2-5*3*5)=? 谢谢 急用啊import java.awt.*;import javax.swing.*;import java.awt.event.*;public class JiSuanQi implements ActionListener{/*** 程序功能: 计算器* * Bug: 1)小数点:设一个Boolean成员变量,在点击后不可用。。。在&+-/*&中设为可用。*///step1 Define Containerprivate JFrame fra = new JFrame(&计算器&);private Panel panel = new Panel();private float sum,sum1,sum2;private boolean ii=Container con = fra.getContentPane();JMenuBar bar = new JMenuBar();JMenu JMenu1 = new JMenu(&编辑&);JMenu JMenu2 = new JMenu(&查看&);JMenu JMenu3= new JMenu(&帮助&);JMenuItem JMenuitem= new JMenuItem(&帮助111&); JMenuItem JMenuitem1= new JMenuItem(&帮助111&); //step3 Define ComponentTextField text = new TextField();JButton bu1 = new JButton(&1&);JButton bu2 = new JButton(&2&);JButton bu3 = new JButton(&3&);JButton bu4 = new JButton(&4&);JButton bu5 = new JButton(&5&);JButton bu6 = new JButton(&6&);JButton bu7 = new JButton(&7&);JButton bu8 = new JButton(&8&);JButton bu9 = new JButton(&9&);JButton bu0 = new JButton(&0&);JButton bujia = new JButton(&+&);JButton bujian = new JButton(&-&);JButton bucheng = new JButton(&*&);JButton buchu = new JButton(&/&);JButton budian = new JButton(&.&);JButton bufuhao = new JButton(&+/-&);JButton budenghao = new JButton(&=&);JButton buqingling = new JButton(&C&);public void m(){//step2 Define Layoutcon.setLayout(new BorderLayout());panel.setLayout(new GridLayout(5,4,4,4));buqingling.setForeground(Color.RED);//step5 把组件(subassembly)放在Panel中panel.add(bu1);panel.add(bu2);panel.add(bu3);panel.add(bujia);panel.add(bu4);panel.add(bu5);panel.add(bu6);panel.add(bujian);panel.add(bu7);panel.add(bu8);panel.add(bu9);panel.add(bucheng);panel.add(bu0);panel.add(bufuhao);panel.add(budian); panel.add(buchu);panel.add(buqingling);panel.add(budenghao); /*JMenu1.add(&复制&);JMenu1.add(&粘贴&);JMenu2.add(&标准型&);JMenu2.add(&科学型&);JMenu2.addSeparator();JMenu2.add(&数学分组&);//JMenu3.add(&帮助&);*/JMenu1.add(JMenuitem1);bar.add(JMenu1);bar.add(JMenu2);JMenu3.add(JMenuitem);bar.add(JMenu3);fra.setJMenuBar(bar);//把Panel放到Fream中con.add(panel,BorderLayout.CENTER);con.add(text,BorderLayout.NORTH);//对 JJButton 进行事件处理bu1.addActionListener(this);bu2.addActionListener(this);bu3.addActionListener(this);bu4.addActionListener(this);bu5.addActionListener(this);bu6.addActionListener(this);bu7.addActionListener(this);bu8.addActionListener(this);bu9.addActionListener(this);bu0.addActionListener(this);bujia.addActionListener(this);bujian.addActionListener(this);bucheng.addActionListener(this);buchu.addActionListener(this);budian.addActionListener(this);bufuhao.addActionListener(this);budenghao.addActionListener(this);buqingling.addActionListener(this);//show windows size and windowfra.setSize(230,200);fra.setResizable(false);//屏蔽最大化 fra.setVisible(true);//显示Frame//关闭windows窗口fra.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}} );}public void actionPerformed(ActionEvent e){String str=e.getActionCommand();//获取用户点击按扭上的文字是什么。String shuzi=&&;String yunsuan=&+-*/&;if(shuzi.indexOf(str)&=0)//判断返回的数值是否大于0{text.setText(text.getText()+str);//ii=}else if(yunsuan.indexOf(str)&=0){sum1=Float.parseFloat(text.getText());text.setText(&&);zifu=yunsuan.charAt(yunsuan.indexOf(str));ii=}else if(str.equals(&.&) && ii==true){text.setText(text.getText()+str);ii=}else if(str.equals(&=&)){sum2=Float.parseFloat(text.getText());switch(zifu){case '+':sum=sum1+sum2;text.setText(&&+sum); case '-':sum=sum1-sum2;text.setText(&&+sum);case '*':sum=sum1*sum2;text.setText(&&+sum);case '/':sum=sum1/sum2;text.setText(&&+sum);}}else if(str.equals(&C&)){text.setText(&&);sum=0;sum1=0;sum2=0;}}public static void main(String[] args) {// TODO Auto-generated method stubJiSuanQi ji = new JiSuanQi();ji.m();}}
#include&stdio.h& #include&conio.h& #include&math.h& #include&stdlib.h& #define UNKNOWN_CHAR 2 #define DIVISOR_IS_ZERO 3 #define FALSE 0 #define TRUE 1 /*定义结构,主要用于GetString函数,可以不管它*/ typedef struct string { struct string * } /*函数声明*/ /*可以无限接受字符,输入一个字符就给你个空间,返回一个字符串首地址 . */ /*这个函数可以看成普通的scanf()*/ char *GetString(); /*从字符串str第*rank个字符开始分析直到遇到 ')' or ']' or '}' or '\0' . */ /*有错误就把错误代号装在*errorNum中,返回从中计算出的值*/ double GetASResultOf(char * str, int *rank, int *errorNum); /*从字符串str第*rank个字符开始分析直到遇到不符合要求的字符,返回这个单位值.*/ /*如:str=&12+sin(30)+[12+cos(60)]& GetUnitageOf(str,0,errorNum)=12 GetUnitageOf(str,3,errorNum)=0.5 GetUnitageOf(str,11,errorNum)=12.5 */ double GetUnitageOf(char * str, int *rank, int *errorNum); int main() { /*定义变量*/
int rank=0; int errorNum=TRUE; char * /*接收字符*/ printf(&counter v1.0\n&); printf(&Made by PT\n&); printf(&Date \n\n&); printf(&Please input your arithmetic:\n&); str=GetString(); /*调用处理函数,*/ value = GetASResultOf(str, &rank, &errorNum); /*错误处理(没完善)*/ if (errorNum==TRUE) printf(&The result is: %lf\n&,value, rank); else if (errorNum==UNKNOWN_CHAR) printf(&char error!\n&); else if (errorNum==DIVISOR_IS_ZERO) printf(&Divisor could not be 0\n&); else printf(&Other error\n&); getch(); return 0; } /*0==[=========&无限动态字符接受函数*/ char *GetString() { char *CharToString(string * sHead, int arraySize); int arraySize=0; string *s; string *sH s = (string *)malloc(sizeof(string)); sHead = s-&str = getchar(); arraySize++; while((s-&str)!='\n') { arraySize++; s-&next=(string *)malloc(sizeof(string)); s=s-& s-&str=getchar(); } return CharToString(sHead, arraySize); } char *CharToString(string * sHead, int arraySize) { char *strA string *s=sH int i=0; strArray = (char*)malloc(arraySize*sizeof(char)); while(i&arraySize) { if (s-&str=='=' s-&str=='\n') if (s-&str!=32) strArray[i++]=s-& s=s-& } strArray[i]='\0'; return strA } /*0==[=========& 得到一个单位的值*/ double GetUnitageOf(char * str, int *rank, int *errorNum) { double CharToNum(char * str, int *rank);
/*如果是数字或负号就返回这个数字*/ if ((str[*rank]&=48 && str[*rank]&=57) (str[*rank]=='-')) {if (str[*rank]=='-') {(*rank)++;value = (-1)*GetUnitageOf(str, rank,errorNum);} else {value = CharToNum(str, rank);}} /*如果是括号就用GetASResultOf取得括号里面的值并返回*/ else if (str[*rank]=='(' str[*rank]=='[' str[*rank]=='{' ) {(*rank)++; value = GetASResultOf(str, rank, errorNum);} /*返回sin(x)*/ else if (str[*rank]=='s' && str[(*rank)+1]=='i' && str[(*rank)+2]=='n') { (*rank)=(*rank)+3; value = GetUnitageOf(str, rank, errorNum); value = sin(value); } /*返回cos(x)*/ else if (str[*rank]=='c' && str[(*rank)+1]=='o' && str[(*rank)+2]=='s') {*rank=*rank+3; value = cos(GetUnitageOf(str, rank, errorNum));} /*返回tan(x)*/ else if (str[*rank]=='t' && str[(*rank)+1]=='a' && str[(*rank)+2]=='n') {*rank=*rank+3; value = tan(GetUnitageOf(str, rank, errorNum));} /*还可以加一些的,懒得加了*/ /*defult:处理错误*/ else {*errorNum = UNKNOWN_CHAR;value = 0;} /*检查errorNum*/ if (*errorNum==TRUE){} else return FALSE; } /*0==[=========&这个是把字符转换成数字的函数,只在GetUnitageOf()里用*/ /*数字不能超过15个,其余的将被抹去.*/ double CharToNum(char * str, int *rank) { int j=0; double value=0; while((str[*rank]&=48 && str[*rank]&=57) (str[*rank]==46)) { if (str[*rank]!='.') {if ((j++)&=15) {value = value*10+(str[*rank]-48);}} else {if (j&=15) { for ((*rank)++,j=1; (str[*rank]&=48 && str[*rank]&=57 && str[*rank]!='\0'); (*rank)++, j++) {value = value+(str[*rank]-48)*pow(0.1,j);}
} } (*rank)++; }
} /*0==[=========&这个函数写的太复杂了,实在不好作解释,反正是在GetPDResultOf 函数和GetUnitageOf函数之间转啊转的*/ /*简单地说就是把str中第一个加减号前的式子算出来放在value变量中.再用函数 GetPDResultOf算出直到二个加减号前的式子然后与value相加或相减放在 变量value中,以此类推,直到遇上 ')' or ']' or '}' or '\0' */ double GetASResultOf(char * str, int *rank, int *errorNum) { double GetPDResultOf(char * str, int *rank, int *errorNum);
double dwIf_Z /*遇上 ')' or ']' or '}' or '\0' 就返回*/ while (str[*rank]!=')' && str[*rank]!=']' && str[*rank]!='}' && str[*rank]!='\0') { if ((str[*rank]&=48 && str[*rank]&=57) str[*rank]=='s' str[*rank]=='c' str[*rank]=='t') { if ((str[*rank-1]==')' str[*rank-1]==']' str[*rank-1]=='}') && *rank!=0) {value = value*GetUnitageOf(str, rank, errorNum);} else {value = GetUnitageOf(str, rank, errorNum);} } else if (str[*rank]=='+') {if (str[*rank-1]!= '(' && str[*rank-1]!= '[' && str[*rank-1]!= '{' && (*rank)!=0 ) {(*rank)++; value = value + GetPDResultOf(str, rank, errorNum);} else {*errorNum=UNKNOWN_CHAR;return 0;}} else if (str[*rank]=='-') {if (str[*rank-1]!= '(' && str[*rank-1]!= '[' && str[*rank-1]!= '{' && (*rank)!=0 ) {(*rank)++; value = value - GetPDResultOf(str, rank, errorNum);} else {value = GetUnitageOf(str, rank, errorNum);}} else if (str[*rank]=='*') {if (str[*rank-1]!= '(' && str[*rank-1]!= '[' && str[*rank-1]!= '{' && (*rank)!=0 ) {(*rank)++; value = value * GetUnitageOf(str, rank, errorNum);} else {*errorNum=UNKNOWN_CHAR;return 0;}} else if (str[*rank]=='/') {if (str[*rank-1]!= '(' && str[*rank-1]!= '[' && str[*rank-1]!= '{' && (*rank)!=0 ) {(*rank)++; dwIf_Zero=GetUnitageOf(str, rank, errorNum); if (dwIf_Zero==0) {*errorNum=DIVISOR_IS_ZERO;return 0;} else value = value /dwIf_Z} else {*errorNum=UNKNOWN_CHAR;return 0;}} else if (str[*rank]== '(' str[*rank]== '[' str[*rank]== '{' ) {if (str[*rank-1]!= '(' && str[*rank-1]!= '[' && str[*rank-1]!= '{' && (*rank)!=0 ) {(*rank)++; value = value*GetASResultOf(str, rank, errorNum);} else {value = GetUnitageOf(str, rank, errorNum);}} else {*errorNum=UNKNOWN_CHAR;return FALSE;} if (*errorNum!=TRUE) return FALSE; } (*rank)++;
} double GetPDResultOf(char * str, int *rank, int *errorNum) {
double dwIf_Z value = GetUnitageOf(str, rank, errorNum); if (str[*rank]=='\0') while (str[*rank]!='+' && str[*rank]!='-' && str[*rank]!=')' && str[*rank]!=']' && str[*rank]!='}') { if (str[*rank]=='*') value = value * GetUnitageOf(str, rank, errorNum); else if (str[*rank]=='/') { dwIf_Zero= GetUnitageOf(str, rank, errorNum); if (dwIf_Zero=0) {*errorNum=DIVISOR_IS_ZERO;return 0;} else value = value /dwIf_Z } else if (str[*rank]=='(' str[*rank]=='[' str[*rank]=='{') {(*rank)++; value = value * GetUnitageOf(str, rank, errorNum);} else {*errorNum=UNKNOWN_CHAR;return FALSE;} if (*errorNum!=TRUE) return FALSE; }
我做过一个与windows操作系统中计算器类似的,要我话可以找我,我发给你,这里贴代码不是很方便的样子。
你用VC++ MFC吧,控制台的太困难,分辨率也不会高。 要在VC上运行,还要C语言的?可能吗?最多C++,C语言几乎不可能在VC通过编译,他的要求太高。
自己做。用MFC简单。调用数学函数就可以了。
……呃,我只做过一个控制台界面的。。。。
c语言程序设计的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 计算器mr是什么意思 的文章

 

随机推荐