ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:874.54KB ,
资源ID:3691106      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3691106.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(足球联赛管理系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

足球联赛管理系统.docx

1、足球联赛管理系统*实践教学* 兰州理工大学计算机与通信学院2010年春季学期 面向对象 课程设计题 目: 足球联赛积分管理系统 专业班级: 信息与计算科学06班 姓 名: 摆富有 学 号: * * * 成 绩: 前 言在面对对象方法中,对象和传递消息分别表现事物及事物间相互联系的概念。类和继承是是适应人们一般思维方式的描述范式。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。面向对象设计是一

2、种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。 l 决定你要的类; 2 给每个类提供完整的一组操作; 3 明确地使用继承来表现共同点。 由这个定义,我们可以看出:面向对象设计就是“根据需求决定所需的类、类的操作以及类之间关联的过程。本次面向对象设计采用JAVA

3、实现足球积分管理系统的实现。 摘 要足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。该设计以足球联赛为背景,设计足球联赛积分管理系统程序。通过对该题目的具体设计分析,可以对面向对象程序设计的思想更加深入理解,可以达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象

4、程序设计问题。同时对程序设计风格有全面的强调,提高解决实际问题的能力。并且通过与数据库的连接,深化对数据库编程的理解和运用。关键词: 双循环赛制;面向对象;java;数据库编程;数据库一、概述1项目名称:足球联赛积分管理系统2项目介绍:该项目用于对一个年度的足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队、球员、比赛情况、各种统计信息进行管理。3项目背景: 结合java面向对象程序设计和数据库编程中介绍的内容和以往所学的专业知识,开发一个足球联赛积分管理系统。4项目目的:掌握数面向对象程序设计原理以及sql sever 2008的基本操作,知道并且熟练掌握java语言中的基本方法和基

5、本内容的运用,并能熟练使用结构化查询语言SQL语句,能在一个或多个数据库管理系统进行开发和管理,并结合面向对象程序开发语言JAVA进行项目的开发。5开发环境:面向对象程序开发语言采用JAVA,数据库管理系统采用SQLSEVER 2008,集成开发环境使用my eclipse 8.5。二、需求分析问题分析是程序设计的第一步,其目的是理解题目的要求,明确程序的运行环境和方式,以及相关的限制条件。问题分析的基本内容包括确定程序的功能和性能、程序的输入输出数据的来源、去向、内容、范围及其格式,程序的使用者、调用方式、人机交互要求,与其他程序的关系和交互方式,对通用性的要求和扩展的可能,以及性能和其他对

6、程序的特殊要求和限制,如程序所占用系统资源的数量、对输入命令的响应速度等。在使用面向对象方法设计足球联赛积分管理系统时,除了对于具体问题具体分析之外,我们还应该理解系统主要元素之间的关系,所以,简要列举我们以下几点:1、系统需求说明 a、要求利用面向对象的方法以及Java的编程思想来完成系统的设计;b、要求在设计的过程中,建立清晰的类层次; c、在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;d、在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。足球联赛积分管理系统是一个以足球联赛为背景,设计足球联赛积分管理系统程序。采用主客场双循环赛制,胜一场得3分,

7、平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次。2、系统资源说明面向对象程序开发语言采用JAVA,数据库管理系统采用SQLSEVER 2008,集成开发环境使用my eclipse 8.5。3、系统可行性分析该管理系统是以自主设计为主,通过对该系统的具体设计分析,可以对面向对象程序设计的思想更加深入理解,可以达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。同

8、时对程序设计风格有全面的强调,提高解决实际问题的能力。并且通过与数据库的连接,深化对数据库编程的理解和运用。三、总体设计在对该系统有初步的规划之后,我们应该着手处理如何初步规划该系统的各主要模块以及基本的方法,前面已经提到,我们使用面向对象程序设计的思路,而且运用数据库编程的理论,所以我们应该按照具体的思路来设计相应的应用,以下简要概述该系统的具体设计:1.球队的管理:包括球队信息的添加、删除、修改和查询;2.球员的管理:包括球员信息的添加、删除、修改和查询;3.比赛过程的管理:包括一场比赛的基本信息的录入,如参赛双方的球队名称、比赛日期、比赛结果、进球情况等;4.积分榜查询:按照联赛的积分规

9、则查询各个球队的名次;5.射手榜查询:按照进球多少查询进球队员的名次。四、详细设计 针对系统的局部构思,可以设计该系统的功能模块如下所示项目设计数据库概念结构设计;数据库逻辑结构设计;数据库物理结构设计;4.1 项目设计 项目设计部分主要包括以下两部分: 1.系统模块设计2.界面设计4.1.1 系统模块设计图1系统模块设计4.1.2 界面设计图2界面设计4.2 数据库概念结构设计图20数据库概念结构设计4.3数据库逻辑模型结构设计4.3.1 逻辑模型设计球队表(Team)字段名数据类型宽度主码非空外码描述NAMEVARCHAR20是是否球队名称HOMEVARCHAR30否否否球队主场COACH

10、VARCHAR20否否否主教练表1球队表4.3.2 逻辑模型设计球员表(Member)表2球员表4.33 逻辑模型设计比赛进程表(Course)表3比赛进程表4.3.4 逻辑模型设计进球表(Goal) 表4进球表4.3.5 逻辑模型设计积分榜(Score)字段名数据类型宽度主码非空外码描述PLACEINT否是否名次NAMEVARCHAR20是是否球队名称TURNINT否是否轮次WONINT否是否胜利场次EVENINT否是否平局场次BEATENINT否是否失败场次GOALINT否是否总进球数LOSTINT否是否总失球数NETINT否是否净剩球数POINTINT否是否积分表5积分榜4.3.6 逻辑

11、模型设计射手榜(GoalScore)字段名数据类型宽度主码非空外码描述PLACEINT否是否名次NAMEVARCHAR20否是否球员姓名TEAMNAMEVARCHAR20是是是球队名称,参照Team表的NAME字段NUMBERINT是是是球员球衣号码GOALSINT否是否进球数表6射手榜4.4 物理结构模型设计 在这里主要介绍如何连接数据库的方法和创建触发器的部分功能。由于方法比较多,现在采用jdbc驱动方式连接。4.4.1 用jdbc驱动方式:1.到微软官网上下载jdbc驱动包sqljdbc_3.0,解压后复制文件sqljdbc_3.0enuauthx86 sqljdbc_auth.dll到

12、C:WindowsSystem32,并将解压文件中的sqljdbc4.jar的路径添加系统环境变量的CLASSPATH里。2.设置并打开sql server的TCP/IP端口:打开SQL Server配置管理器-SQL Server 网络配置,MSSQL SERVER 的协议,TCP/IP设为启用,并右击选择属性,将IP地址端口设为1433. SQL Server配置管理器-SQL Native Client 10.0配置-客户端协议-右击TCP/IP协议-默认端口1433.3.在 My Eclipse 创建项目并为项目添加sqljdbc4.jar驱动包。1.用windows验证方式连接数据库

13、:加载数据库驱动程序 Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);连接数据库String url = jdbc:sqlserver:/localhost:1433;DatabaseName=test1;integratedSecurity=TRUE;conn = DriverManager.getConnection(url);完整代码:import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import jav

