运动会成绩管理系统.docx

上传人:b****5 文档编号:27603886 上传时间:2023-07-03 格式:DOCX 页数:20 大小:677.70KB
下载 相关 举报
运动会成绩管理系统.docx_第1页
第1页 / 共20页
运动会成绩管理系统.docx_第2页
第2页 / 共20页
运动会成绩管理系统.docx_第3页
第3页 / 共20页
运动会成绩管理系统.docx_第4页
第4页 / 共20页
运动会成绩管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

运动会成绩管理系统.docx

《运动会成绩管理系统.docx》由会员分享,可在线阅读,更多相关《运动会成绩管理系统.docx(20页珍藏版)》请在冰豆网上搜索。

运动会成绩管理系统.docx

运动会成绩管理系统

 

运动会成绩管理系统(JAVA)(总20页)

一、开发背景.............................................................................................3

二、系统描述.............................................................................................3

三、详细设计..............................................................................................5

1、模块功能..........................................................................................5

、系统人员管理模块...................................................................5

、运动员管理模块.......................................................................6

、运动员成绩管理模块...............................................................6

2、数据库结构设计.............................................................................7

3、界面及代码设计.............................................................................9

、登录子系统开发......................................................................9

、系统用户管理模块.................................................................11

、运动员信息管理模块.............................................................15

、运动员成绩管理模块.............................................................17

四、心得体会............................................................................................20

五、参考文献............................................................................................21

 

一、开发背景

当前,运动会已经在全国普遍开展,许多学校每年都定期的举行不同规模的田径运动会。

但是,在运动会举行过程中一直存在着参赛人数多,项目设置复杂,时间安排紧凑等问题,而且这些问题能否解决直接关系着运动会的成功与否。

另一方面,人们对于比赛结果的实时性、准确性、安全性、可靠性的要求也越来越高,而这些要求是人工操作很难实现的。

同时竞赛组织者要尽量减少人为因素的干扰,减少赛场作弊行为的发生,还要为参赛的教练员和运动员及时准确地提供竞赛的相关信息,辅助进行竞赛的决策指导。

因此,计算机技术的融入就成为一种必然,而且逐渐成为运动会信息管理的核心所在。

根据调查,现在全国已经有不少学校在田径运动会举办过程中采用了现代化的计算机技术进行运动会的系统管理,有的已经达到了一个相当高的水平。

但是我们发现这些运动会管理系统的设计和实现标准不一,参差不齐,而且更多的情况下这些系统只是实现了对运动会的分数统计等功能,在提供运动会的整个举办过程中的人性化、自动化服务等方面还有许多不足和欠缺。

我们小组根据当前学校运动会的开展组织情况,结合运动会的组织原则和相关规定,运用现代计算机技术,以全新的模式设计开发了适合田径运动会的校级运动会管理系统。

采用了本运动会管理系统后,运动员在比赛前由院系统一输入个人信息即可,这样就方便了运动员的报名,有错误时可以及时汇报修改。

裁判员单独对各自的项目进行管理,保证上了比赛的公正、公平。

每个项目都有单独的帐号和密码对应,以保证成绩录入人员对自己管辖范围的唯一性和确定性。

在成绩查询界面中可以准确及时的查询到各参赛队伍、各项目、各运动员的个人信息、比赛成绩、排名、和团体加分的情况。

以上运动会中各环节组织和编排工作的系统实现,使大量繁琐的人工组织编排任务通过简单方便的操作便可以实现,大大减轻了运动会组织人员的劳动强度,节省了大量物力、人力、财力,提高了工作效率,保证了数据的实时性、准确性、安全性、可靠性,充分体现出了现代化的计算机技术在信息采集、处理、和管理等方面的无可比拟的优越性。

二、系统描述

本系统采用软件工程原理,使用面向对象的Java编程环境编写校级运动会管理系统,利用SQLServer数据库技术,对数据库进行了全面的开发。

系统主要包括前台应用程序的开发以及后台数据库的建立和维护两个方面,实现了运动员成绩数据库的创建及运动员成绩的输入、统计、浏览和维护,使得系统具有界面友好,功能强大,易于维护的特点。

本校级运动会管理系统在功能实现方面主要分为以下几点:

1)运动员个人信息管理模块。

运动员管理与普通的用户管理基本类似,包括用户的添加、修改、编辑和删除功能,参赛项目的维护。

例如有的运动员临时因伤不能参寒,有的又调整为可以参加某个项目(虽然严格说来,不允许运动员临时更改参赛项目,但需要在系统中留有余地)。

2)运动员成绩管理模块。

操作员可以对成绩进行录入,一旦提交则只能查看不能修改管理员可以查看成绩并调整成绩,因为前场工作人员可能犯错,需要管理员进行更改,但日志中要对此更改进行记录。

运动员可以通过终端查看运动成绩。

3)权限管理模块。

管理员可以对操作人员进行信息维护,如增加前场成绩录入人员,或者某位成绩录入人员调离岗位则取消其权限。

对于运动员可以匿名查询某个项目的成绩。

综合以上情况,设计系统体系结构如图1所示。

 

