足球联赛积分管理系统设计与实现(含代码)

更新时间:2024-06-20 07:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

序 言

本程序定义一个球队类,每个球队是均是此类的对象。由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(当然也可以用链表结构)。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。如果成功进入足球联赛积分管理界面,以后你可以选择显示球队,此时可以查阅排名,也可以输入比赛结果,修改球队积分,录入球队积分,查询比赛积分;球队信息的添加、删除、修改和查询。

该项目用Java语言编写,用Eclipse作为开发工具,后台数据库采用SQL Server 2008.本系统在设计上有所侧重,更加强调信息的完整性和查询功能,娱乐性较小,对界面要求不太高,整个界面相对朴实。而对于操作设计从人性化着手,方便管理人员的操作。

摘 要

该项目用于对一个年度的足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队信息、积分统计信息进行管理。球队信息的管理:包括球队信息的添加、删除、修改和查询;球队积分信息管理:包括球队积分的录入、查询、修改、删除等。该项目用Java语言编写,用Eclipse作为开发工具,后台数据库采用SQL Server 2008.

本文详细介绍了足球联赛分数统计程序的设计与实现该程序具有足球赛成绩的输入,统计与输出等功能。

关键字:足球联赛 积分统计 球队管理 数据库

1

正 文

1、系统分析与设计

1.1 系统分析

设计要求:(1)完成球队,球员信息的添加、删除、查找、修改功能

(2)使用用户界面操作 (3)使用数据库形式完成

设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。该项目用于对一个足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队、球员、比赛情况、各种统计信息进行管理。球队的管理:包括球队信息的添加、删除、修改和查询;积分管理:按照联赛的积分规则查询各个球队的积分。

1.2 主界面设计

首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。 功能模块划分如下:

系统管理子模块

足球联赛积分 球队管理子模块 管理系统系统

积分管理子模块

图 1 主界面结构图

2

1.3各模块的结构图

系统功能模块图展示了该系统的模块划分,是系统总体功能的初步分析概括。管理员登录后,可以在主控界面查看统计分析信息,使用帮助信息,通过查看使用帮助信息可以了解系统操作的注意事项以及一些具体操作的使用说明,熟悉系统的操作规范后,管理员可以对球队及球队积分进行管理。

主窗体 系统管理 球队管理 积分管理 欢迎界面 退出 添加球队 积分查询 修改球队 积分录入 删除球队 积分修改 查询球队 积分删除

图 2 各模块结构图

3

2、详细设计

2.1 主界面类的定义

(1)成员变量见表2-1: 成员变量描述 面板 面板 面板 面板 菜单栏 菜单组 菜单项 布局管理器 变量类型 InputTeam ModifyTeam DeleteTeam QueryTeam JButtonBar JMenu JMenuItem CardLayout 表2-1 主要成员变量表

名称 ins mos des qus bar menuSystem menuStu itemWel itemExit itemSearch itemAdd itemEdit itemDelete card 2.2类Database

(1)成员变量见表2-2: 成员变量描述 执行SQL语句的接口 返回结果的接口 数据库连接接口 字符串(SQL语句、驱动) 变量类型 Statement ResultSet Connection String 名称 stmt rs conn sql strurl 表2-2 主要成员变量

4

(2)方法见表2-3: 方法名称 Database OpenConn 返回类型 无类型 无类型 功能 创建Database对象 打开数据库连接 执行SQL查询语句,返回结果集RS 执行SQL更新语句 关闭当前的Statement对象 关闭数据库连接 表2-3 主要方法

备注 构造方法 无 返回ResultSet类型结果集 无 无 无 executeQuery ResultSet executeUpdate closeStmt closeConn 无类型 无类型 无类型 2.3 各模块主要代码

(1)主界面:

package Stu;

import java.awt.*;

import java.awt.event.*; import javax.swing.*;

import java.io.*;

public class MainWindow extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L; /**

* 主窗口的初始化 */

InputTeam ins; ModifyTeam mos; QueryTeam qus; DeleteTeam des;

InputScore isc; DeleteScore dsc; QueryScore qsc; ModifyScore msc; // 建立菜单栏

5

JMenuBar bar;

// 建立“系统管理”菜单组 JMenu menuSystem; JMenuItem itemExit; JMenuItem itemWel;

// 建立“球队管理”菜单组 JMenu menuStu;

JMenuItem itemSearch; JMenuItem itemAdd; JMenuItem itemEdit; JMenuItem itemDelete; //建立“积分管理”菜单组 JMenu menuStu1;

