設(shè)計(jì)一個(gè)簡(jiǎn)單計(jì)算器的c語(yǔ)言課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C語(yǔ)言課程設(shè)計(jì)報(bào)告</b></p><p>  題目:設(shè)計(jì)一個(gè)簡(jiǎn)單計(jì)算器</p><p><b>  目 錄</b></p><p><b>  1.設(shè)計(jì)目的</b></p><p><b>  2.內(nèi)容</b><

2、/p><p>  3.總體設(shè)計(jì)(有流程圖)</p><p>  4.源程序編寫(xiě)(附上了運(yùn)行圖)</p><p><b>  5.執(zhí)行結(jié)果 </b></p><p><b>  6.心得體會(huì)</b></p><p><b>  設(shè)計(jì)目的</b></p&g

3、t;<p>  設(shè)計(jì)一個(gè)簡(jiǎn)單計(jì)算器,在功能上功能盡量模擬windows操作系統(tǒng)中的計(jì)算器,系統(tǒng)界面不做強(qiáng)制要求。</p><p>  全面熟悉、掌握C語(yǔ)言基本知識(shí),掌握C程序設(shè)計(jì)中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)、指針和文件的操作,把編程和實(shí)際結(jié)合起來(lái),增強(qiáng)對(duì)不同的問(wèn)題運(yùn)用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,

4、培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力,規(guī)范編程思想,為以后在專(zhuān)業(yè)課程中應(yīng)用計(jì)算機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。</p><p><b>  內(nèi)容</b></p><p><b>  程序設(shè)計(jì)的一般步驟</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è)計(jì)正確,方案合理,能實(shí)現(xiàn)相應(yīng)功能。</p><p>  b.界面友好,使用方便。</p><p>  c.程序精煉,結(jié)構(gòu)清晰。</p><p>  d.設(shè)計(jì)報(bào)告含程序設(shè)計(jì)說(shuō)明,用戶使用說(shuō)明,源程序清單及程序框圖。</p><p><b>  e.上機(jī)演示。</b></

7、p><p>  三、總體設(shè)計(jì)(程序設(shè)計(jì)組成框圖、流程圖)</p><p><b>  源程序編寫(xiě)</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("@表示開(kāi)方,^表示乘方\n");</p><p>  printf("請(qǐng)輸入表達(dá)式,退出請(qǐng)輸入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,分別進(jìn)行加減乘除。結(jié)果運(yùn)行成功。此圖為證明此程序運(yùn)行0 error ,沒(méi)錯(cuò)誤。</p><p><b>  六、心得體會(huì)</b></p><p>  計(jì)算機(jī)知識(shí)博大精深,很奧妙,學(xué)過(guò)c語(yǔ)言之后我知道我們平時(shí)用的那些應(yīng)用程序都是用各種計(jì)算機(jī)語(yǔ)言編寫(xiě)的。這次通過(guò)老師布置的課程設(shè)計(jì),我學(xué)會(huì)了更多的計(jì)算機(jī)

56、知識(shí),覺(jué)得編程是一件很費(fèi)腦細(xì)胞同時(shí)很有意思的一件事。</p><p>  我在編寫(xiě)這次簡(jiǎn)單計(jì)算器的程序過(guò)程中遇到很多困難,犯了很多錯(cuò),(例如:執(zhí)行結(jié)果部分沒(méi)有運(yùn)算符),這也讓我意識(shí)到編寫(xiě)c語(yǔ)言是需要耐心、細(xì)心和熱心去做的一件事情!最關(guān)鍵的是,這個(gè)程序是我們經(jīng)過(guò)一個(gè)暑假后的過(guò)程來(lái)編寫(xiě)的,我發(fā)現(xiàn)很多知識(shí)都忘了,所以最關(guān)鍵的是我覺(jué)得編程就該持之以恒!</p><p>  這次的報(bào)告前前后后改了很

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論