




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/* 這是 turbo c 2.0 的程序源文件。 這是 turbo c 2.0 的程序源文件。 和c 語(yǔ)言類(lèi)似。但應(yīng)該在turbo c 2.0上運(yùn)行。 */#include /*DOS接口函數(shù)*/#include /*數(shù)學(xué)函數(shù)的定義*/#include /*屏幕操作函數(shù)*/#include /*I/O函數(shù)*/#include /*庫(kù)函數(shù)*/#include /*變量長(zhǎng)度參數(shù)表*/#include /*圖形函數(shù)*/#include /*字符串函數(shù)*/#include /*字符操作函數(shù)*/#define UP 0 x48 /*光標(biāo)上移鍵*/#define DOWN 0 x50 /*光標(biāo)下移鍵*/
2、#define LEFT 0 x4b /*光標(biāo)左移鍵*/#define RIGHT 0 x4d /*光標(biāo)右移鍵*/#define ENTER 0 x0d /*回車(chē)鍵*/void *rar; /*全局變量,保存光標(biāo)圖象*/struct palettetype palette; /*使用調(diào)色板信息*/int GraphDriver;/* 圖形設(shè)備驅(qū)動(dòng)*/int GraphMode;/* 圖形模式值*/int ErrorCode;/* 錯(cuò)誤代碼*/int MaxColors;/* 可用顏色的最大數(shù)值*/int MaxX, MaxY;/* 屏幕的最大分辨率*/double AspectRatio;/*
3、 屏幕的像素比*/void drawboder(void); /*畫(huà)邊框函數(shù)*/void initialize(void); /*初始化函數(shù)*/void computer(void); /*計(jì)算器計(jì)算函數(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(
4、);/* 設(shè)置系統(tǒng)進(jìn)入圖形模式*/ computer();/*運(yùn)行計(jì)算器*/ closegraph();/*系統(tǒng)關(guān)閉圖形模式返回文本模式*/ return(0); /*結(jié)束程序*/* 設(shè)置系統(tǒng)進(jìn)入圖形模式*/void initialize(void) int xasp, yasp;/* 用于讀x和y方向縱橫比*/ GraphDriver = DETECT; /* 自動(dòng)檢測(cè)顯示器*/ initgraph( &GraphDriver, &GraphMode, );/*初始化圖形系統(tǒng)*/ ErrorCode = graphresult();/*讀初始化結(jié)果*/ if( ErrorCode != gr
5、Ok ) /*如果初始化時(shí)出現(xiàn)錯(cuò)誤*/ printf(Graphics System Error: %sn, grapherrormsg( ErrorCode ) ); /*顯示錯(cuò)誤代碼*/ exit( 1 ); /*退出*/ getpalette( &palette );/* 讀面板信息*/ MaxColors = getmaxcolor() + 1;/* 讀取顏色的最大值*/ MaxX = getmaxx(); /* 讀屏幕尺寸*/ MaxY = getmaxy(); /* 讀屏幕尺寸*/ getaspectratio( &xasp, &yasp );/* 拷貝縱橫比到變量中*/ Aspe
6、ctRatio = (double)xasp/(double)yasp;/* 計(jì)算縱橫比值*/*計(jì)算器函數(shù)*/void computer(void) struct viewporttype vp; /*定義視口類(lèi)型變量*/ int color, height, width; int x, y,x0,y0, i, j,v,m,n,act,flag=1; float num1=0,num2=0,result; /*操作數(shù)和計(jì)算結(jié)果變量*/ char cnum5,str220=,c,temp20=; char str1=1230.456+-789*/Qc=%;/* 定義字符串在按鈕圖形上顯示的符號(hào)
7、*/ 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 )
8、; /*畫(huà)一個(gè)二維矩形條顯示運(yùn)算數(shù)和結(jié)果*/ setcolor( color+3 ); /*設(shè)置淡綠顏色邊框線*/ rectangle( x+width*2, y, x+7*width, y+height ); /*畫(huà)一個(gè)矩形邊框線*/ 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 ) /*畫(huà)按鈕*/ for( i=0 ;
9、i=x0+6*width) /*如果右移,移到尾,則移動(dòng)到最左邊字符位置*/ x=x0; m=0; else x=x+width+width/2; m+; /*否則,右移到下一個(gè)字符位置*/ if(v=LEFT) /*左移箭頭時(shí)新位置計(jì)算*/ if(x=x0) x=x0+6*width; m=4; /*如果移到頭,再左移,則移動(dòng)到最右邊字符位置*/ else x=x-width-width/2;m-; /*否則,左移到前一個(gè)字符位置*/ if(v=UP) /*上移箭頭時(shí)新位置計(jì)算*/ if(y=7*height) y=y0; n=0; /*如果移到尾,再下移,則移動(dòng)到最上邊字符位置*/ els
10、e y=y+height+height/2;n+; /*否則,移到下邊一個(gè)字符位置*/ putimage(x,y,rar,XOR_PUT); /*在新的位置顯示光標(biāo)箭頭*/ c=str1n*5+m; /*將字符保存到變量c中*/ if(isdigit(c)|c=.) /*判斷是否是數(shù)字或小數(shù)點(diǎn)*/ if(flag=-1) /*如果標(biāo)志為-1,表明為負(fù)數(shù)*/ strcpy(str2,-); /*將負(fù)號(hào)連接到字符串中*/ flag=1; /*將標(biāo)志值恢復(fù)為1*/ sprintf(temp,%c,c); /*將字符保存到字符串變量temp中*/ strcat(str2,temp); /*將temp中
11、的字符串連接到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); /*將第一個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ strcpy(str2,); /*將str2清空*/ act=1; /*做計(jì)算加法標(biāo)志值*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*
12、width/2,3*height/2); outtextxy(5*width,height,0.); /*顯示字符串*/ if(c=-) if(strcmp(str2,)=0) /*如果str2為空,說(shuō)明是負(fù)號(hào),而不是減號(hào)*/ flag=-1; /*設(shè)置負(fù)數(shù)標(biāo)志*/ else num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ strcpy(str2,); /*將str2清空*/ act=2; /*做計(jì)算減法標(biāo)志值*/ setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*hei
13、ght/2); /*畫(huà)矩形*/ outtextxy(5*width,height,0.); /*顯示字符串*/ if(c=*) num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ strcpy(str2,); /*將str2清空*/ act=3; /*做計(jì)算乘法標(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); /*
14、將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ strcpy(str2,); /*將str2清空*/ act=4; /*做計(jì)算除法標(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); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ strcpy(str2,); /*將str2清空*/ act=5; /*做計(jì)算乘方標(biāo)志值*/ setfillstyle(SOLID_FI
15、LL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/ bar(2*width+width/2,height/2,15*width/2,3*height/2); /*畫(huà)矩形*/ outtextxy(5*width,height,0.); /*顯示字符串*/ if(c=%) num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ strcpy(str2,); /*將str2清空*/ act=6; /*做計(jì)算模運(yùn)算乘方標(biāo)志值*/ setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/ bar(2*width+width/2,height/2,
16、15*width/2,3*height/2); /*畫(huà)矩形*/ outtextxy(5*width,height,0.); /*顯示字符串*/ if(c=) num2=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/ switch(act) /*根據(jù)運(yùn)算符號(hào)計(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
17、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; /*
18、將兩個(gè)操作數(shù)復(fù)位0,符號(hào)標(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回車(chē),結(jié)束計(jì)算程序*/ putimage(x,y,rar,XOR_PUT); /*在退出之前消去光標(biāo)箭頭*/ return;
19、 /*返回*/*窗口函數(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(); /*畫(huà)邊框*/void drawboder(void) /*畫(huà)邊框*/ struct viewporttype vp; /*定義視口類(lèi)型變量*/ setcolor( MaxColors -
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市勞務(wù)合同范例
- 勞動(dòng)合同范本在昆明
- 包地合同范本模板
- 出口車(chē)牌架采購(gòu)合同范本
- 臨時(shí)用房建設(shè)合同范本
- 第五課 我是小畫(huà)家-模塊組 教學(xué)設(shè)計(jì) -2023-2024學(xué)年大連版(2015)初中信息技術(shù)七年級(jí)下冊(cè)
- 勞動(dòng)合同范本申請(qǐng)
- 養(yǎng)羊合作合同范本
- 2024年云浮市郁南縣河口鎮(zhèn)招聘筆試真題
- 2024年日照銀行社會(huì)招聘考試真題
- (高清版)TDT 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程
- 2024寧波交通投資集團(tuán)有限公司校園招聘筆試參考題庫(kù)附帶答案詳解
- 幼兒園春季開(kāi)學(xué)教職工安全培訓(xùn)內(nèi)容
- 《萬(wàn)以內(nèi)數(shù)的認(rèn)識(shí)》大單元整體設(shè)計(jì)
- 中醫(yī)護(hù)理質(zhì)量敏感指標(biāo)的構(gòu)建
- 實(shí)驗(yàn)動(dòng)物使用者職業(yè)健康與安全課件
- WJ30059-2024軍事工業(yè)爆炸物品設(shè)計(jì)安全標(biāo)準(zhǔn)
- 創(chuàng)傷性腦疝查房
- 《政府管制基本理論》課件
- 機(jī)房建設(shè)驗(yàn)收?qǐng)?bào)告
- 環(huán)境巖土工程學(xué)課件-東南大學(xué)-潘華良境巖土工程學(xué)概論-9大環(huán)境巖土工程問(wèn)題
評(píng)論
0/150
提交評(píng)論