課程設(shè)計四則混合運算練習_第1頁
課程設(shè)計四則混合運算練習_第2頁
課程設(shè)計四則混合運算練習_第3頁
課程設(shè)計四則混合運算練習_第4頁
課程設(shè)計四則混合運算練習_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、吉林工程技術(shù)師范學院C語言程序課程設(shè)計報告書設(shè)計題目: 四則混合運算練習 專業(yè): 班級: 學生姓名: 學號: 指導教師: 2010年5月信息工程學院目 錄摘 要 3第一章 緒 論4第二章 問題定義(或系統(tǒng)分析)6第三章 總體設(shè)計與詳細設(shè)計7第四章 編碼實現(xiàn) 8第五章 總結(jié)與心得附錄:1源代碼2參考資料摘 要四則運算的意義1.使學生理解、掌握四則運算的五大定律和兩個性質(zhì)。2.掌握積、商的變化規(guī)律。3.能運用這些定律、性質(zhì)和規(guī)律進行簡便計算,提高計算能力。教學重點:運用定律、性質(zhì)和規(guī)律進行簡算。四則運算的定律和性質(zhì)是學生進行簡便運算的依據(jù)。靈活地運用四則運算的定律和性質(zhì),不但能提高計算的速度,還能

2、培養(yǎng)學生思維的靈活性。所以在復習中,注重學生對四則運算定律和性質(zhì)的理解、記憶,再加以靈活運用,從而達到培養(yǎng)學生計算能力的目的,這是非常必要的。因此,在復習中首先要讓學生搞清所學過的運算定律和性質(zhì)有哪些,分別用字母怎么表示,語言怎么敘述,達到全面鞏固理解的目的。其間,分別插入適當判斷、填空練習,以幫助學生理解及靈活運用。另外,利用積、商的變化規(guī)律培養(yǎng)學生思維的靈活性和深刻性,使學生在觀察推導中理解積、商的變化規(guī)律實際上就是乘法運算定律的具體體現(xiàn),同時,也為簡便計算打開多種途徑。然后,在學生全面掌握的基礎(chǔ)上出現(xiàn)一組選擇題,綜合地培養(yǎng)學生運用定律和性質(zhì)的能力,反饋面也擴展到全班,便于了解多數(shù)學生的情

3、況。 第一章 緒 論1.1 C語言概述C語言是國際上廣泛流行且很有發(fā)展前途的計算機高級語言,不僅用來編寫應(yīng)用軟件,也用來編寫系統(tǒng)軟件。C語言功能豐富,使用靈活,可移植性好,深受廣大用戶歡迎。C語言的數(shù)據(jù)類型豐富,既具有高級程序設(shè)計語言的優(yōu)點,又具有低級程序設(shè)計語言的特點;既可以用來編寫系統(tǒng)程序,又可以用來編寫應(yīng)用程序。(例如,著名的UNIX操作系統(tǒng)就是用C語言編寫的)因此,C語言正在被迅速地推廣和普及。1 .2 C語言出現(xiàn)的歷史背景在C語言誕生以前,操作系統(tǒng)及其他系統(tǒng)軟件主要是用匯編語言實現(xiàn)的。由于匯編語言程序設(shè)計依賴于計算機硬件,其可讀性和可移植性都很差,而一般的高級語言又難以實現(xiàn)

4、對計算機硬件的直接操作,因此人們需要一種兼有匯編語言和高級語言特性的語言。C語言就是在這種環(huán)境下產(chǎn)生的。它最早是由Dennis Richie于1973年設(shè)計并實現(xiàn)。它的產(chǎn)生同UNIX系統(tǒng)之間具有非常密切的聯(lián)系C語言是在UNIX系統(tǒng)上開發(fā)的。而無論UNIX系統(tǒng)本身還是其上運行的大部分程序,都是用C語言編寫實現(xiàn)。同時,它同樣適合于編寫不同領(lǐng)域中的大多數(shù)程序。C語言已經(jīng)成為全球程序員的公共語言,并且由此產(chǎn)生了當前兩個主流的語言C+和Java它們都建立在C語言的語法和基本結(jié)構(gòu)的基礎(chǔ)上,而且現(xiàn)在世界上的許多軟件都是在C語言及其衍生的各種語言的基礎(chǔ)上開發(fā)而成。 目前,在微機上廣泛使用的C語言編譯系統(tǒng)有Tu

