




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄一、設(shè)計目標與內(nèi)容3二、設(shè)計要求42.1設(shè)計約束、限制42.2基本要求4三、基本思路43.1軟件體系結(jié)構(gòu)43.1.1軟件程序結(jié)構(gòu)圖43.2模塊描述53.2.1打分策略錄入53.2.2 賽事錄入63.2.3 比賽賽事選擇63.2.4 評委打分73.2.5 得分結(jié)果展示7四、主要步驟84.1設(shè)置主界面84.2根據(jù)選擇的不同進入不同的界面84.3輸入賽事與策略的信息104.4根據(jù)賽事選擇的不同進入不同的打分界面134.5打分并顯示結(jié)果161.打分JS1162.打分JS2193.打分JS3254.打分JS4295.打分JS431五、設(shè)計心得33一、 設(shè)計目標與內(nèi)容1.了解Windows編程的基礎(chǔ)知
2、識,掌握MFC應(yīng)用程序的基本知識; 2.基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;3.掌握用VC+開發(fā)應(yīng)用程序的的一般步驟和方法;4.能夠利用所學(xué)的基本知識, 設(shè)計一個簡單的評委打分系統(tǒng),具有以下功能:能夠輸入賽事與策略的信息根據(jù)賽事選擇的不同選用不同的策略,并顯示出最后結(jié)果二、 設(shè)計要求2.1設(shè)計約束、限制操作系統(tǒng):windows操作系統(tǒng)數(shù)據(jù)庫平臺:無開發(fā)語言:VC+開發(fā)模式:C/S模式硬件約束:CPU: Pentium 4內(nèi)存:256M硬盤:10G2.2基本要求1. 需要充分考慮到程序的可擴展性。程序可能會增加非常多的種類的比賽以及打分策略。2. 第一步需要實現(xiàn)以下幾種打分策略:1) 評委
3、數(shù)量在6人以下的:計算6個評委打分的平均分為選手最后得分。2) 評委數(shù)量在7-9人的:除去一個最高分,一個最低分。計算平均分為選手最后得分。3) 評委數(shù)量在10人以上的:除去兩個最高分,兩個最低分。計算平均分為選手最后得分。4) 實現(xiàn)現(xiàn)在各種選秀節(jié)目中常用的打分算法:三個評委,各個評委有兩種選擇:(Y/N)。如果兩個Y,則選手過關(guān);否則不過關(guān)。三、 基本思路3.1軟件體系結(jié)構(gòu)3.1.1軟件程序結(jié)構(gòu)圖3.2模塊描述3.2.1打分策略錄入名 稱打分策略錄入標識STI子系統(tǒng)名 稱打分策略錄入系統(tǒng)名稱評委打分系統(tǒng)接口說明輸入策略編號,策略名稱輸出將記錄保存到文件中功能說明將系統(tǒng)所能提供的打分策略保存到
4、文件中;文件格式:運行環(huán)境說明參見評委打分系統(tǒng)需求規(guī)格說明書調(diào)用關(guān)系說明調(diào)用模塊被調(diào)用模塊3.2.2 賽事錄入名 稱賽事錄入標識GI子系統(tǒng)名 稱賽事錄入系統(tǒng)名稱評委打分系統(tǒng)接口說明輸入賽事編號,賽事名稱,打分策略編號輸出將記錄保存到文件中功能說明將系統(tǒng)所能滿足的賽事保存到文件中。文件格式:其中C1,C2對應(yīng)于打分策略中的策略編號運行環(huán)境說明參見評委打分系統(tǒng)需求規(guī)格說明書調(diào)用關(guān)系說明調(diào)用模塊被調(diào)用模塊3.2.3 比賽賽事選擇名 稱比賽賽事選擇標識GC子系統(tǒng)名 稱比賽賽事選擇系統(tǒng)名稱評委打分系統(tǒng)接口說明輸入比賽賽事名稱,編號輸出記錄比賽賽事信息。并打開打分界面功能說明1、 選擇比賽賽事。2、 根據(jù)
5、選擇的賽事,從文件中獲取該比賽適用的打分策略。3、 使用策略模式來選擇不同的打分界面運行環(huán)境說明參見評委打分系統(tǒng)需求規(guī)格說明書調(diào)用關(guān)系說明調(diào)用模塊被調(diào)用模塊3.2.4 評委打分名 稱評委打分標識子系統(tǒng)名 稱評委打分系統(tǒng)名稱評委打分系統(tǒng)接口說明輸入1、 進入到打分界面2、 分數(shù)輸出1、 計算打分結(jié)果2、 將結(jié)果保存到文件中功能說明根據(jù)系統(tǒng)要求來設(shè)計不同的評委打分界面。每個界面對應(yīng)于不同的打分策略。評委打分完成后將結(jié)果保存到文件中。運行環(huán)境說明參見評委打分系統(tǒng)需求規(guī)格說明書調(diào)用關(guān)系說明調(diào)用模塊被調(diào)用模塊3.2.5 得分結(jié)果展示名 稱得分結(jié)果展示標識子系統(tǒng)名 稱得分結(jié)果展示系統(tǒng)名稱評委打分系統(tǒng)接口說
6、明輸入文件中保存的打分記錄輸出將文件中保存的記錄顯示在界面上功能說明將比賽結(jié)果顯示出來。顯示結(jié)果按照最后得分的降序進行排列。運行環(huán)境說明參見評委打分系統(tǒng)需求規(guī)格說明書調(diào)用關(guān)系說明調(diào)用模塊被調(diào)用模塊四、 主要步驟4.1設(shè)置主界面4.2根據(jù)選擇的不同進入不同的界面1.打分策略輸入voidCTheJudgesScoringSystemDlg:OnBnClickedButton1()SIT sit;sit.DoModal();/ TODO: 在此添加控件通知處理程序代碼 2.賽事錄入 void CTheJudgesScoringSystemDlg:OnBnClickedButton2()/ TODO:
7、 在此添加控件通知處理程序代碼GI gi;gi.DoModal(); 3.比賽賽事選擇void CTheJudgesScoringSystemDlg:OnBnClickedButton3()/ TODO: 在此添加控件通知處理程序代碼GCF gcf;gcf.DoModal();4.比賽結(jié)果顯示void CTheJudgesScoringSystemDlg:OnBnClickedButton4()/ TODO: 在此添加控件通知處理程序代碼FinalScoreShow fss;fss.DoModal();5.退出void CTheJudgesScoringSystemDlg:OnBnClicke
8、dCancel()/ TODO: 在此添加控件通知處理程序代碼CDialogEx:OnCancel(); 6.確定void CTheJudgesScoringSystemDlg:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼CDialogEx:OnOK();4.3輸入賽事與策略的信息1.打分策略輸入void SIT:OnBnClickedSave()/ TODO: 在此添加控件通知處理程序代碼Confirmation sure;if(sure.DoModal()=1)fstream fsit;fsit.open(_T("PolicyInformation.
9、txt"),ios:app);tryif(!fsit.is_open()throw false;catch(bool)MessageBox(_T("'PolicyInformation.txt' 打開失敗");UpdateData(true);fsit<<PolicynName.GetBuffer()<<","<<PolicyNumber.GetBuffer()<<endl;PolicynName.ReleaseBuffer();PolicyNumber.ReleaseBuffer
10、();PolicynName=""PolicyNumber=""UpdateData(false);fsit.close();MessageBox(_T("保存成功");2.賽事錄入void GI:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼Confirmation sure=new Confirmation;int i; /指定逗號所在位置if(sure.DoModal()=1)fstream fsit;fsit.open(_T("GameInformation.txt"),ios:
11、app);tryif(!fsit.is_open()throw false;catch(bool)MessageBox(_T("'GameInformation.txt' 打開失敗");UpdateData(true);i=ScoreType.Find(',');fsit<<ScoreType.Mid(0,i)<<","<<GameName.GetBuffer()<<","<<GameNumber.GetBuffer()<<endl
12、;GameName.ReleaseBuffer();GameNumber.ReleaseBuffer();GameName=""GameNumber=""UpdateData(false);fsit.close();MessageBox(_T("保存成功");4.4根據(jù)賽事選擇的不同進入不同的打分界面BOOL GCF:OnInitDialog()CDialogEx:OnInitDialog();GCFCombo.ResetContent();fstream fgcf;int i = 0;fgcf.open(_T("GameI
13、nformation.txt"),ios:in);tryif(!fgcf.is_open()throw false;catch(bool)MessageBox("'GameInformation.txt' 打開失敗");return false;while(getline(fgcf,GMember.GameNumberi,',')&&getline(fgcf,GMember.GameTypei,',')GCFCombo.AddString(GMember.GameTypei.c_str();getli
14、ne(fgcf,GMember.PolicyNumberi);i+;GMember.length=i;fgcf.close();return true;void GCF:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼int i = 0;int j = 0;GCFComboText.GetBuffer();UpdateData(true);for(i=0;i<GMember.length;i+)if(GCFComboText.GetBuffer()=GMember.GameTypei)GCFComboText.ReleaseBuffer();break;GCFC
15、omboText.ReleaseBuffer();UpdateData(false);if(GMember.PolicyNumberi="G1")JS1 js1;js1.DoModal();if(GMember.PolicyNumberi="G2")JS2 js2;js2.DoModal();if(GMember.PolicyNumberi="G3")JS3 js3;js3.DoModal();if(GMember.PolicyNumberi="G4")JS4 js4;js4.DoModal();CDialogEx
16、:OnOK();4.5打分并顯示結(jié)果1.打分JS1BOOL JS1:OnInitDialog()CDialogEx:OnInitDialog();fjs.open(_T("PlayerScore.txt"),ios:app);tryif(!fjs.is_open()throw false;catch(bool)MessageBox(_T("'PlayerScore.txt' 打開失敗");fjs<<"#,"<<endl;return true;void JS1:OnBnClickedOk()/
17、TODO: 在此添加控件通知處理程序代碼int i = 0;UpdateData(true);if(score1!=0)i+;if(score2!=0)i+;if(score3!=0)i+;if(score4!=0)i+;if(score5!=0)i+;if(score6!=0)i+;Confirmation sure("G1",i);if(sure.DoModal()=1)FinalScore=(score1 + score2 + score3 + score4 + score5 + score6)/i;fjs<<PlayerNumber<<
18、9;,'<<FinalScore<<','<<score1<<","<<score2<<","<<score3<<","<<score4<<","<<score5<<","<<score6<<endl;UpdateData(false);void JS1:OnBnClickedButton1()/ TODO
19、: 在此添加控件通知處理程序代碼UpdateData(true);score1=0;score2=0;score3=0;score4=0;score5=0;score6=0;FinalScore=0;PlayerNumber+;UpdateData(false);void JS1:OnBnClickedCancel()/ TODO: 在此添加控件通知處理程序代碼fjs.close();CDialogEx:OnCancel();2.打分JS2 BOOL JS2:OnInitDialog()CDialogEx:OnInitDialog();fjs.open(_T("PlayerScore
20、.txt"),ios:app);tryif(!fjs.is_open()throw false;catch(bool)MessageBox(_T("'PlayerScore.txt' 打開失敗");fjs<<"#,"<<endl;return true;void JS2:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼int i = 0;double max = -1;double min = 23333;UpdateData(true);if(score1!=0)if( min
21、 > score1 )min = score1;if( max < score1 )max = score1;i+;if(score2!=0)if( min > score2 )min = score2;if( max < score2 )max = score2;i+;if(score3!=0)if( min > score3 )min = score3;if( max < score3 )max = score3;i+;if(score4!=0)if( min > score4 )min = score4;if( max < score4 )
22、max = score4;i+;if(score5!=0)if( min > score5 )min = score5;if( max < score5 )max = score5;i+;if(score6!=0)if( min > score6 )min = score6;if( max < score6 )max = score6;i+;if(score7!=0)if( min > score7 )min = score7;if( max < score7 )max = score7;i+;if(score7!=0)if( min > score7
23、 )min = score7;if( max < score7 )max = score7;i+;if(score8!=0)if( min > score8 )min = score8;if( max < score8 )max = score8;i+;if(score9!=0)if( min > score9 )min = score9;if( max < score9 )max = score9;i+;Confirmation sure("G2",i);if(sure.DoModal()=1)FinalScore=(score1 + sco
24、re2 + score3 + score4 + score5 + score6 + score7+ score8 + score9 - min - max)/( i -2 );fjs<<PlayerNumber<<','<<FinalScore<<','<<score1<<","<<score2<<","<<score3<<","<<score4<<"
25、,"<<score5<<","<<score6<<","<<score7<<","<<score8<<","<<score9<<endl;UpdateData(false);void JS2:OnBnClickedButton1()/ TODO: 在此添加控件通知處理程序代碼UpdateData(true);score1=0;score2=0;score3=0;score4=0;scor
26、e5=0;score6=0;score7=0;score8=0;score9=0;FinalScore=0;PlayerNumber+;UpdateData(false);void JS2:OnBnClickedCancel()/ TODO: 在此添加控件通知處理程序代碼CDialogEx:OnCancel();3.打分JS3BOOL JS3:OnInitDialog()CDialogEx:OnInitDialog();fjs.open(_T("PlayerScore.txt"),ios:app);tryif(!fjs.is_open()throw false;catch(
27、bool)MessageBox(_T("'PlayerScore.txt' 打開失敗");fjs<<"#,"<<endl;return true;void JS3:OnBnClickedButton1()/ TODO: 在此添加控件通知處理程序代碼UpdateData(true);AllScorelength=score;CString str = ScoreShow;/臨時存儲ScoreShow.Format("%s第%d位評委打分是%0.2lfrn",str,i+1,score);Score
28、Show.ReleaseBuffer();i+;length+;if( score < min1 )min2 = min1;min1 = score;else if( score < min2 )min2 = score;if( score > max1 )max2 = max1;max1 = score;else if( score > max2 )max2 = score;score = 0;UpdateData(false);void JS3:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼Confirmation sure("
29、G3",length);double sum = 0;int i = 0;if(sure.DoModal()=1)for(i = 0;i < length;i+ )sum += AllScorei;sum -= min1;sum -= min2;sum -= max1;sum -= max2;UpdateData(true);FinalScore = sum/(length-4);UpdateData(false);fjs<<PlayerNumber<<','<<FinalScore;for( i = 0;i < len
30、gth;i+)fjs<<','<<AllScorei;fjs<<endl;void JS3:OnBnClickedNextButton()/ TODO: 在此添加控件通知處理程序代碼UpdateData(true);ScoreShow = ""score = 0;FinalScore = 0;PlayerNumber+;i = 0;length = 0;min1 = 2333;min2 = 2333;max1 = -1;max2 = -1;UpdateData(false); 4.打分JS4BOOL JS4:OnInitD
31、ialog()CDialogEx:OnInitDialog();fjs.open(_T("PlayerScore.txt"),ios:app);tryif(!fjs.is_open()throw false;catch(bool)MessageBox(_T("'PlayerScore.txt' 打開失敗");fjs<<"#,"<<endl;return true; void JS4:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼Confirmation sure;in
32、t passnumber = 0;if(sure.DoModal()=1)UpdateData(true);if(judges1 = FALSE)passnumber+;if(judges2 = FALSE)passnumber+;if(judges3 = FALSE)passnumber+;if(passnumber > 1)FinalResult = "通過"elseFinalResult = "不通過"fjs<<PlayerNumber<<","<<FinalResult<<
33、","<<judges1<<","<<judges2<<","<<judges3<<endl;UpdateData(false);void JS4:OnBnClickedButton1()/ TODO: 在此添加控件通知處理程序代碼UpdateData(true);judges1 = FALSE;judges2 = FALSE;judges3 = FALSE;FinalResult = ""PlayerNumber+;UpdateData(fa
34、lse);5.打分JS4void FinalScoreShow:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼fstream ffss;string temp;/用于中轉(zhuǎn)數(shù)據(jù)CString str; /臨時存儲int i = 0;int j = 0;ffss.open(_T("PlayerScore.txt"),ios:in);tryif(!ffss.is_open()throw false;catch(bool)MessageBox(_T("'PlayerScore.txt' 打開失敗");getline(ffss,temp);while(getline(ffss,SMember.PlayerNumberi,',')&&getline(ffss,SMember.PlayerFinalScorei,',')if(SMember.PlayerNumberi="#")getline(ff
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客戶往來文書處理規(guī)范及案例分析
- 傳媒行業(yè)全媒體內(nèi)容營銷策略方案
- 金華浙江金華武義縣消防救援大隊招聘筆試歷年參考題庫附帶答案詳解
- 遂寧四川遂寧市安居區(qū)選調(diào)部分區(qū)屬學(xué)校醫(yī)院管理崗位人員6人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州省政府辦公廳所屬事業(yè)單位招聘7人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州農(nóng)業(yè)職業(yè)學(xué)院招聘29人筆試歷年參考題庫附帶答案詳解
- 蘇州江蘇蘇州市公安局吳中分局招聘警務(wù)輔助人員110人筆試歷年參考題庫附帶答案詳解
- 福建2025年集美大學(xué)招聘高層次人才168人筆試歷年參考題庫附帶答案詳解
- 湖北2025年湖北理工學(xué)院專項招聘97人筆試歷年參考題庫附帶答案詳解
- 地屈孕酮、左炔諾孕酮宮內(nèi)節(jié)育系統(tǒng)聯(lián)合宮腔鏡治療子宮內(nèi)膜息肉的療效及對月經(jīng)恢復(fù)和激素水平的影響
- 2023年新高考河北卷生物高考真題解析(參考版)
- 河北省建設(shè)項目概算其他費用定額
- 起重吊裝風(fēng)險辨識及防范措施
- 2023年浙江省統(tǒng)招專升本考試英語真題及答案解析
- 2024年江西電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 宿舍衛(wèi)生管理培訓(xùn)
- 2024-2030年中國循環(huán)水加藥裝置行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 【微軟并購動視暴雪行為動因及并購后發(fā)展戰(zhàn)略探究10000字(論文)】
- 小學(xué)語文常見的說明方法(四年級下冊第二單元)
- 2024年石油石化技能考試-硫酸生產(chǎn)工筆試歷年真題薈萃含答案
- 2024年獸藥動物保健品行業(yè)分析報告
評論
0/150
提交評論