評(píng)委打分系統(tǒng)_第1頁(yè)
評(píng)委打分系統(tǒng)_第2頁(yè)
評(píng)委打分系統(tǒng)_第3頁(yè)
評(píng)委打分系統(tǒng)_第4頁(yè)
評(píng)委打分系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄一、設(shè)計(jì)目標(biāo)與內(nèi)容3二、設(shè)計(jì)要求42.1設(shè)計(jì)約束、限制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 評(píng)委打分73.2.5 得分結(jié)果展示7四、主要步驟84.1設(shè)置主界面84.2根據(jù)選擇的不同進(jìn)入不同的界面84.3輸入賽事與策略的信息104.4根據(jù)賽事選擇的不同進(jìn)入不同的打分界面134.5打分并顯示結(jié)果161.打分JS1162.打分JS2193.打分JS3254.打分JS4295.打分JS431五、設(shè)計(jì)心得33一、 設(shè)計(jì)目標(biāo)與內(nèi)容1.了解Windows編程的基礎(chǔ)知

2、識(shí),掌握MFC應(yīng)用程序的基本知識(shí); 2.基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;3.掌握用VC+開(kāi)發(fā)應(yīng)用程序的的一般步驟和方法;4.能夠利用所學(xué)的基本知識(shí), 設(shè)計(jì)一個(gè)簡(jiǎn)單的評(píng)委打分系統(tǒng),具有以下功能:能夠輸入賽事與策略的信息根據(jù)賽事選擇的不同選用不同的策略,并顯示出最后結(jié)果二、 設(shè)計(jì)要求2.1設(shè)計(jì)約束、限制操作系統(tǒng):windows操作系統(tǒng)數(shù)據(jù)庫(kù)平臺(tái):無(wú)開(kāi)發(fā)語(yǔ)言:VC+開(kāi)發(fā)模式:C/S模式硬件約束:CPU: Pentium 4內(nèi)存:256M硬盤(pán):10G2.2基本要求1. 需要充分考慮到程序的可擴(kuò)展性。程序可能會(huì)增加非常多的種類(lèi)的比賽以及打分策略。2. 第一步需要實(shí)現(xiàn)以下幾種打分策略:1) 評(píng)委

3、數(shù)量在6人以下的:計(jì)算6個(gè)評(píng)委打分的平均分為選手最后得分。2) 評(píng)委數(shù)量在7-9人的:除去一個(gè)最高分,一個(gè)最低分。計(jì)算平均分為選手最后得分。3) 評(píng)委數(shù)量在10人以上的:除去兩個(gè)最高分,兩個(gè)最低分。計(jì)算平均分為選手最后得分。4) 實(shí)現(xiàn)現(xiàn)在各種選秀節(jié)目中常用的打分算法:三個(gè)評(píng)委,各個(gè)評(píng)委有兩種選擇:(Y/N)。如果兩個(gè)Y,則選手過(guò)關(guān);否則不過(guò)關(guān)。三、 基本思路3.1軟件體系結(jié)構(gòu)3.1.1軟件程序結(jié)構(gòu)圖3.2模塊描述3.2.1打分策略錄入名 稱(chēng)打分策略錄入標(biāo)識(shí)STI子系統(tǒng)名 稱(chēng)打分策略錄入系統(tǒng)名稱(chēng)評(píng)委打分系統(tǒng)接口說(shuō)明輸入策略編號(hào),策略名稱(chēng)輸出將記錄保存到文件中功能說(shuō)明將系統(tǒng)所能提供的打分策略保存到