5、rbo C、Borland C+、Microsoft Visual C+等。雖然它們的基本部分都是相同的,但還是有一些差異,本程序的設(shè)計采用Turbo C作為上機編程調(diào)試環(huán)境。C語言特點和用途語言簡潔、緊湊,使用方便、靈活。共有個關(guān)鍵字,種控制語句。運算符豐富,公有種運算符。數(shù)據(jù)結(jié)構(gòu)豐富,數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組、指針、結(jié)構(gòu)體、共用體等。具有結(jié)構(gòu)化的控制語句(如ifelse、while、dowhile、switch、for)語法限制不太嚴格,程序設(shè)計自由度大。允許直接訪問物理地址,能進行位(bit)操作,可以直接對硬件操作。生成目標代碼質(zhì)量高,程序執(zhí)行效率高。可移植性好。C語言的用

6、途C雖不擅長科學計算和管理領(lǐng)域,但對操作系統(tǒng)和系統(tǒng)實用程序以及對硬件進行操作方面,C有明顯的優(yōu)勢?,F(xiàn)在很多大型應(yīng)用軟件也用編寫。C語言程序一般用小寫字母,而僅在一些宏定義中,將常量名用大寫字母表示,或?qū)σ恍┯刑厥庖饬x的變量,偶爾也用大寫字母表示。C語言中對大小寫字母看作兩個變量。 在C語言的程序設(shè)計中,用戶程序的功能快都是一些函數(shù),而函數(shù)在定義時,可選用省略號來表示參數(shù)類型和個數(shù)的不確定性。如function(F1,)的函數(shù)的第一個參數(shù)F1表示為某種類型的變量,而后的其它參數(shù)無論是類型還是參數(shù)個數(shù)都不確定。在c函數(shù)調(diào)用時,參數(shù)或參數(shù)的指針都被壓入堆棧,并且最后一個參數(shù)最先進入堆棧,第一個參數(shù)最

7、后進入堆棧。如果小系統(tǒng)模式編譯,變量的指針為2字節(jié),如果用大系統(tǒng)模式編譯,變量的指針為4字節(jié),如果我們求得第一個參數(shù)指針在堆棧內(nèi)的地址,加上變量指針的字節(jié)數(shù),再取相應(yīng)內(nèi)存的內(nèi)容,即求出其它各參數(shù)指針在堆棧內(nèi)的地址,從而可引用用省略號說明的參數(shù)。第二章 問題定義(或系統(tǒng)分析)2.1 系統(tǒng)分析一 、題目:四則運算二、目的與要求1 目的:通過編寫四則運算程序,培養(yǎng)學生綜合利用C語言進行程序設(shè)計的能力,熟悉字符串的操作方法,加強函數(shù)的運用,提高軟件系統(tǒng)分析能力和程序文檔建立、歸納總結(jié)的能力。2 基本要求:1)要求用C語言編程,在Visual C+環(huán)境下調(diào)試完成;2)要求按照程序功能分成幾個功能模塊來實

