评委打分系统.doc_第1页
评委打分系统.doc_第2页
评委打分系统.doc_第3页
评委打分系统.doc_第4页
评委打分系统.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;.目录一、设计目标与内容3二、设计要求42.1设计约束、限制42.2基本要求4三、基本思路43.1软件体系结构43.1.1软件程序结构图43.2模块描述53.2.1打分策略录入53.2.2 赛事录入63.2.3 比赛赛事选择63.2.4 评委打分73.2.5 得分结果展示7四、主要步骤84.1设置主界面84.2根据选择的不同进入不同的界面84.3输入赛事与策略的信息104.4根据赛事选择的不同进入不同的打分界面134.5打分并显示结果161.打分JS1162.打分JS2193.打分JS3254.打分JS4295.打分JS431五、设计心得33一、 设计目标与内容1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识; 2.基本掌握面向对象程序设计的基本思路和方法;3.掌握用VC+开发应用程序的的一般步骤和方法;4.能够利用所学的基本知识, 设计一个简单的评委打分系统,具有以下功能:能够输入赛事与策略的信息根据赛事选择的不同选用不同的策略,并显示出最后结果二、 设计要求2.1设计约束、限制操作系统:windows操作系统数据库平台:无开发语言:VC+开发模式:C/S模式硬件约束:CPU: Pentium 4内存:256M硬盘:10G2.2基本要求1. 需要充分考虑到程序的可扩展性。程序可能会增加非常多的种类的比赛以及打分策略。2. 第一步需要实现以下几种打分策略:1) 评委数量在6人以下的:计算6个评委打分的平均分为选手最后得分。2) 评委数量在7-9人的:除去一个最高分,一个最低分。计算平均分为选手最后得分。3) 评委数量在10人以上的:除去两个最高分,两个最低分。计算平均分为选手最后得分。4) 实现现在各种选秀节目中常用的打分算法:三个评委,各个评委有两种选择:(Y/N)。如果两个Y,则选手过关;否则不过关。三、 基本思路3.1软件体系结构3.1.1软件程序结构图3.2模块描述3.2.1打分策略录入名 称打分策略录入标识STI子系统名 称打分策略录入系统名称评委打分系统接口说明输入策略编号,策略名称输出将记录保存到文件中功能说明将系统所能提供的打分策略保存到文件中;文件格式:运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.2 赛事录入名 称赛事录入标识GI子系统名 称赛事录入系统名称评委打分系统接口说明输入赛事编号,赛事名称,打分策略编号输出将记录保存到文件中功能说明将系统所能满足的赛事保存到文件中。文件格式:其中C1,C2对应于打分策略中的策略编号运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.3 比赛赛事选择名 称比赛赛事选择标识GC子系统名 称比赛赛事选择系统名称评委打分系统接口说明输入比赛赛事名称,编号输出记录比赛赛事信息。并打开打分界面功能说明1、 选择比赛赛事。2、 根据选择的赛事,从文件中获取该比赛适用的打分策略。3、 使用策略模式来选择不同的打分界面运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.4 评委打分名 称评委打分标识子系统名 称评委打分系统名称评委打分系统接口说明输入1、 进入到打分界面2、 分数输出1、 计算打分结果2、 将结果保存到文件中功能说明根据系统要求来设计不同的评委打分界面。每个界面对应于不同的打分策略。评委打分完成后将结果保存到文件中。运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.5 得分结果展示名 称得分结果展示标识子系统名 称得分结果展示系统名称评委打分系统接口说明输入文件中保存的打分记录输出将文件中保存的记录显示在界面上功能说明将比赛结果显示出来。显示结果按照最后得分的降序进行排列。运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块四、 主要步骤4.1设置主界面4.2根据选择的不同进入不同的界面1.打分策略输入voidCTheJudgesScoringSystemDlg:OnBnClickedButton1()SIT sit;sit.DoModal();/ TODO: 在此添加控件通知处理程序代码 2.赛事录入 void CTheJudgesScoringSystemDlg:OnBnClickedButton2()/ TODO: 在此添加控件通知处理程序代码GI gi;gi.DoModal(); 3.比赛赛事选择void CTheJudgesScoringSystemDlg:OnBnClickedButton3()/ TODO: 在此添加控件通知处理程序代码GCF gcf;gcf.DoModal();4.比赛结果显示void CTheJudgesScoringSystemDlg:OnBnClickedButton4()/ TODO: 在此添加控件通知处理程序代码FinalScoreShow fss;fss.DoModal();5.退出void CTheJudgesScoringSystemDlg:OnBnClickedCancel()/ 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.txt),ios:app);tryif(!fsit.is_open()throw false;catch(bool)MessageBox(_T(PolicyInformation.txt 打开失败);UpdateData(true);fsitPolicynName.GetBuffer(),PolicyNumber.GetBuffer()endl;PolicynName.ReleaseBuffer();PolicyNumber.ReleaseBuffer();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:app);tryif(!fsit.is_open()throw false;catch(bool)MessageBox(_T(GameInformation.txt 打开失败);UpdateData(true);i=ScoreType.Find(,);fsitScoreType.Mid(0,i),GameName.GetBuffer(),GameNumber.GetBuffer()endl;GameName.ReleaseBuffer();GameNumber.ReleaseBuffer();GameName=;GameNumber=;UpdateData(false);fsit.close();MessageBox(_T(保存成功);4.4根据赛事选择的不同进入不同的打分界面BOOL GCF:OnInitDialog()CDialogEx:OnInitDialog();GCFCombo.ResetContent();fstream fgcf;int i = 0;fgcf.open(_T(GameInformation.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();getline(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;iGMember.length;i+)if(GCFComboText.GetBuffer()=GMember.GameTypei)GCFComboText.ReleaseBuffer();break;GCFComboText.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:OnOK();4.5打分并显示结果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()/ 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;fjsPlayerNumber,FinalScore,score1,score2,score3,score4,score5,score6endl;UpdateData(false);void JS1:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码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.txt),ios:app);tryif(!fjs.is_open()throw false;catch(bool)MessageBox(_T(PlayerScore.txt 打开失败);fjs#, score1 )min = score1;if( max score2 )min = score2;if( max score3 )min = score3;if( max score4 )min = score4;if( max score5 )min = score5;if( max score6 )min = score6;if( max score7 )min = score7;if( max score7 )min = score7;if( max score8 )min = score8;if( max score9 )min = score9;if( max score9 )max = score9;i+;Confirmation sure(G2,i);if(sure.DoModal()=1)FinalScore=(score1 + score2 + score3 + score4 + score5 + score6 + score7+ score8 + score9 - min - max)/( i -2 );fjsPlayerNumber,FinalScore,score1,score2,score3,score4,score5,score6,score7,score8,score9endl;UpdateData(false);void JS2:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码UpdateData(true);score1=0;score2=0;score3=0;score4=0;score5=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(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);ScoreShow.ReleaseBuffer();i+;length+;if( score min1 )min2 = min1;min1 = score;else if( score max1 )max2 = max1;max1 = score;else if( score max2 )max2 = score;score = 0;UpdateData(false);void JS3:OnBnClickedOk()/ TODO: 在此添加控件通知处理程序代码Confirmation sure(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);fjsPlayerNumber,FinalScore;for( i = 0;i length;i+)fjs,AllScorei;fjsendl;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:OnInitDialog()CDialogEx:OnInitDialog();fjs.open(_T(PlayerScore.txt),ios:app);tryif(!fjs.is_open()throw false;catch(bool)MessageBox(_T(PlayerScore.txt 打开失败);fjs#, 1)FinalResult = 通过;elseFinalResult = 不通过;fjsPlayerNumber,FinalResult,judges1,judges2,judges3 0;i-)for(j = 0;ji;j+)if(SMember.PlayerFinalScorej SMember.PlayerFinalScorej+1)temp = SMember.PlayerFinalScorej;SMember.PlayerFinalScorej = SMember.PlayerFinalScorej+1;SMembe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论