課程設(shè)計(jì)簡易計(jì)算器_第1頁
課程設(shè)計(jì)簡易計(jì)算器_第2頁
課程設(shè)計(jì)簡易計(jì)算器_第3頁
課程設(shè)計(jì)簡易計(jì)算器_第4頁
課程設(shè)計(jì)簡易計(jì)算器_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、石家莊鐵道大學(xué)課程設(shè)計(jì)課程設(shè)計(jì)題目單 位 專 業(yè) 學(xué) 號(hào) 學(xué)生姓名 指導(dǎo)教師 完成日期 年 月 日摘 要課程設(shè)計(jì)語言類課程的指導(dǎo)思想:使學(xué)生通過學(xué)習(xí)高級(jí)編程語言的知識(shí)、編程技術(shù)和基本算法,掌握課程設(shè)計(jì)的思想和方法,具備利用計(jì)算機(jī)求解實(shí)際問題的能力,能靈活運(yùn)用高級(jí)語言進(jìn)行程序設(shè)計(jì)。其實(shí)認(rèn)真學(xué)習(xí)一門語言并不難,關(guān)鍵是所追求的學(xué)習(xí)方法和途徑。通過C語言程序設(shè)計(jì),可以使我們掌握軟件開發(fā)過程的難題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測試程序等基本方法和技能。同時(shí),還能加強(qiáng)我們的時(shí)間管理意識(shí),鍛煉對(duì)難題的發(fā)現(xiàn)、分析和處理能力。我認(rèn)為遇到難題并不可怕,可怕的是你不去解決,這可能是C語言課程設(shè)計(jì)的主要目的之一?,F(xiàn)時(shí)學(xué)習(xí)

2、生活中,常會(huì)遇到一些數(shù)目較大數(shù)據(jù)繁雜的數(shù)值運(yùn)算,徒手運(yùn)算起來很困難,這時(shí)候我們就必須用到計(jì)算器。人們對(duì)計(jì)算的要求不斷提高,普通的功能簡單的僅能進(jìn)行四則運(yùn)算的計(jì)算工具已經(jīng)不能滿足需要,需要一種能進(jìn)行多種計(jì)算?,F(xiàn)在已經(jīng)有一些功能較為強(qiáng)大、涵蓋面較廣的計(jì)算軟件,而且各種平臺(tái)的小工具仍不斷出現(xiàn)。這些大大方便了我們的生活給我們更多的選擇和實(shí)現(xiàn)方式。本程序的編寫基礎(chǔ)是Tubro C2.0漢化版,它在tubro c的原有基礎(chǔ)上實(shí)現(xiàn)了多漢字的支持方便了我們的使用。生成的程序可移植性強(qiáng)兼容性好穩(wěn)定!本程序?qū)崿F(xiàn)了加、減、乘、除、求冪、求模,求平方根,求Sin,求Cos,求Log10,求階乘,取整,求正切,以及進(jìn)制

3、之間的相互轉(zhuǎn)換。它可以直接輸入數(shù)學(xué)表達(dá)式,不需要任何轉(zhuǎn)換,就可以直接輸出數(shù)學(xué)四則運(yùn)算的結(jié)果。但是,每次只能運(yùn)算一個(gè)表達(dá)式,按 CE清空后再計(jì)算下一組式子。本程序在進(jìn)制轉(zhuǎn)換方面有一些漏洞,但一般的進(jìn)制轉(zhuǎn)換結(jié)果還是準(zhǔn)確的。目錄第1章 選題的意義41.1自我介紹41.2選題4第2章 系統(tǒng)功能需求分析72.1系統(tǒng)的基本要求72.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明72.3 功能模塊7第3章 系統(tǒng)設(shè)計(jì)83.1流程圖83.2數(shù)據(jù)結(jié)構(gòu)93.3中心算法說明9第4章 系統(tǒng)實(shí)現(xiàn)12第5章 總結(jié)135.1獨(dú)特設(shè)計(jì)145.2致謝詞145.3主要參考文獻(xiàn):145.4程序代碼:15第1章 選題的意義1.1自我介紹我的名字是彭東林,就

4、讀于石家莊鐵道大學(xué),電0905-2班,電氣與電子工程分院。1.2選題1. 我選的題目是:簡單計(jì)算器的設(shè)計(jì)2. 我選這道題的原因如下: 計(jì)算器對(duì)我們每一的學(xué)生都很熟悉,從初中到高中再到大學(xué)。但是我們只知道按下幾個(gè)按鈕計(jì)算器便會(huì)顯示出結(jié)果,很少有學(xué)生分析過計(jì)算器究竟是如何運(yùn)行的。C語言課程設(shè)計(jì)便是一個(gè)很好的機(jī)會(huì),讓我去親自寫計(jì)算器的運(yùn)行代碼,盡管是簡單計(jì)算器的設(shè)計(jì),但其背后的知識(shí)那是相當(dāng)多的,對(duì)我是個(gè)挑戰(zhàn),我接受!3. 運(yùn)用的數(shù)據(jù)結(jié)構(gòu)和知識(shí)點(diǎn)TuborC 繪圖知識(shí) 數(shù)學(xué)函數(shù) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 數(shù)組 指針 順序結(jié)構(gòu) 進(jìn)制間的轉(zhuǎn)換 4. 時(shí)間安排時(shí)間學(xué)生任務(wù)地點(diǎn)教師任務(wù)備注5月22日課程設(shè)計(jì)任務(wù)的認(rèn)

