日韩精品亚洲精品中文字幕乱伦AV|曰韩区二区三区日韩中文字幕五码|ady99久久人人看人人摸人人|动漫一区二区黄99精品视频在线|AV片在线观看亚洲中文国产精品|伦乱在线VA欧美性爱一二区|亚洲无码mv91热色视频|激情六月综合欧美精品中文

當前位置:首頁 > 軟件開放 > 正文內(nèi)容

制作簡易計算器代碼(簡單計算器app制作)

軟件開放2年前 (2023-03-09)1281

今天給各位分享制作簡易計算器代碼的知識,其中也會對簡單計算器app制作進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!

本文目錄一覽:

請教一下如何編程一個簡易計算器

方法/步驟

1

打開Microsoft Visual Studio 2010, 新建名字為【計算器】的程序。

2

在新程序界面空白窗口上放置合適的控件:包括,

顯示過程數(shù)字和結果數(shù)字的textbox控件;

用于各數(shù)字輸入和計算方式輸入的按鈕,包括1,2,3,4,5,6,7,9,0和加減乘除等符號。

3

添加變量temp1(第一個數(shù)字)和pos(計算方式)

4

添加類addNum,在點擊數(shù)字按鈕時使用,用于在顯示屏上增加用戶輸入的數(shù)字。

添加數(shù)字按鈕0-9的代碼,分別調用類addNum。

添加【=】按鈕代碼

記錄第二個數(shù)字;

根據(jù)計算方式進行計算,顯示計算結果。

添加歸零按鈕的代碼,清空顯示屏,將計算結果歸零,將計算方式歸零。

生成exe文件進行測試

輸入第一個數(shù)字425

點擊【+】,輸入第二個數(shù)字897

點擊【=】,獲取計算結果1322

點擊【CE】,將數(shù)字歸零

輸入第一個數(shù)字852

點擊【*】,輸入第二個數(shù)字84

點擊【=】,獲取計算結果71568

15

同樣可以驗證減法和除法。

MFC編寫計算器具體步驟 方法 代碼,拜托高手急用!

1、首先打開VS2013,新建一個VC++ MFC項目,命名為 gongzi。

2、然后在程序類型中,選擇“基于對話框”,點擊“完成”按鈕。

3、然后在彈出的對話框中,刪除原先的Static Text,添加相應的控件到窗體上。

4、接著在應發(fā)工資編輯框右擊添加變量。 變量名稱是 m_editTotal, 變量類型是 double, 類別為 value,點擊“完成”。同樣扣稅費用編輯框右擊添加變量。 變量名稱是 m_editTax, 變量類型是 double, 類別為 value,應扣稅款標簽右擊添加變量。

5、然后雙擊“計算應扣稅款”進入代碼,添加代碼。

6、最后點擊運行,輸入對應的數(shù)目,按下按鈕,查看執(zhí)行效果。

大神,求51單片機做簡易計算器的那個c語言程序

以下是我編的簡易計算器程序,基本成功

//4*4鍵盤檢測程序,按下鍵后相應的代碼顯示在液晶屏上

//顯示5位后,第6次顯示操作符號

//再顯示下一個數(shù)

// 鍵值與功能對應表

//鍵值 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) //結果顯示程序

{

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ō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();

}

}

簡單的計算器設計的程序代碼

#include dos.h /*DOS接口函數(shù)*/

#include math.h /*數(shù)學函數(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 /*光標上移鍵*/

#define DOWN 0x50 /*光標下移鍵*/

#define LEFT 0x4b /*光標左移鍵*/

#define RIGHT 0x4d /*光標右移鍵*/

#define ENTER 0x0d /*回車鍵*/

void *rar; /*全局變量,保存光標圖象*/

struct palettetype palette; /*使用調色板信息*/

int GraphDriver; /* 圖形設備驅動*/

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ù)*/

/*主函數(shù)*/

int main()

{

initialize();/* 設置系統(tǒng)進入圖形模式 */

computer(); /*運行計算器 */

closegraph();/*系統(tǒng)關閉圖形模式返回文本模式*/

return(0); /*結束程序*/

}

/* 設置系統(tǒng)進入圖形模式 */

void initialize(void)

