版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單 位: 電氣與電子工程 分院(系)</p><p> 專 業(yè): 電氣信息類 </p><p> 學 號: </p><p> 學生姓名: </p><p> 指導教師: </p
2、><p> 完成日期: 2012年9月13日</p><p><b> 摘 要</b></p><p> 課程設計語言類課程的指導思想:使學生通過學習高級編程語言的知識、編程技術和基本算法,掌握課程設計的思想和方法,具備利用計算機求解實際問題的能力,能靈活運用高級語言進行程序設計。</p><p> 我的課程設計正
3、是利用C語言在Visual C++ 6.0的環(huán)境下調(diào)試運行設計并實現(xiàn)了該課程設計中的簡單計算器的設計。</p><p> 學習生活中,無可避免的總是會遇到一些數(shù)目較大數(shù)據(jù)繁雜的數(shù)值運算,徒手運算起來很困難,這時候我們就必須用到計算器。人們對計算的要求不斷提高,僅能進行四則運算的普通的功能的計算工具已經(jīng)不能滿足需要,需要一種能進行多種計算?,F(xiàn)在已經(jīng)有一些功能較為強大、涵蓋面較廣的計算軟件,而且各種平臺的小工具仍不
4、斷出現(xiàn)。這些大大方便了我們的生活給我們更多的選擇和實現(xiàn)方式。本程序的編寫基礎是本程序?qū)崿F(xiàn)算術運算、函數(shù)運算、進制之間的轉(zhuǎn)換功能。它可以直接輸入數(shù)字,不需要任何轉(zhuǎn)換,就可以直接輸出運算的結果。但是,每次只能運算一個表達式,根據(jù)提示可以再計算下一組式子,還是比較方便的。</p><p> 關鍵詞: C語言課程設計 基本算術運算 函數(shù)運算 進制轉(zhuǎn)換 高級編程語言 計算器</p>
5、;<p><b> 目錄</b></p><p> 第1章 選題的意義……………………………………………………………… 4</p><p> 1.1 C語言課程設計的意義 ……………………………………………… 4</p><p> 1.2 簡單計算器設計的意義……………………………………………… 4</p>
6、<p> 第2章 系統(tǒng)功能需求分析 ……………………………………………………… 5</p><p> 2.1系統(tǒng)的基本要求 ……………………………………………………… 5</p><p> 2.2 功能設計……………………………………………………………… 5</p><p> 第3章 系統(tǒng)設計 …………………………………………………………………
7、6</p><p> 3.1 設計思路 ………………………………………………………………6</p><p> 3.2 程序流程圖 ……………………………………………………………6</p><p> 第4章 系統(tǒng)實現(xiàn) ………………………………………………………………… 7</p><p> 4.1源程序 …………………………………………
8、………………………7</p><p> 第5章 總結 ……………………………………………………………………… 8</p><p><b> 第1章 選題的意義</b></p><p> 1.1、C語言課程設計的意義</p><p> 通過本項課程設計,可以培養(yǎng)獨立思考、 綜合運用所學有關相應知識的能力,能更好的鞏
9、固《C語言程序設計》課程學習的內(nèi)容,掌握 工程軟件設計的基本方法,強化上機動手編程能力,闖過理論與實踐相結合的難關!更加了解了c語言的好處和其可用性!同時增加了同學之間的團隊合作精神!更加也體會到以后在工作中團隊合作的重要性和必要性!</p><p> 通過C語言課程設計,使學生了解高級程序設計語言的結構,掌握基本的程序設計過程和技巧,掌握基本的分析問題和利用計算機求解問題的能力,具備初步的高級語言程序設計能力
10、。為后續(xù)各門計算機課程的學習和畢業(yè)設計打下堅實基礎。</p><p> 1.2 、簡單計算器設計的意義</p><p> 本題目的內(nèi)容是設計一個簡單的計算器。</p><p> 通過對程序的設計,可以對C程序中的數(shù)組·函數(shù)·分支·循環(huán)·文件等內(nèi)容有更深入的理解與運用。</p><p> 設計程序
11、的過程中,通過已有知識的運用和獨立完成與思考,能夠做到對知識的整體理解。通過解決設計過程中遇到的問題,能夠提高設計程序的熟練度,并對知識有鞏固作用。</p><p> 另外,所選題目與自己的興趣有關。編程之中不僅能提高題目涉及到的內(nèi)容的興趣,更主要在于能夠?qū)語言更加感興趣。</p><p> 第2章 系統(tǒng)功能需求分析</p><p> 2.1、系統(tǒng)的基本要求
12、</p><p> 要求能夠?qū)崿F(xiàn)算術運算、函數(shù)運算、進制之間的轉(zhuǎn)換功能。</p><p> 算術運算功能。能夠?qū)崿F(xiàn)+、-、*、/、mod、and、or、xor、not、int運算。</p><p> 函數(shù)運算功能。能夠?qū)崿F(xiàn)exp、ln、sin、x^y、log、cos、x^3、n!、tan、x^2、1/x、avg、sum、dat等運算。</p>&
13、lt;p> 進制之間的轉(zhuǎn)換功能。能夠?qū)崿F(xiàn)十六、十、二、八進制數(shù)據(jù)之間的轉(zhuǎn)換。</p><p><b> 2.2、功能設計</b></p><p> 本程序要完成如下幾項功能:</p><p> 在程序之中加入足夠的操作提醒環(huán)節(jié),使得使用者能夠清楚的掌握操作流程和界面。</p><p> 程序中分類完成+、
14、-、*、/、x^y、求余、x為底y的對數(shù)、求平均,sin、cos、tan、exp、ln、以10為底的對數(shù)、取整、平方、立方、絕對值,進制之間的轉(zhuǎn)換;使用者可以根據(jù)個人的需要在提示后輸入相應的代碼,然后進行相應的運算,最后在運算結果中查找自己需要的即可;如需做多步驟運算,只要在上一次運算結束后按照提示輸入相應代碼即可選擇是繼續(xù)進行運算還是退出程序,操作簡便。</p><p><b> 第3章 系統(tǒng)設計&
15、lt;/b></p><p><b> 3.1、設計思路</b></p><p> 簡單計算器的設計的程序中主要調(diào)用的函數(shù)有:數(shù)學函數(shù)的定義和I/O函數(shù);設計思路和理念在于一切追求簡便易操作原理,通過個人的構思和設計以及調(diào)試運行設計出這一款簡單的計算器。</p><p> 程序的開始首先提示使用者“是否開始?” 如果不需要開始,則可
16、按任意鍵后回車,程序退出;如需開始,輸入“y”或“Y”后,系統(tǒng)將會提示使用者選擇所需計算的類型(如圖):</p><p> 只需按照相應的提示輸入代碼,即可進入到下一步運算。</p><p> 下面以十進制轉(zhuǎn)換八進制、十六進制為例,做進一步說明:</p><p> 首先,輸入代碼:“2”,跳轉(zhuǎn)到如下界面:</p><p> 接著,輸入
17、代碼:“10”,進行到下一界面;</p><p> 最后,只需輸入相應的十進制數(shù)后回車即可得到相應的結果</p><p> 3.2、程序流程圖</p><p><b> 第4章 系統(tǒng)實現(xiàn)</b></p><p><b> 4.1、源程序</b></p><p>
18、#include<stdio.h></p><p> #include<math.h></p><p> void main()</p><p><b> {</b></p><p> char command_begin;//開始字符</p><p><b&
19、gt; int flag;</b></p><p><b> int act;</b></p><p><b> int i;</b></p><p> double first_number;</p><p> double second_number;</p>
20、<p> double value_jia,value_jian,value_cheng,value_chu,value_pingjun;</p><p> double value_mi,value_yu,value_duishu;</p><p> double value_sin,value_cos,value_tan;</p><p>
21、double value_exp,value_ln,value_log;</p><p> double value_floor,value_n,value_2,value_3,value_daoshu,value_fabs;</p><p> printf("***************************簡單計算器**************************
22、******\n");</p><p> printf("在'>'提示后輸入一個命令字符\n");</p><p> printf("是否開始?(Y/N)>");</p><p> scanf("%c",&command_begin);</p>
23、<p> while(command_begin=='Y'||command_begin=='y')</p><p> {//當接收Y/y命令時執(zhí)行計算器程序</p><p> printf("進行+、-、*、/、x^y、求余、x為底y的對數(shù)、求平均,請輸入1;\n進行sin、cos、tan、exp、ln、以10為底的對數(shù)、取整
24、、平方、立方、絕對值,請輸入0;\n進制之間的轉(zhuǎn)換請輸入2;\n請輸入0、1或2:");</p><p> scanf("%d",&flag);</p><p> if(flag==1)</p><p> {printf("請輸入兩個數(shù)字,中間用任意符號隔開:\n");</p><p
25、> scanf("%lf%lf",&first_number,&second_number);</p><p> if(second_number==0)</p><p><b> {</b></p><p> value_jia=first_number+second_number;//加法&
26、lt;/p><p> printf("兩數(shù)之和:%lf\n",value_jia);</p><p> value_pingjun=value_jia/2;//求平均</p><p> printf("平均數(shù)是:%lf\n",value_pingjun);</p><p> value_jian=f
27、irst_number-second_number;//減法</p><p> printf("兩數(shù)之差:%lf\n",value_jian);</p><p> value_cheng=first_number*second_number;//乘法</p><p> printf("兩數(shù)之積:%lf\n",value_
28、cheng);</p><p> printf("兩數(shù)之商:除數(shù)不能為零,如果需要求商,請重新輸入:\n");//除法</p><p> value_mi=pow(first_number,second_number);//冪次</p><p> printf("x的y次冪:%lf\n",value_mi);</p
29、><p> printf("取余為:除數(shù)不能為零,如果需要求余,請重新輸入:\n");//取余</p><p> printf("以x為底y的對數(shù)為:計算結果趨于無窮,無法顯示:\n");//x為底y的對數(shù)</p><p><b> }</b></p><p><b>
30、 else</b></p><p><b> {</b></p><p> value_jia=first_number+second_number;//加法</p><p> printf("兩數(shù)之和:%lf\n",value_jia);</p><p> value_ping
31、jun=value_jia/2;//求平均</p><p> printf("平均數(shù)是:%lf\n",value_pingjun);</p><p> value_jian=first_number-second_number;//減法</p><p> printf("兩數(shù)之差:%lf\n",value_jian);&
32、lt;/p><p> value_cheng=first_number*second_number;//乘法</p><p> printf("兩數(shù)之積:%lf\n",value_cheng);</p><p> value_chu=first_number/second_number;//除法</p><p> pr
33、intf("兩數(shù)之商:%lf\n",value_chu);</p><p> value_mi=pow(first_number,second_number);//冪次</p><p> printf("x的y次冪:%lf\n",value_mi);</p><p> value_yu=fmod(first_number
34、,second_number);//取余</p><p> printf("取余為:%lf\n",value_yu);</p><p> value_duishu=(log10(second_number)/log10(first_number));//x為底y的對數(shù)</p><p> printf("以x為底y的對數(shù)為:%lf\
35、n",value_duishu);</p><p><b> }</b></p><p><b> }</b></p><p> if(flag==0)</p><p> {printf("請輸入一個數(shù)字:");</p><p> sc
36、anf("%lf",&first_number);</p><p> if(first_number>0)</p><p><b> { </b></p><p> value_sin=sin(first_number);//求sin</p><p> printf("
37、sin值:%lf\n",value_sin);</p><p> value_cos=cos(first_number);//求cos</p><p> printf("cos值:%lf\n",value_cos);</p><p> value_tan=tan(first_number);//求tan</p>&l
38、t;p> printf("tan值:%lf\n",value_tan);</p><p> value_exp=exp(first_number);//以e為底的指數(shù)</p><p> printf("exp值:%lf\n",value_exp);</p><p> value_ln=log(first_numb
39、er);//求ln</p><p> printf("ln值:%lf\n",value_ln);</p><p> value_log=log10(first_number);//以10為底的對數(shù)</p><p> printf("10為底的對數(shù):%lf\n",value_log);</p><p&g
40、t; value_floor=floor(first_number);//取整</p><p> printf("x取整:%lf\n",value_floor);</p><p> value_n=1;//求階乘</p><p> for(i=1;i<(first_number+1);i++)</p><p>
41、; value_n=value_n*i;</p><p> printf("n階乘:%lf\n",value_n);</p><p> value_2=pow(first_number,2);//求x的平方</p><p> printf("x的平方:%lf\n",value_2);</p><p&
42、gt; value_3=pow(first_number,3);//求x的立方</p><p> printf("x的立方:%lf\n",value_3);</p><p> value_daoshu=1/first_number;//求倒</p><p> printf("x的倒數(shù):%lf\n",value_daos
43、hu);</p><p> value_fabs=fabs(first_number);//求絕對值</p><p> printf("x的絕對值:%lf\n",value_fabs);</p><p><b> }</b></p><p> if(first_number==0)</p
44、><p><b> { </b></p><p> value_sin=sin(first_number);//求sin</p><p> printf("sin值:%lf\n",value_sin);</p><p> value_cos=cos(first_number);//求cos<
45、/p><p> printf("cos值:%lf\n",value_cos);</p><p> value_tan=tan(first_number);//求tan</p><p> printf("tan值:%lf\n",value_tan);</p><p> value_exp=exp(fi
46、rst_number);//以e為底的指數(shù)</p><p> printf("exp值:%lf\n",value_exp);</p><p> printf("ln值:計算結果趨于無窮,無法顯示:\n");//求ln</p><p> printf("10為底的對數(shù):計算結果趨于無窮,無法顯示:\n"
47、);//以10為底的對數(shù)</p><p> value_floor=floor(first_number);//取整</p><p> printf("x取整:%lf\n",value_floor);</p><p> value_n=1;//求階乘</p><p> for(i=1;i<(first_num
48、ber+1);i++)</p><p> value_n=value_n*i;</p><p> printf("n階乘:%lf\n",value_n);</p><p> value_2=pow(first_number,2);//求x的平方</p><p> printf("x的平方:%lf\n&qu
49、ot;,value_2);</p><p> value_3=pow(first_number,3);//求x的立方</p><p> printf("x的立方:%lf\n",value_3);</p><p> printf("x的倒數(shù):0不能求倒\n");//求倒</p><p> valu
50、e_fabs=fabs(first_number);//求絕對值</p><p> printf("x的絕對值:%lf\n",value_fabs);</p><p><b> }</b></p><p> if(first_number<0)</p><p> {value_sin=s
51、in(first_number);//求sin</p><p> printf("sin值:%lf\n",value_sin);</p><p> value_cos=cos(first_number);//求cos</p><p> printf("cos值:%lf\n",value_cos);</p>
52、<p> value_tan=tan(first_number);//求tan</p><p> printf("tan值:%lf\n",value_tan);</p><p> value_exp=exp(first_number);//以e為底的指數(shù)</p><p> printf("exp值:%lf\n"
53、;,value_exp);</p><p> printf("ln值:X不能小于0,請重新輸入:\n");//求ln</p><p> printf("10為底的對數(shù):Y不能小于0,請重新輸入:\n");//以10為底的對數(shù)</p><p> value_floor=floor(first_number);//取整<
54、;/p><p> printf("x取整:%lf\n",value_floor);</p><p> printf("n階乘:所輸入數(shù)字無法求階乘,請重新輸入:\n");//求階乘</p><p> value_2=pow(first_number,2);//求x的平方</p><p> print
55、f("x的平方:%lf\n",value_2);</p><p> value_3=pow(first_number,3);//求x的立方</p><p> printf("x的立方:%lf\n",value_3);</p><p> value_daoshu=1/first_number;//求倒</p>
56、<p> printf("x的倒數(shù):%lf\n",value_daoshu);</p><p> value_fabs=fabs(first_number);//求絕對值</p><p> printf("x的絕對值:%lf\n",value_fabs);</p><p><b> }</b
57、></p><p><b> }</b></p><p> if(flag==2)</p><p><b> lab:</b></p><p><b> {</b></p><p> printf("八進制轉(zhuǎn)換為其他進制請輸入8
58、,\n十進制轉(zhuǎn)換為其他進制請輸入10,\n十六進制轉(zhuǎn)換為其他進制請輸入16,\n請按照需要輸入8、10或16:");</p><p> scanf("%d",&act);</p><p> if(act==8)//八進制轉(zhuǎn)換為十進制、十六進制</p><p><b> {</b></p>
59、<p> printf("請輸入一個八進制數(shù)字:");</p><p> scanf("%o",&first_number);</p><p> printf("八進制%o 轉(zhuǎn)換為十進制%u 十六進制%x\n",first_number,first_number,first_number);<
60、/p><p><b> }</b></p><p> if(act==10)//十進制轉(zhuǎn)換為八進制、十六進制</p><p><b> {</b></p><p> printf("請輸入一個十進制數(shù)字:");</p><p> scanf(&quo
61、t;%d",&first_number);</p><p> printf("十進制%u 轉(zhuǎn)換為八進制%o 十六進制%x\n",first_number,first_number,first_number);</p><p><b> }</b></p><p> if(act==16)//十六
62、進制轉(zhuǎn)換為八進制、十進制</p><p><b> {</b></p><p> printf("請輸入一個十六進制數(shù)字:");</p><p> scanf("%x",&first_number);</p><p> printf("十六進制%x 轉(zhuǎn)換
63、為八進制%o 十進制%u\n",first_number,first_number,first_number);</p><p><b> }</b></p><p> if(act!=8&&act!=10&&act!=16)</p><p><b> {</b><
64、/p><p> printf("輸入有誤,請重新輸入\n");</p><p><b> goto lab;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf(&
65、quot;是否繼續(xù)運算?(Y/N)>");</p><p> fflush(stdin);//清空緩存區(qū)</p><p> scanf("%c",&command_begin);</p><p><b> }</b></p><p> printf("程序退出
66、!\n");</p><p><b> }</b></p><p><b> 第5章 總結</b></p><p> 通過課程設計,我學習到了許多內(nèi)容。首先是對已學過的內(nèi)容的一個深入理解??梢哉f,以前內(nèi)容學的不好的話,是很難完成這項工作的。其次,在程序編譯過程中,我遇到了許許多多的問題,這些問題大多數(shù)都是
67、小問題,主要是對問題思考的不夠全面的結果。但是在自己的反復檢查,實驗,以及老師的幫助下,這些問題都迎刃而解。在解決問題的過程中,我能夠了解到我設計中的不足之處。</p><p> 剛開始的時候,面對一張空空的程序編輯界面,一時之間還真沒有頭緒。但隨著思維的跟進,我將程序分為幾部分處理,用不同的函數(shù)實現(xiàn)不同的功能。這樣就將難點分散開來,逐一實現(xiàn)了加密與解密功能。</p><p> 程序設
68、計中沒遇到問題后,就要停下來仔細分析問題出處,及時修改。這就不免使設計過程變得有些乏味。這也正是設計程序的另一個目的,他在你設計過程中不經(jīng)意地考驗了你的耐心和恒心。只有能夠堅持到最后的人才能夠設計出出色的程序。</p><p> 程序編輯過程中,我也深深的感覺到了自己的不足,對已學過的知識是有所理解,也能夠合理地運用,但對邊角的內(nèi)容有所忽略,這也正是有時程序無法正常運行時不知錯在哪的原因。因此這讓我懂得了,學習
69、過程要仔細認真。</p><p> 最后,經(jīng)過許多天的設計過程,我終于完成了程序的全部內(nèi)容過程。經(jīng)過調(diào)試后,程序已經(jīng)能夠正常運行,并能實現(xiàn)全部功能??吹竭@么多天的成果,我感到一種成就感。</p><p> 程序設計讓我將以學過的知識綜合運用,我感覺編譯這種程序確實很有意思。因為它不僅考察一個人知識的掌握情況,也考驗遇到問題的分析能力,和自身的學習能力。所以我感覺課程設計很有用。<
70、/p><p><b> 附:主要參考文獻:</b></p><p> C語言課程設計(第四版) 譚浩強 清華大學出版社 2011年;</p><p> C語言從入門到精通 人民郵電大學出版社 2011年;</p><p> C語言課程設計案例精編 郭翠英
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡單計算器課程設計
- 簡單的計算器課程設計
- 課程設計---簡單的計算器
- 課程設計--簡單的計算器設計
- 課程設計--簡單計算器的設計
- 簡單的計算器課程設計
- 課程設計--簡單計算器的設計
- 簡單計算器課程設計報告
- vb課程設計--簡單計算器
- 簡單計算器課程設計報告
- c++課程設計--簡單計算器
- c++課程設計--簡單計算器
- vc++課程設計---簡單計算器的設計
- 匯編語言課程設計--簡單計算器設計
- c++簡單計算器課程設計報告
- 課程設計實驗報告--簡單的計算器設計
- c++課程設計報告--簡單計算器
- 單片機課程設計——簡單計算器的設計
- c語言簡單計算器的編寫課程設計
- 數(shù)據(jù)結構課程設計報告--簡單計算器
評論
0/150
提交評論