14、a.sql.DriverManager;import java.sql.ResultSet;public class Test public static void main(String args) Connection conn; Statement stmt; ResultSet rs; try /加载数据库驱动程序,对于jdbc4版本可以不用写这段代码 Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch(ClassNotFoundException ex) System.out.println(数据库驱动

15、加载失败); String url = jdbc:sqlserver:/localhost:1433;DatabaseName=test1;integratedSecurity=TRUE; String sql=select* from exa; try /连接数据库 conn = DriverManager.getConnection(url); /建立Statement对象 stmt=conn.createStatement(); /执行数据库查询语句 rs=stmt.executeQuery(sql); while(rs.next() int id=rs.getInt(id);Strin

16、g name=rs.getString(name); int age=rs.getInt(age); System.out.println(id:+id+tname:+name+tage:+age); if(rs!=null)rs.close();rs=null; if(stmt!=null)stmt.close();stmt=null; if(conn!=null)conn.close();conn=null; catch(SQLException e) e.printStackTrace(); System.out.println(数据库连接失败); 2. 用sql server身份验证方

17、式连接数据库:加载数据库驱动程序 Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);连接数据库String url = jdbc:sqlserver:/localhost:1433;DatabaseName=test1;conn = DriverManager.getConnection(url ,sa,123456);完整代码:import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import java.sql.D

