資源描述:
《擲骰子游戲設(shè)計(jì)需求分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、C++課程設(shè)計(jì)目錄一、擲骰子游戲設(shè)計(jì)需求分析…………………………1二、類關(guān)系圖和類成員函數(shù)……………………………3三、模塊的設(shè)計(jì)分析……………………………………4四、存在的問題與不足及總結(jié)…………………………7五、使用說明(操作手冊(cè))……………………………8六、程序源代碼…………………………………………913C++課程設(shè)計(jì)一擲骰子游戲設(shè)計(jì)需求分析一、擲骰子游戲需求:1、假如有n個(gè)學(xué)生排成一圈,編號(hào)從1到n,每個(gè)人有初始積分,不防設(shè)為100。2、從1號(hào)開始擲骰子,骰子出現(xiàn)后,根據(jù)點(diǎn)數(shù)減去擲骰人的相應(yīng)積分,如減去10*(6-點(diǎn)數(shù)
2、),然后根據(jù)點(diǎn)數(shù)多少,就依次向后數(shù)擲骰的點(diǎn)數(shù)同等數(shù)量的人,被數(shù)到的最后一個(gè)人繼續(xù)擲骰子,計(jì)算積分,依此類推。3、如果某人擲骰后,其積分小于等于0則出列,余下的人繼續(xù)按照此法進(jìn)行游戲,直到剩下最后一個(gè)人,為勝利者。4、要求打印每次出列的人的編號(hào),擲骰子的次數(shù),當(dāng)前積分。并打印最后勝利者的相應(yīng)信息。5、要求用環(huán)鏈表以及類來實(shí)現(xiàn)這個(gè)程序。6、選做:?jiǎn)枖S骰m次后,還剩下幾個(gè)人積分多少,顯示出來。二、游戲?qū)崿F(xiàn)方式:13C++課程設(shè)計(jì)為了實(shí)現(xiàn)游戲的上述功能,在整個(gè)程序的設(shè)計(jì)中構(gòu)造了一個(gè)游戲類(classplayer)。下面是游戲類(cl
3、assplayer)的成員函數(shù)實(shí)現(xiàn)的功能:1、成員函數(shù)Player(char*pName,intid)用于儲(chǔ)存參賽者的姓名和他們的編號(hào);2、成員函數(shù)Player::Integral(intnumber)用于計(jì)算參賽者的當(dāng)前積分和擲骰子的次數(shù)。3、成員函數(shù)Player::Initial()用于創(chuàng)建參賽者的鏈表。4、成員函數(shù)Player::Game()用于判斷是否要有參賽者出列并記錄當(dāng)前參賽者的信息和擲骰子的次數(shù)、點(diǎn)數(shù)。5、成員函數(shù)Display()用于打印本次游戲打印每次出列的人的編號(hào),擲骰子的次數(shù)和最后勝利者的相應(yīng)信息。二類
4、關(guān)系圖和類主要成員函數(shù)和成員變量13C++課程設(shè)計(jì)Player類code;countscorename[20]numOfPlayerPlayer*head;Player*next;Player()Integral()Display()~Player()Initial()Game()code//每位參賽者的編號(hào)count//每位參賽者擲骰子的次數(shù)score//參賽者的積分name[20]//參賽者的姓名numOfPlayer//參加游戲總?cè)藬?shù)13C++課程設(shè)計(jì)三模塊的設(shè)計(jì)分析1.游戲類(classPlayer)的說明1).構(gòu)造
5、函數(shù)Player(char*pName,intid)用于儲(chǔ)存參賽者的姓名和他們的編號(hào);Player::Player(char*pName,intid){code=id;score=100;count=0;strcpy(name,pName);}先是從程序中輸入?yún)①愓呷藬?shù),通過DOS屏幕的提示依次輸入?yún)①愓叩男彰到y(tǒng)會(huì)自動(dòng)給參賽者編號(hào),而這些信息由構(gòu)造函數(shù)Player儲(chǔ)存。2).Player::Integral(intnumber)用于計(jì)算參賽者的當(dāng)前積分和擲骰子的次數(shù)。Player::~Player(){Player*t;
6、Player*p=head;for(inti=1;i<=numOfPlayer;i++){t=p;if(i!=numOfPlayer){p=p->next;}deletet;}}intPlayer::Integral(intnumber){count=count+1;score-=(6-number)*10;if(score<=0)return0;elsereturn1;}通過構(gòu)造函數(shù)Integral()來計(jì)算參賽者的當(dāng)前積分和擲骰子的次數(shù)。另外該函數(shù)被后面的Game()函數(shù)調(diào)用,用于判斷是否有參賽者出列。3).析構(gòu)函數(shù)Pl
7、ayer::~Player()。因?yàn)榉峙淞硕褍?nèi)存,所以當(dāng)程序結(jié)束時(shí)要把空間給釋放。13C++課程設(shè)計(jì)4).Player::Initial()用于創(chuàng)建參賽者的鏈表。Player*ps;//創(chuàng)建的結(jié)點(diǎn)指針Player*pend;//鏈尾指針,用于在其后面插入結(jié)點(diǎn)Player::Initial(){intid;intm;Player*ps;Player*pend;while(1){cout<<"下面請(qǐng)輸入?yún)①愓呷藬?shù):";cin>>m;numOfPlayer=m;for(id=1;id<=m;id++){cout<<"請(qǐng)輸入"<
8、d<<"號(hào)參賽者的姓名:";charpName[20];cin>>pName;ps=newPlayer(pName,id);if(head==NULL)head=ps;elsepend->next=ps;pend=ps;cout<