




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、设计目标与内容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编程的基础知
2、识,掌握MFC应用程序的基本知识; 2.基本掌握面向对象程序设计的基本思路和方法;3.掌握用VC+开发应用程序的的一般步骤和方法;4.能够利用所学的基本知识, 设计一个简单的评委打分系统,具有以下功能:能够输入赛事与策略的信息根据赛事选择的不同选用不同的策略,并显示出最后结果二、 设计要求2.1设计约束、限制操作系统:windows操作系统数据库平台:无开发语言:VC+开发模式:C/S模式硬件约束:CPU: Pentium 4内存:256M硬盘:10G2.2基本要求1. 需要充分考虑到程序的可扩展性。程序可能会增加非常多的种类的比赛以及打分策略。2. 第一步需要实现以下几种打分策略:1) 评委
3、数量在6人以下的:计算6个评委打分的平均分为选手最后得分。2) 评委数量在7-9人的:除去一个最高分,一个最低分。计算平均分为选手最后得分。3) 评委数量在10人以上的:除去两个最高分,两个最低分。计算平均分为选手最后得分。4) 实现现在各种选秀节目中常用的打分算法:三个评委,各个评委有两种选择:(Y/N)。如果两个Y,则选手过关;否则不过关。三、 基本思路3.1软件体系结构3.1.1软件程序结构图3.2模块描述3.2.1打分策略录入名 称打分策略录入标识STI子系统名 称打分策略录入系统名称评委打分系统接口说明输入策略编号,策略名称输出将记录保存到文件中功能说明将系统所能提供的打分策略保存到
4、文件中;文件格式:运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.2 赛事录入名 称赛事录入标识GI子系统名 称赛事录入系统名称评委打分系统接口说明输入赛事编号,赛事名称,打分策略编号输出将记录保存到文件中功能说明将系统所能满足的赛事保存到文件中。文件格式:其中C1,C2对应于打分策略中的策略编号运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.3 比赛赛事选择名 称比赛赛事选择标识GC子系统名 称比赛赛事选择系统名称评委打分系统接口说明输入比赛赛事名称,编号输出记录比赛赛事信息。并打开打分界面功能说明1、 选择比赛赛事。2、 根据
5、选择的赛事,从文件中获取该比赛适用的打分策略。3、 使用策略模式来选择不同的打分界面运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.4 评委打分名 称评委打分标识子系统名 称评委打分系统名称评委打分系统接口说明输入1、 进入到打分界面2、 分数输出1、 计算打分结果2、 将结果保存到文件中功能说明根据系统要求来设计不同的评委打分界面。每个界面对应于不同的打分策略。评委打分完成后将结果保存到文件中。运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块3.2.5 得分结果展示名 称得分结果展示标识子系统名 称得分结果展示系统名称评委打分系统接口说
6、明输入文件中保存的打分记录输出将文件中保存的记录显示在界面上功能说明将比赛结果显示出来。显示结果按照最后得分的降序进行排列。运行环境说明参见评委打分系统需求规格说明书调用关系说明调用模块被调用模块四、 主要步骤4.1设置主界面4.2根据选择的不同进入不同的界面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.比赛结果显示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根据赛事选择的不同进入不同的打分界面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打分并显示结果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;/用于中转数据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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- VB开发流程的常见问题及答案
- 软件考试试题及答案总结分享
- 开放源代码软件考试题目及答案
- 信息处理技术员考试题库及答案
- 2025届湖南省岳阳市汨罗市沙溪中学数学七下期末学业质量监测试题含解析
- 儿童活动中心安全防范措施计划
- 明确任务分工的实施方案计划
- 校内交流与学习共享活动计划
- 软件水平考试信息处理试题及答案
- 教学日志撰写要求计划
- 墨刀原型交互培训
- 油气回收培训课件
- 2024年6月青少年软件编程Python等级考试试卷五级真题(含答案)
- 优化城市公交线路的规划
- 粉末涂料的MSDS介绍
- 福建省2025届高考仿真模拟英语试卷含解析
- 郑州航空工业管理学院《物流信息管理》2022-2023学年第一学期期末试卷
- (完整版)CAD考试试题库及参考答案
- 2024年广西中考化学真题【附答案】
- 进行性肌营养不良症
- 期末(试题)-2023-2024学年英语六年级下册
评论
0/150
提交评论