4、文件中;文件格式:運(yùn)行環(huán)境說(shuō)明參見(jiàn)評(píng)委打分系統(tǒng)需求規(guī)格說(shuō)明書(shū)調(diào)用關(guān)系說(shuō)明調(diào)用模塊被調(diào)用模塊3.2.2 賽事錄入名 稱(chēng)賽事錄入標(biāo)識(shí)GI子系統(tǒng)名 稱(chēng)賽事錄入系統(tǒng)名稱(chēng)評(píng)委打分系統(tǒng)接口說(shuō)明輸入賽事編號(hào),賽事名稱(chēng),打分策略編號(hào)輸出將記錄保存到文件中功能說(shuō)明將系統(tǒng)所能滿(mǎn)足的賽事保存到文件中。文件格式:其中C1,C2對(duì)應(yīng)于打分策略中的策略編號(hào)運(yùn)行環(huán)境說(shuō)明參見(jiàn)評(píng)委打分系統(tǒng)需求規(guī)格說(shuō)明書(shū)調(diào)用關(guān)系說(shuō)明調(diào)用模塊被調(diào)用模塊3.2.3 比賽賽事選擇名 稱(chēng)比賽賽事選擇標(biāo)識(shí)GC子系統(tǒng)名 稱(chēng)比賽賽事選擇系統(tǒng)名稱(chēng)評(píng)委打分系統(tǒng)接口說(shuō)明輸入比賽賽事名稱(chēng),編號(hào)輸出記錄比賽賽事信息。并打開(kāi)打分界面功能說(shuō)明1、 選擇比賽賽事。2、 根據(jù)

5、選擇的賽事,從文件中獲取該比賽適用的打分策略。3、 使用策略模式來(lái)選擇不同的打分界面運(yùn)行環(huán)境說(shuō)明參見(jiàn)評(píng)委打分系統(tǒng)需求規(guī)格說(shuō)明書(shū)調(diào)用關(guān)系說(shuō)明調(diào)用模塊被調(diào)用模塊3.2.4 評(píng)委打分名 稱(chēng)評(píng)委打分標(biāo)識(shí)子系統(tǒng)名 稱(chēng)評(píng)委打分系統(tǒng)名稱(chēng)評(píng)委打分系統(tǒng)接口說(shuō)明輸入1、 進(jìn)入到打分界面2、 分?jǐn)?shù)輸出1、 計(jì)算打分結(jié)果2、 將結(jié)果保存到文件中功能說(shuō)明根據(jù)系統(tǒng)要求來(lái)設(shè)計(jì)不同的評(píng)委打分界面。每個(gè)界面對(duì)應(yīng)于不同的打分策略。評(píng)委打分完成后將結(jié)果保存到文件中。運(yùn)行環(huán)境說(shuō)明參見(jiàn)評(píng)委打分系統(tǒng)需求規(guī)格說(shuō)明書(shū)調(diào)用關(guān)系說(shuō)明調(diào)用模塊被調(diào)用模塊3.2.5 得分結(jié)果展示名 稱(chēng)得分結(jié)果展示標(biāo)識(shí)子系統(tǒng)名 稱(chēng)得分結(jié)果展示系統(tǒng)名稱(chēng)評(píng)委打分系統(tǒng)接口說(shuō)

6、明輸入文件中保存的打分記錄輸出將文件中保存的記錄顯示在界面上功能說(shuō)明將比賽結(jié)果顯示出來(lái)。顯示結(jié)果按照最后得分的降序進(jìn)行排列。運(yùn)行環(huán)境說(shuō)明參見(jiàn)評(píng)委打分系統(tǒng)需求規(guī)格說(shuō)明書(shū)調(diào)用關(guān)系說(shuō)明調(diào)用模塊被調(diào)用模塊四、 主要步驟4.1設(shè)置主界面4.2根據(jù)選擇的不同進(jìn)入不同的界面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' 打開(kāi)失敗");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; /指定逗號(hào)所在位置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' 打開(kāi)失敗");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ù)賽事選擇的不同進(jìn)入不同的打分界面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' 打開(kāi)失敗");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' 打開(kāi)失敗");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' 打開(kāi)失敗");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' 打開(kāi)失敗");fjs<<"#,"<<endl;return true;void JS3:OnBnClickedButton1()/ TODO: 在此添加控件通知處理程序代碼UpdateData(true);AllScorelength=score;CString str = ScoreShow;/臨時(shí)存儲(chǔ)ScoreShow.Format("%s第%d位評(píng)委打分是%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' 打開(kāi)失敗");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 = "通過(guò)"elseFinalResult = "不通過(guò)"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; /臨時(shí)存儲(chǔ)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' 打開(kāi)失敗");getline(ffss,temp);while(getline(ffss,SMember.PlayerNumberi,',')&&getline(ffss,SMember.PlayerFinalScorei,',')if(SMember.PlayerNumberi="#")getline(ff

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論