评委打分系统.docx

上传人:b****7 文档编号:26542664 上传时间:2023-06-20 格式:DOCX 页数:35 大小:193KB
下载 相关 举报
评委打分系统.docx_第1页
第1页 / 共35页
评委打分系统.docx_第2页
第2页 / 共35页
评委打分系统.docx_第3页
第3页 / 共35页
评委打分系统.docx_第4页
第4页 / 共35页
评委打分系统.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

评委打分系统.docx

《评委打分系统.docx》由会员分享,可在线阅读,更多相关《评委打分系统.docx(35页珍藏版)》请在冰豆网上搜索。

评委打分系统.docx

评委打分系统

一、设计目标与内容

1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;

2.基本掌握面向对象程序设计的基本思路和方法;

3.掌握用VC++开发应用程序的的一般步骤和方法;

4.能够利用所学的基本知识,设计一个简单的评委打分系统,具有以下功能:

①能够输入赛事与策略的信息

②根据赛事选择的不同选用不同的策略,并显示出最后结果

二、设计要求

2.1设计约束、限制

操作系统:

windows操作系统

数据库平台:

开发语言:

VC++

开发模式:

C/S模式

硬件约束:

CPU:

Pentium4

内存:

256M

硬盘:

10G

2.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()

{

SITsit;

sit.DoModal();

//TODO:

在此添加控件通知处理程序代码

}

2.赛事录入

voidCTheJudgesScoringSystemDlg:

:

OnBnClickedButton2()

{

//TODO:

在此添加控件通知处理程序代码

GIgi;

gi.DoModal();

}

3.比赛赛事选择

voidCTheJudgesScoringSystemDlg:

:

OnBnClickedButton3()

{

//TODO:

在此添加控件通知处理程序代码

GCFgcf;

gcf.DoModal();

}

4.比赛结果显示

voidCTheJudgesScoringSystemDlg:

:

OnBnClickedButton4()

{

//TODO:

在此添加控件通知处理程序代码

FinalScoreShowfss;

fss.DoModal();

}

5.退出

voidCTheJudgesScoringSystemDlg:

:

OnBnClickedCancel()

{

//TODO:

在此添加控件通知处理程序代码

CDialogEx:

:

OnCancel();

}

6.确定

voidCTheJudgesScoringSystemDlg:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码

CDialogEx:

:

OnOK();

}

4.3输入赛事与策略的信息

1.打分策略输入

voidSIT:

:

OnBnClickedSave()

{

//TODO:

在此添加控件通知处理程序代码

Confirmationsure;

if(sure.DoModal()==1)

{

fstreamfsit;

fsit.open(_T("PolicyInformation.txt"),ios:

:

app);

try

{

if(!

fsit.is_open())

{

throwfalse;

}

}

catch(bool)

{

MessageBox(_T("'PolicyInformation.txt'打开失败"));

}

UpdateData(true);

fsit<

PolicynName.ReleaseBuffer();

PolicyNumber.ReleaseBuffer();

PolicynName="";

PolicyNumber="";

UpdateData(false);

fsit.close();

MessageBox(_T("保存成功"));

}

}

2.赛事录入

voidGI:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码

Confirmationsure=newConfirmation;

inti;//指定逗号所在位置

if(sure.DoModal()==1)

{

fstreamfsit;

fsit.open(_T("GameInformation.txt"),ios:

:

app);

try

{

if(!

fsit.is_open())

{

throwfalse;

}

}

catch(bool)

{

MessageBox(_T("'GameInformation.txt'打开失败"));

}

UpdateData(true);

i=ScoreType.Find(',');

fsit<

GameName.ReleaseBuffer();

GameNumber.ReleaseBuffer();

GameName="";

GameNumber="";

UpdateData(false);

fsit.close();

MessageBox(_T("保存成功"));

}

}

4.4根据赛事选择的不同进入不同的打分界面

BOOLGCF:

:

OnInitDialog()

{

CDialogEx:

:

OnInitDialog();

GCFCombo.ResetContent();

fstreamfgcf;

inti=0;

fgcf.open(_T("GameInformation.txt"),ios:

:

in);

try

{

if(!

fgcf.is_open())

{

throwfalse;

}

}

catch(bool)

{

MessageBox("'GameInformation.txt'打开失败");

returnfalse;

}

while(getline(fgcf,GMember.GameNumber[i],',')&&getline(fgcf,GMember.GameType[i],','))

{

GCFCombo.AddString(GMember.GameType[i].c_str());

getline(fgcf,GMember.PolicyNumber[i]);

i++;

}

GMember.length=i;

fgcf.close();

returntrue;

}

voidGCF:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码

inti=0;

intj=0;

GCFComboText.GetBuffer();

UpdateData(true);