5、識(shí),初步選題;對(duì)所選題目用到的知識(shí)點(diǎn)上機(jī)實(shí)驗(yàn)。第九實(shí)驗(yàn)樓講述課程設(shè)計(jì)要求,使用的知識(shí)點(diǎn);登記考勤。學(xué)生查找資料、確定選題。每次考勤1分全勤10分。5月23日上報(bào)選題;初步完成課程設(shè)計(jì)報(bào)告中“選題意義”部分的內(nèi)容,并上傳服務(wù)器;根據(jù)課程設(shè)計(jì)任務(wù)書要求,進(jìn)行系統(tǒng)功能需求分析和設(shè)計(jì);設(shè)計(jì)初始代碼框架。第九實(shí)驗(yàn)樓整理學(xué)生選題;課程設(shè)計(jì)指導(dǎo);登記考勤。選作同一個(gè)題目的人數(shù),原則上每班不允許超出四組5月29日系統(tǒng)功能需求分析,系統(tǒng)設(shè)計(jì);初步完成課程設(shè)計(jì)報(bào)告“系統(tǒng)功能需求分析”,“系統(tǒng)設(shè)計(jì)”部分的內(nèi)容,并上傳服務(wù)器。第九實(shí)驗(yàn)樓批閱選題報(bào)告;課程設(shè)計(jì)指導(dǎo);登記考勤。5月30日完善課程設(shè)計(jì)報(bào)告“系統(tǒng)功能需求分析

6、”,“系統(tǒng)設(shè)計(jì)”部分的內(nèi)容,并上傳服務(wù)器;設(shè)計(jì)初始代碼,部分功能實(shí)現(xiàn)。第九實(shí)驗(yàn)樓評(píng)閱系統(tǒng)功能需求分析、系統(tǒng)設(shè)計(jì);課程設(shè)計(jì)指導(dǎo);登記考勤。6月5日編寫程序代碼;部分功能實(shí)現(xiàn);補(bǔ)充完善課程設(shè)計(jì)報(bào)告“系統(tǒng)功能需求分析”、“系統(tǒng)設(shè)計(jì)”。第九實(shí)驗(yàn)樓第一次階段檢查,給出階段成績;課程設(shè)計(jì)指導(dǎo);登記考勤。第一階段檢查成績滿分25分(根據(jù)課程設(shè)計(jì)開題的意義、系統(tǒng)需求分析、系統(tǒng)設(shè)計(jì)完成情況計(jì)分)6月6日編寫程序代碼;部分功能實(shí)現(xiàn);補(bǔ)充完善課程設(shè)計(jì)報(bào)告“系統(tǒng)功能需求分析”、“系統(tǒng)設(shè)計(jì)”。第九實(shí)驗(yàn)樓課程設(shè)計(jì)指導(dǎo);登記考勤。6月12日編寫程序代碼;部分功能實(shí)現(xiàn);補(bǔ)充完善課程設(shè)計(jì)報(bào)告“系統(tǒng)功能需求分析”、“系統(tǒng)設(shè)計(jì)”。

7、第九實(shí)驗(yàn)樓課程設(shè)計(jì)指導(dǎo);登記考勤。6月13日編寫程序代碼;完成全部功能;補(bǔ)充完善課程設(shè)計(jì)報(bào)告“系統(tǒng)功能需求分析”、“系統(tǒng)設(shè)計(jì)”。第九實(shí)驗(yàn)樓課程設(shè)計(jì)指導(dǎo);登記考勤。階段檢查成績滿分25分(根據(jù)程序代碼,功能實(shí)現(xiàn)情況及分)6月19日調(diào)試代碼;完成功能;撰寫課程設(shè)計(jì)報(bào)告。第九實(shí)驗(yàn)樓第二次階段檢查及現(xiàn)場問答給出階段成績;課程設(shè)計(jì)指導(dǎo);登記考勤。階段檢查成績滿分25分(根據(jù)程序代碼,功能實(shí)現(xiàn)情況計(jì)分)6月20日調(diào)試代碼、美化界面;運(yùn)行完成全部功能;撰寫課程設(shè)計(jì)報(bào)告。第九實(shí)驗(yàn)樓第二次階段檢查及現(xiàn)場問答給出階段成績;課程設(shè)計(jì)指導(dǎo);登記考勤?,F(xiàn)場答辯成績滿分10分(根據(jù)學(xué)生對(duì)程序功能及代碼的理解程度計(jì)分)課程

