

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