JMenuItem itemSearch1; JMenuItem itemAdd1; JMenuItem itemDelete1; JMenuItem itemEdit1; File file = null; CardLayout card; JLabel label = null; JPanel pCenter;

public MainWindow() { // 生成“系统管理”组

menuSystem = new JMenu(\系统管理\ itemWel = new JMenuItem(\欢迎界面\ itemExit = new JMenuItem(\退出\ // 生成“球队管理”组

menuStu = new JMenu(\球队管理\

itemAdd = new JMenuItem(\录入球队信息\ itemSearch = new JMenuItem(\查询球队信息\ itemEdit = new JMenuItem(\修改球队信息\ itemDelete = new JMenuItem(\删除球队记录\ // 生成“积分管理”组

menuStu1 = new JMenu(\积分管理\

itemAdd1 = new JMenuItem(\录入积分信息\ itemSearch1 = new JMenuItem(\查询积分信息\ itemDelete1 = new JMenuItem(\删除积分记录\ itemEdit1 = new JMenuItem(\修改积分信息\ // 添加所有菜单组 bar = new JMenuBar(); bar.add(menuSystem); bar.add(menuStu); bar.add(menuStu1);

6

// 添加“系统管理”菜单项 menuSystem.add(itemWel); menuSystem.add(itemExit); // 添加“球队管理”菜单项 menuStu.add(itemAdd); menuStu.add(itemSearch); menuStu.add(itemEdit); menuStu.add(itemDelete); // 添加“积分管理”菜单项 menuStu1.add(itemAdd1); menuStu1.add(itemSearch1); menuStu1.add(itemDelete1); menuStu1.add(itemEdit1); setJMenuBar(bar); // 设置主窗口

label = new JLabel(\足球联赛积分管理系统\label.setIcon(new ImageIcon(\label.setFont(new Font(\黑体\

label.setHorizontalTextPosition(SwingConstants.CENTER); // 添加事件监听

itemExit.addActionListener(this); itemWel.addActionListener(this); itemAdd.addActionListener(this); itemSearch.addActionListener(this); itemEdit.addActionListener(this); itemDelete.addActionListener(this);

itemAdd1.addActionListener(this); itemSearch1.addActionListener(this); itemDelete1.addActionListener(this); itemEdit1.addActionListener(this); // 卡片布局管理器设置 card = new CardLayout(); pCenter = new JPanel(); pCenter.setLayout(card); ins = new InputTeam(); mos = new ModifyTeam(); qus = new QueryTeam(); des = new DeleteTeam();

isc = new InputScore(); qsc = new QueryScore(); dsc = new DeleteScore(); msc = new ModifyScore();

7

pCenter.add(\欢迎界面\ pCenter.add(\录入界面\ pCenter.add(\查询界面\ pCenter.add(\修改界面\ pCenter.add(\删除界面\

pCenter.add(\录入积分界面\ pCenter.add(\查询积分界面\ pCenter.add(\删除积分界面\ pCenter.add(\修改积分界面\

add(pCenter, BorderLayout.CENTER);

setTitle(\足球联赛积分管理系统!\设置窗口名

ImageIcon icon = new ImageIcon(\设置最小化图标 setIconImage(icon.getImage()); validate();

setVisible(true);

setBounds(250, 200,440, 390); // 关闭窗口

setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

int n = JOptionPane.showConfirmDialog(null, \确认退出吗?\确认对话框\

JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) System.exit(0); } }); }

// 事件处理

public void actionPerformed(ActionEvent e) { //返回欢迎界面

if(e.getSource() == itemWel){

int ok = JOptionPane.showConfirmDialog(this, \确认返回吗?\确认对话框\

JOptionPane.YES_NO_OPTION); if (ok == JOptionPane.YES_OPTION)

card.show(pCenter,\欢迎界面\ }

//退出

else if (e.getSource() == itemExit) {

int n = JOptionPane.showConfirmDialog(this, \确认退出吗?\确认对话

8

框\ }

JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) System.exit(0); } //录入

else if (e.getSource() == itemAdd) { ins.clearMess();

card.show(pCenter, \录入界面\ } //修改

else if (e.getSource() == itemEdit) { mos.clearMess();

card.show(pCenter, \修改界面\}

//查询

else if (e.getSource() == itemSearch) { qus.clearMess();

card.show(pCenter,\查询界面\} //删除

else if (e.getSource() == itemDelete) { card.show(pCenter, \删除界面\}

//积分录入

else if (e.getSource() == itemAdd1) { ins.clearMess();

card.show(pCenter, \录入积分界面\}

//积分修改

else if (e.getSource() == itemEdit1) { mos.clearMess();

card.show(pCenter, \修改积分界面\}

//积分删除

else if (e.getSource() == itemDelete1) { card.show(pCenter, \删除积分界面\}

//积分查询

else if (e.getSource() == itemSearch1) { qus.clearMess();

card.show(pCenter,\查询积分界面\}

9

public static void main(String args[]) { new MainWindow(); } }

(2)连接数据库代码:

package Stu;

import java.sql.*;

import javax.swing.*;

//有关球队信息数据库操作的类 public class TeamBean { String sql;

ResultSet rs = null; String sNum; String sName; String sScore; //添加球队信息

public void stuAdd(String num, String name) {

Database DB = new Database(); this.sNum = num; this.sName = name;

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else if(sName == null||sName.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队名!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else{

sql = \

('\+sNum+\+sName+\;//,'\;

try{

DB.OpenConn();

DB.executeUpdate(sql);

10

JOptionPane.showMessageDialog(null,\成功添加一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \保存失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } } }

// 修改球队信息

public void stuModify(String num, String name){

Database DB = new Database(); this.sNum = num; this.sName = name;

sql = \+sNum+\+sName+\\+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功修改一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \更新失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

//删除球队信息

public void stuDel(String num){

Database DB = new Database();

11

this.sNum = num;

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功删除一纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \删除失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

// 根据球队号查询球队信息

public String[] stuSearch(String num){

Database DB = new Database(); this.sNum = num;

String[] s = new String[5];

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); }

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

rs = DB.executeQuery(sql); if(rs.next()){

s[0] = rs.getString(\); }

else{

s = null; } }

catch(Exception e){} finally {

DB.closeStmt();

12

DB.closeConn(); }

return s; }

// 修改球队积分信息

public void stuModify1(String num, String score){

Database DB = new Database(); this.sNum = num; this.sScore = score;

sql = \+sNum+\+sScore+\\+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功修改一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \更新失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

//根据球队号查询球队积分信息

public String[] stuSearch1(String num){

Database DB = new Database(); this.sNum = num;

String[] s = new String[5];

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); }

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

13

rs = DB.executeQuery(sql); if(rs.next()){

s[0] = rs.getString(\); } else{

s = null; } }

catch(Exception e){} finally {

DB.closeStmt(); DB.closeConn(); }

return s; }

//删除积分信息

public void stuDel1(String num){

Database DB = new Database(); this.sNum = num;

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功删除一纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \删除失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

//添加球队积分信息

public void stuAdd1(String num, String score) {

14

Database DB = new Database(); this.sNum = num; this.sScore = score;

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else if(sScore == null||sScore.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队积分!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else{

sql = \+sNum+\+sScore+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功添加一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \保存失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } } } }

15

3、系统测试

3.1 测试环境

Java语言

用Eclipse作为开发工具 后台数据库采用SQL Server 2008

3.2 测试结果

(1)主界面如下图所示:

图 3-1 主界面

16

(2)球队管理菜单如下图所示:

图3-2 球队管理菜单

(3)积分管理菜单如下图所示:

图 3-3 积分管理菜单

17

(4)球队录入界面如下图所示:

图3-4 球队录入界面 (5)球队删除如下图所示:

图 3-5 球队删除

18

(6)积分查询如下图所示:

图 3-6 积分查询

(7)积分录入如下图所示:

图3-7 积分录入

19

(8)积分修改界面如下图所示:

图 3-8 积分修改界面

(9)系统管理界面如下图所示:

图 3-9 系统管理界面

20

4、 软件使用说明书

为了很好的管理足球联赛中球队的信息与各球队积分信息,设计了此足球联赛积分管理系统。该系统的使用说明如下:

(1)此系统有三个界面:一 系统管理界面;二 球队管理界面;三 积分

管理界面;

(2)进入系统后可以在以上三个选项中选择你所需要的的操作。 (3)三个模块又由几个不同的小模块组成,根据需要选择相应的操作。 (4)核心界面如下图所示:

21

附录

主要程序代码(带注释):

(1)连接数据库的类

package Stu;

import java.sql.*; /**

* 连接数据库的类 */

public class Database {

private Statement st=null; ResultSet rs=null;

private Connection ct=null; String sql;

String strurl=\;

public Database(){ } /**

* 打开数据库连接 */

public void OpenConn()throws Exception{ try{

Class.forName(\); ct=DriverManager.getConnection(\); }

catch(Exception e){

System.err.println(\+e.getMessage()); } }

/**

* 执行SQL查询语句,返回结果集RS */

public ResultSet executeQuery(String sql){ st = null; rs=null; try{

22

st=ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=st.executeQuery(sql); }

catch(SQLException e){

System.err.println(\+e.getMessage()); }

return rs; }

/**

* 执行SQL更新语句 */

public void executeUpdate(String sql){ st=null; rs=null; try{

st=ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

st.executeQuery(sql); ct.commit(); }

catch(SQLException e){

System.err.println(\+e.getMessage()); } }

public void closeStmt(){ try{

st.close(); }

catch(SQLException e){

System.err.println(\+e.getMessage()); } }

/**

* 关闭数据库连接 */

public void closeConn(){ try{

ct.close();

23

}

}

catch(SQLException ex){

System.err.println(\+ex.getMessage()); } }

public static String toGBK(String str){ try {

if(str==null) str = \; else

str=new String(str.getBytes(\),\); }

catch (Exception e) {System.out.println(e);}

return str; }

(2)数据库操作的类

package Stu;

import java.sql.*;

import javax.swing.*;

//有关球队信息数据库操作的类 public class TeamBean { String sql;

ResultSet rs = null; String sNum; String sName; String sScore;

//添加球队信息

public void stuAdd(String num, String name) {

Database DB = new Database(); this.sNum = num; this.sName = name;

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE);

24

return; }

else if(sName == null||sName.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队名!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else{

sql = \

('\+sNum+\+sName+\;//,'\;

try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功添加一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \保存失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } } }

// 修改球队信息

public void stuModify(String num, String name){

Database DB = new Database(); this.sNum = num; this.sName = name;

sql = \+sNum+\+sName+\\+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功修改一条新的纪录!\);

25

}

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \更新失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

//删除球队信息

public void stuDel(String num){

Database DB = new Database(); this.sNum = num;

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功删除一纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \删除失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

// 根据球队号查询球队信息

public String[] stuSearch(String num){

Database DB = new Database(); this.sNum = num;

String[] s = new String[5];

if(sNum == null||sNum.equals(\)){

26

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); }

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

rs = DB.executeQuery(sql); if(rs.next()){

s[0] = rs.getString(\); }

else{

s = null; } }

catch(Exception e){} finally {

DB.closeStmt(); DB.closeConn(); }

return s; }

// 修改球队积分信息

public void stuModify1(String num, String score){

Database DB = new Database(); this.sNum = num; this.sScore = score;

sql = \+sNum+\+sScore+\\+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功修改一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \更新失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt();

27

DB.closeConn(); } }

//根据球队号查询球队积分信息

public String[] stuSearch1(String num){

Database DB = new Database(); this.sNum = num;

String[] s = new String[5];

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); }

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

rs = DB.executeQuery(sql); if(rs.next()){

s[0] = rs.getString(\); } else{

s = null; } }

catch(Exception e){} finally {

DB.closeStmt(); DB.closeConn(); }

return s; }

//删除积分信息

public void stuDel1(String num){

Database DB = new Database(); this.sNum = num;

sql = \+Integer.parseInt(sNum)+\; try{

DB.OpenConn();

28

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功删除一纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \删除失败\, \错误\, JOptionPane.ERROR_MESSAGE); }

finally {

DB.closeStmt(); DB.closeConn(); } }

//添加球队积分信息

public void stuAdd1(String num, String score) {

Database DB = new Database(); this.sNum = num; this.sScore = score;

if(sNum == null||sNum.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队号!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else if(sScore == null||sScore.equals(\)){

JOptionPane.showMessageDialog(null, \请输入球队积分!\, \错误\, JOptionPane.ERROR_MESSAGE); return; }

else{

sql = \+sNum+\+sScore+\; try{

DB.OpenConn();

DB.executeUpdate(sql);

JOptionPane.showMessageDialog(null,\成功添加一条新的纪录!\); }

catch(Exception e){

System.out.println(e);

JOptionPane.showMessageDialog(null, \保存失败\, \错误\, JOptionPane.ERROR_MESSAGE);

29

本文来源:https://www.bwwdw.com/article/n513.html

Top