出圈游戲1 c++程序設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
出圈游戲1 c++程序設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
出圈游戲1 c++程序設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
出圈游戲1 c++程序設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
出圈游戲1 c++程序設(shè)計(jì)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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)介

河北聯(lián)合大學(xué)2012-2013第2學(xué)期《軟件設(shè)計(jì)基礎(chǔ)-C++》課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:出圈游戲1姓名:張子超學(xué)號(hào):201214670112專業(yè)班級(jí):12軋一學(xué)院:冶金與能源學(xué)院設(shè)計(jì)時(shí)間:2013年5月10日至2013年7月1日設(shè)計(jì)地點(diǎn):學(xué)校機(jī)房成績(jī):75成績(jī):75指導(dǎo)教師簽字:年月日《軟件設(shè)計(jì)基礎(chǔ)-C++》課程設(shè)計(jì)報(bào)告第2頁(yè),共14頁(yè)目錄1.課程設(shè)計(jì)目的 32.課程設(shè)計(jì)任務(wù)與要求 33.課程設(shè)計(jì)說(shuō)明書(shū) 54.課程設(shè)計(jì)成果 75.程序調(diào)試過(guò)程 116.設(shè)計(jì)問(wèn)題的不足和改進(jìn)方案 117.課程設(shè)計(jì)心得 128.參考文獻(xiàn) 13

