毕业设计java运动会成绩管理系统.docx
《毕业设计java运动会成绩管理系统.docx》由会员分享,可在线阅读,更多相关《毕业设计java运动会成绩管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
毕业设计java运动会成绩管理系统
《JAVA程序设计》
课程设计报告
设计题目:
运动会成绩管理系统
学院名称:
信息工程学院
目录
一需求分析。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
二概要设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
三详细设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
3.1数据库设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
3.2模块及窗体设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
3.2.1数据库模块设计。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
4
3.2.2用户登录识别模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
5
3.2.3主页面模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
5
3.2.4运动员信息浏览模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
3.2.5添加运动员信息模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
3.2.6运动员信息查询修改模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
7
3.2.7运动员信息查删除模块。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
8
3.3主要程序代码。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
8
四软件测试。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
15
五总结。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
23
参考资料:
.......................................................24
一需求分析
本系统的主要目的就是实现运动会成绩管理,使运动会成绩管理工作更加容易,从而提高工作效率,降低管理成本.
系统中需要对拥护身份进行管理,采取登陆进入系统的形式.
二概要设计
/************************************************************************
概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。
项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。
概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。
概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。
2.1概要设计的原则
概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。
概要设计要坚持以下几个原则。
(1)细分原则:
软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。
解决复杂问题的方法是将其分解成几个小问题,一个个来解决。
(2)提高代码重用性:
在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。
(3)从上而下层层分析:
概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。
(4)一致性原则:
概要设计要求所有功能模块在定义时使用统一的规范。
(5)提高独立性,减少耦合:
各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。
一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。
(6)模块的大小要尽量适中:
不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。
经验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。
过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。
由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。
现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。
2.2将用户需求模块化
根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。
什么样的需求才是一个模块?
模块应该具备如下3个特征。
(1)输入和输出:
模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。
(2)处理功能:
模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。
(3)程序代码:
用来实现模块功能的源代码。
2.3确定系统最终模块
概要设计中最重要的就是确定此项目包括哪些模块。
根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。
**************************************************************************/
2.4UML用例图
1.管理员权限
2.系统流程图
2.5模块设计
1数据库设计模块
2用户登录识别模块
3主页面模块
4运动员信息浏览模块
5运动员信息添加模块
6运动员信息查询修改模块
7运动员信息删除模块
三详细设计
3.1数据库设计
数据库名称:
yangyun
表名:
tablename
运动员信息表:
学号(INT型)
姓名(varchar)
班级(varchar)
项目名(varchar)
成绩(varchar)
1312210101
杨昀
13计本
100米
11.2S
1312210102
马凯
13金融
跳高
2.6M
1312210103
马嘉岐
14电子
50米短跑
14S
1312210104
刘飞
12英语
铅球
5M
1312210105
王青山
13信管
跳远
2.2米
1312210106
李连杰
14网络
1*400
45S
1312210107
任宇锴
13计本
跳高
2.8M
1312210108
乔欢
14网络
跳远
3.2M
1312210109
李小龙
15信管
4*400男子接力
40S
1312210110
周杰伦
13音乐
跳远
3.5M
1312210111
周星星
14表演
跳高
2.9M
1312210112
王泽林
15生物
铅球
6M
1312210113
刘德华
15表演
跳远
3.4M
1312210114
赵一德
13计本
跳远
3M
1312210115
周小华
14英语
跳高
2.5M
1312210116
王晶晶
15生物
4*400女子接力
50S
1312210117
刘华
15信管
铅球
6.9M
1312210118
刘毅
14英语
4*400男子接力
43S
1312210119
王缓缓
14网络
铅球
6.3M
3.2模块及窗体设计
3.2.1数据库模块设计
将数据库的连接包装在一个lianjie类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。
下表是他的基本属性
文件名
成员变量
成员方法
lianjie.java
Connectionconn
PreparedStatementps;
Statementstmt
ResultSetrs
Publicstaticintshanchu(String)
publicstaticintxiugai(String)
publicstaticintzhucezh()
3.2.2用户登录识别模块
代码封装在类Denlu,下表是他的基本属性
文件名
控件
成员方法
Denlu.java
JLabellabel1=newJLabel("管理员登录:
");
JLabellabel2=newJLabel("管理员:
");
TextFieldname
JLabellabel3=newJLabel("密码:
");
JPasswordFieldmima
JButtonbutton1=newJButton("登录");
JButtonbutton2=newJButton("取消");
publicDenlu()
3.2.3主页面
以下是它的基本属性
文件名
控件名称
Jiemian.java
JButtonbutton1_0=newJButton("运动员信息浏览");
JButtonbutton1_1=newJButton("添加运动员信息");
JButtonbutton1_2=newJButton("查询修改运动员信息");
JButtonbutton1_3=newJButton("删除运动员信息");
JButtonbutton1_4=newJButton("退出系统");
3.2.4运动员信息浏览
基本属性如下
文件名
控件名
Chakansuoyou.java
JTabletable;
JButtonbutton4_0=newJButton("刷新");
JButtonbutton4_1=newJButton("返回主页");
3.2.5添加运动员信息
基本属性如下
文件名
控件名
Tianjia.java
TextFieldnum=newTextField(20);
TextFieldname=newTextField(20);
TextFieldbanji=newTextField(20);
TextFieldxiangmuming=newTextField(20);
TextFieldchengji=newTextField(20);
Labellabel1_0,label1_1,label1_2,label1_3,label1_4,label1_5;
JButtonbutton1_0=newJButton("添加");
JButtonbutton1_1=newJButton("取消");
3.2.6运动员信息的查询与修改
基本属性如下
文件名
控件名
Chagai.java
TextFieldnum=newTextField(20);
TextFieldname=newTextField(20);
TextFieldbanji=newTextField(20);
TextFieldxiangmuming=newTextField(20);
TextFieldchengji=newTextField(20);
Labellabel1_0,label1_1,label1_2,label1_3,label1_4,label1_5;
JButtonbutton1_0=newJButton("修改");
JButtonbutton1_1=newJButton("取消");
JButtonbutton1_2=newJButton("查询");
3.2.7删除运动员信息
3.3主要程序代码
1.登陆主页:
publicclassDenluextendsJFrame{
TextFieldname=newTextField(20);
JPasswordFieldmima=newJPasswordField(15);
JFramef=newJFrame("榆林学院运动会成绩管理系统");
publicDenlu(){
f.setBounds(450,200,400,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(false);
f.setLayout(null);
JLabellabel1=newJLabel("管理员登录:
");
JLabellabel2=newJLabel("管理员:
");
JLabellabel3=newJLabel("密码:
");
label1.setFont(newFont("Serif",Font.BOLD,20));
label1.setBounds(0,0,300,50);
label2.setFont(newFont("Serif",Font.BOLD,15));
label3.setFont(newFont("Serif",Font.BOLD,15));
JButtonbutton1=newJButton("登录");
JButtonbutton2=newJButton("取消");
BHandlerh=newBHandler();
button1.addActionListener(h);
button2.addActionListener(h);
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
f.add(label1);
p1.setBounds(0,60,380,30);
p1.add(label2);
p1.add(name);
p2.setBounds(0,90,380,30);
p2.add(label3);
p2.add(mima);
p3.setBounds(0,150,420,40);
p3.add(button1);
p3.add(button2);
f.add(p1);
f.add(p2);
f.add(p3);
f.setVisible(true);
}
publicstaticvoidmain(String[]args){
Denlua=newDenlu();
}
publicclassBHandlerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
if(event.getActionCommand()=="登录")
{
if(name.getText().equals("yangyun")&&mima.getText().equals("123"))
{
Jiemianzhuce=newJiemian();
}
else
JOptionPane.showMessageDialog(Denlu.this,"卡号或者密码不正确!
");
}
else
{
f.dispose();
}
}
}
}
2.主界面:
publicclassJiemianextendsJFrame{
JFramef=newJFrame("运动会成绩管理系统界面");
publicJiemian(){
JLabellabel1;
f.setBounds(400,150,600,450);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(false);
f.setLayout(null);
label1=newJLabel("欢迎进入榆林学院运动会成绩管理系统",SwingConstants.CENTER);
label1.setFont(newFont("Serif",Font.BOLD,25));
JButtonbutton1_0=newJButton("运动员信息浏览");
JButtonbutton1_1=newJButton("添加运动员信息");
JButtonbutton1_2=newJButton("查询修改运动员信息");
JButtonbutton1_3=newJButton("删除运动员信息");
JButtonbutton1_4=newJButton("退出系统");
BHandlerh=newBHandler();
button1_0.addActionListener(h);
button1_0.setFont(newFont("宋体",Font.BOLD,20));
button1_0.setSize(400,35);
button1_1.addActionListener(h);
button1_1.setFont(newFont("宋体",Font.BOLD,20));
button1_1.setSize(400,35);
button1_2.addActionListener(h);
button1_2.setFont(newFont("宋体",Font.BOLD,20));
button1_2.setSize(400,35);
button1_3.addActionListener(h);
button1_3.setFont(newFont("宋体",Font.BOLD,20));
button1_3.setSize(400,35);
button1_4.addActionListener(h);
button1_4.setFont(newFont("宋体",Font.BOLD,20));
button1_4.setSize(400,35);
JPanelp0=newJPanel();
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
JPanelp4=newJPanel();
JPanelp5=newJPanel();
p0.setBounds(0,0,600,60);
p0.add(label1);
p1.setLayout(null);
p1.setBounds(100,60,600,40);
p1.add(button1_0);
p2.setLayout(null);
p2.setBounds(100,120,600,40);
p2.add(button1_1);
p3.setLayout(null);
p3.setBounds(100,180,600,40);
p3.add(button1_2);
p4.setLayout(null);
p4.setBounds(100,240,600,40);
p4.add(button1_3);
p5.setLayout(null);
p5.setBounds(100,300,600,40);
p5.add(button1_4);
f.add(p0);
f.add(p1);
f.add(p2);
f.add(p3);
f.add(p4);
f.add(p5);
f.setVisible(true);
}
privateclassBHandlerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
if(event.getActionCommand()=="运动员信息浏览")
{Chakansuoyoua=newChakansuoyou();}
elseif(event.getActionCommand()=="添加运动员信息")
{Tianjiab=newTianjia();}
elseif(event.getActionCommand()=="查询修改运动员信息")
{Chagaib=newChagai();}
elseif(event.getActionCommand()=="删除运动员信息")
{Shanchub=newShanchu();}
elseif(event.getActionCommand()=="退出系统")
{f.dispose();}
}
}
}
3.运动员信息浏览:
publicclassChakansuoyouextendsJFrame{
JFramef=newJFrame("查看所有运动员信息");
publicstaticObject[][]data=newObject[30][5];
JTabletable;
String[]lieming={"学号","姓名","班级","项目名","成绩"};
publicChakansuoyou(){
f.setBounds(400,150,600,450);
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//f.setResizable(false);
f.setLayout(null);
table=newJTable(data,lieming);
table.setEnabled(false);//表格不可编辑
JButtonbutton4_0=newJButton("刷新");
JButtonbutton4_1=newJButton("返回主页");
BHandlerh=newBHandler();
button4_0.addActionListener(h);
button4_1.addActionListener(h);
JPanelp1=