运动会成绩管理组织系统JAVA.docx
- 文档编号:25866906
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:26
- 大小:302.21KB
运动会成绩管理组织系统JAVA.docx
《运动会成绩管理组织系统JAVA.docx》由会员分享,可在线阅读,更多相关《运动会成绩管理组织系统JAVA.docx(26页珍藏版)》请在冰豆网上搜索。
运动会成绩管理组织系统JAVA
一、开发背景.............................................................................................3
二、系统描述.............................................................................................3
三、详细设计..............................................................................................5
1、模块功能..........................................................................................5
1.1、系统人员管理模块...................................................................5
1.2、运动员管理模块.......................................................................6
1.3、运动员成绩管理模块...............................................................6
2、数据库结构设计.............................................................................7
3、界面及代码设计.............................................................................9
3.1、登录子系统开发......................................................................9
3.2、系统用户管理模块.................................................................11
3.3、运动员信息管理模块.............................................................15
3.4、运动员成绩管理模块.............................................................17
四、心得体会............................................................................................20
五、参考文献............................................................................................21
一、开发背景
当前,运动会已经在全国普遍开展,许多学校每年都定期的举行不同规模的田径运动会。
但是,在运动会举行过程中一直存在着参赛人数多,项目设置复杂,时间安排紧凑等问题,而且这些问题能否解决直接关系着运动会的成功与否。
另一方面,人们对于比赛结果的实时性、准确性、安全性、可靠性的要求也越来越高,而这些要求是人工操作很难实现的。
同时竞赛组织者要尽量减少人为因素的干扰,减少赛场作弊行为的发生,还要为参赛的教练员和运动员及时准确地提供竞赛的相关信息,辅助进行竞赛的决策指导。
因此,计算机技术的融入就成为一种必然,而且逐渐成为运动会信息管理的核心所在。
根据调查,现在全国已经有不少学校在田径运动会举办过程中采用了现代化的计算机技术进行运动会的系统管理,有的已经达到了一个相当高的水平。
但是我们发现这些运动会管理系统的设计和实现标准不一,参差不齐,而且更多的情况下这些系统只是实现了对运动会的分数统计等功能,在提供运动会的整个举办过程中的人性化、自动化服务等方面还有许多不足和欠缺。
我们小组根据当前学校运动会的开展组织情况,结合运动会的组织原则和相关规定,运用现代计算机技术,以全新的模式设计开发了适合田径运动会的校级运动会管理系统。
采用了本运动会管理系统后,运动员在比赛前由院系统一输入个人信息即可,这样就方便了运动员的报名,有错误时可以及时汇报修改。
裁判员单独对各自的项目进行管理,保证上了比赛的公正、公平。
每个项目都有单独的帐号和密码对应,以保证成绩录入人员对自己管辖范围的唯一性和确定性。
在成绩查询界面中可以准确及时的查询到各参赛队伍、各项目、各运动员的个人信息、比赛成绩、排名、和团体加分的情况。
以上运动会中各环节组织和编排工作的系统实现,使大量繁琐的人工组织编排任务通过简单方便的操作便可以实现,大大减轻了运动会组织人员的劳动强度,节省了大量物力、人力、财力,提高了工作效率,保证了数据的实时性、准确性、安全性、可靠性,充分体现出了现代化的计算机技术在信息采集、处理、和管理等方面的无可比拟的优越性。
2、系统描述
本系统采用软件工程原理,使用面向对象的Java编程环境编写校级运动会管理系统,利用SQLServer数据库技术,对数据库进行了全面的开发。
系统主要包括前台应用程序的开发以及后台数据库的建立和维护两个方面,实现了运动员成绩数据库的创建及运动员成绩的输入、统计、浏览和维护,使得系统具有界面友好,功能强大,易于维护的特点。
本校级运动会管理系统在功能实现方面主要分为以下几点:
1)运动员个人信息管理模块。
运动员管理与普通的用户管理基本类似,包括用户的添加、修改、编辑和删除功能,参赛项目的维护。
例如有的运动员临时因伤不能参寒,有的又调整为可以参加某个项目(虽然严格说来,不允许运动员临时更改参赛项目,但需要在系统中留有余地)。
2)运动员成绩管理模块。
操作员可以对成绩进行录入,一旦提交则只能查看不能修改管理员可以查看成绩并调整成绩,因为前场工作人员可能犯错,需要管理员进行更改,但日志中要对此更改进行记录。
运动员可以通过终端查看运动成绩。
3)权限管理模块。
管理员可以对操作人员进行信息维护,如增加前场成绩录入人员,或者某位成绩录入人员调离岗位则取消其权限。
对于运动员可以匿名查询某个项目的成绩。
综合以上情况,设计系统体系结构如图1所示。
应用层
模块
代理层
数据库接口层
图1
应用层提供诸如GUI的显示、事件的处理等;代理层是分离上层和具体数据库访问层的,也可以称为业条层,这样的目的是当数据库发生变更时,可以将程序的改动缩减到最小。
数据库接口层是与具体的数据库进行交互,对数据进行提取、存入操作。
模块包是与数据库实体相对应的类定义,也可以说与数据库中的每条记录相对应。
3、详细设计
1、模块功能
1.1、系统人员管理模块
该模块实现系统人员的添加、修改、查询和删除,先在数据库中添加管理员帐户。
管理员在用户管理方面拥有一切权限,而普通用户只有修改个人密码、查询个人信息、运动会比赛信息、比赛成绩及获奖情况的权限。
如图2所示。
系统人员管理模块
系统操作员信息的输入
系统操作员信息的修改
系统操作员信息的删除
系统操作员信息的查询
图2
1.2、运动员管理模块
该模块由管理员对运动员个人信息的录入、修改及删除功能。
普通用户可以实现对运动员个人信息的查询功能。
其功能层次如图3所示。
运动员管理模块
运动员信息的输入
运动员信息的修改
运动员信息的删除
运动员信息的查询
图3
1.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、界面及代码设计
3.1、登录子系统开发
由于每个系统中都涉及登录子系统,因此在这里并不进行过多介绍,只提供一个登录子系统的框架,登录成功后程序的流程应根据登录用户的身份来区别对待。
登录系统的界面如图5所示。
图5
主要代码如下:
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
/*根据需要,打开下面运行开关*/
/*主登录窗口界面
StartAppmainForm=newStartApp();
mainForm.InitUI();
*/
//运动员管理模块
//newSportorManagement();
//
//运动员成绩管理模块
newSportorScoreManagement();
//
//系统人员管理模块
newSysUserManagement();
//
}
publicclassLoginEvtHandleimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
try{
if((JButton)e.getSource()==jbtLogin){
//根据用户登录身份,转向对应的界面
StringUserName=jtxtUser.getText().trim();
StringPassword=jtxtPass.getText().toString();
EnumRolerole=UserRole.getUserRole(jcmbIdentify.getSelectedItem().toString().trim());
System.out.println("UserName:
"+UserName+"Password:
"+
Password+""+"Role:
"+role);
if(role==EnumRole.NOROLE){
JOptionPane.showMessageDialog(null,"用户角色未设定,请单击匿名登录访问系统!
","错误",JOptionPane.ERROR_MESSAGE);
return;
}
elseif(role==EnumRole.NOTSUPPORT){
JOptionPane.showMessageDialog(null,"用户角色不支持,请联系管理员!
","错误",JOptionPane.ERROR_MESSAGE);
return;
}
elseif(role==EnumRole.SYSADMINISTRATOR){
//连接数据库,验证是否管理人员
RoleAccessProxyroleProxy=newRoleAccessProxy();
if(roleProxy.ValidateUserExist(UserName,Password,RoleIdMapRoleName.SYSADMIN)==true)
JOptionPane.showMessageDialog(null,"登录成功!
","正确",JOptionPane.INFORMATION_MESSAGE);
else
{JOptionPane.showMessageDialog(null,"用户角色不支持,请联系管理员!
","错误",JOptionPane.ERROR_MESSAGE);
System.exit(-1);
}
}
elseif(role==EnumRole.SYSOPERATOR){
//连接数据库,验证是否系统操作人员并转到相应界面
RoleAccessProxyroleProxy=newRoleAccessProxy();
if(roleProxy.ValidateUserExist(UserName,Password,RoleIdMapRoleName.SYSOPERATOR)==true)
JOptionPane.showMessageDialog(null,"登录成功!
","正确",JOptionPane.INFORMATION_MESSAGE);
else
{
JOptionPane.showMessageDialog(null,"用户角色不支持,请联系管理员!
","错误",JOptionPane.ERROR_MESSAGE);
return;
}
}
else{
JOptionPane.showMessageDialog(null,"发生未知错误!
","错误",JOptionPane.ERROR_MESSAGE);
return;
}
}
elseif((JButton)e.getSource()==jbtAnonymous){
System.out.println("Anonymous");
}
else
System.out.println("Unsupported!
");
}
catch(Exceptionex){
System.out.println("UnknowException:
"+ex.getMessage());
}
}
}
}
当用户输入用户名、密码和登录身份后,会通过RoleAccessProxy类进行底层访问,查看用户登录信息是否正确!
代码如下:
RoleAcessProxyroleProxy=newRoleAccessProxy();
If(roleProxy.ValidateUserExist(UserName,Password,RoleIdMapRoleName.SYSADMIN)==true)
JOptionPane.showMessageDialog(null,"登录成功!
","正确",JOptionPane.INFORMATION_MESSAGE);
Else
{JOptionPane.showMessageDialog(null,"用户角色不支持,请联系管理员!
","错误",JOptionPane.ERROR_MESSAGE);
System.exi(-1);
}
3.2、系统用户管理模块
系统用户管理模块是实现对本系统中的操作人员——管理人员的权限分配、个人信息修改、密码设定、删除等功能,其运行界面如图6所示。
图6
系统用户管理的界面相对复杂一些,其中最左边是一个列表框,用来显示列表式的数据,在这里就是本系统中的用户。
右侧面板主要是当选中左侧列表中的某个用户时显示该用户的对应信息,可以对用户数据进行编辑、删除等操作。
主要代码如下:
//为用户列表提取数据
SysUserProxysysUserProxy=newSysUserProxy();
vecSysUsers=sysUserProxy.getAllSysUsers();
try{
sysUserProxy.closeDbConnection();
}
catch(SQLExceptionex){
}
for(inti=0;i lstUserList.add(((SysUser)vecSysUsers.elementAt(i)).getName()+""+((SysUser)vecSysUsers.elementAt(i)).getSysUserId()); } /*为控件注册事件*/ this.lstUserList.addItemListener(newListItemChange()); UserOperActionbtnEvtHandle=newUserOperAction(); this.btnDelSysUser.addActionListener(btnEvtHandle); this.btnUpdateUser.addActionListener(btnEvtHandle); } classListItemChangeimplementsItemListener{ publicvoiditemStateChanged(ItemEvente){ java.awt.ListlstCtrl=(java.awt.List)e.getSource(); Stringstr=lstCtrl.getSelectedItem(); if(str==null||str=="") return; String[]result=str.split("\\s");//分解成Token StringsysUserId=result[2]; SysUserProxysysUserProxy=newSysUserProxy(); SysUserinstanceSysUser=sysUserProxy.getUserById(sysUserId); txtSysUserId.setText(instanceSysUser.getSysUserId()); txtSysUserName.setText(instanceSysUser.getName()); if(instanceSysUser.getGender().equals("M")) cmbGender.setSelectedIndex(0); elseif(instanceSysUser.getGender().equals("F")) cmbGender.setSelectedIndex (1); txtSysUserPassword.setText(instanceSysUser.getPassword()); txtRetrySysUserPassword.setText(instanceSysUser.getPassword()); if(instanceSysUser.getRoleId().equals(RoleIdMapRoleName.SYSADMIN)) cmbSysUserRole.setSelectedIndex(0); elseif(instanceSysUser.getRoleId().equals(RoleIdMapRoleName.SYSOPERATOR)) cmbSysUserRole.setSelectedIndex (1); else cmbSysUserRole.setSelectedIndex (2); if(instanceSysUser.getVoid().equals("Y")) chkSysUserVoid.setSelected(true); else chkSysUserVoid.setSelected(false); try{ sysUserProxy.closeDbConnection(); } catch(SQLExceptionex){ } } } classUserOperActionimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ if(e.getSource()==(JButton)btnDelSysUser){ //删除系统用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 成绩 管理 组织 系统 JAVA