8、設(shè)計(jì)結(jié)束后,教師對(duì)學(xué)生上傳到服務(wù)器的課程設(shè)計(jì)報(bào)告書文檔進(jìn)行批閱,并給出最終文檔成績。最終文檔成績滿分30分第2章 系統(tǒng)功能需求分析2.1系統(tǒng)的基本要求1. 算術(shù)運(yùn)算功能。能夠?qū)崿F(xiàn)+、-、*、/、mod、int運(yùn)算。2. 函數(shù)運(yùn)算功能。能夠?qū)崿F(xiàn)exp、ln、sin、xy、log、cos、x3、n!、tan、x2、1/x等運(yùn)算。3. 進(jìn)制之間的轉(zhuǎn)換功能。能夠?qū)崿F(xiàn)十六、十、二、八進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換。4.通過鍵盤控制字符和數(shù)字的輸入。2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明此程序調(diào)用的函數(shù)主要有 /*數(shù)學(xué)函數(shù)的定義*/ /*屏幕操作函數(shù)*/ /*I/O函數(shù)*/ /*庫函數(shù)*/ / /*字符操作函數(shù)*/。基本使用:

9、用控制鼠標(biāo)圖形移動(dòng),當(dāng)*變量長度參數(shù)表*/ /*圖形函數(shù)*/ /*字符串函數(shù)*移動(dòng)到相應(yīng)得按鈕時(shí)按回車鍵輸入當(dāng)前數(shù)字或執(zhí)行對(duì)應(yīng)的函數(shù)。加法:輸入一個(gè)被加數(shù)數(shù),按“+”,輸入被加數(shù),按“=”,輸出結(jié)果。乘法: 輸入一個(gè)數(shù),按“*”,輸入另個(gè)數(shù),按“=”,輸出結(jié)果。除法: 輸入一個(gè)被除數(shù),按“+”,輸入另個(gè)除數(shù),按“=”,輸出結(jié)果。求余:輸入一個(gè)數(shù),按“mod”,按“=”,輸出結(jié)果。取整:輸入一個(gè)數(shù),按“int”,按“=”,輸出結(jié)果。八進(jìn)制轉(zhuǎn)十進(jìn)制:輸入一個(gè)八進(jìn)制數(shù),按“10-8”,按“=”,輸出十進(jìn)制結(jié)果。十六進(jìn)制轉(zhuǎn)十進(jìn)制:輸入一個(gè)十六進(jìn)制數(shù),按下“jz”+“16- 10” 按“=”,輸出十進(jìn)制

10、結(jié)果2.3 功能模塊鍵盤控制模塊:通過int specialkey(void)和鍵盤來實(shí)現(xiàn)輸入數(shù)據(jù),操作方式的控制。計(jì)算模塊:通過調(diào)用math.h中的數(shù)學(xué)函數(shù),如:+、-、*、/、sin、cos、mod等來實(shí)現(xiàn)對(duì)result的賦值。輸出模塊:在指定位置輸出計(jì)算模塊中result的值,在指定位置輸出鍵盤控制模塊中對(duì)參量所賦的值以及在指定位置輸出鍵盤控制模塊中得到的運(yùn)算符。第3章 系統(tǒng)設(shè)計(jì)3.1流程圖流程圖開始輸入第一個(gè)數(shù)x輸入第二個(gè)數(shù)y+、-、*、/、xy、log、等顯示結(jié)果結(jié)束mod、x3、ln、exp、tan、cos、x2、1/x、n!、sin、以及進(jìn)制轉(zhuǎn)換按“Esc”退出按“CE”清零3.

11、2數(shù)據(jù)結(jié)構(gòu)用到了if判斷語句,for循環(huán)語句,while語句,且主要通過while語句實(shí)現(xiàn)對(duì)鍵盤、光標(biāo)的操作和數(shù)據(jù)、運(yùn)算符的輸入,還用到了switch語句,switch語句的主要作用是實(shí)現(xiàn)對(duì)所輸入的數(shù)據(jù)的運(yùn)算操作,然后將運(yùn)算結(jié)果賦值給result,最后輸出。3.3中心算法說明這個(gè)函數(shù)的作用是控制鍵盤,只獲得鍵盤中特殊鍵的掃描值。int specialkey(void) int key; while(bioskey(1)=0); /*等待鍵盤輸入*/ key=bioskey(0); /*鍵盤輸入*/ key=key&0xff? key&0xff:key8; /*只取特殊鍵的掃描值,其余為0*/

12、return(key); /*返回鍵值*/在本程序中,數(shù)組str1的作用很大,其中的字符順序去屏幕輸出的鍵盤按鈕順序一致。它與int specialkey(void),while語句配合完成對(duì)鍵盤的控制操作。char str1=A,1,2,3,4,5,6,7,B,8,9,=,+,-,*,/,C, G,H,I,J,K,L,0,D,M,N,O,P,Q,.,$,E,R,S,T,U, V,(,F,W,X,Y,Z,&,),|;這段程序的作用是在屏幕左上角繪制光標(biāo)圖像,然后保存,再在原位置輸出,消去光標(biāo)圖像。int arrow() int size; int raw=4,4,4,8,6,8,14,16,1