8、現(xiàn),各個功能模塊分別使用函數(shù)來完成;3)要求應(yīng)用本課所講授的程序設(shè)計語言知識來解決問題.三、設(shè)計方法和基本原理1 課題功能描述本程序的功能,就是實現(xiàn)數(shù)的加減乘除四則運算,如計算3+5*8的結(jié)果。2 問題詳細描述程序運行時,首先會出現(xiàn)一個非常友好的界面提示用戶去選擇需要練習的題目,待用戶選擇對應(yīng)項后,就會出現(xiàn)對應(yīng)的算術(shù)題。當用戶輸入結(jié)果后,系統(tǒng)會自動計算結(jié)果并判斷用戶輸入的結(jié)果是否為正確結(jié)果。四、問題的解決方案該問題主要注意四則運算的優(yōu)先級問題:乘除運算比加減運算優(yōu)先級高,同級運算按從左到右的順序運算。本程序應(yīng)采用模塊化設(shè)計方法,設(shè)計幾個功能模塊。字符串解析函數(shù)(將輸入字符串分解成數(shù)和運算符)將

9、數(shù)據(jù)(字符數(shù)組中)轉(zhuǎn)換成十進制數(shù)(long)判讀是否存在高優(yōu)先級運算符,若存在首先計算其運算結(jié)果并保存 同級運算按先后順序進行第三章 總體設(shè)計與詳細設(shè)計 本程序是一款關(guān)于四則運算的小軟件,我把程序分成了5個模塊,分別是加法、減法、乘法、除法和加減乘除四則混合運算。為了讓我的小軟件能得到更好的應(yīng)用,我把每個數(shù)都用隨機數(shù)去表示,在加減乘除四則混合運算中,符號都用隨機的,這樣通用性更大一些,但是隨之而來的就是一系列問題。例如如何生成隨機數(shù),以及生成隨機數(shù)的方法,參數(shù)傳遞,符號傳遞,符號識別,更重要的是四則運算的優(yōu)先級問題,我花了大量的時間都在考慮這個問題,怎么樣能讓算法更有效率。為了我的小軟件能在中

10、小學中應(yīng)用的廣,在初等數(shù)學中,當一級運算(加減)和二級運算(乘除)同時出現(xiàn)在一個式子中時,它們的運算順序是先乘除,后加減,如果有括號就先算括號內(nèi)后算括號外,同一級運算順序是從左到右這樣的運算叫四則運算,. 四則指加法、減法、乘法、除法的計算法則. 一道四則運算的算式并不需要一定有四種運算符號,一般指由兩個或兩個以上運算符號及括號,把多數(shù)合并成一個數(shù)的運算. 加法: 把兩個數(shù)合并成一個數(shù)的運算 把兩個小數(shù)合并成一個小數(shù)的運算 把兩個分數(shù)合并成一個分數(shù)的運算 減法: 已知兩個加數(shù)的和與其中一個加數(shù),求另一個加數(shù)的運算 乘法 :求幾個相同加數(shù)的和的簡便運算 小數(shù)乘整數(shù)的意義與整數(shù)乘法意義相同 一個數(shù)

11、乘純小數(shù)就是求這個數(shù)的十分之幾,百分之幾 分數(shù)乘整數(shù)的意義與整數(shù)乘法意義相同 除法: 已知兩個因數(shù)的積與其中一個因數(shù),求另一個因數(shù)的運算 與整數(shù)除法的意義相同舉例說明: 1、乘法:求幾個幾是多少;求一個數(shù)的幾倍是多少;求物體面積、體積;求一個數(shù)的幾分之幾或百分之幾是多少。 2、除法:把一個數(shù)平均分成若干份,求其中的幾份;求一個數(shù)里有幾個另一個數(shù);已知一個數(shù)的幾分之幾或百分之幾是多少求這個數(shù)。 3、加法:求和;減法逆運算。 4、減法:求剩余;比較;加法逆運算。第四章 編碼實現(xiàn)本程序是針對加減乘除四則運算設(shè)計的一款四則運算練習軟件,它能根據(jù)用戶的選擇出題。運行程序后,用戶會看到一給非常友好的界面菜