for(i=0;i

{

if(GCFComboText.GetBuffer()==GMember.GameType[i])

{

GCFComboText.ReleaseBuffer();

break;

}

GCFComboText.ReleaseBuffer();

}

UpdateData(false);

if(GMember.PolicyNumber[i]=="G1")

{

JS1js1;

js1.DoModal();

}

if(GMember.PolicyNumber[i]=="G2")

{

JS2js2;

js2.DoModal();

}

if(GMember.PolicyNumber[i]=="G3")

{

JS3js3;

js3.DoModal();

}

if(GMember.PolicyNumber[i]=="G4")

{

JS4js4;

js4.DoModal();

}

CDialogEx:

:

OnOK();

}

4.5打分并显示结果

1.打分JS1

BOOLJS1:

:

OnInitDialog()

{

CDialogEx:

:

OnInitDialog();

fjs.open(_T("PlayerScore.txt"),ios:

:

app);

try

{

if(!

fjs.is_open())

{

throwfalse;

}

}

catch(bool)

{

MessageBox(_T("'PlayerScore.txt'打开失败"));

}

fjs<<"#,,"<

returntrue;

}

voidJS1:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码

inti=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++;

}

Confirmationsure("G1",i);

if(sure.DoModal()==1)

{

FinalScore=(score1+score2+score3+score4+score5+score6)/i;

fjs<

UpdateData(false);

}

}

 

voidJS1:

:

OnBnClickedButton1()

{

//TODO:

在此添加控件通知处理程序代码

UpdateData(true);

score1=0;

score2=0;

score3=0;

score4=0;

score5=0;

score6=0;

FinalScore=0;

PlayerNumber++;

UpdateData(false);

}

 

voidJS1:

:

OnBnClickedCancel()

{

//TODO:

在此添加控件通知处理程序代码

fjs.close();

CDialogEx:

:

OnCancel();

2.打分JS2

BOOLJS2:

:

OnInitDialog()

{

CDialogEx:

:

OnInitDialog();

fjs.open(_T("PlayerScore.txt"),ios:

:

app);

try

{

if(!

fjs.is_open())

{

throwfalse;

}

}

catch(bool)

{

MessageBox(_T("'PlayerScore.txt'打开失败"));

}

fjs<<"#,,"<

returntrue;

}

voidJS2:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码

inti=0;

doublemax=-1;

doublemin=23333;

UpdateData(true);

if(score1!

=0)

{

if(min>score1)

{

min=score1;

}

if(max

{

max=score1;

}

i++;

}

if(score2!

=0)

{

if(min>score2)

{

min=score2;

}

if(max

{

max=score2;

}

i++;

}

if(score3!

=0)

{

if(min>score3)

{

min=score3;

}

if(max

{

max=score3;

}

i++;

}

if(score4!

=0)

{

if(min>score4)

{

min=score4;

}

if(max

{

max=score4;

}

i++;

}

if(score5!

=0)

{

if(min>score5)

{

min=score5;

}

if(max

{

max=score5;

}

i++;

}

if(score6!

=0)

{

if(min>score6)

{

min=score6;

}

if(max

{

max=score6;

}

i++;

}

if(score7!

=0)

{

if(min>score7)

{

min=score7;

}

if(max

{

max=score7;

}

i++;

}

if(score7!

=0)

{

if(min>score7)

{

min=score7;

}

if(max

{

max=score7;

}

i++;

}

if(score8!

=0)

{

if(min>score8)

{

min=score8;

}

if(max

{

max=score8;

}

i++;

}

if(score9!

=0)

{

if(min>score9)

{

min=score9;

}

if(max

{

max=score9;

}

i++;

}

Confirmationsure("G2",i);

if(sure.DoModal()==1)

{

FinalScore=(score1+score2+score3+score4+score5+score6+score7+score8+score9-min-max)/

(i-2);

fjs<

<<","<

UpdateData(false);

}

}

voidJS2:

:

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);

}

 

voidJS2:

:

OnBnClickedCancel()

{

//TODO:

在此添加控件通知处理程序代码

CDialogEx:

:

OnCancel();

3.打分JS3

BOOLJS3:

:

OnInitDialog()

{

CDialogEx:

:

OnInitDialog();

fjs.open(_T("PlayerScore.txt"),ios:

:

app);

try

{

if(!

fjs.is_open())

{

throwfalse;

}

}

catch(bool)

{

MessageBox(_T("'PlayerScore.txt'打开失败"));

}

fjs<<"#,,"<

returntrue;

}

voidJS3:

:

OnBnClickedButton1()

{

//TODO:

在此添加控件通知处理程序代码

UpdateData(true);

AllScore[length]=score;

CStringstr=ScoreShow;//临时存储

ScoreShow.Format("%s第%d位评委打分是%0.2lf\r\n",str,i+1,score);

ScoreShow.ReleaseBuffer();

i++;

length++;

if(score

{

min2=min1;

min1=score;

}

elseif(score

{

min2=score;

}

if(score>max1)

{

max2=max1;

max1=score;

}

elseif(score>max2)

{

max2=score;

}

score=0;

UpdateData(false);

}

 

voidJS3:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码

Confirmationsure("G3",length);

doublesum=0;

inti=0;

if(sure.DoModal(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1