

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計報告</b></p><p> 題目:設(shè)計一個簡單計算器</p><p><b> 目 錄</b></p><p><b> 1.設(shè)計目的</b></p><p><b> 2.內(nèi)容</b><
2、/p><p> 3.總體設(shè)計(有流程圖)</p><p> 4.源程序編寫(附上了運行圖)</p><p><b> 5.執(zhí)行結(jié)果 </b></p><p><b> 6.心得體會</b></p><p><b> 設(shè)計目的</b></p&g
3、t;<p> 設(shè)計一個簡單計算器,在功能上功能盡量模擬windows操作系統(tǒng)中的計算器,系統(tǒng)界面不做強制要求。</p><p> 全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)、指針和文件的操作,把編程和實際結(jié)合起來,增強對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,
4、培養(yǎng)使用計算機解決實際問題的能力,規(guī)范編程思想,為以后在專業(yè)課程中應(yīng)用計算機系統(tǒng)解決計算、分析、實驗和設(shè)計等學習環(huán)節(jié)打下較扎實的基礎(chǔ)。</p><p><b> 內(nèi)容</b></p><p><b> 程序設(shè)計的一般步驟</b></p><p><b> 確定數(shù)據(jù)結(jié)構(gòu)</b></p>
5、<p><b> 確定算法</b></p><p><b> 編程</b></p><p><b> 調(diào)試</b></p><p><b> 總結(jié)資料</b></p><p><b> 2、基本要求</b>&l
6、t;/p><p> a.設(shè)計正確,方案合理,能實現(xiàn)相應(yīng)功能。</p><p> b.界面友好,使用方便。</p><p> c.程序精煉,結(jié)構(gòu)清晰。</p><p> d.設(shè)計報告含程序設(shè)計說明,用戶使用說明,源程序清單及程序框圖。</p><p><b> e.上機演示。</b></
7、p><p> 三、總體設(shè)計(程序設(shè)計組成框圖、流程圖)</p><p><b> 源程序編寫</b></p><p> #include<stdio.h></p><p> #include<math.h></p><p> #include<malloc.h&
8、gt;</p><p> double jisuan(char a[])</p><p><b> {</b></p><p> int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;</p><p> char nibo[50],zhan2[50];</p><p>
9、double x,n,l,z=0,zhan3[20];</p><p> typedef struct</p><p><b> {</b></p><p> double d1;</p><p><b> int d2;</b></p><p><b>
10、 }dd;</b></p><p> typedef struct</p><p><b> {</b></p><p> dd data[50];</p><p><b> int top;</b></p><p><b> }zhan1;&
11、lt;/b></p><p> zhan1 shu;</p><p> shu.top=0;</p><p> while(a[i]!='\0')</p><p><b> {</b></p><p> if(a[i]>='0'&&am
12、p;a[i]<='9')</p><p><b> {</b></p><p><b> z=0;</b></p><p><b> j=i+1;</b></p><p> while(a[j]>='0'&&a
13、[j]<='9')</p><p><b> {j++;}</b></p><p><b> j--;</b></p><p> for(k=i;k<=j;k++)</p><p><b> {</b></p><p>
14、; z=z*10+a[k]-'0';</p><p><b> }</b></p><p><b> j=j+1;</b></p><p><b> x=z;</b></p><p> if(a[j]=='.')</p>
15、<p><b> {</b></p><p><b> l=1;</b></p><p><b> i=j+1;</b></p><p><b> j=i+1;</b></p><p> while(a[j]>='0
16、9;&&a[j]<='9')</p><p><b> {j++;}</b></p><p><b> j--;</b></p><p> for(k=i;k<=j;k++)</p><p><b> {</b></p&
17、gt;<p> n=pow(0.1,l);</p><p><b> l=l+1;</b></p><p> x=x+n*(a[k]-'0');</p><p><b> }</b></p><p><b> i=j+1;</b><
18、/p><p><b> }</b></p><p><b> else i=j;</b></p><p> shu.data[++shu.top].d1=x;</p><p> shu.data[shu.top].d2=++cnt;</p><p> nibo[++t1
19、]='0'+shu.data[shu.top].d2;</p><p> nibo[t1+1]='\0';</p><p><b> }</b></p><p> else if(a[i]=='(')</p><p><b> {</b><
20、;/p><p> zhan2[++t2]=a[i];</p><p><b> i++;</b></p><p><b> }</b></p><p> else if(a[i]==')')</p><p><b> {</b>&l
21、t;/p><p><b> j=t2;</b></p><p> while(zhan2[j]!='(')</p><p><b> {</b></p><p> nibo[++t1]=zhan2[j];</p><p> nibo[t1+1]='
22、;\0';</p><p><b> j--;</b></p><p><b> }</b></p><p><b> t2=j-1;</b></p><p><b> i++;</b></p><p><b&
23、gt; }</b></p><p> else if(a[i]=='+')</p><p><b> {</b></p><p> while(t2>0&&zhan2[t2]!='(')</p><p><b> {</b>
24、</p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b></p><p><b> }</b></p><p> zhan2[++t2]=a[i]
25、;</p><p><b> i++;</b></p><p><b> }</b></p><p> else if(a[i]=='-')</p><p><b> {</b></p><p> if(a[i-1]=='
26、;$')</p><p><b> {</b></p><p><b> a[0]='0';</b></p><p><b> i=0;</b></p><p><b> }</b></p><p>
27、 else if(a[i-1]=='(')</p><p><b> {</b></p><p> a[i-1]='0';</p><p> a[i-2]='(';</p><p><b> i=i-2;\</b></p>&l
28、t;p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> while(t2>0&&zhan2[t2]!='(')</p><p><b> {
29、</b></p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b></p><p><b> }</b></p><p> zhan2[
30、++t2]=a[i];</p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(a[i]=='*'||a[i]=='/')</p>
31、;<p><b> {</b></p><p> while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='@')</p><p><b> {</b></p><p&g
32、t; nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b></p><p><b> }</b></p><p> zhan2[++t2]=a[i];</p><p&
33、gt;<b> i++;</b></p><p><b> }</b></p><p> else if(a[i]=='^'||a[i]=='@')</p><p><b> {</b></p><p> while(zhan2[t2]
34、=='^'||zhan2[t2]=='@')</p><p><b> {</b></p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b>&
35、lt;/p><p><b> }</b></p><p> zhan2[++t2]=a[i];</p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p
36、><p> while(t2>0)</p><p><b> {</b></p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b></p&g
37、t;<p><b> }</b></p><p><b> t1=1;</b></p><p> while(nibo[t1]!='\0')</p><p><b> {</b></p><p> if(nibo[t1]>='
38、;0'&&nibo[t1]<='9')</p><p><b> {</b></p><p> for(i=0;i<=shu.top;i++)</p><p><b> {</b></p><p> if(nibo[t1]-'0
39、39;==shu.data[i].d2)</p><p><b> {</b></p><p><b> m=i;</b></p><p><b> break;</b></p><p><b> }</b></p><p>
40、;<b> }</b></p><p> zhan3[++t3]=shu.data[m].d1;</p><p><b> }</b></p><p> else if(nibo[t1]=='+')</p><p><b> {</b></p&g
41、t;<p> zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];</p><p><b> t3--;</b></p><p><b> }</b></p><p> else if(nibo[t1]=='-')</p><p><b&g
42、t; {</b></p><p> zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];</p><p><b> t3--;</b></p><p><b> }</b></p><p> else if(nibo[t1]=='*')</
43、p><p><b> {</b></p><p> zhan3[t3-1]=zhan3[t3-1]*zhan3[t3];</p><p><b> t3--;</b></p><p><b> }</b></p><p> else if(nibo
44、[t1]=='/')</p><p><b> {</b></p><p> zhan3[t3-1]=zhan3[t3-1]/zhan3[t3];</p><p><b> t3--;</b></p><p><b> }</b></p>
45、<p> else if(nibo[t1]=='^')</p><p><b> {</b></p><p> zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);</p><p><b> t3--;</b></p><p><b&
46、gt; }</b></p><p> else if(nibo[t1]=='@')</p><p><b> {</b></p><p> zhan3[t3]=sqrt(zhan3[t3]);</p><p><b> }</b></p><
47、p><b> t1++;</b></p><p><b> }</b></p><p> return zhan3[1];</p><p><b> }</b></p><p> void main()</p><p><b>
48、 {</b></p><p><b> for(;;)</b></p><p><b> {</b></p><p> char x,a[50];</p><p> double jieguo;</p><p><b> int i=0;&l
49、t;/b></p><p><b> a[0]='$';</b></p><p> printf("@表示開方,^表示乘方\n");</p><p> printf("請輸入表達式,退出請輸入q:\n\n");</p><p> scanf("
50、;%c",&x);</p><p> if(x=='q') break;</p><p> while(x!='\n')</p><p><b> {</b></p><p><b> a[++i]=x;</b></p><
51、;p> scanf("%c",&x);</p><p><b> }</b></p><p> a[i+1]='\0';</p><p> jieguo=jisuan(a);</p><p> printf("\n");</p>
52、<p> printf("結(jié)果為:%lf",jieguo);</p><p> printf("\n\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> 執(zhí)行結(jié)果<
53、;/b></p><p><b> 1、輸入 5 4</b></p><p><b> 結(jié)果 9</b></p><p><b> 2、輸入 5 4 </b></p><p><b> 結(jié)果 1</b></p><p
54、><b> 3、輸入 5 4</b></p><p><b> 結(jié)果 20</b></p><p><b> 4、輸入 5 4</b></p><p><b> 結(jié)果 1</b></p><p><b> 圖例:</b&
55、gt;</p><p> 注:分別輸入5、4,分別進行加減乘除。結(jié)果運行成功。此圖為證明此程序運行0 error ,沒錯誤。</p><p><b> 六、心得體會</b></p><p> 計算機知識博大精深,很奧妙,學過c語言之后我知道我們平時用的那些應(yīng)用程序都是用各種計算機語言編寫的。這次通過老師布置的課程設(shè)計,我學會了更多的計算機
56、知識,覺得編程是一件很費腦細胞同時很有意思的一件事。</p><p> 我在編寫這次簡單計算器的程序過程中遇到很多困難,犯了很多錯,(例如:執(zhí)行結(jié)果部分沒有運算符),這也讓我意識到編寫c語言是需要耐心、細心和熱心去做的一件事情!最關(guān)鍵的是,這個程序是我們經(jīng)過一個暑假后的過程來編寫的,我發(fā)現(xiàn)很多知識都忘了,所以最關(guān)鍵的是我覺得編程就該持之以恒!</p><p> 這次的報告前前后后改了很
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--一個簡易計算器的設(shè)計與實現(xiàn)
- c語言課程設(shè)計--一個簡易計算器的設(shè)計與實現(xiàn)
- c語言簡單計算器的編寫課程設(shè)計
- c++簡單計算器課程設(shè)計報告
- c++課程設(shè)計報告--簡單計算器
- c語言課程設(shè)計--計算器
- c語言課程設(shè)計--計算器
- c++課程設(shè)計--簡單計算器
- 簡單計算器課程設(shè)計報告
- c++課程設(shè)計--簡單計算器
- 簡單計算器課程設(shè)計報告
- 編寫一個計算器程序課程設(shè)計報告-范例
- java課程設(shè)計報告---設(shè)計一個多功能計算器
- 匯編語言課程設(shè)計--簡單計算器設(shè)計
- 計算器java課程設(shè)計--簡單計算器
- c語言計算器的編寫課程設(shè)計
- 簡單計算器課程設(shè)計
- 簡單的計算器課程設(shè)計
- 課程設(shè)計---簡單的計算器
- 課程設(shè)計--簡單的計算器設(shè)計
評論
0/150
提交評論