足球联赛积分管理系统设计说明书.docx
- 文档编号:10810946
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:34
- 大小:176.57KB
足球联赛积分管理系统设计说明书.docx
《足球联赛积分管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《足球联赛积分管理系统设计说明书.docx(34页珍藏版)》请在冰豆网上搜索。
足球联赛积分管理系统设计说明书
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2013年秋季学期
Java课程设计
题目:
足球联赛积分管理系统
专业班级:
姓名:
学号:
指导教师:
成绩:
摘要
足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。
该设计以足球联赛为背景,设计足球联赛积分管理系统程序。
通过对该题目的具体设计分析,可以对面向对象程序设计的思想更加深入理解,可以达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
同时对程序设计风格有全面的强调,提高解决实际问题的能力。
并且通过与数据库的连接,深化对数据库编程的理解和运用。
关键词:
面向对象;Java;数据库编程;数据库
序言
通过足球联赛积分管理系统的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
同时强调好的程序设计风格,提高解决实际问题的能力。
由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(也可以用链表结构)。
每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。
摘要……………………………………………………………………………………1
序言……………………………………………………………………………………1
正文……………………………………………………………………………………3
一.系统分析与设计…………………………………………………………………3
1.1系统分析……………………………………………………………………3
1.2系统设计……………………………………………………………………3
1.3系统类的描述………………………………………………………………4
二.详细设计…………………………………………………………………………5
2.1系统模块设计………………………………………………………………5
2.2数据库概念结构设计………………………………………………………6
2.3数据库逻辑模型结构设计…………………………………………………7
2.4使用ODBC建立WINDOW数据源的方法……………………………………8
三.系统测试…………………………………………………………………………11
四.软件使用说明书…………………………………………………………………13
设计总结……………………………………………………………………………14
参考文献……………………………………………………………………………15
致谢…………………………………………………………………………………16
源代码………………………………………………………………………………23
一.系统分析与设计
1.1系统分析
足球联赛积分管理系统是一个以足球联赛为背景,设计足球联赛积分管理系统程序。
采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次。
面向对象程序开发语言采用JAVA,数据库管理系统采用MicrosoftAccess2003,集成开发环境使用eclipse。
该管理系统是以自主设计为主,通过对该系统的具体设计分析,可以对面向对象程序设计的思想更加深入理解,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
1.2系统设计
在对该系统有初步的规划之后,我们应该着手处理如何初步规划该系统的各主要模块以及基本的方法,前面已经提到,我们使用面向对象程序设计的思路,而且运用数据库编程的理论,所以我们应该按照具体的思路来设计相应的应用,以下简要概述该系统的具体设计:
(1).比赛过程的管理:
包括一场比赛的基本信息的录入,如参赛双方的球队名称、比赛结果、进球情况等;
(2).球队基本信息查询:
查询球队的基本信息,输入球队名称,对比查找已有数据库,匹配到该球队,则输出球队的的进球数,胜负场次情况等;
(3).积分榜查询:
所有的输入结束后,按照联赛的积分规则,排列数据库中的几组关键数据,查询各个球队的名次;
1.3.系统类的描述
(a).MainFrame类实现了主窗体;
成员函数:
privatevoidinitialize()
成员变量:
privateJFramefrmZ;
publicstaticTextArearesultText;
(b).LastTime实现了最后一轮比赛的窗口及主场、客场和其各自进球数的输入;
成员函数:
publicstaticvoidLasttime()
成员变量:
privatefinalJPanelcontentPanel=newJPanel();
privateJTextFieldzhuchangname;
privateJTextFieldkechangname;
privateJTextFieldzhuchang;
privateJTextFieldkechang;
(c).Search实现了队各个队伍比赛情况的查询;
成员函数:
publicstaticvoidsearch()
成员变量:
privatefinalJPanelcontentPanel=newJPanel();
privateJTextFieldtextField;
(d).FootBean类申明成员变量ArrayList
publicclassFootBean{
publicstaticArrayList
}
(e).AccessConnection类实现了数据库的连接;
成员函数:
publicvoidGetInfo()
publicvoidSetInfo()
privateStatementexcuteUpdate()
publicvoidSetScore()
publicStringSearch(Stringname)
publicStringSort()
publicStringOutInfo()
成员变量:
publicinti=1;
publicStringSQL_insert;
publicConnectionconn;
publicStatementsql;
publicArrayList
publicResultSetrs;
publicstaticStringname;
publicPreparedStatementps;
publicbyte[]b;
(f).五个类之间的关系如下所示:
图1.1各个类之间关系流程图
二.详细设计
针对系统的局部构思,可以设计系统的功能模块如下所示:
•系统模块设计;
•数据库概念结构设计;
•数据库逻辑结构设计;
•数据库物理结构设计;
2.1.系统模块设计
图2.1系统模块图
图2.2主窗体模块图
2.2.数据库概念结构设计
图2.3数据库模块图
2.3.数据库逻辑模型结构设计
表2.1逻辑模型设计——球队表(Team)
字段名
数据类型
宽度
主码
非空
外码
描述
name
VARCHAR
20
是
是
否
球队名称
win
VARCHAR
30
否
否
否
胜利场次
lose
VARCHAR
20
否
否
否
失败场次
表2.2逻辑模型设计——比赛进程表(Course)
字段名
数据类型
宽度
主码
非空
外码
描述
PLACE
INT
否
是
否
名次
name
VARCHAR
20
是
是
否
球队名称
times
INT
否
是
否
轮次
Win
INT
否
是
否
胜利场次
flat
INT
否
是
否
平局场次
lose
INT
否
是
否
失败场次
inNum
INT
否
是
否
总进球数
score
INT
否
是
否
积分
2.4使用ODBC建立WINDOW数据源的方法:
开始
>>控制面板
>>管理工具
>>数据源(ODBC)
>>用户DSN或系统DSN
>>点添加
>>找到"MicrosoftAccessDriver(*.mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(.mdb)其它可以不选
>>确定>>确定
到此数据源已经建立成功
连接数据库代码(部分):
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.HashMap;
publicclassAccessConnection{
publicinti=1;
publicStringSQL_insert;
publicConnectionconn;
publicStatementsql;
publicArrayList
publicResultSetrs;
publicstaticStringname="";
publicPreparedStatementps=null;
publicbyte[]b=newbyte[2];
publicvoidGetInfo(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(Exceptione){
}
try{
conn=DriverManager.getConnection("jdbc:
odbc:
redsun","","");
sql=conn.createStatement();
rs=sql.executeQuery("SELECT*FROMfootball");
while(rs.next()){
HashMap
temp.put("name",rs.getString("name").toString());
temp.put("lose",rs.getInt("lose")+"");
temp.put("win",rs.getInt("win")+"");
temp.put("flat",rs.getInt("flat")+"");
temp.put("in",rs.getInt("inNum")+"");
temp.put("score",rs.getInt("score")+"");
temp.put("times",rs.getInt("times")+"");
lists.add(temp);
}
FootBean.lists=lists;
conn.close();
if(conn!
=null){
System.out.println("数据库连接正常");}
}catch(Exceptione){
System.out.println(e);
}finally{
}
}
三、系统测试
四.软件使用说明书
使用ODBC建立WINDOW数据源:
开始
>>控制面板
>>管理工具
>>数据源(ODBC)
>>用户DSN或系统DSN
>>点添加
>>找到"MicrosoftAccessDriver(*.mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(.mdb)其它可以不选
>>确定>>确定
到此数据源已经建立成功
(1)由结果菜单中的最后一次输入菜单,输入最近一轮的比赛情况,包括比赛队名和各队的进球数;
(2)由排序菜单可查看比赛的积分表排序(递减排序),包括每个队的比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分;
(3)由查询菜单输入要查询的队名,可查看该对的比赛成绩。
设计总结
经历这次的课程设计,对自己的学习有很多帮助,特别是对面向对象程序设计的思想、方法以及具体实现有了较为深刻的体会。
在平时的很少有那么多的时间去学习java,这次的课程设计使我有了一个相对比较集中的时间去练习我的编程,特别是我的动手能力有了极大的提高,因为这次的课程设计几乎涉及到了java语言程序设计的整本书的重要内容,让我从中受益,有了一次巩固知识的机会。
同时还让自己平时不怎么注意的问题得到了自己足够的关注,为以后写程序奠定下了坚实的基础,让自己对这门课的课程有了更深刻的认识。
这次写完程序后,等到自己能顺利运行,中间经历了重重困难,一步一步的调试程序,经历了上百次的失败。
不过,最后在程序顺利运行的那一刻,所有付出都有了回报。
通过对该系统的具体设计分析,使我对面向对象程序设计的思想更加深入理解,我基本上掌握了Java语言的基本知识和技能和面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
同时对程序设计风格有全面的强调,提高解决实际问题的能力。
并且通过与数据库的连接,深化对数据库编程的理解和运用。
由于我们还没有学数据库这门课,所以我对数据库的操作基本上是清零状态,在网上搜了好多方法,数据库的连接,数据查找,数据库的升级。
虽然对于数据库我知之甚深少,但是通过这次课设,让我对数据库产生了极大的兴趣,同时也认识到了数据库在软件编程中的重要地位。
最后,用一句话总结这次的课程设计——发现问题并解决它。
参考文献
[1]曲朝阳,杨杰明等.Java程序设计.北京:
清华大学出版社,2008.10
[2]耿祥以,张跃平.Java大学生实用教程.北京:
电子工业出版社,2012.6
[3]明日科技.Java经典编程.北京:
清华大学出版社,2012.10
[4]李尊朝,苏军.Java语言程序设计.北京:
中国铁道出版社,2004.2
[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.
致谢
首先,我要感谢学校给我们提供了此次课程设计的机会,能让同学们在一起学习与研究,让我们有机会对所学的理论知识进行实践。
其次,我还要特别感谢我的辅导老师王燕老师,在她的精心辅导和帮助下,我的设计才得以顺利完成,并使所学知识得以真正的应用。
对她为我的设计所提出的宝贵意见表示忠心的感谢!
最后、在设计过程中,也得到了许多同学的宝贵建议,同时还到许多校友的支持和帮助,在此一并致以诚挚的谢意。
源代码:
Packagestudent;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.HashMap;
publicclassAccessConnection{
publicinti=1;
publicStringSQL_insert;
publicConnectionconn;
publicStatementsql;
publicArrayList >>(); publicResultSetrs; publicstaticStringname=""; publicPreparedStatementps=null; publicbyte[]b=newbyte[2]; publicvoidGetInfo(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(Exceptione){ } try{ conn=DriverManager.getConnection("jdbc: odbc: redsun","",""); sql=conn.createStatement(); rs=sql.executeQuery("SELECT*FROMfootball"); while(rs.next()){ HashMap temp.put("name",rs.getString("name").toString()); temp.put("lose",rs.getInt("lose")+""); temp.put("win",rs.getInt("win")+""); temp.put("flat",rs.getInt("flat")+""); temp.put("in",rs.getInt("inNum")+""); temp.put("score",rs.getInt("score")+""); temp.put("times",rs.getInt("times")+""); lists.add(temp); } FootBean.lists=lists; conn.close(); if(conn! =null){ System.out.println("数据库连接正常");} }catch(Exceptione){ System.out.println(e); }finally{ } } publicvoidSetInfo(Stringzhuchang,Stringkechang,intzhu,intke){ Stringa=""; intb=0; GetInfo(); try{ conn=DriverManager.getConnection("jdbc: odbc: redsun","",""); booleanflag=false; for(inti=0;i if(FootBean.lists.get(i).get("name").toString().equals(zhuchang)){ flag=true; if(zhu>ke){ b=Integer.parseInt(FootBean.lists.get(i).get("win").toString())+1; a="updatefootballSETwin="+"'"+b+"'"+"WHEREname="+"'"+FootBean.lists.get(i).get("name").toString()+"'"; } elseif(zhu==ke){ b=Integer.parseInt(FootBean.lists.get(i).get("flat").toString())+1; a="updatefootballSETflat="+"'"+b+"'"+"WHEREname="+"'"+FootBean.lists.get(i).get("name").toString()+"'"; } else{ b=Integer.parseInt(FootBean.lists.get(i).get("lose").toString())+1; a="updatefootballSETlose="+"'"+b+"'"+"WHEREname="+"'"+FootBean.lists.get(i).get("name").toString()+"'"; } ps=conn.prepareStatement(a); ps.executeUpdate(); b=Integer.parseInt(FootBean.lists.get(i).get("times").toString())+1; a="updatefootballSETtimes="+"'"+b+"'"+"WHEREname="+"'"+FootBean.lists.g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 足球联赛 积分 管理 系统 设计 说明书