版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c語言課程設(shè)計(jì)報(bào)告計(jì)算器的實(shí)現(xiàn)(內(nèi)含完整報(bào)告,流程圖,截屏,總結(jié)等)目錄1 前言. 錯(cuò)誤!未定義書簽。2 需求分析. 錯(cuò)誤!未定義書簽。2.1要求. 錯(cuò)誤!未定義書簽。2.2任務(wù). 錯(cuò)誤!未定義書簽。2.3運(yùn)行環(huán)境 . 錯(cuò)誤!未定義書簽。2.4開發(fā)工具 . 錯(cuò)誤!未定義書簽。3 概要設(shè)計(jì). 錯(cuò)誤!未定義書簽。3.1系統(tǒng)流程圖 (3)3.2查詢函數(shù)流程圖 . 錯(cuò)誤!未定義書簽。4 詳細(xì)設(shè)計(jì) (6)4.1分析和設(shè)計(jì) . 錯(cuò)誤!未定義書簽。4.2具體代碼實(shí)現(xiàn) (6)4.3程序運(yùn)行結(jié)果 (14)5 課程設(shè)計(jì)總結(jié) (14)參考文獻(xiàn) (15)致謝 (15) 1 前言 編寫一個(gè)程序來實(shí)現(xiàn)算術(shù)計(jì)算器。通過結(jié)構(gòu)
2、體數(shù)組和共用體數(shù)組來存放輸入的每一數(shù)字或運(yùn)算符號(hào)的記錄(包括1、2、3等數(shù)字,+、-、*、等運(yùn)算符號(hào)),然后將其信息存入文件中。輸入一個(gè)算術(shù)計(jì)算式,就在屏幕上顯示結(jié)果。2 需求分析2.1要求(1)用c語言實(shí)現(xiàn)程序設(shè)計(jì);(2)利用結(jié)構(gòu)體、共用體進(jìn)行相關(guān)信息處理;(3)畫出查詢模塊的流程圖;(4)系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);(5)界面友好(良好的人機(jī)互交),程序要有注釋。2.2任務(wù)(1)定義一個(gè)結(jié)構(gòu)體類型數(shù)組,輸入09及+、-、*等符號(hào)的信息,將其信息存入文件中;(2)輸入簡(jiǎn)單的加減乘除算術(shù)計(jì)算式,并在屏幕上顯示計(jì)算結(jié)果;(3)畫出部分模塊的流程圖;(4)編寫代碼;(5)程序分析與調(diào)試
3、。2.3運(yùn)行環(huán)境(1)windows2000/xp系統(tǒng)(2)turboc2.0編譯環(huán)境2.4開發(fā)工具c語言3 概要設(shè)計(jì) 3.1系統(tǒng)流程圖 如圖3.1所示。w圖3.1 系統(tǒng)流程圖 3.2查詢函數(shù)流程圖(1)邊界畫線函數(shù)流程圖 (2)圖標(biāo)按鈕設(shè)置函數(shù)流程圖 4 詳細(xì)設(shè)計(jì) 4.1分析和設(shè)計(jì)(1)在程序的開頭部分定義了結(jié)構(gòu)體類型,用來存放按鈕信息,使數(shù)據(jù)能夠從鍵盤上輸入。用輸入函數(shù)input()來輸入按鍵放在button數(shù)組中。再定義結(jié)構(gòu)體棧:struct_stack() 用于數(shù)據(jù)的輸入和存放。(2)進(jìn)而定義了表格窗口函數(shù),窗口畫線函數(shù)draw_win() 和邊界線函數(shù)draw_border(),定義
4、out_text_win()輸出文本窗口,定義window_xy(32,3); 計(jì)算結(jié)果窗口。通過這些為形成整個(gè)界面提供了大的前提。(3)接著通過“write_char()”,“active_button()”,“write_top()”,“out_text_win()”,“get_key()”,“window_xy()”等一系列的函數(shù),使得計(jì)算器的整個(gè)外型呈現(xiàn)了出來。再定義了文本光標(biāo)函數(shù):text_clo()文本光標(biāo)函數(shù),通過光標(biāo)移動(dòng)選定數(shù)字并按空格鍵確定,通過mian()函數(shù)來調(diào)用各個(gè)子函數(shù),最終得到結(jié)果。4.2具體代碼實(shí)現(xiàn)源程序代碼:#includedos.h#includeconio.
5、h#includestring.h#includestdio.h#define normbut_bor 0x80#define presbut_but 0xb8#define normnum_but 0x8e#define presnum_but 0xb9#define spebut_char 0x2c#define win_color 0xf2#define win_char 0xfb struct s_button /*按鍵的結(jié)構(gòu)體*/ int sx,sy,ex,ey;char *head;int press;button17; /*圖表按鍵數(shù)*/struct stack /*結(jié)構(gòu)體棧*/
6、 char s20;int tos,top;stack;char tag;if(stack.tos0)stack.s-stack.tos=0;draw_win() /*邊框畫線窗口*/int i;char far *t;char *s=this is a simple calculator!; /*頂端邊框輸出的字符*/ draw_border(30,0,79,24,win_color); /*邊框的位置和顏色*/i=(79-30-strlen(s)/2+30;t=vid_mem+i*2;for(;*s;)*t+=*s+;*t+=win_color; /*頂端字體顏色*/ draw_borde
7、r(int sx,int sy,int ex,int ey,int attrib) /*邊界線函數(shù)*/ char far *t,far *v;int i;t=vid_mem;for(i=sx+1;iv=t+sy*160+i*2;*v+=196; /*每一行上畫線確定為直線*/*v=attrib;v=t+ey*160+i*2;*v+=196; /*每一行下畫線確定為直線*/*v=attrib;for(i=sy+1;i v=t+i*160+sx*2;*v+=179; /*每一列左畫線確定為直線*/*v=attrib;v=t+i*160+ex*2;*v+=179; /*每一列由畫線確定為直線*/*v
8、=attrib;write_char(sx,sy,218,attrib);write_char(ex,sy,191,attrib);write_char(sx,ey,192,attrib);write_char(ex,ey,217,attrib); write_char(int x,int y,char ch,int attrib) /*字符輸入函數(shù)*/ char far *v;v=vid_mem;v+=x*2+160*y;*v+=ch;*v=attrib;active_button()/*圖表按鈕設(shè)定函數(shù)*/ int i;make_button(0,32,9,38,11,1);/*每個(gè)鍵對(duì)應(yīng)
9、的位置和數(shù)值*/make_button(1,42,9,48,11,2);make_button(2,52,9,58,11,3);make_button(3,62,9,67,11,+);make_button(4,71,9,76,11,-);make_button(5,32,12,38,14,4);make_button(6,42,12,48,14,5);make_button(7,52,12,58,14,6);make_button(8,62,12,67,14,*);make_button(9,71,12,76,14,/);/*“/”的位置*/make_button(10,32,15,38,1
10、7,7);make_button(11,42,15,48,17,8);make_button(12,52,15,58,17,9);make_button(13,62,15,67,17,=);make_button(14,71,15,76,17,make_button(15,32,18,38,20,0);/*“0”的位置*/make_button(16,71,18,76,20,end);for(i=0;idraw_border(buttoni.sx,buttoni.sy,buttoni.ex,buttoni.ey,normb ut_bor); for(i=0;iwrite_top(buttoni
11、.sx+1,buttoni.sy+1,buttoni.ex-1,buttoni.head ,normnum_but);write_top(int x1,int y,int x2,char *s,int attrib)char far *v,far *t;int i;v=vid_mem;for(i=x1;i t=v+y*160+i*2;*t+= ;*t=attrib;i=(x2-x1-strlen(s)+1)/2+x1;t=v+160*y+i*2;for(;*s;) *t+=*s+;*t+=attrib;text_clo() /*文本光標(biāo)*/ tx-; /*光標(biāo)向左移*/if(txput_cha
12、r(tx,ty,); put_string() /*計(jì)算機(jī)運(yùn)算函數(shù)*/ float result;tx=32;switch(tag) /*根據(jù)運(yùn)算符號(hào)計(jì)算*/case +: result=v1+v2;break; /*做加法*/case -:result=v1-v2;break; /*做減法*/case*:result=v1*v2;break; /*做乘法*/case /: result=v1/v2;break; /*做除法*/default :result=v1; /*若不計(jì)算輸出0*/sprintf(stack.s,%.3f,result); /*輸出結(jié)果保留小數(shù)點(diǎn)后三位*/ while(stack.sstack.top) put_char(tx,ty,stack.sstack.top+);tx+;send1() /*向服務(wù)器發(fā)送請(qǐng)求*/ sscanf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中擔(dān)保協(xié)議條款模板版
- 2024小學(xué)工會(huì)工作總結(jié)
- 在建工程抵押還款合同
- 應(yīng)屆生勞動(dòng)合同或聘用合同
- N4-Acetylsulfamethoxazole-Standard-生命科學(xué)試劑-MCE
- 影視色彩學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 計(jì)算機(jī)信息技術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- minus-Catechin-Standard-生命科學(xué)試劑-MCE
- Micropeptin-478B-生命科學(xué)試劑-MCE
- 外出參觀學(xué)習(xí)活動(dòng)安全應(yīng)急預(yù)案
- 河南省南陽市2023-2024學(xué)年高一上學(xué)期期中考試英語試題
- 上海市信息科技學(xué)科初中學(xué)業(yè)考試試卷及評(píng)分標(biāo)準(zhǔn)
- 2024考研英語二試題及答案解析
- 《咖啡知識(shí)》課件
- 冀教版數(shù)學(xué)七年級(jí)上下冊(cè)知識(shí)點(diǎn)總結(jié)
- 2024年貴州退役軍人事務(wù)廳事業(yè)單位筆試真題
- 高中英語校本教材《高中英語寫作指導(dǎo)》校本課程綱要
- 2024年九年級(jí)化學(xué)上冊(cè) 實(shí)驗(yàn)3《燃燒的條件》教學(xué)設(shè)計(jì) (新版)湘教版
- 大模型應(yīng)用開發(fā)極簡(jiǎn)入門基于GPT-4和ChatGPT
- 2024年河南中考?xì)v史試卷試題答案解析及備考指導(dǎo)課件
- 新質(zhì)生產(chǎn)力心得體會(huì)范文簡(jiǎn)短發(fā)言6篇
評(píng)論
0/150
提交評(píng)論