12、單,有6個選項可供選擇。第一個是加法練習,第二個是減法練習,第三個是乘法練習,第四個是除法練習,第五個是加減乘除四則運算練習。這時,系統(tǒng)會提示用戶去做選擇。Turbo C上顯示的主菜單界面(這里是漢文實際英文)= 歡迎使用四則運算練習軟件 =1.加法練習2.減法練習3.乘法練習4.除法練習5.加減乘除四則混合運算6.退出= 這款小軟件通過調(diào)用各種子程序來實現(xiàn)需要的功能, 為了讓我的小軟件能得到更好的應(yīng)用,我把每個數(shù)都用隨機數(shù)去表示,在加減乘除四則混合運算中,符號都用隨機的,這樣通用性更大一些,但是隨之而來的就是一系列問題。例如如何生成隨機數(shù),以及生成隨機數(shù)的方法,參數(shù)傳遞,符號傳遞,符號識別,

13、更重要的是四則運算的優(yōu)先級問題,我花了大量的時間都在考慮這個問題,怎么樣能讓算法更有效率。第五章 總結(jié)與心得三周的課程設(shè)計已經(jīng)結(jié)束了。回想學習C語言 的過程中,既有快樂又有煩惱。從領(lǐng)到書的那一刻,我就很郁悶,C 語言程序設(shè)計到底事學什么的,有什么用。剛開始上課時,還在迷茫這門課程是用來做什么的。不過,這些感受都是在對這門課程不了解的情況下產(chǎn)生的。后來慢慢的接觸多了,聽老師講的多了,了解多了,漸漸的產(chǎn)生了興趣。尤其是學到語句和函數(shù)時,上機操作程序,經(jīng)過編譯,調(diào)試和運行后,出現(xiàn)界面,當時覺得很好奇,想真正的學好這門課程。通過半個學期的學習,我掌握了基本知識。下學期開始時,被通知要進行三周的課程設(shè)計

14、。當時有點懵,感覺學的東西很少,很零散,不知該怎么練到一起,就要課程設(shè)計,是不是太難為我們了。第一天基本上都是在看書,把基本知識再熟悉一邊。到了下午的時候,老師發(fā)過來三道練習題,從這幾道練習題上我得到了不少啟發(fā),然后我們組把整個程序的思路理清了,開始著手寫程序。第一周結(jié)束的時候,我感覺自己收獲挺大的,從一開始的迷茫,不知道從何下手到把程序中的幾個模塊編寫出來,心里挺開心的。但是,到了第二周,我們由不得不再次陷入困境。在整個程序的編寫過程中。最難的就是修改和刪除這兩個模塊,這也是我們第二周要解決的重點問題。開始編寫修改和刪除時,很頭疼,去向其他人尋求幫助,在別人的幫助和提示下,我編完了修改程序,

15、但編譯時老出錯,修改后的內(nèi)容將文本內(nèi)的信息全部覆蓋了。困難之時,我們組的其他人,幫助了我,完成了修改和刪除。這樣的話,整個程序基本上全部完成了,就剩下完善工作了。我們組寫了兩個程序,最后,兩個程序相互組合,互補,大功告成雖然設(shè)計時完成了,但是我覺得其中還是由一些不足之處:1. 警告句。程序中缺少一些警告句,例如:“是否真的刪除(y/n)?”。2. 重名的情況。由于考慮的不周全,沒有設(shè)計遇到重名的情況該怎么處理。3. 選擇單一。我們設(shè)計的程序中,只設(shè)計了按名字選擇,進行操作,忽略了重名的情況。整個程序完成了,還有很多不完善的地方,希望自己以后辦事的時候要認真,仔細,考慮周全。短短的三周課程設(shè)計結(jié)