13、6,16,8,6,8,4,4,4; /*定義多邊形坐標(biāo)*/ setcolor(1); setfillstyle(1,3); /*設(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;本段程序的作用是將十六進(jìn)制轉(zhuǎn)化為十進(jìn)制,該程序是作為十六進(jìn)制轉(zhuǎn)化為其他進(jìn)制的橋梁。cd1

14、=strlen(str7); for(i=0,j=1;icd1;i+,j+) if(str7i=1) num=num+1*pow(16,cd1-j); else if(str7i=2) num=num+2*pow(16,cd1-j); else if(str7i=3) num=num+3*pow(16,cd1-j); else if(str7i=4) num=num+4*pow(16,cd1-j); else if(str7i=5) num=num+5*pow(16,cd1-j); else if(str7i=1) num=num+1*pow(16,cd1-j); else if(str7i=

15、6) num=num+6*pow(16,cd1-j); else if(str7i=7) num=num+7*pow(16,cd1-j); else if(str7i=8) num=num+8*pow(16,cd1-j); else if(str7i=9) num=num+9*pow(16,cd1-j); else if(str7i=A) num=num+10*pow(16,cd1-j); else if(str7i=B) num=num+11*pow(16,cd1-j); else if(str7i=C) num=num+12*pow(16,cd1-j); else if(str7i=D)

16、num=num+13*pow(16,cd1-j); else if(str7i=E) num=num+14*pow(16,cd1-j); else if(str7i=F) num=num+15*pow(16,cd1-j); 本段程序的作用是將二進(jìn)制轉(zhuǎn)化為十進(jìn)制,可作為二進(jìn)制轉(zhuǎn)化為其他進(jìn)制的橋梁。zj=num1; result=0; for(i=0;i=cd;i+) result=result+fmod(int)(zj),10)*pow(2,i); zj=(int)(zj/10); 本段程序的作用是將八進(jìn)制轉(zhuǎn)化為十進(jìn)制,可作為八進(jìn)制轉(zhuǎn)化為其他進(jìn)制的橋梁。zj=num1; result=0; fo

17、r(i=0;i=cd;i+) result=result+fmod(int)(zj),10)*pow(8,i); zj=(int)(zj/10); 本段程序的作用是將十進(jìn)制轉(zhuǎn)化為十六進(jìn)制,它避開開了復(fù)雜的算法,而采用sprintf(str5,%x,(int)result);語句,利用系統(tǒng)自帶的輸出功能完成轉(zhuǎn)化。if(flag4=0) /*flag4為十進(jìn)制和十六進(jìn)制輸出標(biāo)識(shí)符*/ sprintf(str5,%x,(int)result); /*轉(zhuǎn)換為十六進(jìn)制*/ outtextxy(440,76,str5); /*顯示結(jié)果*/ flag4=1; 第4章 系統(tǒng)實(shí)現(xiàn)本系統(tǒng)采用 C語言開發(fā),生成可執(zhí)

18、行文件在任何系統(tǒng)下都可以執(zhí)行,具有很好的數(shù)據(jù)處理能力和穩(wěn)定性。并且使用Turbo C 2.0漢化版。生成的程序可移植性強(qiáng)、兼容性好。它可以直接輸入數(shù)學(xué)表達(dá)式,不需要任何轉(zhuǎn)換,就可以直接輸出數(shù)學(xué)四則運(yùn)算的結(jié)果。運(yùn)行畫面本程序通過調(diào)用int specialkey(void) 和#include 來實(shí)現(xiàn)對(duì)屏幕的操作,通過調(diào)用int arrow()函數(shù),int specialkey(void) 和#include 來實(shí)現(xiàn)對(duì)光標(biāo)的操作。計(jì)算器圖形采用Turbo C 2.0繪圖程序制作,大致運(yùn)行畫面如下。光標(biāo)起始位置在“A”上,通過鍵盤來控制光標(biāo)的運(yùn)動(dòng),如進(jìn)行雙目運(yùn)算1+2時(shí),移動(dòng)光標(biāo),將其指在“1”上,

19、按“Enter”,在屏幕上會(huì)輸出“1”,再移動(dòng)光標(biāo),將其指在“2”上,按“Enter”,在屏幕上會(huì)在指定位置輸出“2”,再移動(dòng)光標(biāo),將其指在“=”上,按“Enter”,結(jié)果便會(huì)在指定位置輸出。在進(jìn)行單目運(yùn)算9!時(shí),按照上面的方法輸入“9”,在輸入“n!”,輸入“=”,顯示結(jié)果。在進(jìn)行十六進(jìn)制轉(zhuǎn)化為十進(jìn)制或八進(jìn)制時(shí),需要注意的是:先輸入一個(gè)十六進(jìn)制數(shù)據(jù),再輸入“sft”然后輸入“16-10”或“16-8”,最后輸入“=”,輸出轉(zhuǎn)換后的結(jié)果。按下“CE”可以清零,重新進(jìn)行下一組運(yùn)算。按“Esc”可以退出系統(tǒng)。第5章 總結(jié)經(jīng)過了五個(gè)星期的課程設(shè)計(jì),在設(shè)計(jì)中我們遇到了很多編程問題,最后我努力攻克一個(gè)個(gè)

