版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C計算器課程設(shè)計</b></p><p><b> 目 錄</b></p><p> 課程設(shè)計內(nèi)容及要求. . . . . . . . . . . . . . . .5</p><p> 1.1內(nèi)容. . . . . . . . . . . . . . . . . . . . . . .
2、 . . . . . . .5</p><p> 1.2要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5</p><p> 系統(tǒng)設(shè)計流程圖. . . . . . . . . . . . . . . . . 6</p><p> 2.1系統(tǒng)流程圖. . . . . . . . . . .
3、 . . . . . . . . . . . . .6</p><p> 2.2主要功能表. . . . . . . . . . . . . . . . . . . . . . . .7</p><p> 系統(tǒng)測試. . . . . . . . . . . . . . . . . . . . . . . .8</p><p> 3.1系統(tǒng)測試. . . . .
4、 . . . . . . . . . . . . . . . . . . . . .8</p><p> 3.2調(diào)試. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9</p><p> 使用. . . . . . . . . . . . . . . . . . . . . . . . . . .11</p>
5、;<p> 4.1運行程序進入計算器界面. . . . . . . . . ...11</p><p> 課程設(shè)計心得. . . . . . . . . . . . . . . . ....12</p><p> 第1章 課程設(shè)計內(nèi)容及要求</p><p><b> 1.1 內(nèi)容</b></p><
6、p> 編寫C語言程序,設(shè)計一個簡單計算器</p><p><b> 1.2 要求</b></p><p> 運用相關(guān)知識,查閱相關(guān)資料,編寫一個簡單的計算器。</p><p> 第2章系統(tǒng)設(shè)計流程圖</p><p><b> 2.1系統(tǒng)流程圖</b></p><
7、;p> 2.1 系統(tǒng)流程圖</p><p><b> 2.2主要功能表</b></p><p> 2.2 主要功能表</p><p><b> 第3章系統(tǒng)測試</b></p><p> 程序的調(diào)試是指對程序的差錯和排錯,為了便于差錯、閱讀,在設(shè)計該程序的過程中我們采用了結(jié)構(gòu)化程
8、序方法編輯,添加了盡可能多的注釋,這就為接下來的調(diào)試過程帶來了很多方便。</p><p> 經(jīng)過仔細(xì)檢查之后進行上機調(diào)試。進行編譯,如果在編譯和連接過程中發(fā)現(xiàn)錯誤,屏幕上顯示了出錯信息,根據(jù)提示找到出錯的位置,加以改正,在進行編譯……如此反復(fù),直到順利通過編譯和連接為止。在本次實習(xí)過程中碰到的編譯、連接的錯誤主要有:缺少變量定義、定義為置不正確、語法錯誤、轉(zhuǎn)義字符漏用、邏輯錯誤等。</p><
9、;p><b> 3.1系統(tǒng)測試</b></p><p><b> 系統(tǒng)測試結(jié)果如下:</b></p><p><b> 3.2調(diào)試</b></p><p> 根據(jù)電腦所給的提示出現(xiàn)語法錯誤,缺少變量的定義大多的語法錯誤在通過書本參考下能夠修改。主要是平時看書不仔細(xì)、不太注意而產(chǎn)生的,如沒
10、有注意具體數(shù)據(jù)使用是有一定的范圍限定;過分重視分號的重要性而在for、if、while語句中畫蛇添足加分號;在使用文件的時候忘記將文件先打開,對打開的方式與使用的情況不太注意而造成不匹配;還有漏掉形參的定義是值不能傳遞等等。這些語法錯誤有信息框的提示一般是能夠排除的。另外還有部分注釋的位置也錯了,最重要的是邏輯上的錯誤,一般電腦不容易發(fā)現(xiàn)。所以更對程序仔細(xì)的檢查。經(jīng)認(rèn)真修改之后重新保存文件。</p><p>&l
11、t;b> 第4章 使用</b></p><p> 4.1運行程序進入計算器界面</p><p><b> 打開軟件</b></p><p><b> 進入界面</b></p><p><b> 運行結(jié)果</b></p><p&g
12、t; 第5章 課程設(shè)計心得</p><p> 用C語言來編程的技巧,以及對C也有了更加深刻的認(rèn)識。</p><p> 我希望在以后的學(xué)習(xí)中能有更多這樣的機會,讓我們能夠進行實踐操作,從而在實際操作中不斷提高我們的綜合能力。</p><p><b> 源代碼:</b></p><p> #include<s
13、tdio.h></p><p> #include<math.h></p><p> #include<malloc.h> </p><p> double jisuan(char a[])</p><p><b> {</b></p><p>
14、int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0; </p><p> char nibo[50],zhan2[50]; double x,n,l,z=0,zhan3[50];
15、 </p><p> typedef struct {</p><p> double d1;</p><p><b> int d2;</b></p><p>&l
16、t;b> }dd;</b></p><p> typedef struct </p><p><b> {</b></p><p> dd data[50];</p><p><b> int top;</b></p><p><
17、b> }zhan1;</b></p><p> zhan1 *shu; shu=(zhan1 *)malloc(sizeof(zhan1));</p><p> shu->top=0;</p><p> while(a[
18、i]!='\0') </p><p><b> {</b></p><p> if(a[i]>='0'&&a[i]<='9')
19、 {</p><p><b> z=0;</b></p><p><b> j=i+1;</b></p><p> while(a[j]>='0'&&a[j]<='9')
20、 </p><p><b> {j++;}</b></p><p><b> j--;</b></p><p> for(k=i;k<=j;k++)</p><p><b> {</b></p><
21、p> 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&g
22、t;<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]>='
23、0'&&a[j]<='9') </p><p><b> {j++;}</b></p><p><b> j--;</b></p><p> for(k=i;k<=j;k++)&l
24、t;/p><p><b> {</b></p><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><
25、/p><p><b> i=j+1;</b></p><p> } </p><p><b> else i=j;</b></p><p> shu->data[++shu->top].d1=x;</p><p> shu->d
26、ata[shu->top].d2=++cnt;</p><p> nibo[++t1]='0'+shu->data[shu->top].d2;</p><p> nibo[t1+1]='\0';</p><p><b> }</b></p><p> else i
27、f(a[i]=='(')</p><p><b> {</b></p><p> zhan2[++t2]=a[i];</p><p><b> i++;</b></p><p><b> }</b></p><p> else
28、if(a[i]==')')</p><p><b> {</b></p><p><b> j=t2;</b></p><p> while(zhan2[j]!='(')</p><p><b> {</b></p><
29、;p> nibo[++t1]=zhan2[j];</p><p> nibo[t1+1]='\0';</p><p><b> j--;</b></p><p><b> }</b></p><p><b> t2=j-1;</b></p&
30、gt;<p><b> i++;</b></p><p><b> }</b></p><p> else if(a[i]=='+') {</p><p>
31、 while(t2>0&&zhan2[t2]!='(') </p><p><b> {</b></p><p> nibo[++t1]=zhan2[t2];
32、 </p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b></p><p><b> }</b></p><p> zhan2[++t2]=a[i];</p><p><b> i
33、++;</b></p><p><b> }</b></p><p> else if(a[i]=='-') </p><p><b> {</b></
34、p><p> if(a[i-1]=='$')</p><p><b> {</b></p><p><b> a[0]='0';</b></p><p><b> i=0;</b></p><p><b>
35、 }</b></p><p> else if(a[i-1]=='(')</p><p><b> {</b></p><p> a[i-1]='0';</p><p> a[i-2]='(';</p><p><b>
36、 i=i-2;</b></p><p><b> t2--;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
37、while(t2>0&&zhan2[t2]!='(') {</p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b>&
38、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
39、><p> else if(a[i]=='*'||a[i]=='/') {</p><p> while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='#
40、9;) {</p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p><b> t2--;</b></p><p><b> }</b></p><p> zha
41、n2[++t2]=a[i];</p><p><b> i++;</b></p><p><b> }</b></p><p> else if(a[i]=='^'||a[i]=='#') {</p><p> whil
42、e(zhan2[t2]=='^'||zhan2[t2]=='#') </p><p><b> {</b></p><p> nibo[++t1]=zhan2[t2];</p><p> nibo[t1+1]='\0';</p><p>&l
43、t;b> t2--;</b></p><p><b> }</b></p><p> zhan2[++t2]=a[i];</p><p><b> i++;</b></p><p><b> }</b></p><p><
44、;b> }</b></p><p> while(t2>0)</p><p><b> {</b></p><p> nibo[++t1]=zhan2[t2]; nibo[t1+1]='\0';
45、 t2--;</p><p><b> }</b></p><p><b> j=1;t3=0;</b></p><p> while(j<=t1)</p><p><b> {</b></p><p
46、> if(nibo[j]>='0'&&nibo[j]!='^'&&nibo[j]!='#')</p><p><b> {</b></p><p> for(i=1;i<=shu->top;i++)</p><p><b>
47、 {</b></p><p> if((int)(nibo[j]-'0')==shu->data[i].d2)</p><p><b> {</b></p><p><b> m=i;</b></p><p><b> break;</b&g
48、t;</p><p><b> }</b></p><p><b> }</b></p><p> zhan3[++t3]=shu->data[m].d1;</p><p><b> }</b></p><p> else if(nibo
49、[j]=='+') {</p><p> zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];</p><p><b> t3--;</b></p><p><b> }</b>&
50、lt;/p><p> else if(nibo[j]=='-') {</p><p> zhan3[t3-1]=zhan3[t3-1]-zhan3[t3];</p><p><b> t3--;</b></p&
51、gt;<p><b> }</b></p><p> else if(nibo[j]=='*') </p><p><b> {</b></p><p> zhan3[t3-1]=zhan3
52、[t3-1]*zhan3[t3];</p><p><b> t3--;</b></p><p><b> }</b></p><p> else if(nibo[j]=='/') </p>
53、<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[j]==
54、'^') </p><p><b> {</b></p><p> zhan3[t3-1]=pow(zhan3[t3-1],zhan3[t3]);</p><p><b> t3--;</b></p>
55、<p><b> }</b></p><p> else if(nibo[j]=='#') </p><p><b> {</b></p><p> zhan3[t3]=sqrt(
56、zhan3[t3]);</p><p><b> }</b></p><p><b> j++;</b></p><p><b> }</b></p><p> return zhan3[t3];
57、 </p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> for(;;)</b></p><p><b&
58、gt; {</b></p><p> char x,a[50];</p><p> double jieguo;</p><p><b> int i=0;</b></p><p><b> a[0]='$';</b></p><p>
59、 printf("功能:實現(xiàn)+,-,*,\,^(乘方),#(開方),(,),(負(fù)數(shù)),小數(shù),混合運算\n"); printf("請輸入表達(dá)式\n\n");</p><p> scanf("%c",&x);</p><p> if(x=='q
60、') break;</p><p> while(x!='\n') </p><p><b> {</b></p><p><b> a[++i]=x;</b></p>
61、<p> scanf("%c",&x);</p><p><b> }</b></p><p> a[i+1]='\0';</p><p> jieguo=jisuan(a);</p><p> printf("\n");</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言簡單計算器的編寫課程設(shè)計
- c語言課程設(shè)計--計算器
- c語言課程設(shè)計--計算器
- java課程設(shè)計--java語言編寫計算器和文檔編輯器
- c語言課程設(shè)計--- 制作2.0版簡易計算器
- 計算器c++課程設(shè)計
- c++課程設(shè)計——計算器
- c++計算器課程設(shè)計--計算器程序設(shè)計
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計--計算器
- 高級語言課程設(shè)計--簡易計算器
- c++語言畢業(yè)課程設(shè)計報告正文(計算器的實現(xiàn))
- c++課程設(shè)計--簡單計算器
- c++課程設(shè)計--復(fù)數(shù)計算器
- c++課程設(shè)計--分?jǐn)?shù)計算器
- c++課程設(shè)計--簡單計算器
- c++課程設(shè)計---分?jǐn)?shù)計算器
- c++課程設(shè)計---分?jǐn)?shù)計算器
- 三種語言實現(xiàn)計算器課程設(shè)計--計算器
- 設(shè)計一個簡單計算器的c語言課程設(shè)計報告
- c++課程設(shè)計--計算器設(shè)計報告
評論
0/150
提交評論