16、束了,但是這段時間里,我又學到了更多C 知識,如:對象數(shù)組,string類,文件流等,同時我也被提醒以后辦事的時候要認真,仔細,考慮周全。,也看到了團隊精神和互幫互助的重要性。這一點會讓我終生受益。通過三周的課程設(shè)計,我覺得自己肚子里的墨水多了,收獲也挺大的,這三周過的挺充實! 附 錄:源代碼#include<stdio.h>#include<stdlib.h>main() int x=30,y=6; char choice; randomize(); while(1) clrscr(); gotoxy(x,y); puts("1.Jia fa lian xi

17、."); gotoxy(x,y+1); puts("2.Jian fa lian xi."); gotoxy(x,y+2); puts("3.Cheng fa lian xi."); gotoxy(x,y+3); puts("4.Chu fa lian xi."); gotoxy(x,y+4); puts("5.Jian jian cheng chu huen he lian xi."); gotoxy(x,y+5); puts("6.Tui chu."); gotoxy(x,y+7)

18、; puts("Qing xuan ze (1 huo 6)."); choice=getch(); switch(choice) case '1':add();break; case '2':subt();break; case '3':mult();break; case '4':divid();break; case '5':huenhe();break; case '6':exit(0); default:printf("Xuan ze you wu! An r

19、en yi jian hou chong xin shu ru ."); getch(); add() int i,t,num1,num2,answer; t=0; clrscr(); while(t!=5) num1=random(99)+1; num2=random(99)+1; question(num1,num2,'+'); scanf("%d",&answer); if(answer=num1+num2) puts("zheng que!"); t+; else printf("cuo le! Zhe

20、ng que da an shi:%dn",num1+num2); t=0; if(t=5) printf("n Ni lian xu da dui 5 ti, gong xi! An ren yi jian fan hui cai dan."); getch(); subt() int i,t,num1,num2,answer; t=0; while(t!=5) num1=random(99)+1; num2=random(99)+1; question(num1,num2,'-'); scanf("%d",&answ

21、er); if(answer=num1-num2) puts("Zheng que!"); t+; else printf("Cuo le! Zheng que da an shi:%dn",num1-num2); t=0; if(t=5) printf("n Ni yi lian xu da dui 5 ti, gong xi! An ren yi jian fan hui cai dan."); getch(); mult() int i,t,num1,num2,answer; t=0; clrscr(); while(t!=5)

22、 num1=random(99)+1; num2=random(99)+1; question(num1,num2,'*'); scanf("%d",&answer); if(answer=num1*num2) puts("Zheng que!"); t+; else printf("Cuo le! Zheng que da an shi:%dn",num1*num2); t=0; if(t=5) printf("n Ni lian xu da dui 5 ti, gong xi! An ren yi

23、 jian fan hui cai dan."); getch(); divid() int i,t,num1,num2,answer; t=0; while(t!=5) num1=random(99)+1; num2=random(99)+1; question(num1,num2,'/'); scanf("%d",&answer); if(answer=num1/num2) puts("Zheng que!"); t+; else printf("Cuo le! Zheng que da an shi:%d

24、n",num1/num2); t=0; if(t=5) printf("n Ni lian xu da dui 5 ti, gong xi! An ren yi jian fan hui cai dan."); getch(); huenhe() int t,a,b; long s,m,j,answer,num1,num2,num3; char opt1,opt2; t=0; s=answer=t=m=0; clrscr(); while(t!=5) num1=random(99)+1; num2=random(99)+1; num3=random(99)+1;

25、a=random(3)+1; b=random(3)+1; opt1=fuhao(a); opt2=fuhao(b); printf("%ld %c %ld %c %ld=",num1,opt1,num2,opt2,num3); scanf("%ld",&answer); if(opt1='*'|opt1='/') switch(opt1) case '*':m=num1*num2;break; case '/':m=num1/num2;break; switch(opt2) case '+':s=m+num3;break; case '-':s=m-num3;break; case '*':s=m*num3;break; case '/':s=m/num3;break; else if(opt2='*'|opt2='/') switch(opt2) case '*':m=num2*num3;break; case '/':m=

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論