欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

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

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

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

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

本文目錄一覽:

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

方法/步驟

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)載請注明出處。

本文鏈接:http://landcheck.net/post/11650.html

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

最新版baby直播APP下載(BABY直播app下載)

最新版baby直播APP下載(BABY直播app下載)

今天給各位分享最新版baby直播APP下載的知識,其中也會對BABY直播app下載進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、798u小寶貝直播怎么下載app 2、愛尚app直播官網(wǎng)怎么下載 3、電流電壓極性對功率方向繼電器的影響 4、大草莓...

華為瀏覽器開了無痕瀏覽怎么看歷史記錄(華為瀏覽器突然沒有歷史記錄了沒開無痕)

華為瀏覽器開了無痕瀏覽怎么看歷史記錄(華為瀏覽器突然沒有歷史記錄了沒開無痕)

本篇文章給大家談?wù)勅A為瀏覽器開了無痕瀏覽怎么看歷史記錄,以及華為瀏覽器突然沒有歷史記錄了沒開無痕對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、華為手機(jī)無痕瀏覽的歷史如何還原? 2、無痕瀏覽器的歷史記錄在哪? 3、華為p9無痕瀏覽了如何恢復(fù) 華為手機(jī)無痕瀏覽的歷...

投資10元一小時賺500軟件下載(投資10元一小時賺500的方法)

投資10元一小時賺500軟件下載(投資10元一小時賺500的方法)

本篇文章給大家談?wù)勍顿Y10元一小時賺500軟件下載,以及投資10元一小時賺500的方法對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、投資1000元3天賺500;要下載什么軟件?。柯闊└嬷?2、可以賺錢的APP有哪些? 3、最好的賺錢軟件是什么? 4、投資10...

手游交易平臺哪個好5173(手游交易平臺哪個好2022)

手游交易平臺哪個好5173(手游交易平臺哪個好2022)

本篇文章給大家談?wù)勈钟谓灰灼脚_哪個好5173,以及手游交易平臺哪個好2022對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、游戲賬號在哪個網(wǎng)站交易比較好? 2、正規(guī)靠譜的游戲賬號交易平臺有哪些? 3、賬號交易平臺哪個好? 4、十大手游交易平臺排行榜 游戲賬號...

ps個人簡歷模板制作要求有作品展示(PS個人簡歷模板)

ps個人簡歷模板制作要求有作品展示(PS個人簡歷模板)

今天給各位分享ps個人簡歷模板制作要求有作品展示的知識,其中也會對PS個人簡歷模板進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、怎樣用ps制作個人簡歷 2、怎么用ps做簡歷? 3、如何用ps制作個人簡歷優(yōu)秀模板 4、用ps怎么做簡歷? 5、...

傳奇超級變態(tài)手游橫屏版本(傳奇超級變態(tài)手游橫屏版本大全)

傳奇超級變態(tài)手游橫屏版本(傳奇超級變態(tài)手游橫屏版本大全)

今天給各位分享傳奇超級變態(tài)手游橫屏版本的知識,其中也會對傳奇超級變態(tài)手游橫屏版本大全進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、傳奇手游:傳奇版本五花八門,究竟哪個才是最好? 2、西游變態(tài)版?zhèn)髌媸钟误刺覄澦銌?3、傳奇手游有哪些經(jīng)典版本 4、...

韶山市| 浑源县| 海兴县| 宜良县| 鄂尔多斯市| 泌阳县| 全南县| 山西省| 泰州市| 茂名市| 尤溪县| 临高县| 安化县| 敦煌市| 诏安县| 绥棱县| 金塔县| 浦县| 鄯善县| 平山县| 和静县| 分宜县| 南华县| 德化县| 黑山县| 柳河县| 抚远县| 卢湾区| 时尚| 宁城县| 安阳县| 南漳县| 安远县| 凤台县| 青田县| 台北县| 枣阳市| 泽库县| 罗甸县| 平利县| 固始县|