制作簡易計算器代碼(簡單計算器app制作)
今天給各位分享制作簡易計算器代碼的知識,其中也會對簡單計算器app制作進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
- 1、請教一下如何編程一個簡易計算器
- 2、MFC編寫計算器具體步驟 方法 代碼,拜托高手急用!
- 3、大神,求51單片機(jī)做簡易計算器的那個c語言程序
- 4、簡單的計算器設(shè)計的程序代碼
- 5、JAVA 編寫計算器 要代碼最簡單的
- 6、html網(wǎng)頁計算器代碼怎么寫?
請教一下如何編程一個簡易計算器
方法/步驟
1
打開Microsoft Visual Studio 2010, 新建名字為【計算器】的程序。
2
在新程序界面空白窗口上放置合適的控件:包括,
顯示過程數(shù)字和結(jié)果數(shù)字的textbox控件;
用于各數(shù)字輸入和計算方式輸入的按鈕,包括1,2,3,4,5,6,7,9,0和加減乘除等符號。
3
添加變量temp1(第一個數(shù)字)和pos(計算方式)
4
添加類addNum,在點(diǎn)擊數(shù)字按鈕時使用,用于在顯示屏上增加用戶輸入的數(shù)字。
添加數(shù)字按鈕0-9的代碼,分別調(diào)用類addNum。
添加【=】按鈕代碼
記錄第二個數(shù)字;
根據(jù)計算方式進(jìn)行計算,顯示計算結(jié)果。
添加歸零按鈕的代碼,清空顯示屏,將計算結(jié)果歸零,將計算方式歸零。
生成exe文件進(jìn)行測試
輸入第一個數(shù)字425
點(diǎn)擊【+】,輸入第二個數(shù)字897
點(diǎn)擊【=】,獲取計算結(jié)果1322
點(diǎn)擊【CE】,將數(shù)字歸零
輸入第一個數(shù)字852
點(diǎn)擊【*】,輸入第二個數(shù)字84
點(diǎn)擊【=】,獲取計算結(jié)果71568
15
同樣可以驗(yàn)證減法和除法。
MFC編寫計算器具體步驟 方法 代碼,拜托高手急用!
1、首先打開VS2013,新建一個VC++ MFC項(xiàng)目,命名為 gongzi。
2、然后在程序類型中,選擇“基于對話框”,點(diǎn)擊“完成”按鈕。
3、然后在彈出的對話框中,刪除原先的Static Text,添加相應(yīng)的控件到窗體上。
4、接著在應(yīng)發(fā)工資編輯框右擊添加變量。 變量名稱是 m_editTotal, 變量類型是 double, 類別為 value,點(diǎn)擊“完成”。同樣扣稅費(fèi)用編輯框右擊添加變量。 變量名稱是 m_editTax, 變量類型是 double, 類別為 value,應(yīng)扣稅款標(biāo)簽右擊添加變量。
5、然后雙擊“計算應(yīng)扣稅款”進(jìn)入代碼,添加代碼。
6、最后點(diǎn)擊運(yùn)行,輸入對應(yīng)的數(shù)目,按下按鈕,查看執(zhí)行效果。
大神,求51單片機(jī)做簡易計算器的那個c語言程序
以下是我編的簡易計算器程序,基本成功
//4*4鍵盤檢測程序,按下鍵后相應(yīng)的代碼顯示在液晶屏上
//顯示5位后,第6次顯示操作符號
//再顯示下一個數(shù)
// 鍵值與功能對應(yīng)表
//鍵值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
//功能 0 1 2 3 4 5 6 7 8 9 + - × ÷ = 清零
#includereg52.h
sbit beep=P2^3;
sbit lcden=P3^4;
sbit rs=P3^5;
sbit rw=P3^6;
#define uint unsigned int
#define ulint unsigned long int
#define uchar unsigned char
#define lcddata P0
ulint bb,dd,ee,ff;
uchar d,flag1;
uchar fd1,fd2;
uchar b1=16,b2=16,b3=16,b4=16,b5=16;
uchar d1=16,d2=16,d3=16,d4=16,d5=16;
uchar f1=16,f2=16,f3=16,f4=16,f5=16,f6=16,f7=16,f8=16,f9=16,f10=16;
uchar key,keyval,c,temp;
void Delay1ms(uint i) //1ms延時程序
{
uint j;
for(;i0;i--)
{
for(j=0;j125;j++)
{;}
}
}
void write_com(uchar com)
{
lcddata=com;
rs=0;
rw = 0;
lcden=0;
Delay1ms(10);
lcden=1;
Delay1ms(10);
lcden=0;
}
void write_date(uchar date)
{
lcddata=date;
rs=1;
rw=0;
lcden=0;
Delay1ms(10);
lcden=1;
Delay1ms(10);
lcden=0;
}
void init2()
{
rw=0;
write_com(0x38);
Delay1ms(10);
write_com(0x0f);
Delay1ms(10);
write_com(0x06);
Delay1ms(10);
write_com(0x01);
Delay1ms(10);
}
void display1(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5) //第1個數(shù)顯示程序
{
init2();
write_com(0x80);//第1行,第1字
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
}
void display2(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5) //第2個數(shù)顯示程序
{
write_com(0x88);//第1行,第1字
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
}
void display3(uchar a) //操作符號顯示程序
{
write_com(0x86);//第1行,第1字
Delay1ms(10);
switch(a)
{
case 10:
write_date('+');
Delay1ms(10);
case 11:
write_date('-');
Delay1ms(10);
case 12:
write_date('x');
Delay1ms(10);
case 13:
write_date('/');
Delay1ms(10);
}
}
void display4(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5,uchar A6,uchar A7,uchar A8,uchar A9,uchar A10,uchar A11,uchar A12) //結(jié)果顯示程序
{
write_com(0x80+0x40);//第2行,第1字
Delay1ms(10);
if (flag1==0)
{
write_date('-');
}
else write_date('+');
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
write_date(0x30+A6);
Delay1ms(10);
write_date(0x30+A7);
Delay1ms(10);
write_date(0x30+A8);
Delay1ms(10);
write_date(0x30+A9);
Delay1ms(10);
write_date(0x30+A10);
Delay1ms(10);
write_date('.');
Delay1ms(10);
write_date(0x30+A11);
Delay1ms(10);
write_date(0x30+A12);
Delay1ms(10);
}
uchar keyscan()
{
key=16;
P3=0xef;//P3.7輸出1個低電平
temp=P3; //讀取
temp=temp0x0f;//屏蔽高4位
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xed:
key=4;
break;
case 0xeb:
key=8;
break;
case 0xe7:
key=12;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp0x0f;
beep=0;
}
beep=1;
}
}
P3=0xdf;
temp=P3;
temp=temp0x0f;
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xde:
key=1;
break;
case 0xdd:
key=5;
break;
case 0xdb:
key=9;
break;
case 0xd7:
key=13;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp0x0f;
beep=0;
}
beep=1;
}
}
P3=0xbf;
temp=P3;
temp=temp0x0f;
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xbe:
key=2;
break;
case 0xbd:
key=6;
break;
case 0xbb:
key=10;
break;
case 0xb7:
key=14;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp0x0f;
beep=0;
}
beep=1;
}
}
P3=0x7f;
temp=P3;
temp=temp0x0f;
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0x7e:
key=3;
break;
case 0x7d:
key=7;
break;
case 0x7b:
key=11;
break;
case 0x77:
key=15;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp0x0f;
beep=0;
}
beep=1;
}
}
return(key);
}
void main()
{ while(1)
{
c=1;
while(c6)//輸入第1個5 位數(shù)
{
keyval=keyscan();
if(keyval10)
{
switch(c)
{
case 1:b1=keyval; break;
case 2:b2=keyval; break;
case 3:b3=keyval; break;
case 4:b4=keyval; break;
case 5:b5=keyval; break;
}
c++;
}
display1(b1,b2,b3,b4,b5);
}
while(c==6) //輸入計算符號
{
keyval=keyscan();
if((keyval=10)(keyval14)) //可去一層括號,因邏輯運(yùn)算優(yōu)先級較低
{
d=keyval;
}
c=1;
display3(d);
}
while(c6) //輸入第2個5 位數(shù)
{
keyval=keyscan();
if(keyval10)
{
switch(c)
{
case 1:d1=keyval; break;
case 2:d2=keyval; break;
case 3:d3=keyval; break;
case 4:d4=keyval; break;// 除
case 5:d5=keyval; break;
}
c++;
}
display2(d1,d2,d3,d4,d5);
}
bb= b1*10000+b2*1000+b3*100+b4*10+b5;
dd=d1*10000+d1*1000+d3*100+d4*10+d5;
while(keyval!=14) //等待按下"="
{
keyval=keyscan();
}
Delay1ms(10);
switch(d)
{
case 10:ee=bb+dd; break;//+
case 11:
flag1=1;
if(bb=dd)
{
ee=bb-dd; //-
flag1=0;
}
else ee=dd-bb;
break;
case 12:ee=bb*dd; break;//*可能會溢出
case 13:ee=bb/dd; //除法小數(shù)部分會丟失,保留2位
ff=bb%dd;
fd1=ff*10/dd;
fd2=ff*100/dd%10;
break;
}
f10=ee/1000000000%10;
f9=ee/100000000%10;
f8=ee/10000000%10;
f7=ee/1000000%10;
f6=ee/100000%10;
f5=ee/10000%10;
f4=ee/1000%10;
f3=ee/100%10;
f2=ee/10%10;
f1=ee%10;
display4(f10,f9,f8,f7,f6,f4,f4,f3,f2,f1,fd1,fd2);
while(keyval!=15)
{
keyval=keyscan();
}
b1=0;b2=0;b3=0;b4=0;b5=0;
d1=0;d2=0;d3=0;d4=0;d5=0;
bb=0;dd=0;ee=0;
init2();
}
}
簡單的計算器設(shè)計的程序代碼
#include dos.h /*DOS接口函數(shù)*/
#include math.h /*數(shù)學(xué)函數(shù)的定義*/
#include conio.h /*屏幕操作函數(shù)*/
#include stdio.h /*I/O函數(shù)*/
#include stdlib.h /*庫函數(shù)*/
#include stdarg.h /*變量長度參數(shù)表*/
#include graphics.h /*圖形函數(shù)*/
#include string.h /*字符串函數(shù)*/
#include ctype.h /*字符操作函數(shù)*/
#define UP 0x48 /*光標(biāo)上移鍵*/
#define DOWN 0x50 /*光標(biāo)下移鍵*/
#define LEFT 0x4b /*光標(biāo)左移鍵*/
#define RIGHT 0x4d /*光標(biāo)右移鍵*/
#define ENTER 0x0d /*回車鍵*/
void *rar; /*全局變量,保存光標(biāo)圖象*/
struct palettetype palette; /*使用調(diào)色板信息*/
int GraphDriver; /* 圖形設(shè)備驅(qū)動*/
int GraphMode; /* 圖形模式值*/
int ErrorCode; /* 錯誤代碼*/
int MaxColors; /* 可用顏色的最大數(shù)值*/
int MaxX, MaxY; /* 屏幕的最大分辨率*/
double AspectRatio; /* 屏幕的像素比*/
void drawboder(void); /*畫邊框函數(shù)*/
void initialize(void); /*初始化函數(shù)*/
void computer(void); /*計算器計算函數(shù)*/
void changetextstyle(int font, int direction, int charsize); /*改變文本樣式函數(shù)*/
void mwindow(char *header); /*窗口函數(shù)*/
int specialkey(void) ; /*獲取特殊鍵函數(shù)*/
int arrow(); /*設(shè)置箭頭光標(biāo)函數(shù)*/
/*主函數(shù)*/
int main()
{
initialize();/* 設(shè)置系統(tǒng)進(jìn)入圖形模式 */
computer(); /*運(yùn)行計算器 */
closegraph();/*系統(tǒng)關(guān)閉圖形模式返回文本模式*/
return(0); /*結(jié)束程序*/
}
/* 設(shè)置系統(tǒng)進(jìn)入圖形模式 */
void initialize(void)
{
int xasp, yasp; /* 用于讀x和y方向縱橫比*/
GraphDriver = DETECT; /* 自動檢測顯示器*/
initgraph( GraphDriver, GraphMode, "" );
/*初始化圖形系統(tǒng)*/
ErrorCode = graphresult(); /*讀初始化結(jié)果*/
if( ErrorCode != grOk ) /*如果初始化時出現(xiàn)錯誤*/
{
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)yasp;/* 計算縱橫比值*/
}
/*計算器函數(shù)*/
void computer(void)
{
struct viewporttype vp; /*定義視口類型變量*/
int color, height, width;
int x, y,x0,y0, i, j,v,m,n,act,flag=1;
float num1=0,num2=0,result; /*操作數(shù)和計算結(jié)果變量*/
char cnum[5],str2[20]={""},c,temp[20]={""};
char str1[]="1230.456+-789*/Qc=^%";/* 定義字符串在按鈕圖形上顯示的符號 */
mwindow( "Calculator" ); /* 顯示主窗口 */
color = 7; /*設(shè)置灰顏色值*/
getviewsettings( vp ); /* 讀取當(dāng)前窗口的大小*/
width=(vp.right+1)/10; /* 設(shè)置按鈕寬度 */
height=(vp.bottom-10)/10 ; /*設(shè)置按鈕高度 */
x = width /2; /*設(shè)置x的坐標(biāo)值*/
y = height/2; /*設(shè)置y的坐標(biāo)值*/
setfillstyle(SOLID_FILL, color+3);
bar( x+width*2, y, x+7*width, y+height );
/*畫一個二維矩形條顯示運(yùn)算數(shù)和結(jié)果*/
setcolor( color+3 ); /*設(shè)置淡綠顏色邊框線*/
rectangle( x+width*2, y, x+7*width, y+height );
/*畫一個矩形邊框線*/
setcolor(RED); /*設(shè)置顏色為紅色*/
outtextxy(x+3*width,y+height/2,"0."); /*輸出字符串"0."*/
x =2*width-width/2; /*設(shè)置x的坐標(biāo)值*/
y =2*height+height/2; /*設(shè)置y的坐標(biāo)值*/
for( j=0 ; j4 ; ++j ) /*畫按鈕*/
{
for( i=0 ; i5 ; ++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) ; /*移動列坐標(biāo)*/
}
y +=(height/2)*3; /* 移動行坐標(biāo)*/
x =2*width-width/2; /*復(fù)位列坐標(biāo)*/
}
x0=2*width;
y0=3*height;
x=x0;
y=y0;
gotoxy(x,y); /*移動光標(biāo)到x,y位置*/
arrow(); /*顯示光標(biāo)*/
putimage(x,y,rar,XOR_PUT);
m=0;
n=0;
strcpy(str2,""); /*設(shè)置str2為空串*/
while((v=specialkey())!=45) /*當(dāng)壓下Alt+x鍵結(jié)束程序,否則執(zhí)行下面的循環(huán)*/
{
while((v=specialkey())!=ENTER) /*當(dāng)壓下鍵不是回車時*/
{
putimage(x,y,rar,XOR_PUT); /*顯示光標(biāo)圖象*/
if(v==RIGHT) /*右移箭頭時新位置計算*/
if(x=x0+6*width)
/*如果右移,移到尾,則移動到最左邊字符位置*/
{
x=x0;
m=0;
}
else
{
x=x+width+width/2;
m++;
} /*否則,右移到下一個字符位置*/
if(v==LEFT) /*左移箭頭時新位置計算*/
if(x=x0)
{
x=x0+6*width;
m=4;
} /*如果移到頭,再左移,則移動到最右邊字符位置*/
else
{
x=x-width-width/2;
m--;
} /*否則,左移到前一個字符位置*/
if(v==UP) /*上移箭頭時新位置計算*/
if(y=y0)
{
y=y0+4*height+height/2;
n=3;
} /*如果移到頭,再上移,則移動到最下邊字符位置*/
else
{
y=y-height-height/2;
n--;
} /*否則,移到上邊一個字符位置*/
if(v==DOWN) /*下移箭頭時新位置計算*/
if(y=7*height)
{
y=y0;
n=0;
} /*如果移到尾,再下移,則移動到最上邊字符位置*/
else
{
y=y+height+height/2;
n++;
} /*否則,移到下邊一個字符位置*/
putimage(x,y,rar,XOR_PUT); /*在新的位置顯示光標(biāo)箭頭*/
}
c=str1[n*5+m]; /*將字符保存到變量c中*/
if(isdigit(c)||c=='.') /*判斷是否是數(shù)字或小數(shù)點(diǎn)*/
{
if(flag==-1) /*如果標(biāo)志為-1,表明為負(fù)數(shù)*/
{
strcpy(str2,"-"); /*將負(fù)號連接到字符串中*/
flag=1;
} /*將標(biāo)志值恢復(fù)為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); /*將第一個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=1; /*做計算加法標(biāo)志值*/
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為空,說明是負(fù)號,而不是減號*/
flag=-1; /*設(shè)置負(fù)數(shù)標(biāo)志*/
else
{
num1=atof(str2); /*將第二個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=2; /*做計算減法標(biāo)志值*/
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); /*將第二個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=3; /*做計算乘法標(biāo)志值*/
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); /*將第二個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=4; /*做計算除法標(biāo)志值*/
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); /*將第二個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=5; /*做計算乘方標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*畫矩形*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='%')
{
num1=atof(str2); /*將第二個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=6; /*做計算模運(yùn)算乘方標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*畫矩形*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='=')
{
num2=atof(str2); /*將第二個操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
switch(act) /*根據(jù)運(yùn)算符號計算*/
{
case 1:result=num1+num2;break; /*做加法*/
case 2:result=num1-num2;break; /*做減法*/
case 3:result=num1*num2;break; /*做乘法*/
case 4:result=num1/num2;break; /*做除法*/
case 5:result=pow(num1,num2);break; /*做x的y次方*/
case 6:result=fmod(num1,num2);break; /*做模運(yùn)算*/
}
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆蓋結(jié)果區(qū)*/
sprintf(temp,"%f",result); /*將結(jié)果保存到temp中*/
outtextxy(5*width,height,temp); /*顯示結(jié)果*/
}
if(c=='c')
{
num1=0; /*將兩個操作數(shù)復(fù)位0,符號標(biāo)志為1*/
num2=0;
flag=1;
strcpy(str2,""); /*將str2清空*/
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆蓋結(jié)果區(qū)*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='Q')exit(0); /*如果選擇了q回車,結(jié)束計算程序*/
}
putimage(x,y,rar,XOR_PUT); /*在退出之前消去光標(biāo)箭頭*/
return; /*返回*/
}
/*窗口函數(shù)*/
void mwindow( char *header )
{
int height;
cleardevice(); /* 清除圖形屏幕 */
setcolor( MaxColors - 1 ); /* 設(shè)置當(dāng)前顏色為白色*/
setviewport( 20, 20, MaxX/2, MaxY/2, 1 ); /* 設(shè)置視口大小 */
height = textheight( "H" ); /* 讀取基本文本大小 */
settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*設(shè)置文本樣式*/
settextjustify( CENTER_TEXT, TOP_TEXT );/*設(shè)置字符排列方式*/
outtextxy( MaxX/4, 2, header ); /*輸出標(biāo)題*/
setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); /*設(shè)置視口大小*/
drawboder(); /*畫邊框*/
}
void drawboder(void) /*畫邊框*/
{
struct viewporttype vp; /*定義視口類型變量*/
setcolor( MaxColors - 1 ); /*設(shè)置當(dāng)前顏色為白色 */
setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*設(shè)置畫線方式*/
getviewsettings( vp );/*將當(dāng)前視口信息裝入vp所指的結(jié)構(gòu)中*/
rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*畫矩形邊框*/
}
/*設(shè)計鼠標(biāo)圖形函數(shù)*/
int arrow()
{
int size;
int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*定義多邊形坐標(biāo)*/
setfillstyle(SOLID_FILL,2); /*設(shè)置填充模式*/
fillpoly(8,raw); /*畫出一光標(biāo)箭頭*/
size=imagesize(4,4,16,16); /*測試圖象大小*/
rar=malloc(size); /*分配內(nèi)存區(qū)域*/
getimage(4,4,16,16,rar); /*存放光標(biāo)箭頭圖象*/
putimage(4,4,rar,XOR_PUT); /*消去光標(biāo)箭頭圖象*/
return 0;
}
/*按鍵函數(shù)*/
int specialkey(void)
{
int key;
while(bioskey(1)==0); /*等待鍵盤輸入*/
key=bioskey(0); /*鍵盤輸入*/
key=key0xff? key0xff:key8; /*只取特殊鍵的掃描值,其余為0*/
return(key); /*返回鍵值*/
}
JAVA 編寫計算器 要代碼最簡單的
學(xué)java的時候自己編的,很簡單,能夠連續(xù)輸入計算式后進(jìn)行計算
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**簡易計算器,能夠進(jìn)行簡單的計算
*
* @see 2008.12.9
*/
public class CalculatorA
implements ActionListener{
private JFrame frame;
private JTextField field;
private JButton[] allButtons;
private JButton clearButton;
// private JButton backButton;
String result="";//保存結(jié)果
StringBuilder sb = new StringBuilder();//保存要進(jìn)行的計算式
int x = 0; //用來判斷上一次的事件類型
String str = "123+456-789*0.=/";
ArrayListString arrayList = new ArrayListString();//保存計算式,通過方法進(jìn)行運(yùn)算
public CalculatorA(){
frame = new JFrame("我的計算器v1.1");
frame.setLocation(300,300);
field = new JTextField(25);
allButtons = new JButton[16];
for(int i=0;iallButtons.length;i++){
allButtons[i]= new JButton(str.substring(i,i+1));
}
clearButton = new JButton("CLEAR");
// backButton = new JButton("——");
init();
setFondAndColor();
addEventHander();
}
public void init(){
frame.setLayout(new BorderLayout());
JPanel northPanel = new JPanel();
JPanel centerPanel = new JPanel();
JPanel southPanel = new JPanel();
northPanel.setLayout(new FlowLayout());
centerPanel.setLayout(new GridLayout(4,4));
southPanel.setLayout(new FlowLayout());
northPanel.add(field);
for(int i=0;iallButtons.length;i++){
centerPanel.add(allButtons[i]);
}
southPanel.add(clearButton);
//southPanel.add(backButton);
frame.add(northPanel,BorderLayout.NORTH);
frame.add(centerPanel,BorderLayout.CENTER);
frame.add(southPanel,BorderLayout.SOUTH);
}
//設(shè)置輸入字體
public void setFondAndColor(){
field.setFont(new Font("宋體",Font.BOLD,24));
field.setBackground(new Color(100,200,200));
field.setForeground(Color.RED);
//設(shè)置字體從右起始
field.setHorizontalAlignment(JTextField.RIGHT);
}
public void showMi(){
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void addEventHander(){
for(int i=0;iallButtons.length;i++){
allButtons[i].addActionListener(this);
}
clearButton.addActionListener(this);
// backButton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();//取得當(dāng)前事件返回的值
if("0123456789.".indexOf(str)!=-1){
if(x == 0){ //當(dāng)x為0時表示還沒有進(jìn)行輸入
result=str;
sb.append(str);
field.setText(str);
x = 1;
}
else if(x == 1){
result = result +str;
sb.append(str);
field.setText(result);
x = 1;
}
else if(x == 2){
sb.delete(0,sb.length());
result = result+str;
sb.append(str);
field.setText(result);
x = 1;
}
else if(x == 3){
result = str;
sb.delete(0,sb.length());
arrayList.clear();
field.setText(str);
sb.append(str);
field.setText(str);
x = 1;
}
else if(x == 4){
result ="";
sb.delete(0,sb.length());
arrayList.clear();
result = str;
sb.append(str);
field.setText(str);
x = 1;
}
else{
result = result +str;
sb.append(str);
field.setText(result);
x = 1;
}
}
else if("+*-/".indexOf(str)!=-1){
if(x == 0){
field.setText("");
x = 2;
}
else if(x == 1){
result = result + str;
arrayList.add(sb.toString());
arrayList.add(str);
sb.append(str);
field.setText(result);
x = 2;
}
else if(x == 2){
x = 2;
}
else if(x == 3){
field.setText(result+str);
arrayList.add(result);
arrayList.add(str);
result = result+str;
x = 2;
}
else if(x == 4){
result ="";
sb.delete(0,sb.length());
arrayList.clear();
x = 2;
}
else{
field.setText(result+str);
arrayList.add(result);
arrayList.add(str);
result = result+str;
x = 2;
}
}
else if("=".equals(str)){
if(x == 0){
field.setText("0");
arrayList.clear();
result = "0";
x = 3;
}
else if(x == 1){
try{
arrayList.add(sb.toString());
arrayList = getResult(arrayList);
result = arrayList.get(0);
field.setText(result);
arrayList.clear();
x = 3;
}catch(Exception e1){
field.setText("數(shù)據(jù)格式異常");
x = 0;
}
}
else if(x == 2){
field.setText("數(shù)據(jù)格式錯誤.....");
arrayList.clear();
x = 0;
}
else if(x == 3){
field.setText(result);
x = 3;
}
else if(x == 4){
result ="";
sb.delete(0,sb.length());
arrayList.clear();
x = 3;
}
else {
try{
arrayList.add(sb.toString());
arrayList = getResult(arrayList);
result = arrayList.get(0);
field.setText(result);
arrayList.clear();
x = 3;
}catch(Exception e1){
field.setText("數(shù)據(jù)格式異常");
x = 0;
}
}
}
else if("CLEAR".equals(str)){
arrayList.clear();
field.setText("0");
arrayList.add("0");
x = 4;
}
else{
if(result.length()1){
result = result.substring(0,result.length()-1);
if(sb.length()0){
sb.delete(sb.length()-1,sb.length());
}
else {
sb.delete(0,1);
}
field.setText(result);
x = 5;
}
else{
result = "";
sb.delete(0,sb.length());
arrayList.clear();
field.setText("0");
x = 0;
}
}
}
public static ArrayListString getResult(ArrayListString list){
String res = null;
String[] s = {"/","*","-","+"};
int i=0;
if(list.size()1){
for(;is.length;){
if(s[i].equals("/")){
for(int j=0;jlist.size();j++){
if(list.get(j).equals(s[i])){
res = Double.toString(Double.parseDouble(list.get(j-1))/Double.parseDouble(list.get(j+1)));
//本地的數(shù)據(jù)格式
NumberFormat nf = NumberFormat.getInstance();
res = nf.format(Double.parseDouble(res));
res = getChange(res);
list.set(j-1,res);
list.remove(j);
list.remove(j);
getResult(list);
}
}
i++;
}
else if(s[i].equals("*")){
for(int j=0;jlist.size();j++){
if(list.get(j).equals(s[i])){
res = Double.toString(Double.parseDouble(list.get(j-1))*Double.parseDouble(list.get(j+1)));
NumberFormat nf = NumberFormat.getInstance();
res = nf.format(Double.parseDouble(res));
res = getChange(res);
list.set(j-1,res);
list.remove(j);
list.remove(j);
getResult(list);
}
}
i++;
}
else if(s[i].equals("-")){
for(int j=0;jlist.size();j++){
if(list.get(j).equals(s[i])){
res = Double.toString(Double.parseDouble(list.get(j-1))-Double.parseDouble(list.get(j+1)));
NumberFormat nf = NumberFormat.getNumberInstance();
res = nf.format(Double.parseDouble(res));
res = getChange(res);
list.set(j-1,res);
list.remove(j);
list.remove(j);
getResult(list);
}
}
i++;
}
else {
for(int j=0;jlist.size();j++){
if(list.get(j).equals(s[i])){
res = Double.toString(Double.parseDouble(list.get(j-1))+Double.parseDouble(list.get(j+1)));
NumberFormat nf = NumberFormat.getInstance();
res = nf.format(Double.parseDouble(res));
res = getChange(res);
list.set(j-1,res);
list.remove(j);
list.remove(j);
getResult(list);
}
}
i++;
}
}
}
return list;
}
//對數(shù)字字符串進(jìn)行排除不必要符號
public static String getChange(String res){
String s_temp = "";
char[] c = new char[res.length()];
for(int k=0;kc.length;k++){
c[k] = res.charAt(k);
}
for(int k=0;kc.length;k++){
if((c[k]= '0' c[k]= '9')|| c[k] == '.'){
s_temp += c[k];
}
}
return s_temp;
}
public static void main(String[] args){
new CalculatorA().showMi();
}
}
html網(wǎng)頁計算器代碼怎么寫?
html網(wǎng)頁計算器代碼編寫過程如下:
1.首先我們要做好一個計算器的界面,主要用到html與css的知識,下面是代碼
table id="calculater" onClick="calculater()"
tr
td id="display" colspan="5"0/td
/tr
tr
td class="numberkey" 1/td
td class="numberkey" 2/td
td class="numberkey" 3/td
td class="numberkey" +/td
td class="numberkey" ?id="deletesign"c/td
/tr
tr
td class="numberkey" 4/td
td class="numberkey" 5/td
td class="numberkey" 6/td
td class="numberkey" -/td
td rowspan="3" id="equality" onclick="resultscalcaulte()"=/td
/tr
tr
td class="numberkey" 7/td
td class="numberkey" 8/td
td class="numberkey" 7/td
td class="numberkey" */td
/tr
tr
td class="numberkey" +/-/td
td class="numberkey" 0/td
td class="numberkey" ./td
td class="numberkey" //td ? ? ? ? ?
/tr
上面設(shè)置一個簡單的table表格,主要內(nèi)容是計算器的數(shù)字鍵盤和符號,還有就是class名和ID名,函數(shù)名,主要是用作css樣式設(shè)計和javascript程序設(shè)計,后面會用到,就先貼出來了
colspan="5"?是合并五列的意思,表示這個單元格要占五列
rowspan="3"是合并三行的意思,表示這個單元格要占三行
效果如下,這樣一個簡單的架構(gòu)就完成了
2.接下來就是css的設(shè)計,下面是代碼
*{
padding:0;
margin:1px;
}
#calculater{
margin: auto;
margin-top: 30px;
border: solid 6px #2371D3;
border-spacing: 0px;
}
#display{
width: 100%;
height: 30px;
border-bottom: solid 4px #2371D3;
font-weight: bold;
color: #193D83;
font-family: 黑體;
padding-left: 2px;
}
.numberkey{
cursor: pointer;
width: 40px;
height: 30px;
border: solid 1px #FFFFFF;
background: #2371D3;
color: #ffffff;
text-align: center;
font-weight: bold;
font-family: 黑體;
}
#equality{
cursor: pointer;
width: 40px;
height: 100%;
background: #2371D3;
border: solid 1px #FFFFFF;
color: #ffffff;
text-align: center;
font-weight: bold;
font-family: 黑體;
}
.numberkey:hover{
background: #EA6F30;
}
#equality:hover{
background: #EA6F30;
}
以上是css代碼,比較簡單
border-spacing: 0px;
這里代碼的意義是:table中單元格與單元格,表格邊緣都有默認(rèn)距離,這里border-spacing: 0px;能使其默認(rèn)距離為零,沒有這句會比較難設(shè)計好看的樣式。
cursor: pointer;
這里代碼的意義是:使鼠標(biāo)放在上面時變成一個手的標(biāo)志
效果如下
3.接下來是javascript的代碼,按照思路來一點(diǎn)點(diǎn)寫
首先我們要設(shè)計,當(dāng)鼠標(biāo)點(diǎn)擊某個單元格時我們能獲取這個單元格上的內(nèi)容,即數(shù)字或符號
所以我們在table標(biāo)簽里加上onClick="calculater()",添加一個點(diǎn)擊事件
然后用event.srcElement.innerText獲取單元格上的內(nèi)容,event是事件的意思,在這里這個事件當(dāng)然是點(diǎn)擊了,srcElement就是事件的元素,在這里是被點(diǎn)擊的單元格,innerText是獲取這個單元格的內(nèi)容。
這里我們就可以寫出這個函數(shù)第一行代碼,獲取被點(diǎn)擊的單元格的內(nèi)容
function calculater(){
results=event.srcElement.innerText;
}
results就是單元格的內(nèi)容
4.當(dāng)然獲取了什么要顯示在第一個單元格那里,這里我們還是用innerText,來輸出這個點(diǎn)擊的值
display.innerText=results;
這里代碼的意義是:display是第一格單元格的id,就是在第一行顯示你點(diǎn)擊了什么
calculater()的代碼就變成這樣
function calculater(){
results=event.srcElement.innerText;
display.innerText=results;
}
這樣我們就能輸出我們點(diǎn)擊的單元格內(nèi)容
5.但這樣我們只能輸出一次單擊的內(nèi)容,為了把內(nèi)容串起來,我們把代碼改為
var results="";
function calculater(){
results+=event.srcElement.innerText;
display.innerText=results;
}
設(shè)置results為全局變量,event.srcElement.innerText用+=累加進(jìn)results,
這樣我們就能輸入并顯示一條算式
6.我們在“=”單元格標(biāo)簽里加上onClick="resultscalcaulte()",計算這個結(jié)果
function resultscalcaulte(){
calresults=eval()(results);
display.innerText=calresults;
}
eval();能運(yùn)行括號里的javascript語句的字符串,并返回其值,如果results等于7+8,那eval就會計算7+8,并返回56,然后后面一條代碼把56顯示出來
7.加入上面的運(yùn)算后,還是無法顯示結(jié)果,原因是點(diǎn)擊“=”單元格會先觸發(fā)resultscalcaulte()函數(shù),再觸發(fā)calculater()函數(shù),所以我們在resultscalcaulte()得到的結(jié)果就被calculater()的結(jié)果覆蓋了,我們需要再在calculater()里加上
if (event.srcElement.innerText=="=") {
return;
}
使點(diǎn)擊“=”單元格觸發(fā)的calculater()函數(shù)得不到任何結(jié)果
最后得到最簡單的計算器運(yùn)算代碼
var results="";
var calresults="";
function calculater(){
if (event.srcElement.innerText=="=") {
return;
}
results+=event.srcElement.innerText;
display.innerText=results;
}
function resultscalcaulte(){
calresults=eval(results);
display.innerText=calresults;
}
8.下面是計算7*8的結(jié)果
制作簡易計算器代碼的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于簡單計算器app制作、制作簡易計算器代碼的信息別忘了在本站進(jìn)行查找喔。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。