1.課程設(shè)計(jì)目的《軟件設(shè)計(jì)基礎(chǔ)-C++》課程設(shè)計(jì)是這門(mén)課程的實(shí)踐性教學(xué)環(huán)節(jié)之一,本次設(shè)計(jì)結(jié)合實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋C++的知識(shí)點(diǎn),又接近工程實(shí)際需要。目的是通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問(wèn)題、解決問(wèn)題的能力,以及編程和動(dòng)手能力,最終目標(biāo)是通過(guò)課程設(shè)計(jì)這種形式,幫助學(xué)生系統(tǒng)掌握C++這門(mén)課程的主要內(nèi)容,養(yǎng)成良好的編程習(xí)慣,更好的完成教學(xué)任務(wù)。2.課程設(shè)計(jì)任務(wù)與要求:要求:本次課程設(shè)計(jì)利用《軟件設(shè)計(jì)基礎(chǔ)-C++》課程中所學(xué)到的編程知識(shí)和編程技巧,完成具有一定難度和工作量的程序設(shè)計(jì)題目,幫助學(xué)生掌握編程、調(diào)試的基本技能,獨(dú)立完成所布置的任務(wù)。要求:1、對(duì)系統(tǒng)進(jìn)行功能需求分析2、設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架3、編程簡(jiǎn)練,程序功能齊全,能正確運(yùn)行4、說(shuō)明書(shū)、流程圖要清楚5、課題完成后必須按要求提交課程設(shè)計(jì)報(bào)告任務(wù):問(wèn)題描述:假設(shè)有n個(gè)人按順時(shí)針圍成一圈,一開(kāi)始任選一個(gè)正整數(shù)作為報(bào)數(shù)上限值m,從第一個(gè)人開(kāi)始按順時(shí)針?lè)较蜃?開(kāi)始報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)到m的人出列,然后從他原來(lái)所在的順時(shí)針?lè)较虻南乱粋€(gè)開(kāi)始重新從1報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)并出列。如此下去,直至所有的人全部出列為止。要求按他們出列的順序輸出他們?cè)瓉?lái)的序號(hào)和名字。問(wèn)題的解決方案:本課程設(shè)計(jì)任務(wù)描述中,要實(shí)現(xiàn)從鍵盤(pán)隨機(jī)輸入這兩個(gè)數(shù)據(jù)完成出圈游戲。因此,需要根據(jù)運(yùn)行時(shí)的實(shí)際要求,分配適當(dāng)大小的存儲(chǔ)區(qū)。當(dāng)回答參加游戲的人數(shù)之后,即可為程序分配一塊內(nèi)存塊,用來(lái)存入游戲者的名字和序號(hào)。但在計(jì)算中,需要將點(diǎn)到的人出圈,這是通過(guò)將對(duì)象的序號(hào)均變?yōu)?實(shí)現(xiàn)的?;疽螅海?)在頭文件中聲明SeqList類。(2)源代碼程序要求必要的注釋。(3)每個(gè)模塊存入一個(gè)文件中,以多文件模式存儲(chǔ)并調(diào)試程序。創(chuàng)新要求在基本要求達(dá)到后,可以進(jìn)行創(chuàng)新設(shè)計(jì),如使用動(dòng)態(tài)存儲(chǔ)管理(使用動(dòng)態(tài)數(shù)組接收輸入,并且參加游戲的人數(shù)和間隔可變)。3.課程設(shè)計(jì)說(shuō)明書(shū)=1\*GB2⑴概要設(shè)計(jì)模塊說(shuō)明:在我設(shè)計(jì)的程序中一共包括SeqList聲明,接收模塊,檢查模塊,循環(huán)模塊,和輸出模塊。最終是通過(guò)Joseph函數(shù)實(shí)現(xiàn)出圈。模塊結(jié)構(gòu)圖:SeqListSeqList聲明接收模塊檢查模塊循環(huán)模塊循環(huán)模塊輸出模塊Joseph函數(shù)=2\*GB2⑵詳細(xì)設(shè)計(jì)1.總體流程圖:Main函數(shù)用SeqList類創(chuàng)建對(duì)象調(diào)用JosephMain函數(shù)用SeqList類創(chuàng)建對(duì)象調(diào)用Joseph函數(shù)實(shí)現(xiàn)出圈輸出提示要求鍵盤(pán)輸入數(shù)字用用game1()形成鏈表2.各功能模塊流程圖(1)調(diào)用Joseph實(shí)現(xiàn)出圈接收鍵盤(pán)上的數(shù)字接收鍵盤(pán)上的數(shù)字檢查輸入的人數(shù)和間隔數(shù)是否符合要求檢查輸入的人數(shù)和間隔數(shù)是否符合要求輸出相應(yīng)的提示,并要求正確輸入輸出相應(yīng)的提示,并要求正確輸入 不符合要求 符 依舊不符合 合 符合輸出最后一個(gè)的相關(guān)信息循環(huán)報(bào)數(shù)出圈直至留下一個(gè)人,并且每次出圈都輸出輸出最后一個(gè)的相關(guān)信息循環(huán)報(bào)數(shù)出圈直至留下一個(gè)人,并且每次出圈都輸出(2)其余模塊均為簡(jiǎn)單語(yǔ)句,無(wú)需細(xì)分,只需注意語(yǔ)法和格式即可4.課程設(shè)計(jì)成果程序源代碼#include<iostream>#include<string.h>usingnamespacestd;//類聲明用的是雙鏈表classSeqList{ intnum;charname[10];public: SeqList*next;//對(duì)象的下一個(gè)對(duì)象的指針SeqList*pre;//對(duì)象的前一個(gè)對(duì)象的指針intGetNum();//得到私有數(shù)據(jù)序號(hào)voidDispName();//從鏈表中除去選中的那個(gè)人char*GetName();//得到私有數(shù)據(jù)姓名voidSetNum(inta);//設(shè)置私有數(shù)據(jù)序號(hào)voidSetName(charb[10]);//設(shè)置私有數(shù)據(jù)姓名~SeqList(){}//析構(gòu)函數(shù),其實(shí)在這里寫(xiě)不寫(xiě)都行};//類成員函數(shù)定義intSeqList::GetNum(){ returnnum;}//讀數(shù)據(jù)成員voidSeqList::DispName(){ pre->next=next;next->pre=pre;//printf("%d%s\n",num,name);}char*SeqList::GetName(){ returnname;}//讀數(shù)據(jù)成員voidSeqList::SetNum(inta){ num=a;}voidSeqList::SetName(charb[10]){ strncpy(name,b,10);}//主函數(shù)的定義voidgame1();voidJoseph(SeqList*p,intlength);intmain(){ game1();return0;}//建立成員的雙鏈表過(guò)程,輸入成員并將其鏈接成一個(gè)雙鏈表,便于刪除和添加對(duì)象voidgame1()//游戲的輸入成員工程{ intn,i,m;intnum1;chars[10];cout<<"請(qǐng)輸入總?cè)藬?shù)和出圈數(shù)"<<endl;cin>>n>>m;while(n<=0||m<=0){cout<<"請(qǐng)輸入正確的總?cè)藬?shù)和出圈數(shù)"<<endl;cin>>n>>m;}SeqList*head,*p,*q;//聲明鏈表所需的指針head=(SeqList*)newSeqList;//頭指針cout<<"請(qǐng)輸入序號(hào)和姓名"<<endl;cin>>num1>>s;head->SetNum(num1);//頭指針?biāo)笇?duì)象的建立過(guò)程head->SetName(s);head->pre=NULL;head->next=NULL;p=head;for(i=1;i<n;i++)//指針其余部分的建立 {q=(SeqList*)newSeqList;p->next=q;cin>>num1>>s;q->SetNum(num1);q->SetName(s);q->pre=p;q->next=NULL;p=q;}p->next=head;head->pre=p;Joseph(head,m);//函數(shù)調(diào)用刪除對(duì)象deleteq;}voidJoseph(SeqList*q,intlength)//游戲的剔除并輸出對(duì)象的過(guò)程{cout<<"出圈順序"<<endl; inti,j;SeqList*p=q;for(i=0;p->next!=p;i++){ if(i==0) j=1; else j=0; for(;j<length;j++)//遍歷對(duì)象 { p=p->next; } cout<<p->GetNum()<<""<<p->GetName()<<endl;//輸出所選擇的對(duì)象的信息 p->DispName();//刪除所選擇的對(duì)象 } deleteq;}運(yùn)行過(guò)程5.程序調(diào)試過(guò)程寫(xiě)出程序調(diào)試步驟,及遇到的問(wèn)題。調(diào)試程序遇到的問(wèn)題第一次:忘記兩個(gè)分號(hào)解決辦法:加分號(hào)第二次:變量num1未定義解決辦法:在變量聲明部分加intnum16.設(shè)計(jì)問(wèn)題的不足和改進(jìn)方案不足:(1)沒(méi)有出圈游戲者具體信息的輸出改進(jìn)方案:類中加幾個(gè)屬性要求用戶輸入寫(xiě)相關(guān)輸出方法出圈時(shí)輸出運(yùn)行一次程序不能做多次游戲改進(jìn)方案:main中加循環(huán),mian最開(kāi)始要求輸入游戲次數(shù)t然后用for(intj=0;j<t;j++)循環(huán)7.課程設(shè)計(jì)心得回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,這畢竟獨(dú)立做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體,類和函數(shù)……通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。此次,程序的設(shè)計(jì)和創(chuàng)建,經(jīng)歷了平時(shí)在課堂中和考試中,決不會(huì)有的重重難題和問(wèn)題。而這些問(wèn)題,又都是課本上很少提到的、更深一層的知識(shí)領(lǐng)域和應(yīng)用領(lǐng)域。這些問(wèn)題,并不是我們平時(shí)只靠課本,就可以輕易解決的?!皩?shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”。沒(méi)有實(shí)踐,就不會(huì)發(fā)現(xiàn)和深刻體會(huì)它的真實(shí)所在。只有通過(guò)檢驗(yàn)的真理,在自己的心里,才會(huì)認(rèn)可它的真實(shí)性。面向?qū)ο蟪绦蛟O(shè)計(jì)的完成,使我們懂得了真理的重要性,理論和實(shí)際的相結(jié)合,才能真正把握所學(xué)和所掌握的知識(shí)。整體地評(píng)價(jià)這次課程設(shè)計(jì),我認(rèn)為收獲很大,正如上面所說(shuō)的那樣,通過(guò)課程設(shè)計(jì),既復(fù)習(xí)了以前的舊知識(shí),又學(xué)到了一些新的知識(shí);設(shè)計(jì)增強(qiáng)了我們用所學(xué)知識(shí)去解決具體問(wèn)題的能力,進(jìn)一步培養(yǎng)了我們獨(dú)立思考問(wèn)題和解決問(wèn)題的能力。理論的擁有并不能代表我們的實(shí)力和能力,一切的事件和其成功都是理論和實(shí)踐的結(jié)合。總之,我們學(xué)習(xí)和掌握的知識(shí),只有通過(guò)實(shí)際應(yīng)用,才能真正的理解和掌握,才能更好的去應(yīng)用。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在同學(xué)的幫助下,終于游逆而解。同時(shí),在其他同

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論