18、riverManager;import java.sql.ResultSet;public class Test public static void main(String args) Connection conn; Statement stmt; ResultSet rs; try /加载数据库驱动程序,对于jdbc4版本可以不用写这段代码 Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch(ClassNotFoundException ex) System.out.println(数据库驱动加载失败);

19、String url = jdbc:sqlserver:/localhost:1433;DatabaseName=test1; String sql=select* from exa; try /连接数据库 conn = DriverManager.getConnection(url, sa,123456); /建立Statement对象 stmt=conn.createStatement(); /执行数据库查询语句 rs=stmt.executeQuery(sql); while(rs.next() int id=rs.getInt(id); String name=rs.getString

20、(name); int age=rs.getInt(age); System.out.println(id:+id+tname:+name+tage:+age); if(rs!=null)rs.close();rs=null; if(stmt!=null)stmt.close();stmt=null; if(conn!=null)conn.close();conn=null; catch(SQLException e) e.printStackTrace(); System.out.println(数据库连接失败); 4.4.2 创建触发器触发器是一种数据库对象,它可以自动执行,当用户的操作影

21、响到触发器保护的数据时,触发器就会被触发自动执行所定义的SQL语句,激活触发器的动作称为触发器激活条件,触发器活动后所做的操作称为触发器动作。 在触发器工作时,SQL Server 2008 会自动创建和管理两种特殊的表:deleted表和 inserted 表。 创建触发器- 当添加一支新球队时,要把这支球队的名称一并插入到积分榜中,这样能够保证球队表与积分榜中的球队保持一致,在对积分榜进行统计时,不会遗漏球队;- 当删除一支球队时,要在积分榜、比赛过程、球员表、射手榜等表中先把包含这支球队的所有记录都删除,否则会因为外码参照联系导致删除球队失败;- 当修改球队时,要把积分榜、比赛过程、球员

22、表、射手榜等表中与这支球队相关的所有记录都先做修改,否则也会因为外码参照联系导致修改球队失败;- 插入一场比赛详细信息时,将积分榜中的数据一起进行修改,并重新统计积分榜名次;- 插入进球信息时,将射手榜中的数据一起进行调整,并重新统计射手榜名次。五、编码 1主菜单界面代码:package common;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import calculate.CalculateFrame;import matchManage

23、.MatchFrame;import memberManage.MemberFrame;import teamManage.TeamFrame;public class MainFrame extends common.CenterDialog JDBCAdapter jdbc; private JButton teamBtn; private JButton quitBtn; private JButton calBtn; private JButton matchBtn; private JButton memberBtn; TeamFrame tf; MemberFrame mf; Ma

24、tchFrame af; CalculateFrame cf; public MainFrame(JDBCAdapter jdbc) this.jdbc=jdbc; initGUI(); private void initGUI() try this.setTitle(u8DB3u7403u8054u8D5Bu79EF + u5206u7BA1u7406u7CFBu7EDF); /*足球联赛积分管理系统 * 其中用十六进制进行,也可以直接用汉字进行编排性质一样,都是用的是unicode编码 * 下面的编码方式都一样 */ getContentPane().setLayout(null); te

25、amBtn = new JButton(); getContentPane().add(teamBtn); teamBtn.setText(u7403u961fu7ba1u7406);/球队管理 teamBtn.setBounds(51, 49, 101, 37); teamBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) tf = new TeamFrame(jdbc); tf.setVisible(true); ); memberBtn = new JButton(

26、); getContentPane().add(memberBtn); memberBtn.setText(u7403u5458u7ba1u7406);/球员管理 memberBtn.setBounds(221, 51, 104, 35); memberBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) mf = new MemberFrame(jdbc); mf.setVisible(true); ); matchBtn = new JButton(); getCont

27、entPane().add(matchBtn); matchBtn.setText(u6bd4u8d5bu7ba1u7406);/比赛管理 matchBtn.setBounds(51, 135, 91, 35); matchBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) af = new MatchFrame(jdbc); af.setVisible(true); ); calBtn = new JButton(); getContentPane().add(calBtn); calBtn.setText(u7edfu8ba1u4fe1u606f);/统计信息 calBtn.setBounds(226, 137, 99, 32); calBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) cf = new CalculateFrame(jdbc); cf.setVisible(true); ); quitBtn = new JButto

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

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