簡單計算器設(shè)計_第1頁
簡單計算器設(shè)計_第2頁
簡單計算器設(shè)計_第3頁
簡單計算器設(shè)計_第4頁
簡單計算器設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機與信息工程系《高級語言程序設(shè)計》課程設(shè)計報告設(shè)計目的將理論教學(xué)中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計題目進行綜合性應(yīng)用,對所學(xué)知識達到融會貫通的程度。通過課程設(shè)計,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1)進一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C++程序設(shè)計語言》的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。(2)全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達到提高學(xué)生素質(zhì)的最終目的。(3)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C++語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)用系統(tǒng),進行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計題目,如何進行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。(5)掌握結(jié)構(gòu)化程序設(shè)計方法,熟悉面向?qū)ο蟪绦蛟O(shè)計方法。(6)熟練掌握C++語言的基本語法,靈活運用各種數(shù)據(jù)類型。(7)進一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。2設(shè)計內(nèi)容及要求2.1設(shè)計內(nèi)容設(shè)計一個簡單計算器。2.2設(shè)計任務(wù)及具體要求主要利用c語言的文件操作能力設(shè)計開發(fā)一個簡單的計算器系統(tǒng),要求在功能上盡量模擬windows操作系統(tǒng)中的計算器,系統(tǒng)界面不做強制要求。2.3簡單計算器設(shè)計的意義本課題的內(nèi)容是設(shè)計一個簡單的計算器。通過對程序的設(shè)計可以對C程序中的函數(shù),循環(huán),數(shù)組,調(diào)用,文件??內(nèi)容有更深入的理解和運用。設(shè)計程序的過程中,通過已有知識的運用和思考,能夠做到對知識的整體理解。通過解決設(shè)計中遇到的問題,能夠提高設(shè)計程序的熟練度,并對知識有鞏固作用。另外,所選課題與自己的興趣有關(guān),編程之中不僅能提高題目涉及到的內(nèi)容的興趣,更主要的在于能對C語言更加感興趣。3概要設(shè)計3.1系統(tǒng)的功能簡介1)在程序中加入足夠的操作提醒環(huán)節(jié),使得使用者能夠清楚的掌握操作流程和界面。2)程序中完成+、-、*、/的混合運算,使用者可以根據(jù)個人的需要在提示后輸入相應(yīng)的代碼,然后進行相應(yīng)的運算,最后在運算結(jié)果中查找相應(yīng)的結(jié)果即可,如果需要繼續(xù)運算,只要在上一次的運算結(jié)束后按照提示輸入相應(yīng)代碼即可選擇是繼續(xù)進行運算還是退出程序。3.2總體程序框圖3.2.1系統(tǒng)模塊機構(gòu)框圖簡易計算器簡易計算器退出程序混合計算顯示界面退出程序混合計算顯示界面3.2.2功能模塊框圖及系統(tǒng)流程圖簡易計算器簡易計算器四則運算四則運算混合運算加法運算減法運算乘法運算除法運算混合運算加法運算減法運算乘法運算除法運算退出程序開始開始循環(huán)函數(shù)循環(huán)函數(shù)輸入函數(shù)輸入函數(shù)判斷判斷有“=”繼續(xù)輸入無“=”繼續(xù)輸入循環(huán)循環(huán)循環(huán)循環(huán)判斷判斷否否判斷判斷是是退出退出退出退出運算運算運算運算計算SUM函數(shù)計算SUM函數(shù)輸出SUM輸出SUM輸入0或1輸入0或1判斷判斷結(jié)束結(jié)束4詳細設(shè)計4.1模塊描述(1)顯示界面模塊為系統(tǒng)提供類似于菜單的功能,讓用戶輸入要操作的運算類型的數(shù)字代碼,并進入相應(yīng)的功能執(zhí)行程序,顯示相應(yīng)界面。(2)數(shù)學(xué)計算模塊中,根據(jù)用戶選擇的運算類型和運算符號,自動調(diào)用相應(yīng)的函數(shù),運行相關(guān)程序,進行計算,并顯示結(jié)果。(3)退出程序模塊。根據(jù)用戶的需要,選擇是否退出程序。4.2函數(shù)設(shè)計4.2功能:計算器功能選擇界面輸入:用戶輸入運算類型、退出程序的相應(yīng)數(shù)字代碼(1四則運算,2混合運算3退出程序)處理:根據(jù)用戶輸入的數(shù)字代碼,跳轉(zhuǎn)到相關(guān)功能函數(shù)輸出:顯示相應(yīng)界面或退出程序4.2.2#include"stdio.h"mm(){inti,t,e,k,l;floatm,n;floata[999];intf[999];intc[999];charb[999];clrscr();m=0;n=0;c[0]=0;f[0]=0;printf("\n");printf("\n");printf("\n");printf("\n");printf("qingshurujisuangongshi\n");printf("\n");printf("\n");printf("");for(i=0;i<=999;i++){c[i]=0;f[i]=0;scanf("%f%c",&a[i],&b[i]);if(b[i]=='='){t=i;break;}}for(i=0;i<=t;i++){if(b[i]=='/'&&b[i+1]=='/'||b[i]=='*'&&b[i+1]=='*'||b[i]=='/'&&b[i+1]=='*'||b[i]=='*'&&b[i+1]=='/'){for(k=0;k<=t;k++){if(b[i+k]=='-'||b[i+k]=='+'||b[i+k]=='=')l=k;}for(k=0;k<=l;k++){if(b[i+k]=='*'){a[i+k+1]=a[i+k]*a[i+k+1];a[i+k]=0;}if(b[i+k]=='/'){a[i+k+1]=a[i+k]/a[i+k+1];a[i+k]=0;}}}for(i=0;i<=t;i++){if(b[i]=='*'&&b[i+1]=='*'||b[i]=='*'&&b[i+1]=='/'||b[i]=='/'&&b[i+1]=='/'||b[i]=='/'&&b[i+1]=='*'){for(k=0;k<=t;k++)if(b[k+i]=='+'||b[k+i]=='-'||b[k+i]=="="){l=k;break;}i=l+i;}if(b[i]=='*'&&b[i+1]!='*'&&b[i+1]!='/'){a[i]=a[i]*a[i+1];a[i+1]=0;}if(b[i]=='/'&&b[i+1]!='/'&&b[i+1]!='*'){a[i]=a[i]/a[i+1];a[i+1]=0;}}}for(i=0;i<=t;i++){m=m+a[i];if(b[i]=='-')m=m-a[i+1]-a[i+1];}printf("jisuanjieguo\n");printf("|%f|\n",m);printf("\n");printf("\n");printf("\n");}main(){inta,i;clrscr();for(i=0;i<=999;i++){printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("xuanzeshifoujixu(1yes,0no)");scanf("%d",&a);if(a==1)mm();elsebreak;}}5 功能測試1、加法、減法和乘法運算的界面:除法運行的界面:開方、乘方運行的界面:6小結(jié)課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程.”千里之行始于足下”,通過這次課程設(shè)計,我深深體會到這句千古名言的真正含義.我今天認真的進行課程設(shè)計,學(xué)會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎(chǔ).在這次設(shè)計過程中,體現(xiàn)出自己單獨設(shè)計程序的能力以及綜合運用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補。

