版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)綜合課程設(shè)計(jì)PAGEPAGE1課程設(shè)計(jì)的目的和要求課程設(shè)計(jì)的目的:用高級(jí)程序語言設(shè)計(jì)出猜數(shù)字游戲系統(tǒng),實(shí)現(xiàn)猜數(shù)字游戲。通過用高級(jí)程序語言制作程序,熟悉用高級(jí)程序語言編程的操作和步驟,學(xué)習(xí)高級(jí)程序語言的運(yùn)用,以及高級(jí)程序語言實(shí)驗(yàn)報(bào)告的書寫格式。課程設(shè)計(jì)的要求:只能使用高級(jí)程序語言,源程序要有適當(dāng)?shù)淖⑨專钩绦蛉菀组喿x;至少采用文本菜單界面;建議使用結(jié)構(gòu)體和鏈表等數(shù)據(jù)結(jié)構(gòu);學(xué)生可自動(dòng)增加新功能模塊;寫出課程設(shè)計(jì)報(bào)告,具體要求見相關(guān)說明文檔。課程設(shè)計(jì)任務(wù)內(nèi)容總體目標(biāo):猜數(shù)字游戲軟件的總體目標(biāo)是按照特定游戲規(guī)則為用戶提供一個(gè)方便友好的游戲界面,同時(shí)給用戶提供排行榜的功能使用戶能夠按照特定的目標(biāo)提高自己的成績(jī),并且提供相應(yīng)的幫助功能。游戲規(guī)則如下:游戲軟件隨機(jī)產(chǎn)生4個(gè)數(shù)字,但不顯示,給用戶提供輸入提示符,讓用戶猜4個(gè)數(shù)字的值和位置順序。如果數(shù)字值和位置均正確,則猜數(shù)字成功。玩家有10次猜數(shù)字機(jī)會(huì),如果在10次之內(nèi)仍未猜出正確的數(shù)字和位置順序,則提示用戶游戲失敗。一旦玩家在10次的次數(shù)限制內(nèi)猜出正確的數(shù)字和位置順序,則贏的游戲。當(dāng)玩家贏得游戲后會(huì)與排行榜中的前五名玩家的游戲紀(jì)錄比較,如果排名能夠進(jìn)入前五名,則更新排行榜,使當(dāng)前玩家成為入榜選手。計(jì)分規(guī)則:猜數(shù)字所用次數(shù)即為分?jǐn)?shù),所以分?jǐn)?shù)越少證明玩家水平越高,排行榜中也是排列分?jǐn)?shù)最少的前五名選手。基本功能:本游戲軟件需要實(shí)現(xiàn)以下一些基本功能:游戲區(qū):玩家可以在游戲區(qū)逐次猜數(shù)字,系統(tǒng)會(huì)給玩家每次猜數(shù)字后的提示,包括數(shù)值,位置均正確的數(shù)字個(gè)數(shù)和數(shù)值正確,但位置不正確的數(shù)字個(gè)數(shù)。刷新排行榜:當(dāng)玩家成功完成一輪猜數(shù)字游戲后,可以通過和排行榜中相應(yīng)記錄的比較判斷玩家是否可以進(jìn)入排行榜,進(jìn)入排行榜的資格是游戲成績(jī)?cè)谇拔迕耐婕?。查看排行榜:玩家可以查看?dāng)前排行榜中的排名順序,從而確定自己的游戲目標(biāo)。排行榜的查看按一定的順序顯示給用戶,便于查看。清除排行榜:玩家可以選擇清除排行榜功能,使得排行榜的玩家名字和玩家游戲的記錄從系統(tǒng)中清除,只留下系統(tǒng)默認(rèn)的玩家名(player)和系統(tǒng)默認(rèn)記錄10次。幫助:玩家通過幫助功能了解游戲規(guī)則和排行榜設(shè)置規(guī)則。詳細(xì)設(shè)計(jì)說明程序設(shè)計(jì)思路:猜數(shù)游戲的目標(biāo)是按照設(shè)定的游戲規(guī)則為玩家提供一個(gè)簡(jiǎn)單而愉快的游戲界面,同時(shí)給玩家一些特定的功能,便于更好的使用該游戲軟件。在對(duì)本程序的實(shí)現(xiàn)過程中,將各個(gè)功能分別由不同的函數(shù)來實(shí)現(xiàn),從而完成了對(duì)本程序的模塊劃分。該游戲共分為4個(gè)模塊,分別是游戲模塊,查詢模塊,幫助模塊,退出模塊。圍繞這4個(gè)模塊,大量函數(shù),互相調(diào)用,如:StartProgram();SortByName();PrintHelp();等等,還用了大量的文件指針,文件的讀寫與存儲(chǔ)。本程序在實(shí)現(xiàn)游戲的基本功能同時(shí),還提供了查詢與幫助的功能,因此玩家可以更好的適應(yīng)這個(gè)游戲,也達(dá)到了設(shè)計(jì)這個(gè)游戲的目的了。而設(shè)計(jì)的重點(diǎn)在于隨機(jī)數(shù)字的產(chǎn)生與游戲的提示,這兩個(gè)方面的設(shè)計(jì)決定了程序運(yùn)行的正確性和質(zhì)量。主程序模塊結(jié)構(gòu)示意圖:猜數(shù)字游戲猜數(shù)字游戲游戲界面按玩家成績(jī)?yōu)g覽排行榜排行榜按玩家姓名瀏覽排行榜排行榜清除排行榜幫助模塊主程序模塊圖函數(shù)流程圖:開始功能選擇開始功能選擇游戲按成績(jī)?yōu)g覽排行榜按姓名瀏覽排行榜幫助結(jié)束清除記錄總流程圖開始游戲開始游戲顯示排行榜最好成績(jī)隨機(jī)產(chǎn)生四個(gè)數(shù)字是否10次之內(nèi)玩家猜數(shù)字是是否成功否提示成功是否成功否提示成功是產(chǎn)生新記錄提示玩家游戲失敗是產(chǎn)生新記錄菜單界面退出結(jié)束游戲流程圖軟件使用說明軟件使用說明:本程序的運(yùn)行環(huán)境為DOS操作系統(tǒng),執(zhí)行文件為:猜數(shù)字.exe;進(jìn)入演示程序后,即顯示主菜單界面,如圖所示:用戶輸入相應(yīng)命令的數(shù)字;游戲部分:用戶按提示分別輸入4各不相同的數(shù)字,兩個(gè)數(shù)字間用“空白鍵”隔開,每行結(jié)束符為“回車符”。軟件運(yùn)行界面:游戲界面按玩家姓名瀏覽排行榜按玩家成績(jī)?yōu)g覽排行榜幫助選項(xiàng)課程設(shè)計(jì)心得與體會(huì)課程設(shè)計(jì)是本科學(xué)習(xí)階段一次非常難得的理論與實(shí)際相結(jié)合的機(jī)會(huì),通過這次比較完整的一個(gè)程序的設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),和實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的基礎(chǔ)知識(shí),解決實(shí)際問題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、對(duì)程序整體的把握等其他能力水平,而且通過對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富。這是我們都希望看到的也正是我們進(jìn)行課程設(shè)計(jì)的目的所在。雖然設(shè)計(jì)內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。各種組件的運(yùn)用,各種算法的應(yīng)用,各種控件的利用我都是隨著設(shè)計(jì)的不斷深入而不斷熟悉并逐步掌握的。和老師以及同學(xué)的溝通交流更使我對(duì)程序整體的規(guī)劃與設(shè)計(jì)有了新的認(rèn)識(shí)也對(duì)自己提出了新的要求。提高是有限的但提高也是全面的,正是這一次設(shè)計(jì)讓我積累了許多實(shí)際經(jīng)驗(yàn),也必然會(huì)讓我在未來的工作學(xué)習(xí)中表現(xiàn)出更高的應(yīng)變能力和理解力。順利如期的完成本次課程設(shè)計(jì)給了我很大的信心,但是也讓多不足的地方,學(xué)習(xí)其實(shí)就是一個(gè)不斷完善的過程,正視自己的不足之處,在以后的工作和學(xué)習(xí)中不斷的彌補(bǔ)這些不足之處,在以后的生活中也要保持同樣的態(tài)度,不斷的完善自己。參考文獻(xiàn)郭翠英主編的《C語言課程設(shè)計(jì)實(shí)例精編》;張芳妮呂波譯《C語言編程常見問題解答》;譚浩強(qiáng)《C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版)》。伍俊良.VB課程設(shè)計(jì)與系統(tǒng)開發(fā)案例[M].北京:清華大學(xué)出版社,2002程序清單#include"stdio.h"#include"time.h"#include"stdlib.h"#include"string.h"intw;structnode{charname[20];intscores;structnode*next;};voiddisplay(structnode*head);structnode*insert(structnode*head,structnodedata1);structnode*del(structnode*head,char*name);main(){structnode*head=NULL;/*structnodez=("king",10);*/structnodepeople[5]={{"booshi",6},{"bulaie",5},{"jiabao",1},{"jintao",3},{"pujing",2}};//已存檔的用戶得分情況intz=1;inta[4],b[4];intcommand,m,n,i,j,f,g;intk=0,t=0;charstr[8],str1[8]="king";structnodecharu;structnodemoren;while(1&&z){printf("==================GeussTheNumber=========================\n");printf("1.NewGame2.Scanlistbyscore\n");printf("3.Scanlistbyname4.ClearList\n");printf("5.Hlep6.Exit\n");printf("===============================================================\n");printf("Pleaseenterthecommand:");scanf("%d",&command);if(command==6)z=0;//scanf("%d",&command);switch(command){case1:{for(g=0;g<=4;g++)head=insert(head,people[g]);printf("thebestoneis%s,%d\n",head->name,head->scores);srand((unsigned)time(NULL));do{m=0;for(m=0;m<4;m++){a[m]=rand()%10;}}//隨機(jī)產(chǎn)生四個(gè)數(shù)字while(!(a[0]!=a[1]&&a[0]!=a[2]&&a[0]!=a[3]&&a[1]!=a[2]&&a[1]!=a[3]&&a[2]!=a[3]));//前提條件,四個(gè)數(shù)字各不相同for(m=0;m<4;m++)printf("%d",a[m]);printf("\n");for(n=1;n<=10;n++){printf("pleaseinputfournumbers(0-9):\n");for(f=0;f<4;f++)scanf("%d",&b[f]);//按提示輸入四個(gè)數(shù)字for(i=0;i<4;i++)for(j=0;j<4;j++){if((j==i)&&(b[j]==a[i]))k++;elseif(b[j]==a[i])t++;}printf("youhavetried%dtimes\n",n);printf("%dA%dB\n",k,t);//輸出游戲提示信息if(k!=4)k=0,t=0;else{printf("goodjob!\n");printf("pleaseinputyourname:");scanf("%s",str);strcpy(,str);charu.scores=n;head=insert(head,charu);display(head);system("pause");break;}}}//游戲模塊case2:w=0;for(g=0;g<=4;g++)head=insert(head,people[g]);display(head);printf("\n");system("pause");break;//按玩家得分查看排行榜case3:w=1;for(g=0;g<=4;g++)head=insert(head,people[g]);display(head);printf("\n");system("pause");break;//按玩家姓名查看排行榜case4:strcpy(,str1);moren.scores=10;printf("thelistisempty!\n");head=insert(head,moren);display(head);system("pause");break;//清除排行榜case5:printf("welcometothegame,youhavetentimestoguess\n");printf("thenumbersthesystemgiven,ifyougetthe\n");printf("rightnumberscongradulationstoyou,ifnot,\n");printf("donotloseyourconfidence,tryagain,youmakeit!\n");system("pause");break;//幫助模塊case6:printf("gameover!\n");system("pause");break;}}}voiddisplay(structnode*head){intg,a1=0;structnode*p;if(head==NULL)printf("\nnotdisplay!");else{p=head;while(p!=NULL&&a1<5){printf("%s,%d\n",p->name,p->scores);p=p->next;a1++;}}}structnode*del(structnode*head,char*name){structnode*p,*q;if(head==NULL)printf("emptytable,notdelete!");elseif(strcmp(head->name,name)==0){q=head;head=head->next;free(q);}else{p=head;while((p->next!=NULL)&&(strcmp(p->next->name,name)!=0))p=p->next;if(p->next!=NULL){q=p->next;p->next=q->next;free(q);}elseprintf("noname\n");}return(head);}structnode*insert(structnode*head,structnodedata1){structnode*s,*p;s=(structnode*)malloc(sizeof(structnode));strcpy(s->n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年房地產(chǎn)債權(quán)委托討債合作協(xié)議3篇
- 2025年教室租賃及教育教學(xué)資源整合協(xié)議3篇
- 2025年度跨境電商平臺(tái)臨時(shí)工合作協(xié)議書4篇
- 買賣墳地協(xié)議書(2024版)
- 鐵皮石斛2025年度租賃合同2篇
- 二零二五版合伙購(gòu)買共有產(chǎn)權(quán)房及共有產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議3篇
- 2025年度智慧城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目土地及廠房轉(zhuǎn)讓協(xié)議4篇
- 二零二五版復(fù)墾土地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同樣本3篇
- 2025年度智慧商圈場(chǎng)門面租賃合同樣本4篇
- 2025年科技園區(qū)配套設(shè)施土地買賣合同模板3篇
- 社會(huì)組織能力建設(shè)培訓(xùn)
- 立項(xiàng)報(bào)告蓋章要求
- 2022年睪丸腫瘤診斷治療指南
- 被執(zhí)行人給法院執(zhí)行局寫申請(qǐng)范本
- 主變壓器試驗(yàn)報(bào)告模板
- 安全防護(hù)通道施工方案
- 視覺元素對(duì)心理感知的影響
- 飯店管理基礎(chǔ)知識(shí)(第三版)中職PPT完整全套教學(xué)課件
- 柴油供貨運(yùn)輸服務(wù)方案
- 110應(yīng)急聯(lián)動(dòng)預(yù)案
- 光伏發(fā)電監(jiān)理規(guī)劃
評(píng)論
0/150
提交評(píng)論