20、難關(guān),我做得是計(jì)算器的設(shè)計(jì)。測試階段中發(fā)現(xiàn)了幾處錯(cuò)誤導(dǎo)致程序不能編譯,去上網(wǎng)查找相關(guān)的資料, 又同學(xué)一起討論。通過耐心的分析源代碼終于編好了一個(gè)完整無誤的程序。在這次的c語言程序設(shè)計(jì)實(shí)習(xí)中遇到了現(xiàn)實(shí)編程中必然見到的問題通過這些問題的解決積累了編程的實(shí)踐經(jīng)驗(yàn)。在實(shí)際的編程操作中發(fā)現(xiàn)自己c語言知識(shí)的不足,加深了對(duì)c語言的理解。在學(xué)習(xí)之余體驗(yàn)到收獲的感覺.善于總結(jié),也是學(xué)習(xí)能力的一種體現(xiàn),每次完成一個(gè)編程任務(wù),完成一段代碼,都應(yīng)當(dāng)有目的的跟蹤該程序的應(yīng)用狀況,隨時(shí)總結(jié),找到自己的不足,這樣所編寫的程序才能逐步提高.課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要

21、環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握計(jì)算機(jī)開發(fā)技術(shù)是十分重要的。自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相我們把前面所學(xué)過的知識(shí)又重新溫故了一遍。通過這次課程設(shè)計(jì),我拓寬了知識(shí)面,鍛煉了能力,綜合素質(zhì)得到較大提高。安排課程設(shè)計(jì)的基本目的,在于通過理論

22、與實(shí)際的結(jié)合、人與人的溝通,進(jìn)一步提高思想覺悟。尤其是觀察、分析和解決問題的實(shí)際工作能力,以便培養(yǎng)成為能夠主動(dòng)適應(yīng)社會(huì)主義現(xiàn)代化建設(shè)需要的高素質(zhì)的復(fù)合型人才。作為整個(gè)學(xué)習(xí)體系的有機(jī)組成部分,課程設(shè)計(jì)雖然安排在一周進(jìn)行,但并不具有絕對(duì)獨(dú)立的意義。它的一個(gè)重要功能,在于運(yùn)用學(xué)習(xí)成果,檢驗(yàn)學(xué)習(xí)成果。運(yùn)用學(xué)習(xí)成果,把課堂上學(xué)到的系統(tǒng)化的理論知識(shí),嘗試性地應(yīng)用于實(shí)際設(shè)計(jì)工作,并從理論的高度對(duì)設(shè)計(jì)工作的現(xiàn)代化提出一些有針對(duì)性的建議和設(shè)想。檢驗(yàn)學(xué)習(xí)成果,看一看課堂學(xué)習(xí)與實(shí)際工作到底有多大距離,并通過綜合分析,找出學(xué)習(xí)中存在的不足,以便為完善學(xué)習(xí)計(jì)劃,改變學(xué)習(xí)內(nèi)容與方法提供實(shí)踐依據(jù)。而這種實(shí)際能力的培養(yǎng)單靠課