在此感謝我們的吳海波老師.,老師嚴(yán)謹(jǐn)細致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次課程設(shè)計的每個實驗細節(jié)和每個數(shù)據(jù),都離不開老師您的細心指導(dǎo)。而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計。參考文獻[1]科欽.C語言程序設(shè)計.北京:電子工業(yè)出版社,1987:56-58[2]徐君毅.C語言程序設(shè)計基礎(chǔ).上海:復(fù)旦大學(xué)出版社,1992:87-98[3]李成付.C語言程序設(shè)計基礎(chǔ).北京:科學(xué)出版社,1992:42-67[4]郝玉潔.C語言程序設(shè)計.北京:機械工業(yè)出版社,2000:63-88[5]錢啟平.C語言程序設(shè)計基礎(chǔ).北京:中國鐵道出版社,2000:91-99[6]李大友.C語言程序設(shè)計基礎(chǔ).北京:清華大學(xué)出版社,1999:58-98[7]黃迪明.C語言程序設(shè)計.北京:電子科技大學(xué)出版社,1998:78-98[8]姜仲秋.C語言程序設(shè)計基礎(chǔ).南京:南京大學(xué)出版社,1998:16-100[9]李國昌.C語言程序設(shè)計基礎(chǔ).北京:科學(xué)出版社,1998:78-120[10]譚浩強著.C程序設(shè)計(第二版).北京:清華大學(xué)出版社,2005[11]譚浩強.C程序設(shè)計[M].3版.北京:清華大學(xué)出版社,2005源程序#include<stdio.h>#include<math.h>#include<malloc.h>doublejisuan(chara[]){inti=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;charnibo[50],zhan2[50];doublex,n,l,z=0,zhan3[20];typedefstruct{doubled1;intd2;}dd;typedefstruct{dddata[50];inttop;}zhan1;zhan1shu;shu.top=0;while(a[i]!='\0'){if(a[i]>='0'&&a[i]<='9'){z=0;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){z=z*10+a[k]-'0';}j=j+1;x=z;if(a[j]=='.'){l=1;i=j+1;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){n=pow(0.1,l);l=l+1;x=x+n*(a[k]-'0');}i=j+1;}elsei=j;shu.data[++shu.top].d1=x;shu.data[shu.top].d2=++cnt;nibo[++t1]='0'+shu.data[shu.top].d2;nibo[t1+1]='\0';}elseif(a[i]=='('){zhan2[++t2]=a[i];i++;}elseif(a[i]==')'){j=t2;while(zhan2[j]!='('){nibo[++t1]=zhan2[j];nibo[t1+1]='\0';j--;}t2=j-1;i++;}elseif(a[i]=='+'){while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}elseif(a[i]=='-'){if(a[i-1]=='$'){a[0]='0';i=0;}elseif(a[i-1]=='('){a[i-1]='0';a[i-2]='(';i=i-2;\}else{while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}elseif(a[i]=='*'||a[i]=='/'){while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='@'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}elseif(a[i]=='^'||a[i]=='@'){while(zhan2[t2]=='^'||zhan2[t2]=='@'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}while(t2>0){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}t1=1;while(nibo[t1]!='\0'){if(nibo[t1]>='0'&&nibo[t1]<='9'){for(i=0;i<=shu.top;i++){if(nibo[t1]-'0'==shu.data[i].d2){m=i;break;}}zhan3[++t3]=shu.data[m].d1;}elseif(nibo[t1]=='+'){zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];t3--;}elseif(nibo[t1]=='-'){

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論