




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、編號: 課程設(shè)計(論文)說明書 課 題:CAI軟件開發(fā):教小學(xué)生算數(shù) 學(xué) 院: 電子工程與自動化 測控 業(yè):專 學(xué)生姓名: 號: 學(xué) : 指導(dǎo)老師 日14月3年 2013目錄 1.內(nèi)容摘要 1 2.關(guān)鍵字 1 3.題目與要求 2 4.設(shè)計任務(wù)及要求 4.1 分步實施 3 4.2 運行環(huán)境 3 4.3 開發(fā)工具 3 5.總體設(shè)計 5.1 程序設(shè)計組成框圖 4 5.2 流程圖 5 6.詳細(xì)設(shè)計 6.1 注冊登錄系統(tǒng)函數(shù)詳細(xì)說明 6 6.2 菜單界面函數(shù)詳細(xì)說明 7 6.3 加法函數(shù)詳細(xì)說明 8 6.4 減法函數(shù)詳細(xì)說明 10 6.5 乘法函數(shù)詳細(xì)說明 11 6.6 除法函數(shù)詳細(xì)說明 12 6.7
2、統(tǒng)計信息函數(shù)詳細(xì)說明 14 6.8 信息讀取函數(shù)詳細(xì)說明 14 6.9 晉級降級函數(shù)詳細(xì)說明 15 7.調(diào)試與測試 15 調(diào)試方法 7.1 7.2 功能模塊的調(diào)試及測試 16 7.3 測試過程中遇到的主要問題 20 7.4 采取的解決措施 20 8.總體收獲、體會 20 9.謝辭 21 10.參考文獻(xiàn)21 11.源程序清單 21 22 源程序代碼 附錄12.1.內(nèi)容摘要: 現(xiàn)在,信息技術(shù)教育在我國中小學(xué)中全面開展,計算機(jī)在教育事業(yè)中的地位越來越重要,其中計算機(jī)輔助教學(xué)(Computer Aided Instruction ,簡稱CAI)扮演著重要的角色。 本程序是用c語言來編寫的具有加減乘除法
3、的小軟件,其中用到loop、goto、產(chǎn)生隨機(jī)數(shù)函數(shù)、文件操作等,小學(xué)生按照提示進(jìn)行答題,一次答題命中率達(dá)到60%可以晉級,同樣也會降級,學(xué)生可以按照自己的能力來設(shè)置題量,答題數(shù)量越多通關(guān)后獲得的獎勵越豐厚。 本課設(shè)是利用計算機(jī)輔助教學(xué)(CAI)軟件開發(fā)一款教小學(xué)生算術(shù)的小游戲,希望幫助小學(xué)生更好地練習(xí)小學(xué)算術(shù),有效地縮短學(xué)習(xí)時間、提高教學(xué)質(zhì)量和教學(xué)效率,實現(xiàn)最優(yōu)化的教學(xué)目標(biāo)。 2.關(guān)鍵字:注冊登錄系統(tǒng)、加減乘除法、loopgoto、文件操作、產(chǎn)生隨機(jī)數(shù)函數(shù)、統(tǒng)計、晉級、降級。3.題目與要求 (1)題目及要求: 題目:計算機(jī)輔助教學(xué)(CAI)軟件開發(fā):教小學(xué)生算數(shù) 功能:可做個位數(shù),十位數(shù)的加
4、,減,乘,除。減法不能得負(fù)數(shù),除法要除盡,屏幕上隨機(jī)出現(xiàn)兩個數(shù),提示小學(xué)生給出答案,答錯了提示重新輸入,直到答對為止。要統(tǒng)計給分,且累計,夠一定分?jǐn)?shù)后可晉級,即從個位進(jìn)到十位數(shù)的運算,同樣,也可以降級。 (rand(),#include) (2)要求: (1)用C語言實現(xiàn)程序設(shè)計; (2)系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn); ,程序加必要的注釋。)界面友好(良好的人機(jī)交換)3( 4.設(shè)計任務(wù)及要求 4.1 分步實施: (1)設(shè)計登陸界面,具有注冊登錄功能; (2)初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù); (3)完成基本要求:能答對各位數(shù)的加法和減法,并有統(tǒng)計功能,即一
5、次答對的成功率為60%以上可以晉級,做十位數(shù)的減法,成功率低于60%也可以降級; (4)進(jìn)一步要求:完成乘法和除法的學(xué)習(xí),也有晉級功能; (5)挑戰(zhàn)的題量越多通關(guān)后獲得的獎勵就越豐厚。 4.2 運行環(huán)境: (1)win7/XP系統(tǒng) (2)VC6.0編譯環(huán)境 4.3 開發(fā)工具: 語言C 5.總體設(shè)計 5.1 程序設(shè)計組成框菜單界面函C(注冊登陸主函規(guī)則函減法乘法除法函(di(su(mul5.2 流程圖 開始 Main() 登錄注冊 菜單 CaseCaseCase返回登CaseCaseCase輸入輸入規(guī)則函輸入輸入輸入加法除法減法乘法降級返加法減法乘法除法降級返通結(jié)束6.詳細(xì)設(shè)計 6.1 注冊登錄
6、系統(tǒng)函數(shù)詳細(xì)說明 用戶首次使用本軟件都需要進(jìn)行注冊,然后再登錄系統(tǒng)進(jìn)行答題。 開始 顯示注冊登錄 命入輸 注2.退登3.1. 功成進(jìn)入答題void zcdl()/注冊登陸界面 int sel; 牰湩晴尨登陸注冊系統(tǒng)!n); printf(.登陸n); printf(.注冊n); printf(.退出n); scanf(%d,&sel); switch(sel) case 1:Land();break;/調(diào)用登陸函數(shù) case 2:Register();break;/調(diào)用注冊函數(shù) 慣敳?瀺楲瑮?退出n); exit(1); break; 6.2菜單界面函數(shù)詳細(xì)說明 登錄成功后進(jìn)入菜單,菜單中有六
7、個選項,0.查看規(guī)則,1.加法運算,2.減法運算,3.乘法運算,4.除法運算,5.返回注冊登錄界面。 開始 顯示菜單 輸入選 返回登錄Case5Case4加Case1減Case2Case0規(guī)乘Case3void choice() /算法選擇 int ch; cd();/調(diào)用菜單函數(shù) scanf(%d,&ch); getchar(); if(ch=9|ch=9999|k0) n); 牰湩晴尨輸入錯誤!請重新輸入! ); 牰湩晴尨請輸入挑戰(zhàn)的題量: scanf(%d,&k); for( i=1 ; i=9999|k=9999|answer=9999|k0) 牰湩晴尨輸入錯誤!請重新輸入!n); 牰
8、湩晴尨請輸入挑戰(zhàn)的題量:);/k輸入的題目數(shù)量 scanf(%d,&k); for( i=1 ; i=rand2) printf(%d-%d=,rand1,rand2); scanf(%f,&answer); getchar(); if(k=9999|k=9999|k=9|k0) 牰湩晴尨輸入錯誤!請重新輸入!n); 牰湩晴尨請輸入挑戰(zhàn)的題量:);/k輸入的題目數(shù)量 scanf(%d,&k); for( i=1 ; i=999999|k=999999|k=9999|k0) ?牰湩晴尨輸入錯誤!請重新輸入!n); 牰湩晴尨請輸入挑戰(zhàn)的題量:);/k輸入的題目數(shù)量 scanf(%d,&k); fo
9、r( i=1 ; i=999999|k=999999|k=0.6) /晉級 牰湩晴尨恭喜您晉級了!n); add1();/usb1、mul1、div1 else 牰湩晴尨抱歉您未能及格!n); tc();/提示是否繼續(xù)或者退出 7.調(diào)試與測試 7.1 調(diào)試方法 (1)VC6.0下主要調(diào)試方法: (2)單步,步入,堆棧和寄存器的查看,變量的查看,普通斷點,條件斷點,內(nèi)存訪問斷點。 (3)步驟: (4)A. 保存為c或c+文件 (5)B. 根據(jù)斷點調(diào)試找到錯誤處。 (6)C. 采用F10或F11單步調(diào)試找到精確的錯誤處。其中F10是跳過函數(shù)盜,確定函數(shù)輸入輸出是否正確(與F10是進(jìn)入函數(shù)體調(diào)試。一
10、般是先用F11用,自己想的一樣),如不一樣,則用F11進(jìn)入函數(shù)體一步一步調(diào)試。 (7)D. 在調(diào)試過程中,肯定得監(jiān)視程序中的變量。在vc6.0的右下角有一個watch窗口,專門用來設(shè)置監(jiān)視變量。具體怎樣設(shè)置自己體會吧。在調(diào)試過程中,鼠標(biāo)輕輕放在變量上也會顯示該變量的值 (8)E. vc6.0專門為調(diào)試設(shè)置了工具箱以方便調(diào)試的進(jìn)行,打開的方法如下。右鍵在debug(或調(diào)試)選擇項的勾勾上。 7.2 功能模塊的調(diào)試及測試 (1)登錄注冊系統(tǒng)界面和注冊模塊調(diào)試及測試 (2)登錄模塊函數(shù)及函數(shù)模塊函數(shù)調(diào)試 (3)規(guī)則函數(shù)模塊調(diào)試 )加法及晉級函數(shù)的調(diào)試4(5)減法及晉級函數(shù)的調(diào)試 (6)乘法及晉級函數(shù)
11、的調(diào)試 (7)除法及晉級函數(shù)的調(diào)試 (8)返回登錄函數(shù)界面函數(shù)調(diào)試 7.3 測試過程中遇到的主要問題 測試結(jié)果正確,能否按照要求實現(xiàn)運算,表明程序沒有問題,但是其中還有一點bug,在運算輸入結(jié)果時不能輸入多個字符,否則會出現(xiàn)死循環(huán)。 7.4 采取的解決措施 沒有注意輸入多個字符的情況,需要把字符轉(zhuǎn)換為數(shù)字進(jìn)行判斷。 8.總體收獲、體會 本次課設(shè)的程序在剛開始調(diào)試時有許多錯誤,但在我的努力及同學(xué)的幫助下都被一一克服,現(xiàn)在在操作本程序時可根據(jù)提示進(jìn)行相關(guān)操作,能正確輸出結(jié)果。在剛開始的幾次調(diào)試中曾經(jīng)出現(xiàn)過不能產(chǎn)生十以內(nèi)隨機(jī)數(shù)字、不能進(jìn)行循環(huán)練習(xí)、文件讀寫錯誤等等問題。經(jīng)過我的努力及同學(xué)的幫助,這些
12、問題得到克服,并且使程序的功能也得到了一定的完善。最后還能分別輸出對錯的題數(shù)及所得分?jǐn)?shù),把數(shù)據(jù)存放到文件中再讀取出來。在這次設(shè)計過程中,不僅復(fù)習(xí)課本上所學(xué)知識,還通過網(wǎng)上查資料、問同學(xué)學(xué)到了課本上沒有的知識。從而啟發(fā)我,要想寫好程序,在寫好課本知識的同時還需要多查找一些有關(guān)的書籍,同時還需要多動腦子,盡量把所學(xué)的知識綜合起來應(yīng)用,力爭寫出完美的程序。除此之外,我還得到了一些有用的教訓(xùn):寫程序時必須要細(xì)心,不能輸錯一個字符標(biāo)點,就連全角半角也得注意。在修改調(diào)試時要有耐心,編譯出錯 后必須逐個錯誤去改正,絕不能心急浮躁,否則修改之后還會有新的錯誤。9.謝辭 感謝此次課程設(shè)計過程中給予我們悉心指導(dǎo)的
13、陳壽宏老師,同時也感謝其他同學(xué),因為有老師和同學(xué)的幫助,我才能克服各種各樣的難題成功完成了這次課程設(shè)計。同時更感謝學(xué)校給我們提供的這次課設(shè)機(jī)會,讓我們學(xué)到了很多知識,提高我們的動手能力。 10.參考文獻(xiàn) 1C程序設(shè)計/譚浩強(qiáng)著.-4版.北京:清華大學(xué)出版社,2010.6 2C語言程序設(shè)計,賈宗璞、許合利,江蘇:中國礦業(yè)大學(xué)出版社,2007.6 3高質(zhì)量C+/C編程指南,林銳,PDF1.0版,2001.7 4 void jm(); /游戲規(guī)則函數(shù) void cd(); /菜單 void tc(); /退出函數(shù) void choice(); /算法選擇 void xjsr(); /限制輸入函數(shù) v
14、oid add(); /個位數(shù)加法 void add1(); /十位數(shù)加法 void sub(); /個位數(shù)減法 void sub1(); /十位數(shù)減法 void mul(); /個位數(shù)乘法 void mul1(); /十位數(shù)乘法 void div(); /個位數(shù)除法 void div1(); /十位數(shù)除法 void zcdl(); /注冊登錄函數(shù) 信息讀取函數(shù) void tgyy(); /統(tǒng)計信息函數(shù)void tgxx(); /12.附錄 源程序代碼 /* 程序功能:教小學(xué)生算數(shù) 作者:于延文 日期:2013年3月14日 */ #include #include #include #incl
15、ude void jm(); /游戲規(guī)則函數(shù) void cd(); /菜單 void tc(); /退出函數(shù) void choice(); /算法選擇 void xjsr(); /限制輸入函數(shù) void add(); /個位數(shù)加法 void add1(); /十位數(shù)加法 void sub(); /個位數(shù)減法 void sub1(); /十位數(shù)減法 void mul(); /個位數(shù)乘法 void mul1(); /十位數(shù)乘法 void div(); /個位數(shù)除法 void div1(); /十位數(shù)除法 void zcdl(); /注冊登錄函數(shù) void tgxx(); /統(tǒng)計信息函數(shù) void
16、tgyy(); /信息讀取函數(shù) int sum=0,k; void Register();/注冊函數(shù) void Land();/登陸函數(shù) void zcdl();/注冊登陸界面 void tgxx();/ 通關(guān)信息儲存 main() zcdl(); return 0; void zcdl()/注冊登陸界面 int sel; 牰湩晴尨登陸注冊系統(tǒng)!n); printf(.登陸n); printf(.注冊n); printf(.退出n); scanf(%d,&sel); switch(sel) case 1:Land();break; case 2:Register();break; 慣敳?瀺楲瑮
17、?退出n); exit(1); break; void Register()/注冊函數(shù) FILE*fp; char ld50=0,user20,pass20;char usd50=0; fp=fopen(%user.dat,at); 牰湩晴尨注冊n); 牰湩晴尨請輸入用戶名 :n); fflush(stdin); gets(user); 牰湩晴尨請輸入密碼:n); fflush(stdin); gets(pass); strcpy(ld,user); strcat(ld,); strcat(ld,pass); strcat(ld,); fputs(ld,fp); fclose(fp); 牰湩晴
18、尨恭喜您,注冊成功!n); main(); void Land()/登陸函數(shù) FILE*fp; int find=0; char usc50=0,user20,pass20; char usd50=0; fp=fopen(%user.dat,); 牰湩晴尨登陸n); 牰湩晴尨請輸入用戶名:n); fflush(stdin);/釋放緩存 gets(user); 牰湩晴尨請輸入密碼:n); fflush(stdin); gets(pass); strcpy(usc,user); strcat(usc,); strcat(usc,pass); strcat(usc,); while(!feof(fp
19、)/如果遇到輸入文件的結(jié)束標(biāo)志 fgets(usd,19,fp); if(strcmp(usd,usc)=0) 牰湩晴尨恭喜您,登陸成功!n); printf(%s您好,歡迎回來!n,user); find=1; choice();/菜單 break ; if(!find) 牰湩晴尨密碼錯誤!n); 牰湩晴尨請重新輸入:n); Land(); fclose(fp); void tgxx()/ 通關(guān)信息儲存 FILE*fp; fp=fopen(data.dat,a+); fprintf(fp,%d,k);/記錄答題數(shù) fprintf(fp,%d,sum);/記錄答對題數(shù) fprintf(fp,%
20、d,k-sum);/記錄答錯題數(shù) fprintf(fp,%.2f,(sum/(float)k*100);/記錄答對率 fclose(fp); void tgyy()/信息讀取 float a , b , c , d ; FILE *fp; fp=fopen(data.dat,); /* fseek(fp,-12l,2);/標(biāo)記文件位置 fscanf(fp,%f,&d); ?牰湩晴尨答題數(shù)為:_x001D_n,d); fseek(fp,-10l,2);/標(biāo)記文件位置 fscanf(fp,%d,&c); ?牰湩晴尨答對題數(shù)為:%dn,c); fseek(fp,-8l,2);/標(biāo)記文件位置 fsca
21、nf(fp,%d,&b); %dn,b); 答錯題數(shù)為:?牰湩晴尨 */ fseek(fp,-6l,2);/標(biāo)記文件位置 fscanf(fp,%f,&a); ?牰湩晴尨答對率為:%4.2f%n,a); fclose(fp); void jm() /游戲規(guī)則函數(shù) int cha; printf(a3333333333333333333333333333333333333333333333333333333n); printf(a3 游戲規(guī)則 3n); printf(a3 1、你可以選擇加法,減法,乘法,除法,運算四種運算。3n); printf(a3 2、每種運算分為兩個等級,第一和二級。 3n
22、); printf(a3 3、第一級為個位數(shù)運算,第二級為十位數(shù)運算。 3n); printf(a3 4、做第一級正確率達(dá)到60%,將進(jìn)入第二級。 3n); printf(a3 5、若在第二級的正確率低于60%將會降級。 3n); printf(a3 6、挑戰(zhàn)的題量越多通關(guān)后獲得的獎勵就越豐厚。 3n); printf(a3333333333333333333333333333333333333333333333333333333n); printf(an); printf(a輸入(0)返回菜單,(1)返回登錄注冊界面:n); scanf(%d,&cha); getchar(); if(cha
23、=9|cha=9|cha=9|ch=9999|k0) 牰湩晴尨輸入錯誤!請重新輸入!n); 牰湩晴尨請輸入挑戰(zhàn)的題量:); scanf(%d,&k); for( i=1 ; i=9999|k=9999|answer=0.6) /晉級 n); 恭喜您晉級了!牰湩晴尨 add1(); else 牰湩晴尨抱歉您未能及格!n); tc(); void add1()/十位數(shù)加法 int rand1 , rand2 , i , k , sum=0 ; float answer ; 牰湩晴尨請輸入挑戰(zhàn)的題量:); scanf(%d,&k); getchar(); if(k=9999|k0) 牰湩晴尨輸入錯誤!請重新輸入!n); 牰湩晴尨請輸入挑戰(zhàn)的題量:); scanf(%d,&k); for( i=1 ; i 9
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)村魚塘使用權(quán)轉(zhuǎn)讓與漁業(yè)科普教育合同
- 二零二五年度廠房施工合同變更協(xié)議
- 二零二五年度城市綜合體智能化安保與勞務(wù)派遣合同
- 二零二五年度區(qū)域代理協(xié)議:健康食品連鎖店區(qū)域代理合同
- 二零二五年度租賃挖機(jī)維修保養(yǎng)協(xié)議
- 二零二五年度智能家居系統(tǒng)優(yōu)化室內(nèi)裝飾工程設(shè)計合同
- 二零二五年度貨運代理補(bǔ)充協(xié)議
- 2025年度武術(shù)表演安全責(zé)任免除合同
- 二零二五年度貨運車輛運輸司機(jī)保險合同
- 二零二五餐飲企業(yè)員工離職補(bǔ)償與職業(yè)規(guī)劃保障合同協(xié)議書
- 虛擬現(xiàn)實環(huán)境中的自然交互技術(shù)與算法
- 質(zhì)量手冊和質(zhì)量管理手冊
- 志愿服務(wù)與志愿者精神知識考試題庫大全(含答案)
- 2024年北京電子科技職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試題庫含答案解析
- 運維人員安全培訓(xùn)內(nèi)容記錄
- 獨股一箭2010年20w實盤
- 人員傷亡事故應(yīng)急措施及救援預(yù)案
- 企業(yè)安全與風(fēng)險管控課件
- 蘇教版四年級科學(xué)下冊單元測試卷及答案(全冊)
- 墻板安裝施工工藝指導(dǎo)手冊
- 《腦科學(xué)基礎(chǔ)知識》課件
評論
0/150
提交評論