23、堂教學(xué)是遠(yuǎn)遠(yuǎn)不夠的,必須從課堂走向?qū)嵺`。通過課程設(shè)計(jì),讓我們找出自身狀況與實(shí)際需要的差距,并在以后的學(xué)習(xí)期間及時(shí)補(bǔ)充相關(guān)知識(shí),為求職與正式工作做好充分的知識(shí)、能力準(zhǔn)備,從而縮短從校園走向社會(huì)的心理轉(zhuǎn)型期。課程設(shè)計(jì)促進(jìn)了我系人才培養(yǎng)計(jì)劃的完善和課程設(shè)置的調(diào)整。近年來,我系為適應(yīng)學(xué)生的實(shí)踐需要陸續(xù)增設(shè)與調(diào)整了一系列課程,受到同學(xué)的歡迎,其中這次的設(shè)計(jì)很受同學(xué)們的喜歡。課程設(shè)計(jì)達(dá)到了專業(yè)學(xué)習(xí)的預(yù)期目的。在一個(gè)星期的課程設(shè)計(jì)之后,我感到不僅實(shí)際動(dòng)手能力有所提高,更重要的是通過對(duì)C語言的了解,進(jìn)一步激發(fā)了我對(duì)C語言的興趣。 5.1獨(dú)特設(shè)計(jì)可以在指定位置顯示出所輸入的數(shù)據(jù)以及對(duì)數(shù)據(jù)所進(jìn)行的操作,從而使是使

24、用者不但可以看到運(yùn)算結(jié)果,而且也能看到原始數(shù)據(jù)和操作。除此之外,為了增加畫面的美觀性,我又在計(jì)算器左邊畫了一幅圖畫,很生動(dòng)。5.2致謝詞致謝詞感謝劉老師五周來的辛勤指導(dǎo),每當(dāng)我們遇到難題時(shí)您都能隨時(shí)幫我們很好的解決,并且告訴我們?yōu)槭裁催@樣改,指導(dǎo)得很詳細(xì),很認(rèn)真。您使我們知道了C語言程序設(shè)計(jì) 的趣味性。5.3主要參考文獻(xiàn):C語言繪圖與計(jì)算機(jī)仿真技術(shù) 王強(qiáng)如 北京航空航天大學(xué)1科 欽.C語言程序設(shè)計(jì).北京:電子工業(yè)出版社,1987:56-58 2徐君毅.C語言程序設(shè)計(jì)基礎(chǔ).上海:復(fù)旦大學(xué)出版社,1992:87-983李成付.C語言程序設(shè)計(jì)基礎(chǔ).北京:科學(xué)出版社,1992:42-674郝玉潔.C語

25、言程序設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2000:63-885錢啟平.C語言程序設(shè)計(jì)基礎(chǔ).北京:中國鐵道出版社,2000:91-996李大友.C語言程序設(shè)計(jì)基礎(chǔ).北京:清華大學(xué)出版社,1999:58-987黃迪明.C語言程序設(shè)計(jì).北京:電子科技大學(xué)出版社,1998:78-988姜仲秋.C語言程序設(shè)計(jì)基礎(chǔ).南京:南京大學(xué)出版社,1998:16-1009李國昌.C語言程序設(shè)計(jì)基礎(chǔ).北京:科學(xué)出版社,1998:78-12010譚浩強(qiáng).C語言程序設(shè)計(jì).北京:清華大學(xué)出版社,2000:74-1295.4程序代碼:#include /*DOS接口函數(shù)*/#include /*數(shù)學(xué)函數(shù)的定義*/#include

26、/*屏幕操作函數(shù)*/#include /*I/O函數(shù)*/#include /*庫函數(shù)*/#include /*變量長度參數(shù)表*/#include /*圖形函數(shù)*/#include /*字符串函數(shù)*/#include /*字符操作函數(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 drawmat(char *mat,int matsize,int x,int y,in

27、t color)/*依次:字模指針、點(diǎn)陣大小、起始坐標(biāo)(x,y)、顏色*/ int i, j, k, n; n = (matsize - 1) / 8 + 1; for(j = 0; j matsize; j+) for(i = 0; i n; i+) for(k = 0;k k) /*測試為1的位則顯示*/ putpixel(x + i * 8 + k, y + j, color);void *rar; /*全局變量,保存光標(biāo)圖象*/int specialkey(void) ; /*獲取特殊鍵函數(shù)*/int arrow(); /*設(shè)置箭頭光標(biāo)函數(shù)*/main() float num1=0,n

28、um2=0,result; int x,y,x0=315,y0=160,i,j,v,m,n,act,t1=0,t2=0,cd=0,zj=0,zj1=0,num=0,cd1=0,a25; int flag1,flag2=1,flag3=1,flag4=1,flag5=1,flag6=1; char str25=,temp20=,c,str310=,str410=,str520=,str720=; char str1=A,1,2,3,4,5,6,7,B,8,9,=,+,-,*,/,C, G,H,I,J,K,L,0,D,M,N,O,P,Q,.,$,E,R,S,T,U, V,(,F,W,X,Y,Z,&

29、,),|; char lin16S=/* 以下是 林 的 16點(diǎn)陣宋體 字模,32 byte */ 0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20, 0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70, 0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26, 0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20,;char peng16S=/* 以下是 彭 的 16點(diǎn)陣宋體 字模,32 byte */ 0x08,0x00,0x08,0x08,0xFF,0x8C,0x08,0x10,

30、0x7F,0x20,0x00,0x48,0x7F,0x0C,0x41,0x10, 0x7F,0x20,0x42,0x44,0x22,0x06,0x14,0x0C, 0x07,0x98,0xF8,0x20,0x40,0x40,0x00,0x00,;char dong16S=/* 以下是 東 的 16點(diǎn)陣宋體 字模,32 byte */ 0x02,0x00,0x02,0x00,0x7F,0xFC,0x04,0x00, 0x08,0x80,0x08,0x80,0x10,0x80,0x1F,0xF8, 0x00,0x80,0x08,0xA0,0x0C,0x90,0x18,0x88, 0x10,0x8C

31、,0x22,0x84,0x01,0x80,0x00,0x80,;char de24F=/* 以下是 的 的 24點(diǎn)陣方正舒體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x40,0x00,0x70,0xC0,0x00,0xF1,0x80, 0x01,0xC1,0x00,0x03,0x82,0x00,0x07,0x06, 0x18,0x0E,0x05,0xFC,0x0C,0x79,0xCC,0x1A, 0xF0,0x04,0x37,0x9

32、2,0x04,0x26,0x1B,0x84, 0x05,0x9B,0x84,0x07,0x91,0x04,0x07,0x10, 0x04,0x06,0x10,0x08,0x03,0xE0,0x08,0x03, 0xE0,0x30,0x00,0x00,0x60,0x00,0x00,0x00,;char ji16S=/* 以下是 計(jì) 的 16點(diǎn)陣宋體 字模,32 byte */ 0x40,0x20,0x20,0x20,0x30,0x20,0x20,0x20, 0x00,0x20,0xF3,0xFE,0x10,0x20,0x10,0x20, 0x10,0x20,0x10,0x20,0x10,0x20

33、,0x12,0x20, 0x14,0x20,0x18,0x20,0x10,0x20,0x00,0x20,;char suan16S=/* 以下是 算 的 16點(diǎn)陣宋體 字模,32 byte */ 0x40,0x40,0x7E,0x7E,0x48,0x90,0xBF,0xF8, 0x20,0x10,0x3F,0xF0,0x20,0x10,0x3F,0xF0, 0x20,0x10,0x3F,0xF0,0x08,0x40,0xFF,0xFE, 0x08,0x40,0x10,0x40,0x10,0x40,0x20,0x40,;char qi16S=/* 以下是 器 的 16點(diǎn)陣宋體 字模,32 byt

34、e */ 0x3E,0x7C,0x22,0x44,0x22,0x44,0x3E,0x7C, 0x01,0x10,0x01,0x08,0xFF,0xFC,0x06,0xC0, 0x18,0x30,0xE0,0x0E,0x3E,0xFC,0x22,0x88, 0x22,0x88,0x22,0x88,0x3E,0xF8,0x00,0x00,;char shi24S=/* 以下是 石 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0C,0x3F,0xFF,0xF0,0x00, 0x20,

35、0x00,0x00,0x60,0x00,0x00,0x40,0x00, 0x00,0xC0,0x00,0x00,0x80,0x00,0x01,0x80, 0x00,0x01,0x80,0x30,0x02,0xFF,0xE0,0x04, 0x80,0x20,0x08,0x80,0x20,0x10,0x80,0x20, 0x20,0x80,0x20,0x40,0x80,0x20,0x00,0x80, 0x20,0x00,0x80,0x20,0x00,0xFF,0xE0,0x00, 0x80,0x20,0x00,0x80,0x00,0x00,0x00,0x00,;char jia24S=/* 以下是

36、 家 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38, 0x00,0x00,0x18,0x00,0x00,0x08,0x08,0x1F, 0xF7,0xFC,0x18,0x00,0x10,0x30,0x00,0x60, 0x07,0xFF,0xE0,0x00,0x60,0x00,0x00,0xE0, 0x60,0x01,0x90,0xE0,0x06,0x39,0x00,0x18, 0x6F,0x00,0x00,0xC5,0x00,0x01,0x0C,0x80, 0x06,0x16,0x40,0x18,0x26,0x6

37、0,0x00,0xC6, 0x30,0x01,0x06,0x1E,0x06,0x06,0x08,0x18, 0x6C,0x00,0x20,0x18,0x00,0x00,0x00,0x00,;char zhuang24S=/* 以下是 莊 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x18, 0x00,0x00,0x08,0x00,0x00,0x08,0x08,0x0F, 0xFF,0xFC,0x08,0x0C,0x00,0x08,0x04,0x00, 0x08,0x04,0x00,0x08,0x04,0x00,0x08,

38、0x04, 0x00,0x08,0x04,0x00,0x08,0x04,0x30,0x09, 0xFF,0xC0,0x08,0x04,0x00,0x18,0x04,0x00, 0x10,0x04,0x00,0x10,0x04,0x00,0x10,0x04, 0x00,0x20,0x04,0x00,0x20,0x04,0x0C,0x4F, 0xFF,0xFE,0x40,0x00,0x00,0x00,0x00,0x00,;char tie24S=/* 以下是 鐵 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x01, 0x80

39、,0x0C,0x01,0x00,0x08,0x1D,0x00,0x08, 0xD9,0x00,0x1F,0x11,0x08,0x10,0x1F,0xFC, 0x10,0x11,0x00,0x3F,0xA1,0x00,0x44,0x61, 0x00,0x04,0x41,0x00,0x04,0x01,0x0C,0x04, 0xFF,0xF0,0x3F,0x03,0x80,0x04,0x02,0x80, 0x04,0x02,0x40,0x04,0x46,0x40,0x04,0x8C, 0x20,0x07,0x08,0x30,0x0E,0x10,0x18,0x04, 0x60,0x0E,0x00,0x

40、80,0x00,0x00,0x00,0x00,;char dao24S=/* 以下是 道 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10, 0x60,0x0C,0x18,0x40,0x0C,0x08,0x80,0x04, 0x08,0x8C,0x00,0xF7,0x70,0x00,0x02,0x00, 0x04,0x24,0x10,0x7E,0x3B,0xF0,0x04,0x20, 0x30,0x04,0x20,0x30,0x04,0x3F,0xF0,0x04, 0x20,0x30,0x04,0x20,0x30,0x

41、04,0x3F,0xF0, 0x04,0x20,0x30,0x04,0x20,0x30,0x0C,0x3F, 0xF0,0x33,0x20,0x00,0x20,0xC0,0x00,0x00, 0x7F,0xFC,0x00,0x01,0xF8,0x00,0x00,0x00,;char da24S=/* 以下是 大 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, 0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00, 0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x0

42、C, 0x3F,0xFF,0xFE,0x00,0x10,0x00,0x00,0x18, 0x00,0x00,0x18,0x00,0x00,0x34,0x00,0x00, 0x34,0x00,0x00,0x22,0x00,0x00,0x22,0x00, 0x00,0x41,0x00,0x00,0xC1,0x80,0x00,0x80, 0xC0,0x01,0x00,0x60,0x02,0x00,0x38,0x0C, 0x00,0x1C,0x30,0x00,0x08,0x00,0x00,0x00,;char xue24S=/* 以下是 學(xué) 的 24點(diǎn)陣宋體 字模,72 byte */ 0x00,0x

43、00,0x00,0x00,0x00,0x00,0x04,0x20, 0x60,0x02,0x10,0x40,0x03,0x18,0xC0,0x01, 0x18,0x80,0x01,0x11,0x00,0x10,0x02,0x0C, 0x1F,0xFD,0xFE,0x10,0x00,0x18,0x30,0x00, 0xA0,0x27,0xFF,0xC0,0x00,0x03,0x00,0x00, 0x04,0x00,0x00,0x18,0x00,0x00,0x18,0x18, 0x3F,0xFF,0xE0,0x00,0x18,0x00,0x00,0x18, 0x00,0x00,0x18,0x00,

44、0x00,0x18,0x00,0x00, 0xF8,0x00,0x00,0x30,0x00,0x00,0x00,0x00,; int sj1=50,250,250,250,150,175,50,250,sj2=145,285,155,285,150,275,145,285; int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); /*初始化*/ drawmat(lin16S, 16, 425, 22,10); /*輸出 林 */ drawmat(peng16S, 16, 385, 22,10);/*輸出 彭*/ dr

45、awmat(dong16S, 16, 405, 22,10);/*輸出 東 */ drawmat(de24F, 24, 440, 13,1);/*輸出 的 */ drawmat(ji16S, 16, 465, 22,4);/*輸出 計(jì) */ drawmat(suan16S, 16, 485, 22,4);/*輸出 算 */ drawmat(qi16S, 16, 505, 22,4);/*輸出 器*/ drawmat(shi24S, 24, 65, 22,15);/*輸出 石*/ drawmat(jia24S, 24, 90, 22,15);/*輸出 家*/ drawmat(zhuang24S,

46、 24, 115, 22,15);/*輸出 莊*/ drawmat(tie24S, 24, 140, 22,15);/*輸出 鐵*/ drawmat(dao24S, 24, 165, 22,15);/*輸出 道*/ drawmat(da24S, 24, 190, 22,15);/*輸出 大*/ drawmat(xue24S, 24, 215, 22,15);/*輸出 學(xué)*/ setcolor(0); /*繪畫*/ setlinestyle(0,0,3); setfillstyle(1,13); sector(150,250,0,360,100,200); setfillstyle(1,2);

47、setcolor(2); fillpoly(4,sj1); setcolor(4); setfillstyle(1,6); pieslice(150,250,180,360,80); setfillstyle(1,15); line(105,255,125,255); line(175,255,195,255); pieslice(115,265,0,360,5); pieslice(185,265,0,360,5); fillpoly(4,sj2); ellipse(150,295,180,360,12,7);setlinestyle(0,0,3); /*標(biāo)題*/settextstyle(4

48、,0,8);setbkcolor(3);setcolor(5);setfillstyle(5,9);bar3d(280,120,630,440,5,3); /*鍵盤外框 三維*/setlinestyle(0,0,1);setfillstyle(1,8);bar3d(290,130,620,430,5,1); /*鍵盤內(nèi)框 三維*/setcolor(2); /*綠色*/setfillstyle(1,7); /*畫按鈕輪廓 三維*/bar3d(300,140,330,180,2,1);bar3d(340,140,370,180,2,1);bar3d(380,140,410,180,2,1);bar

49、3d(420,140,450,180,2,1);bar3d(460,140,490,180,2,1);bar3d(500,140,530,180,2,1);bar3d(540,140,570,180,2,1);bar3d(580,140,610,180,2,1);bar3d(300,185,330,225,2,1);bar3d(340,185,370,225,2,1);bar3d(380,185,410,225,2,1);bar3d(420,185,450,225,2,1);bar3d(460,185,490,225,2,1);bar3d(500,185,530,225,2,1);bar3d(

50、540,185,570,225,2,1);bar3d(580,185,610,225,2,1);bar3d(300,235,330,275,2,1);bar3d(340,235,370,275,2,1);bar3d(380,235,410,275,2,1);bar3d(420,235,450,275,2,1);bar3d(460,235,490,275,2,1);bar3d(500,235,530,275,2,1);bar3d(540,235,570,275,2,1);bar3d(580,235,610,275,2,1);bar3d(300,285,330,325,2,1);bar3d(340,285,370,325,2,1);bar3d(380,285,410,325,2,1);bar3d(420,285,450,325

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論