{

int xasp, yasp; /* 用于讀x和y方向縱橫比*/

GraphDriver = DETECT; /* 自動檢測顯示器*/

initgraph( GraphDriver, GraphMode, "" );

/*初始化圖形系統(tǒng)*/

ErrorCode = graphresult(); /*讀初始化結果*/

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ù)和計算結果變量*/

char cnum[5],str2[20]={""},c,temp[20]={""};

char str1[]="1230.456+-789*/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 );

/*畫一個二維矩形條顯示運算數(shù)和結果*/

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 ; 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) ; /*移動列坐標*/

}

y +=(height/2)*3; /* 移動行坐標*/

x =2*width-width/2; /*復位列坐標*/

}

x0=2*width;

y0=3*height;

x=x0;

y=y0;

gotoxy(x,y); /*移動光標到x,y位置*/

arrow(); /*顯示光標*/

putimage(x,y,rar,XOR_PUT);

m=0;

n=0;

strcpy(str2,""); /*設置str2為空串*/

while((v=specialkey())!=45) /*當壓下Alt+x鍵結束程序,否則執(zhí)行下面的循環(huán)*/

{

while((v=specialkey())!=ENTER) /*當壓下鍵不是回車時*/

{

putimage(x,y,rar,XOR_PUT); /*顯示光標圖象*/

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); /*在新的位置顯示光標箭頭*/

}

c=str1[n*5+m]; /*將字符保存到變量c中*/

if(isdigit(c)||c=='.') /*判斷是否是數(shù)字或小數(shù)點*/

{

if(flag==-1) /*如果標志為-1,表明為負數(shù)*/

{

strcpy(str2,"-"); /*將負號連接到字符串中*/

flag=1;

} /*將標志值恢復為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ù)轉換為浮點數(shù)*/

strcpy(str2,""); /*將str2清空*/

act=1; /*做計算加法標志值*/

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為空,說明是負號,而不是減號*/

flag=-1; /*設置負數(shù)標志*/

else

{

num1=atof(str2); /*將第二個操作數(shù)轉換為浮點數(shù)*/

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); /*將第二個操作數(shù)轉換為浮點數(shù)*/

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); /*將第二個操作數(shù)轉換為浮點數(shù)*/

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); /*將第二個操作數(shù)轉換為浮點數(shù)*/

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); /*將第二個操作數(shù)轉換為浮點數(shù)*/

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); /*將第二個操作數(shù)轉換為浮點數(shù)*/

switch(act) /*根據(jù)運算符號計算*/

{

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; /*做模運算*/

}

setfillstyle(SOLID_FILL,color+3); /*設置用淡綠色實體填充*/

bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆蓋結果區(qū)*/

sprintf(temp,"%f",result); /*將結果保存到temp中*/

outtextxy(5*width,height,temp); /*顯示結果*/

}

if(c=='c')

{

num1=0; /*將兩個操作數(shù)復位0,符號標志為1*/

num2=0;

flag=1;

strcpy(str2,""); /*將str2清空*/

setfillstyle(SOLID_FILL,color+3); /*設置用淡綠色實體填充*/

bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆蓋結果區(qū)*/

outtextxy(5*width,height,"0."); /*顯示字符串*/

}

if(c=='Q')exit(0); /*如果選擇了q回車,結束計算程序*/

}

putimage(x,y,rar,XOR_PUT); /*在退出之前消去光標箭頭*/

return; /*返回*/

}

/*窗口函數(shù)*/

void mwindow( char *header )

{

int height;

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) /*畫邊框*/

{

struct viewporttype vp; /*定義視口類型變量*/

setcolor( MaxColors - 1 ); /*設置當前顏色為白色 */

setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*設置畫線方式*/

getviewsettings( vp );/*將當前視口信息裝入vp所指的結構中*/

rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*畫矩形邊框*/

}

/*設計鼠標圖形函數(shù)*/

int arrow()

{

int size;

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); /*分配內(nèi)存區(qū)域*/

getimage(4,4,16,16,rar); /*存放光標箭頭圖象*/

putimage(4,4,rar,XOR_PUT); /*消去光標箭頭圖象*/

return 0;

}

/*按鍵函數(shù)*/

int specialkey(void)

