田径运动会管理系统_第1页
田径运动会管理系统_第2页
田径运动会管理系统_第3页
田径运动会管理系统_第4页
田径运动会管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、华北水利水电大学north china institute of water conservancy and hydroelectric power课程设计题目田径运动会管理信息系统学 院 信息工程学院专 业 计算机科学与技术小组成员1严晶(201114211)小组成员2张伟健(201114213)小组成员3张浩(201114214)小组成员4张富源(201114217)指导教师 土合闯2014年12月6日华北水利水电大学软件工程课程设计报告2013201£学年第一学期 2010级计算机科学与技术专业小组成员1:严晶(201114211)分二需求分析和数据库创建小组成员2:张伟健(2

2、0111421引 分工:系统人员管理模块小组成员3:张浩(201114214)分工:运动员成绩管理模小组成员4:张富源(201114217)分工:运动员管理模块一系统描述本系统采用软件工程原理,使用面向对象的java编程环境编写校级运动会管理系 统,利用mysql数据库技术,对数据库进行了全面的开发。系统主要包括前台应用程 序的开发以及后台数据库的建立和维护两个方面,实现了运动员成绩数据库的创建及运 动员成绩的输入、统计、浏览和维护,使得系统具有界面友好,功能强大,易于维护的 特点。本校级运动会管理系统在功能实现方面主要分为以下儿点:1) 运动员个人信息管理模块。运动员管理与普通的用户管理基本

3、类似,包括用户 的添加、修改、编辑和删除功能,参赛项目的维护。例如有的运动员临时因伤不能参寒, 有的又调整为可以参加某个项目(虽然严格说来,不允许运动员临吋更改参赛项目,但 需要在系统中留有余地)。2) 运动员成绩管理模块。操作员可以对成绩进行录入,一旦提交则只能查看不能 修改管理员可以查看成绩并调整成绩,因为前场工作人员可能犯错,需要管理员进行更 改,但口志屮要对此更改进行记录。运动员可以通过终端查看运动成绩。3) 权限管理模块。管理员可以对操作人员进行信息维护,如增加前场成绩录入人 员,或者某位成绩录入人员调离岗位则取消其权限。对于运动员可以匿名查询某个项目 的成绩。综合以上情况,设计系统

4、体系结构如图1所示。应用层模块代理层数据库接口层图1应用层提供诸如gui的显示、事件的处理等;代理层是分离上层和具体数据库访问 层的,也可以称为业条层,这样的目的是当数据库发生变更时,可以将程序的改动缩减 到最小。数据库接口层是与具体的数据库进行交互,对数据进行提取、存入操作。模块 包是与数据库实体相对应的类定义,也可以说与数据库中的每条记录相对应。.详细设计1、模块功能11、系统人员管理模块该模块实现系统人员的添加、修改、查询和删除,先在数据库中添加管理员帐 户。管理员在用户管理方面拥有一切权限,而普通用户只有修改个人密码、查询个人信 息、运动会比赛信息、比赛成绩及获奖情况的权限。如图2所示

5、。系统人员 管理模块vvvv系系系系统统统统操操操操作作作作员员员员信信信信息息息息的的的的输修删查入改除询12、运动员管理模块该模块由管理员对运动员个人信息的录入、修改及删除功能。普通用户可以实现对运动员个人信息的查询功能。其功能层次如图3所示。运动员管 理模块v运v运v运v运动动动动员员员员信信信信息息息息的的的的输修删查入改除询13、运动员成绩管理模块该模块实现管理员录入运动员的成绩、查询成绩、修改成绩删除查询到的成绩信息以及普通用户查询成绩。其功能层次图如图4所示。运动员成绩管理模vvvv运运运运动动动动员员员员成成成成绩绩绩绩的的的的输修删查入改除询2、数据库结构设计表1运动会项目表

6、(sportitems)列名数据类型可否为空说明itemldvarchar(20)not null体育项目编号itemnamevarchar(50)not null项目名称itemtypevarchar(50)所属的运动类别voidvarchar(l)是否有效表2运动员参赛项目表(itemattend)列名数据类型可否为空说明sportorldvarchar(20)not null运动员编号itemldvarchar(20)not null体育项目编号scorevarchar(50)成绩voidvarchar(l)本条记录是否有效表3运动员个人信息表(sportor)列名数据类型可否为空说明s

