知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
軟工課設(shè):黃金點(diǎn)游戲
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):72
這里寫(xiě)自定義目錄標(biāo)題
- 課設(shè)要求
- 設(shè)計(jì)思路及流程圖
- 代碼
- 結(jié)對(duì)編程感想
課設(shè)要求
分組編寫(xiě)一個(gè)滿(mǎn)足下列要求的黃金點(diǎn)游戲程序。
? 游戲規(guī)則:N個(gè)同學(xué)(N通常大于10),每人寫(xiě)一個(gè)0~100之間的有理數(shù) (不包括0或100),交給裁判,裁判算出所有數(shù)字的平均值,然后乘以0.618 (所謂黃金分割常數(shù)),得到G值。提交的數(shù)字最靠近G(取絕對(duì)值)的同 學(xué)得到N分,離G最遠(yuǎn)的同學(xué)得到-2分,其他同學(xué)得0分。
? 采用單機(jī)方式實(shí)現(xiàn),需要為用戶(hù)提供便利的輸入界面。
? 該游戲每次至少可以運(yùn)行10輪以上,并能夠保留各輪比賽結(jié)果。
? 后續(xù)在此基礎(chǔ)上迭代開(kāi)發(fā)。
設(shè)計(jì)思路及流程圖
設(shè)計(jì)語(yǔ)言:C++
設(shè)置goldgame結(jié)構(gòu)體來(lái)存放用戶(hù)的輸入數(shù)據(jù)和分?jǐn)?shù);
首先,用戶(hù)輸入?yún)⑴c人數(shù),創(chuàng)建結(jié)構(gòu)體數(shù)組存儲(chǔ)用戶(hù)信息,然后在功能選擇界面選擇開(kāi)始游戲,結(jié)束游戲,顯示分?jǐn)?shù)等功能;
開(kāi)始游戲后,用戶(hù)依次輸入數(shù)字,系統(tǒng)將計(jì)算平均值并乘以0.618,然后通過(guò)循環(huán)n次選出與這個(gè)值最近與最遠(yuǎn)的用戶(hù)編號(hào),并對(duì)其進(jìn)行加分與扣分;
跳轉(zhuǎn)至功能選擇界面,用戶(hù)繼續(xù)選擇需要執(zhí)行的功能。
代碼
#include <iostream>
#include<cmath>
using namespace std;
struct goldpoint
{
double data;
int score = 0;
};
int main()
{
int n,m = 0;
double number=0;
cout << "請(qǐng)輸入?yún)⑴c人數(shù)";
cin >> n;
goldpoint student[n];
ff1: cout << "請(qǐng)選擇功能:1:進(jìn)行游戲;2:結(jié)束游戲;3:查看當(dāng)前分?jǐn)?shù)"<< endl;
cin >> m;
while(m!=2)
{
if(m==1)
{
cout << "請(qǐng)依次輸入" << n <<"位學(xué)生的數(shù)字" << endl;
for(int i=0; i<n; i++)
{
cin>>student[i].data;
number+=student[i].data;
}
double avg = number/n*0.618;
double max=fabs(student[0].data-avg), min=fabs(student[0].data-avg);
int flagmax=0, flagmin=0;
for(int i=0; i<n; i++)
{
if(max < fabs(student[i].data-avg))
{
max = fabs(student[i].data-avg);
flagmax = i;
}
if(min > fabs(student[i].data-avg))
{
min = fabs(student[i].data-avg);
flagmin = i;
}
}
student[flagmax].score-=2;
student[flagmin].score+=2;
cout << "本輪游戲最近者:" << flagmin+1 << "號(hào)同學(xué)" << endl;
cout << "本輪游戲最遠(yuǎn)者:" << flagmax+1 << "號(hào)同學(xué)" << endl;
}
if(m==3)
{
for(int i=0; i < n; i++)
cout << "stunent" << i+1 << ":" << student[i].score << endl;
}
goto ff1;
}
return 0;
}
結(jié)對(duì)編程感想
結(jié)對(duì)編程是一種敏捷軟件開(kāi)發(fā)的方法,兩個(gè)程序員在一個(gè)計(jì)算機(jī)上共同工作。一個(gè)人輸入代碼,而另一個(gè)人審查他輸入的每一行代碼。輸入代碼的人稱(chēng)作駕駛員,審查代碼的人稱(chēng)作觀(guān)察員。兩個(gè)程序員經(jīng)?;Q角色。
在此次結(jié)對(duì)編程中,我們可以及時(shí)討論思路,解決了一個(gè)人思考的局限性;一個(gè)人工作時(shí),由于時(shí)間跨度較大,在編譯時(shí),之前的一些細(xì)節(jié)思路會(huì)有所遺忘,增大debug的難度,而通過(guò)結(jié)對(duì)編程,在輸入代碼的同時(shí),另一個(gè)人可以及時(shí)地作出反饋,及時(shí)改掉一些bug,在編譯之前就解決它,大大地提高了效率;最后,因?yàn)槭莾蓚€(gè)人一起編程,不會(huì)像獨(dú)自編程時(shí)那樣隨意,而是會(huì)集中注意力以免被隊(duì)友挑出漏洞,同時(shí)在代碼格式的使用上也會(huì)比較嚴(yán)謹(jǐn),這樣也在一定程度上提高了代碼質(zhì)量。
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站建設(shè)高手
- 北京小程序開(kāi)發(fā)
- 網(wǎng)站排名
- 二叉樹(shù)
- 云南網(wǎng)站建設(shè)百度
- 云南網(wǎng)站建設(shè)靠譜公司
- 微信小程序開(kāi)發(fā)入門(mén)課程
- 云南網(wǎng)站建設(shè)
- 開(kāi)發(fā)框架
- 網(wǎng)絡(luò)公司報(bào)價(jià)
- 開(kāi)發(fā)制作小程序
- 汽車(chē)報(bào)廢回收管理系統(tǒng)
- 網(wǎng)站建設(shè)服務(wù)公司
- 云南網(wǎng)站建設(shè)服務(wù)公司
- 網(wǎng)站上首頁(yè)
- 快排推廣
- 云南省建設(shè)廳官方網(wǎng)站
- 云南軟件公司
- 微信小程序
- 網(wǎng)站建設(shè)公司網(wǎng)站
- SEO
- 百度小程序開(kāi)發(fā)公司
- 網(wǎng)站建設(shè)制作
- vue開(kāi)發(fā)小程序
- 云南網(wǎng)站建設(shè)招商
- 楚雄網(wǎng)站建設(shè)公司
- 政府網(wǎng)站建設(shè)服務(wù)
- 網(wǎng)站建設(shè)首選
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 汽車(chē)報(bào)廢回收軟件