{

int key;

while(bioskey(1)==0); /*等待鍵盤輸入*/

key=bioskey(0); /*鍵盤輸入*/

key=key0xff? key0xff:key8; /*只取特殊鍵的掃描值,其余為0*/

return(key); /*返回鍵值*/

}

JAVA 編寫計算器 要代碼最簡單的

學java的時候自己編的,很簡單,能夠連續(xù)輸入計算式后進行計算

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;

/**簡易計算器,能夠進行簡單的計算

*

* @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="";//保存結果

StringBuilder sb = new StringBuilder();//保存要進行的計算式

int x = 0; //用來判斷上一次的事件類型

String str = "123+456-789*0.=/";

ArrayListString arrayList = new ArrayListString();//保存計算式,通過方法進行運算

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);

}

//設置輸入字體

public void setFondAndColor(){

field.setFont(new Font("宋體",Font.BOLD,24));

field.setBackground(new Color(100,200,200));

field.setForeground(Color.RED);

//設置字體從右起始

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();//取得當前事件返回的值

if("0123456789.".indexOf(str)!=-1){

if(x == 0){ //當x為0時表示還沒有進行輸入

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ù)字字符串進行排除不必要符號

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

上面設置一個簡單的table表格,主要內(nèi)容是計算器的數(shù)字鍵盤和符號,還有就是class名和ID名,函數(shù)名,主要是用作css樣式設計和javascript程序設計,后面會用到,就先貼出來了

colspan="5"?是合并五列的意思,表示這個單元格要占五列

rowspan="3"是合并三行的意思,表示這個單元格要占三行

效果如下,這樣一個簡單的架構就完成了

2.接下來就是css的設計,下面是代碼

*{

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中單元格與單元格,表格邊緣都有默認距離,這里border-spacing: 0px;能使其默認距離為零,沒有這句會比較難設計好看的樣式。

cursor: pointer;

這里代碼的意義是:使鼠標放在上面時變成一個手的標志

效果如下

3.接下來是javascript的代碼,按照思路來一點點寫

首先我們要設計,當鼠標點擊某個單元格時我們能獲取這個單元格上的內(nèi)容,即數(shù)字或符號

所以我們在table標簽里加上onClick="calculater()",添加一個點擊事件

然后用event.srcElement.innerText獲取單元格上的內(nèi)容,event是事件的意思,在這里這個事件當然是點擊了,srcElement就是事件的元素,在這里是被點擊的單元格,innerText是獲取這個單元格的內(nèi)容。

這里我們就可以寫出這個函數(shù)第一行代碼,獲取被點擊的單元格的內(nèi)容

function calculater(){

results=event.srcElement.innerText;

}

results就是單元格的內(nèi)容

4.當然獲取了什么要顯示在第一個單元格那里,這里我們還是用innerText,來輸出這個點擊的值

display.innerText=results;

這里代碼的意義是:display是第一格單元格的id,就是在第一行顯示你點擊了什么

calculater()的代碼就變成這樣

function calculater(){

results=event.srcElement.innerText;

display.innerText=results;

}

這樣我們就能輸出我們點擊的單元格內(nèi)容

5.但這樣我們只能輸出一次單擊的內(nèi)容,為了把內(nèi)容串起來,我們把代碼改為

var results="";

function calculater(){

results+=event.srcElement.innerText;

display.innerText=results;

}

設置results為全局變量,event.srcElement.innerText用+=累加進results,

這樣我們就能輸入并顯示一條算式

6.我們在“=”單元格標簽里加上onClick="resultscalcaulte()",計算這個結果

function resultscalcaulte(){

calresults=eval()(results);

display.innerText=calresults;

}

eval();能運行括號里的javascript語句的字符串,并返回其值,如果results等于7+8,那eval就會計算7+8,并返回56,然后后面一條代碼把56顯示出來

7.加入上面的運算后,還是無法顯示結果,原因是點擊“=”單元格會先觸發(fā)resultscalcaulte()函數(shù),再觸發(fā)calculater()函數(shù),所以我們在resultscalcaulte()得到的結果就被calculater()的結果覆蓋了,我們需要再在calculater()里加上

if (event.srcElement.innerText=="=") {

return;

}

使點擊“=”單元格觸發(fā)的calculater()函數(shù)得不到任何結果

最后得到最簡單的計算器運算代碼

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的結果

制作簡易計算器代碼的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于簡單計算器app制作、制作簡易計算器代碼的信息別忘了在本站進行查找喔。

掃描二維碼推送至手機訪問。

版權聲明:本文由飛速云SEO網(wǎng)絡優(yōu)化推廣發(fā)布,如需轉載請注明出處。

本文鏈接:http://www.atlasseeker.com/post/11650.html

分享給朋友:

“制作簡易計算器代碼(簡單計算器app制作)” 的相關文章

物聯(lián)網(wǎng)軟件開發(fā)(物聯(lián)網(wǎng)軟件開發(fā)工作好嗎)

物聯(lián)網(wǎng)軟件開發(fā)(物聯(lián)網(wǎng)軟件開發(fā)工作好嗎)

今天給各位分享物聯(lián)網(wǎng)軟件開發(fā)的知識,其中也會對物聯(lián)網(wǎng)軟件開發(fā)工作好嗎進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!本文目錄一覽: 1、物聯(lián)網(wǎng)軟件開發(fā)的 2、物聯(lián)網(wǎng)軟件開發(fā)需要學習什么? 3、物聯(lián)網(wǎng)APP開發(fā)公司都有哪些? 物聯(lián)網(wǎng)軟件開發(fā)的 物聯(lián)網(wǎng)軟件開發(fā)推薦:華盛恒...

軟件開發(fā)培訓多少錢(軟件開發(fā)培訓課程)

軟件開發(fā)培訓多少錢(軟件開發(fā)培訓課程)

本篇文章給大家談談軟件開發(fā)培訓多少錢,以及軟件開發(fā)培訓課程對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、現(xiàn)在的IT培訓大概的費用一般都是多少錢? 2、JAVA軟件開發(fā)培訓學出來學費是不是很貴?可以先學后交費?謝謝! 3、程序員培訓班要多少錢? 4、學編程需要...

直播app軟件開發(fā)(手機直播app開發(fā)制作)

直播app軟件開發(fā)(手機直播app開發(fā)制作)

本篇文章給大家談談直播app軟件開發(fā),以及手機直播app開發(fā)制作對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、直播App軟件開發(fā)功能模塊有哪些? 2、開發(fā)一個視頻直播APP要多少錢 3、直播App軟件開發(fā)功能模塊有哪些? 直播App軟件開發(fā)功能模塊有哪些? 直...

如何自己創(chuàng)建軟件(怎么自己創(chuàng)建軟件)

如何自己創(chuàng)建軟件(怎么自己創(chuàng)建軟件)

今天給各位分享如何自己創(chuàng)建軟件的知識,其中也會對怎么自己創(chuàng)建軟件進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!本文目錄一覽: 1、如何創(chuàng)建一個軟件? 2、怎么創(chuàng)建一個軟件 3、創(chuàng)建軟件從哪里入手? 4、如何自己開發(fā)軟件app 5、如何自己制作一個APP軟件?...

木馬軟件怎么盜取通訊錄(木馬軟件怎么盜取通訊錄信息)

木馬軟件怎么盜取通訊錄(木馬軟件怎么盜取通訊錄信息)

本篇文章給大家談談木馬軟件怎么盜取通訊錄,以及木馬軟件怎么盜取通訊錄信息對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、手機微信掃描二維碼木馬病毒,通訊錄信息會被盜嗎 2、現(xiàn)在騙子通過一個軟件能把手機上全部號碼盜走嗎 3、詐騙軟件能獲取微信通訊錄 4、當心手機...

個人簡歷網(wǎng)頁設計思路(個人簡歷頁面設計)

個人簡歷網(wǎng)頁設計思路(個人簡歷頁面設計)

今天給各位分享個人簡歷網(wǎng)頁設計思路的知識,其中也會對個人簡歷頁面設計進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!本文目錄一覽: 1、Html網(wǎng)頁簡歷如何制作 2、網(wǎng)上求職簡歷制作技巧 3、求DreamWeaver網(wǎng)頁的形式制作一份個人簡歷 4、如何制作比較炫酷的...