7、portorldvarchar(20)not null运动员编号namevarchar(50)not null运动员名称gendervarchar(l)性别。m男,f女weightfloat体重,单位kgheigthfloat身高,单位cmageint年龄gradeint等级voidvarchar(l)是否参赛标志。y 为无效,己经被删 除。n为有效,参加本次比赛表4系统用户信息(sysuser)列名数据类型可否为空说明sysuserldvarchar(20)not null系统用户的编号namevarchar(20)notnull姓名passwordvarchar(50)not null密码

8、gendervarchar(l)性别roleldvarchar(20)所展于的角色voidvarchar(l)用户是否有效表5系统用户角色(roles)列名数据类型可否为空说明roleldvarchar(20)not null角色编号rolenamevarchar(50)角色名称voidvarchar(l)是否生效3、界面及代码设计31、登录子系统开发由于每个系统中都涉及登录子系统,因此在这里并不进行过多介绍,只提 供一个登录子系统的框架,登录成功后程序的流程应根据登录用户的身份來区别对待。 登录系统的界面如图5所示。计算tn学与技术m2班加点术研剎圈图5当用户输入用户名、密码和登录身份后,会

9、通过roleaccessproxy类进行底层访问,查 看用户登录信息是否正确!32、系统用户管理模块系统用户管理模块是实现对木系统中的操作人员一一管理人员的权限分配、个人 信息修改、密码设定、删除等功能,其运行界面如图6所示。用户名再实姓名电话性别请-选-择电子邮件出生日期出生日期所01院系i*-选择-新淫査询直家屛夂由is丄土口期职丿口互水勺irj珠ifadmin严昌禺2014-12-081s6126u8761iruo1iangqq126. com电力載2014-12-10o修改虫删除abc张伟健2014-12-0922值工孚読2014-12-05少修改/删除abc何梦女2014-12-09

10、33外语学院1970-01-01分修改e删除sdf小雨女1992-12-1512345678hrsitcast. cn2014-12-069修改比删除sdfw何漕女1981-12-1487654321hr24itcast. cn2014-12-06少修改s删除sdsd女2014-12-177863573735财经换2014-12-05分修改及删除系统用户管理的界面相对复杂一些,其中最左边是一个列表框,用来显示列表式的数据, 在这里就是木系统中的用户。右侧面板主要是当选中左侧列表中的某个用户时显示该用 户的对应信息,可以对用户数据进行编辑、删除等操作。单击“更新用户”按妞,则触发相应事件,调用s

11、ysuserproxy类实现更新操作。与登录 子系统屮的roleaccessproxy类相类似,sysuserproxy也是对数据访问进行了封包,使 上层应用无须与底层直接接。这样增强了系统的可移植性和可扩展性。关于 sysuserproxy类的代码在此处省略。33、运动员信息管理模块运动员信息管理模块主要实现对人员个人信息的维护,其界面布局与系统用户 管理模块类似,如图7所示。运动员管湮模块顶目名徐运动员学号查询时建顶目名存运动员学号师丐imir11000201114211区魁£昵2男子铅球201114215玄緣改及刪除共碌记录首页上一页下一页末页当前第】'3页34、运动员

12、成绩管理模块这一功能模块在结构上采用三级连动方式,即一级菜单的动作触发二级菜单的响 应,二级菜单的动作影响三级菜单的显示。基于这个依据,设计界面如图8所示。成绩管理模块项目名称学号w查询屋新逹顶目名称学号名次r10002011142113 302p 蚀 ewa农远2011142153.25p峨改刪腕共竦记录讨页上一页下一页末页当前鋼】/3页图8仔细阅读前面的代码,其实逻辑并不复杂,主要是当鼠标选中左边的一项时,会触发相 应的事件,从数据库中提取相应的数据填充中间的列表框,当中间的列表框有数据被选 中时,则将相关的数据显示在最右边的面板上。另外,在这个系统的各个层次中,需要使用到一些输助类,这些

13、类与具体的对象相关联。 例如表示运动员实体的类sportsman,其与数据库的记录一一对应。这样便于在类与数 据之间实现自由转换。有关于这些辅助类的代码就不一一列岀了!三心得体会在我们整个软件工程过程中,我体会到了许多,也学到了许多。需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分 析,那么对于后来的项目进展将产生致命的后果。我们在项目的开发中便遇到了这样的 问题。我们开始自己随意的计划整个系统的设计,然后报给老师,老师作为一个客户并 不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。我也明白了,再 做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,

