序言本程序定义一个球队类,每个球队是均是此类的对象。
由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(当然也可以用链表结构)。
每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。
如果成功进入足球联赛积分管理界面,以后你可以选择显示球队,此时可以查阅排名,也可以输入比赛结果,修改球队积分,录入球队积分,查询比赛积分;球队信息的添加、删除、修改和查询。
该项目用Java语言编写,用Eclipse作为开发工具,后台数据库采用SQL Server 2008.本系统在设计上有所侧重,更加强调信息的完整性和查询功能,娱乐性较小,对界面要求不太高,整个界面相对朴实。
而对于操作设计从人性化着手,方便管理人员的操作。
摘要该项目用于对一个年度的足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队信息、积分统计信息进行管理。
球队信息的管理:包括球队信息的添加、删除、修改和查询;球队积分信息管理:包括球队积分的录入、查询、修改、删除等。
该项目用Java语言编写,用Eclipse作为开发工具,后台数据库采用SQL Server 2008.本文详细介绍了足球联赛分数统计程序的设计与实现该程序具有足球赛成绩的输入,统计与输出等功能。
关键字:足球联赛积分统计球队管理数据库正文1、系统分析与设计1.1 系统分析设计要求:(1)完成球队,球员信息的添加、删除、查找、修改功能(2)使用用户界面操作(3)使用数据库形式完成设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。
该项目用于对一个足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队、球员、比赛情况、各种统计信息进行管理。
球队的管理:包括球队信息的添加、删除、修改和查询;积分管理:按照联赛的积分规则查询各个球队的积分。
1.2 主界面设计、图1 主界面结构图1.3各模块的结构图系统功能模块图展示了该系统的模块划分,是系统总体功能的初步分析概括。
管理员登录后,可以在主控界面查看统计分析信息,使用帮助信息,通过查看使用帮助信息可以了解系统操作的注意事项以及一些具体操作的使用说明,熟悉系统的操作规范后,管理员可以对球队及球队积分进行管理。
图2 各模块结构图2、详细设计2.1 主界面类的定义(1表2-1 主要成员变量表2.2类Database(1)成员变量见表2-2:表2-2 主要成员变量表2-3 主要方法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;// 建立菜单栏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);// 添加“系统管理”菜单项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("足球联赛积分管理系统", JLabel.CENTER); label.setIcon(new ImageIcon("images/welcome.jpg")); label.setFont(new Font("黑体", Font.BOLD, 30));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(); pCenter.add("欢迎界面",label);pCenter.add("录入界面", ins);pCenter.add("查询界面",qus);pCenter.add("修改界面", mos);pCenter.add("删除界面", des);pCenter.add("录入积分界面", isc);pCenter.add("查询积分界面",qsc);pCenter.add("删除积分界面", dsc);pCenter.add("修改积分界面", msc);add(pCenter, BorderLayout.CENTER);setTitle("足球联赛积分管理系统!");//设置窗口名ImageIcon icon = new ImageIcon("images/icon.jpg");//设置最小化图标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, "确认退出吗?", "确认对话框",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,"查询积分界面");}}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 = "insert into Team(snum,sname) values('"+sNum+"','"+sName+"')";//,'"+sSex+"','"+sGrade+"','"+sMajor+"','"+sBirth+"')";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 = "update Team set snum = '"+sNum+"',sname = '"+sName+"' where snum = "+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();this.sNum = num;sql = "delete from Team where snum = "+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 = "select * from Team where snum = "+Integer.parseInt(sNum)+"";try{DB.OpenConn();rs = DB.executeQuery(sql);if(rs.next()){s[0] = rs.getString("sname");}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 = "update Team set snum = '"+sNum+"',score = '"+sScore+"' where snum = "+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 = "select * from Team where snum = "+Integer.parseInt(sNum)+"";try{DB.OpenConn();rs = DB.executeQuery(sql);if(rs.next()){s[0] = rs.getString("score");}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 = "delete from Team where snum = "+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){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 = "insert into Team(snum,score) values ('"+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();}}}}3、系统测试3.1 测试环境Java语言用Eclipse作为开发工具后台数据库采用SQL Server 20083.2 测试结果(1)主界面如下图所示:图3-1 主界面(2)球队管理菜单如下图所示:图3-2 球队管理菜单(3)积分管理菜单如下图所示:图3-3 积分管理菜单(4)球队录入界面如下图所示:图3-4 球队录入界面(5)球队删除如下图所示:图3-5 球队删除(6)积分查询如下图所示:图3-6 积分查询(7)积分录入如下图所示:图3-7 积分录入(8)积分修改界面如下图所示:图3-8 积分修改界面(9)系统管理界面如下图所示:图3-9 系统管理界面4、软件使用说明书为了很好的管理足球联赛中球队的信息与各球队积分信息,设计了此足球联赛积分管理系统。