图1

应用层提供诸如GUI的显示、事件的处理等;代理层是分离上层和具体数据库访问层的,也可以称为业条层,这样的目的是当数据库发生变更时,可以将程序的改动缩减到最小。

数据库接口层是与具体的数据库进行交互,对数据进行提取、存入操作。

模块包是与数据库实体相对应的类定义,也可以说与数据库中的每条记录相对应。

 

三、详细设计

1、模块功能

、系统人员管理模块

该模块实现系统人员的添加、修改、查询和删除,先在数据库中添加管理员帐户。

管理员在用户管理方面拥有一切权限,而普通用户只有修改个人密码、查询个人信息、运动会比赛信息、比赛成绩及获奖情况的权限。

如图2所示。

 

图2

、运动员管理模块

该模块由管理员对运动员个人信息的录入、修改及删除功能。

普通用户可以实现对运动员个人信息的查询功能。

其功能层次如图3所示。

 

图3

 

、运动员成绩管理模块

该模块实现管理员录入运动员的成绩、查询成绩、修改成绩删除查询到的成绩信息以及普通用户查询成绩。

其功能层次图如图4所示。

 

 

图4

2、数据库结构设计

表1运动会项目表(SportItems)

列名

数据类型

可否为空

说明

ItemId

VARCHAR(20)

NOTNULL

体育项目编号

ItemName

VARCHAR(50)

NOTNULL

项目名称

ItemType

VARCHAR(50)

所属的运动类别

void

VARCHAR

(1)

是否有效

表2运动员参赛项目表(ItemAttend)

列名

数据类型

可否为空

说明

SportorId

VARCHAR(20)

NOTNULL

运动员编号

ItemId

VARCHAR(20)

NOTNULL

体育项目编号

Score

VARCHAR(50)

成绩

void

VARCHAR

(1)

本条记录是否有效

表3运动员个人信息表(Sportor)

列名

数据类型

可否为空

说明

SportorId

VARCHAR(20)

NOTNULL

运动员编号

Name

VARCHAR(50)

NOTNULL

运动员名称

Gender

VARCHAR

(1)

性别。

M男,F女

Weight

FLOAT

体重,单位Kg

Heigth

FLOAT

身高,单位cm

Age

INT

年龄

Grade

INT

等级

void

VARCHAR

(1)

是否参赛标志。

Y为无效,已经被删除。

N为有效,参加本次比赛

表4系统用户信息(SysUser)

列名

数据类型

可否为空

说明

SysUserId

VARCHAR(20)

NOTNULL

系统用户的编号

Name

VARCHAR(20)

NOTNULL

姓名

Password

VARCHAR(50)

NOTNULL

密码

Gender

VARCHAR

(1)

性别

RoleId

VARCHAR(20)

所属于的角色

void

VARCHAR

(1)

用户是否有效

表5系统用户角色(Roles)

列名

数据类型

可否为空

说明

RoleId

VARCHAR(20)

NOTNULL

角色编号

RoleName

VARCHAR(50)

角色名称

void

VARCHAR

(1)

是否生效

3、界面及代码设计

、登录子系统开发

由于每个系统中都涉及登录子系统,因此在这里并不进行过多介绍,只提供一个登录子系统的框架,登录成功后程序的流程应根据登录用户的身份来区别对待。

登录系统的界面如图5所示。

图5

主要代码如下:

publicstaticvoidmain(String[]args){

rim();

StringPassword=().toString();

EnumRolerole=(().toString().trim());

"UserName:

"+UserName+"Password:

"+

Password+""+"Role:

"+role);

if(role==){

(null,"用户角色未设定,请单击匿名登录访问系统!

","错误",;

return;

}

elseif(role==){

(null,"用户角色不支持,请联系管理员!

","错误",;

return;

}

elseif(role==){

etName()+""+((SysUser)(i)).getSysUserId());

}

/*为控件注册事件*/

newListItemChange());

UserOperActionbtnEvtHandle=newUserOperAction();

}

classListItemChangeimplementsItemListener{

publicvoiditemStateChanged(ItemEvente){

lstCtrl=Stringstr=();

if(str==null||str=="")

return;

String[]result=("\\s");quals("M"))

(0);

elseif(().equals("F"))

(1);

(());

(());

if(().equals))

(0);

elseif().equals)

(1);

else

(2);

if(().equals("Y"))

(true);

else

(false);

try{

();

}

catch(SQLExceptionex){

}

}

}

classUserOperActionimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

if(()==(JButton)btnDelSysUser){

oString().equals("男"))

Gender="M";

else

Gender="F";

StringPass;

if(().equals()))

Pass=();

else{

(null,"密码不匹配","错误",;

return;

}

StringuserRole;

if(().toString().equals("系统管理员"))

userRole=;

elseif().toString().equals("系统操作员"))

userRole=;

else

userRole="";

StringVoid;

if(()==true)

Void="Y";

else

Void="N";

StringfinalSql="UPDATESYSUSERSETNAME='"+userName+"',"+

"PASSWORD='"+Pass+"',GENDER='"+Gender+"',"+