14、他们想要什么功能。 如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个 很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工 去修改,费时费力。所以在做任何一个项目时,前期的需求调研和需求分析都是必须的, 这是在做一个项目的基本,是关系成败的重要一环。对于一个项目,它的需求设计也非常重要。在我们的开发的过程中,遇到了一些问 题,出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的 时间,我们不得不在工程代码上改了乂改,在数据库里增表、删表、加数据、减数据, 当然,在文档里也要做出相应的修改以适应新的功能。还好,我们能及时地发

15、现问题, 通过相互沟通讨论,问题也得到了解决。通过总结,我们也意识到,我们大家在做需求 分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系, 以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之 前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,那么我们在 开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表, 以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个 工程的问题。整个工程的需求设计对于一个项目的顺利进展至关重要。对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深

16、刻的理解。文 档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太 过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文 档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发 过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们 需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档只不 过是一个准绳,将开发中的各个树枝树叶扶正。如果,这个准绳太多太紧,大树可能会 发育的很高很直,但是就是有些畸形,如果这个准绳太少太松,大树可能就会变成灌木 丛。文档的多少、繁简是有度的,绝对不能说

17、越多越好。我觉得,文档需要说明解决问 题的方法而不是解决问题的理论,因为解决问题的理论是在文档形成中做到的。文档完 整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了 重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真 是这样,我认为就是该考虑写这些文档的必要性的时候了。我们在文档的时候,一定要 明口为什么要写这些。在整个项目开发过程中,我们也同时遇到了许多程序接口问题,页面和功能相结 合的问题,数据库建表的问题,这些问题都是源于我们项冃小组成员z间的沟通不足。 我深刻认识到,在项口开发时,项冃小组屮各个成员z间的相互沟通是非常重要的。如 果

18、我们要在功能方面作出修改,那么程序人员和页面人员及数据库人员就必须相互沟 通,共同对整个程序作出相应的修改,这样才能避免最终整合时出现问题。在这几周里,我还对软件工程有了新的理解。在我以前的理解当屮,软件工程,无 非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所 用的软件。但现在我明口了,软件工程的作用,就是告诉人们怎样去开发软件和管理软 件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。所以,软件工程就不 仅仅是单一的编程过程了。它包括了系统分析亠建模亠概要设计亠详细设计亠编码亠测 试维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其屮的一小

19、部 分。在这次项目里我完成了许多工作,全部的用户页面及部分管理员页面的制作,在后期项冃整合过程屮修改了功能和界面结合时出现的bug,还有数据库插入数据 及解决数据库集屮整合时出现的问题。这些工作我都顺利完成了,虽然并不能算是 非常的出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。附件:public static void main(string args) / todo auto-generated method stub严根据需要,打开下面运行开关*/*主登录窗口界面startapp mainform = new startappo; mainform.initui();*/运动

20、员管理模块/new sportormanagement();/运动员成绩管理模块new sportorscoremanagement();/系统人员管理模块new sysusermanagement();/public class loginevthandle implements actionlistener public void actionperformed(actionevent e)tryif( (jbutton)e.getsourceo = jbtlogin )根据用户登录身份,转向对应的界面 string username = jtxtuse匚gettext().n*im();

21、string password = jtxtpass.gettext().tostring();enumrolerole=userrole.getuserrole( jcmbidentify.getselecteditem().tostring().trim();system.out.println(husername:h + username + m password/1 +password + " " + "role :" + role);if( role = enumrole.norole )joptionpane.showmessagedialo

22、g(null,"用户角色未设定,请单击匿名登录 访问系统! t错误”,joptionpane.error_message);return;else if( role = enumrole.notsupport )joptionpane.showmessagedialog(null,"用户角色不支持,请联系管理员! 丁错误'joptionpane.error_message);return;else if( role = enumrole.sysadministrator )连接数据库,验证是否管理人员roleaccessproxy roleproxy = new r

23、oleaccessproxyo;if( roleproxy. validateuserexist(username,password,roleldmaprolename.sys admin) = true ) joptionpane.showmessagedialog(null/'登录成功!正确 u,joptionpane.information_message);elsejoptionpane.showmessagedialog(null,"ffl 户角色不支持,请联系管理员!”,”错误 m,joptionpane.error_message);system.exit( 1

24、 );else if( role = enumrole.sysoperator )连接数据库,验证是否系统操作人员并转到相应界面 roleaccessproxy roleproxy = new roleaccessproxy();if( roleproxy. validateuserexist(username,password,roleldmaprolename.sysoperator)= true)joptionpane.showmessagedialog(null,m 登录成功!",” 正确 u,joptionpane.information_message);elsejopt

25、ionpane.showmessagedialog(null,"ffl 户角色不支持,请联系管理 员!错误m,joptionpane.error_message);return; elsejoptionpane.showmessagedialog(null,n 发生未知错误! t 错误 ",joptionpane.error_message);return;else if( (jbutton)e.getsource() = jbtanonymous )system.out.println(nanonymousn);elsesystem.out.println(nunsupp

26、orted!n);catch(exception ex)system.out.println(hunknow exception: h+ ex.getmessage();else if(e.getsource() = (jbutton)btndeluser) string userid = txtuserid.gettext();string finalsql = ndelete from sportor where sportorid=,n4-iiserid+,',u; sportorproxy userproxy = new sportorproxyo;userproxy.upda

27、teuserbyld(finalsql);istuserlist.removeallo;initctldata();joptionpane.showmessagedialog(null,h n,joptionpane.information_message);return;userproxy .updateuserbyld(finalsql);joptionpane.showmessagedialog(null,h u,joptionpane.information_message);return;class useicperaction implements actionlistenerpu

28、blic void actionperformed(actionevent e) if( e.getsource() = (jbutton)btnadduser)增加系统用户/*课后作业*/joptionpane.showmessagedialog(null,n n,joptionpane.information_message);return;else if( e.getsource() = (jbutton)btnupdateuser )更新现有用户string userid = txtuserid.gettext();string username = txtusername.gette

29、xt();string gender;if( cmbgender.getselecteditem().tostring().equals(u男n)gender =nmm;elsegender = “f”;float weight = o.of;if( txtuserweight.gettext() != null && txtuserweight.gettext() != ”")weight = float.parsefloat(txtuserweight.gettext();float height = o.of;if( txtuserheight.gettext(

30、) != null && txtuserheight.gettext() != ”")height = float.parsefloat( txtuserheight.gettext();int age = 0;if( txtuserage.gettext() != null && txtuserage.gettext() != ,h)age = integer.parselnt( txtuserage.gettext();int grade = 0;if( txtusergrade.gettext() != null && txtus

31、ergrade.gettext() != ”")grade = intege匚parselnt( txtusergrade.gettext();string void;if( chksysuserv()id.isselected() = true)void = ” y”;elsevoid = ”n”;string finalsql 二"”;finalsql = hupdate sportor u+“ set name* + username +”;gender=”'+gender + ”+n weights + weight + ”, height 二” + hei

32、ght +"age = “ + age +“,” + ” grade = ” + grade + u,void=,h + void + ”'“+“where sportorid二”'+ userid +;sportorproxy userproxy = new sportorproxyo;sysuserproxy sysuserproxy = new sysuserproxyo;vecsysusers = sysuserproxy.getahsysusers();try!sysuserproxy.closedbconnection();catch(sqlexcepti

33、on ex) for( int i = 0; i < vecsysusers.size(); i + )lstuserlist.add(sysuser)vecsysusers.elementat(i).getname() + hm+(sysuser)vecsysusers.elementat(i).getsysuserid();/*为控件注册事件*/this.lstuserlist.additemlistener( new listitemchange(); useroperaction btnevthandle = new useroperaction(); this.btndelsy

34、suse 匚 addactionlistener(btnevthandle); this.btnupdateuse 匚 addactionlistener(btnevthandle);class listltemchange implements itemlistenerj public void itemstatechanged(itemevent e)java.awt.list istctrl = (java.awt.list)e.getsource();string str = lstctrl.getselecteditem();if( str = null | str = “”)ret

35、urn;string result = str.split(ms"); /分解成 tokenstring sysuserld = result2;sysuserproxy sysuserproxy = new sysuserproxyo;sysuser instancesysuser = sysuserproxy.getuserbyld(sysuserld); txtsysuserid.settext( instancesysuse匚ge(sysuserid(); txtsysusername.settext( instancesysuser.getname();if( instan

36、cesysuser.getgender().equals( hmm)cmbgende r.setselectedlndex(o);else if( instancesysuser.getgender().equals(hfh)cmbgende 匸 se(selectedindex( 1);txtsy$userpassword.settext( instancesysuse匚getpasswonl(); txtretrysysuserpassword.settext( instancesysuseegetpassword(); if( instancesysuser.getroleid().eq

37、uals(roleidmaprolename.sys admin ) cmbsysuserrole.setselectedlndex(o);else if(instancesysuser.getroleid().equals(roleidmaprolename.sysoperator) cmbsysuserrole.setselectedindex(l);elsecmbsysuserrole.setselectedindex(2);if( instancesysuser.getvoid().equals("y")chksysuservoid.setselected(true

38、);elsechksysuservoid.setselected(false);trysysuserproxy.closedbconnection();catch(sqlexception ex)class useioperaction implements actionlistenerpublic void actionperformed(actionevent e)if( e.getsource() = (jbutton)btndelsysuser)删除系统用户string userid = txtsysuserid.gettext();string finalsql = “delete

39、from sysuser where sysuserid=,m+userid+小”;sysuserproxy sysuserproxy = new sysuserproxyo; sysuserproxy.updateuserbyld(finalsql);joptionpane.showmessagedialogcnull,1'删 除 成 功!”,"成 功joptionpane.information_message);else if( e.getsource() = (jbutton)btnupdateuser)更新现有用户string userid = txtsysuser

40、id.gettext();string username = txtsysusername.gettext();string gender;if( cmbgender.getselecteditem()<tostring()<equals(h 男m)gender =nmh;elsegender = “f”;string pass;if( txtsysuserpassword.gettext().equals(txtretiysysuserpassword.gettext()pass = txtsysuserpassword.gettext();elsejoptionpane.sho

41、wmessagedialog(null,h 密码不匹配错误 u,joptionpane.error_message);return;string userrole;if( cmbsysuserrole.getselecteditem().tostring().equals("系统管理员") userrole = roleldmaprolename.sys admin;else if(cmbsysuserrole.getselecteditem().tostring().equals("系统操作员") userrole = roleldmaprolenam

42、e.sysoperator;elseuserrole =string void;if( chksysuservoid.isselected() = true)void = ” y”;elsevoid 二”n”;string finalsql = "update sysuser set name=m + username +”+ password = ,n + pass + ”',genders' + gender +“+”roleid二”'+ userrole + ”void=,m + void + where “ + “sysuseridi + userid

43、 +;sysuserproxy sysuserproxy = new sysuserproxyo; sysuserproxy.updateuserbyld(finalsql);joptionpane.showmessagedialog(null,h 更 新 成 功!",” 成 功u,joptionpane.information_message);roleacessproxy roleproxy=new roleaccessproxyo;if(roleproxy.validateuserexist(username,password,roleidmaprolename.sysadmi

44、n)=true)joptionpane.showmessagedialog(null,h 登 录 成 功正 确moptionpane.information.message);else joptionpane.showmessagedialog(null,"用户角色不支持,请联系管理员! n,"错误 u,joptionpane.error_message);system.exi(-l);class listltemchange implements itemlistenerjpublic void itemstatechanged(itemevent e)if( e.get

45、source() = (java.awt.list)lstsportltems )初始化界面txtscorel.settext("");txtscore2.settext(,n,);txtscore3.settext("");txtscore4.settext( );txtscore5.settext("");txtscore6.settext("");chk vai id.setselected(false);java.awt.list istctrl = (java.awt.list)e.getsource()

46、;string str = lstctrl.getseiecteditem();if( str = null | str = “”)return;string result = str.split(nsn); /分解成 tokenstring itemld = result2;string sqlquery = "select , a.sportorid " + ”from sportor a,itemattend b " + “where b.itemid = ”itemld + u, and “+ ub.sportorid = a.sportori

47、d ”;sportorproxy sportproxy = new sportorproxyo;vector vecsportor = sportproxy.getsportusersbysql(sqlquery); istsportors.removeallo;for( int i = 0; i < vecsportor.size(); i + ) lstsportors.add(sportsman)vecsport or. elementat(i).getname() + nh+(sportsman)vecsportor.elementat(i).getsportorid();try sportproxy.closedbconnection();catch(sqlexception sqlex)else if( e.getsource() =

温馨提示

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

评论

0/150

提交评论