"ROLEID='"+userRole+"',VOID='"+Void+"'WHERE"+

"SYSUSERID='"+userId+"'";

SysUserProxysysUserProxy=newSysUserProxy();

(finalSql);

(null,"更新成功!

","成功",;

}

}

}

}

单击“更新用户”按妞,则触发相应事件,调用SysUserProxy类实现更新操作。

与登录子系统中的RoleAccessProxy类相类似,SysUserProxy也是对数据访问进行了封包,使上层应用无须与底层直接接。

这样增强了系统的可移植性和可扩展性。

关于SysUserProxy类的代码在此处省略。

、运动员信息管理模块

运动员信息管理模块主要实现对人员个人信息的维护,其界面布局与系统用户管理模块类似,如图7所示。

图7

实现此模块的主要代码如下:

classUserOperActionimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

if(()==(JButton)btnAddUser){

oString().equals("男"))

Gender="M";

else

Gender="F";

floatweight=;

if(()!

=null&&()!

="")

weight=());

floatheight=;

if(()!

=null&&()!

="")

height=(());

intage=0;

if(()!

=null&&()!

="")

age=(());

intgrade=0;

if(()!

=null&&()!

="")

grade=(());

StringVoid;

if(()==true)

Void="Y";

else

Void="N";

StringfinalSql="";

finalSql="UPDATEsportor"+

"SETNAME='"+userName+"',GENDER='"+Gender+"',"+

"WEIGHT="+weight+",HEIGHT="+height+","+

"AGE="+age+","+"GRADE="+grade+",VOID='"+Void+"'"+

"WHERESPORTORID='"+userId+"'";

SportorProxyUserProxy=newSportorProxy();

UserProxy.UpdateUserById(finalSql);

(null,"更新成功!

","成功",;

return;

}

elseif()==(JButton)btnDelUser){

StringuserId=();

StringfinalSql="DELETE FROMsportorWHERESPORTORID='"+userId+"'";

SportorProxyUserProxy=newSportorProxy();

(finalSql);

();

InitCtlData();

(null,"删除成功!

","成功",;

return;

}

}

}

}

 

、运动员成绩管理模块

这一功能模块在结构上采用三级连动方式,即一级菜单的动作触发二级菜单的响应,二级菜单的动作影响三级菜单的显示。

基于这个依据,设计界面如图8所示。

图8

主要代码如下:

classListItemChangeimplementsItemListener{

publicvoiditemStateChanged(ItemEvente){

if(()==){

etName()+""+((SportsMan)(i)).getSportorId());

}

try{

();

}

catch(SQLExceptionsqlEx){

}

}

elseif(()==){

quals("Y")){

(true);

}

else

(false);

String[]scores=().split("\\s");

switch{

case1:

(scores[0]);

break;

case3:

(scores[0]);

(scores[2]);

break;

case5:

(scores[0]);

(scores[2]);

(scores[4]);

break;

case7:

(scores[0]);

(scores[2]);

(scores[4]);

(scores[6]);

break;

case9:

(scores[0]);

(scores[2]);

(scores[4]);

(scores[6]);

(scores[8]);

break;

case11:

(scores[0]);

(scores[2]);

(scores[4]);

(scores[6]);

(scores[8]);

(scores[10]);

break;

}

}

}

}

仔细阅读前面的代码,其实逻辑并不复杂,主要是当鼠标选中左边的一项时,会触发相应的事件,从数据库中提取相应的数据填充中间的列表框,当中间的列表框有数据被选中时,则将相关的数据显示在最右边的面板上。

另外,在这个系统的各个层次中,需要使用到一些输助类,这些类与具体的对象相关联。

例如表示运动员实体的类SportsMan,其与数据库的记录一一对应。

这样便于在类与数据之间实现自由转换。

有关于这些辅助类的代码就不一一列出了!

 

四、心得体会

这次课程设计经过亲身的实践操作,学到很多东西,自己的管理系统基本上实现了一些功能。

通过这次设计,感到随着科技的发展,管理系统在进行数据管理时起到的作用越来越大。

就运动会管理系统而言,此系统是针对一般的小型运动会中成绩的记录仍需要手动处理和排序、个人的成绩往往会在处理中丢失或者不准确、比赛排名出来慢等现象而设计的,通过这个小型的运动会管理系统,展现如何设计这样一个复杂的系统。

本系统从数据库层的设计、业条的处理及java界面实现,都需要详细地设计与规化。

在设计此系统的过程中,我们遇到许多问题,但是经过我们的不懈努力,还是想办法解决了问题!

比如,我们在刚开始调试程序的时候就发现了一个问题,关于SQLServer的驱动程序不能装载成功。

我们立即分析问题,查找根源并在网上寻求解决方法。

但是我们足足找了整整一天,也分析了一天,依旧没能找出这个问题的根源。

最后,我们只能绕过SQLServer的驱动,决定从数据源ODBC建桥试试。

结果成功的绕过了SQLServer驱动。

我们还发现,对数据库进行连接时,SQLSer

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

当前位置:首页 > 人文社科 > 法律资料

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

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