




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、序 言本程序定义一个球队类,每个球队是均是此类的对象。由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(当然也可以用链表结构)。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。如果成功进入足球联赛积分管理界面,以后你可以选择显示球队,此时可以查阅排名,也可以输入比赛结果,修改球队积分,录入球队积分,查询比赛积分;球队信息的添加、删除、修改和查询。该项目用Java语言编写,用Eclipse作为开发工具,后台数据库采用SQL Server 2008
2、.本系统在设计上有所侧重,更加强调信息的完整性和查询功能,娱乐性较小,对界面要求不太高,整个界面相对朴实。而对于操作设计从人性化着手,方便管理人员的操作。1 / 34摘 要该项目用于对一个年度的足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队信息、积分统计信息进行管理。球队信息的管理:包括球队信息的添加、删除、修改和查询;球队积分信息管理:包括球队积分的录入、查询、修改、删除等。该项目用Java语言编写,用Eclipse作为开发工具,后台数据库采用SQL Server 2008.本文详细介绍了足球联赛分数统计程序的设计与实现该程序具有足球赛成绩的输入,统计与输出等功能。关键字:足球联
3、赛 积分统计 球队管理 数据库 正 文1、系统分析与设计1.1 系统分析设计要求:(1)完成球队,球员信息的添加、删除、查找、修改功能(2)使用用户界面操作(3)使用数据库形式完成设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。该项目用于对一个足球联赛的各种信息进行管理,通过制作的专门界面,可以对球队、球员、比赛情况、各种统计信息进行管理。球队的管理:包括球队信息的添加、删除、修改和查询;积分管理:按照联赛的积分规则查询各个球队的积分。1.2 主界面设计首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加
4、入面板,面板布局设置为CardLayout,最后将面板添加进容器。功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。功能模块划分如下: 图 1 主界面结构图1.3各模块的结构图系统功能模块图展示了该系统的模块划分,是系统总体功能的初步分析概括。管理员登录后,可以在主控界面查看统计分析信息,使用帮助信息,通过查看使用帮助信息可以了解系统操作的注意事项以及一些具体操作的使用说明,熟悉系统的操作规范后,管理员可以对球队及球队积分进
5、行管理。主窗体球队管理积分管理添加球队查询球队修改球队删除球队积分查询 积分录入积分修改积分删除系统管理欢迎界面 退出 图 2 各模块结构图2、详细设计2.1 主界面类的定义(1)成员变量见表2-1:成员变量描述变量类型名称面板InputTeamins面板ModifyTeammos面板DeleteTeamdes面板QueryTeamqus菜单栏JButtonBarbar菜单组JMenumenuSystem menuStu菜单项JMenuItemitemWel itemExit itemSearch itemAdd itemEdit itemDelete布局管理器CardLayoutcard表2
6、-1 主要成员变量表2.2类Database(1)成员变量见表2-2:成员变量描述变量类型名称执行SQL语句的接口Statementstmt返回结果的接口ResultSetrs数据库连接接口Connectionconn字符串(SQL语句、驱动)Stringsql strurl表2-2 主要成员变量(2)方法见表2-3:方法名称返回类型功能备注Database无类型创建Database对象构造方法OpenConn无类型打开数据库连接无executeQueryResultSet执行SQL查询语句,返回结果集RS返回ResultSet类型结果集executeUpdate无类型执行SQL更新语句无cl
7、oseStmt无类型关闭当前的Statement对象无closeConn无类型关闭数据库连接无表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;/* * 主窗口的初始化 */InputT
8、eam 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 item
9、Delete;/建立“积分管理”菜单组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("欢迎界面");i
10、temExit = new JMenuItem("退出");/ 生成“球队管理”组menuStu = new JMenu("球队管理");itemAdd = new JMenuItem("录入球队信息");itemSearch = new JMenuItem("查询球队信息");itemEdit = new JMenuItem("修改球队信息");itemDelete = new JMenuItem("删除球队记录");/ 生成“积分管理”组menuStu1 = new JM
11、enu("积分管理");itemAdd1 = new JMenuItem("录入积分信息");itemSearch1 = new JMenuItem("查询积分信息");itemDelete1 = new JMenuItem("删除积分记录");itemEdit1 = new JMenuItem("修改积分信息");/ 添加所有菜单组bar = new JMenuBar();bar.add(menuSystem);bar.add(menuStu);bar.add(menuStu1);/ 添加“系
12、统管理”菜单项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);/ 设置主窗口labe
13、l = 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);item
14、Add.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 CardLayo
15、ut();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("录入界面"
16、, 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
17、("足球联赛积分管理系统!");/设置窗口名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 v
18、oid 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.showCo
19、nfirmDialog(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
20、 (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
21、,"查询界面"); /删除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 i
22、f (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.*;/有关球队信息数据库操作的类p
23、ublic 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, "请输入球队号!"
24、, "错误", JOptionPane.ERROR_MESSAGE);return;else if(sName = null|sName.equals("")JOptionPane.showMessageDialog(null, "请输入球队名!", "错误", JOptionPane.ERROR_MESSAGE);return;elsesql = "insert into Team(snum,sname) values ('"+sNum+"','"+
25、sName+"')"/,'"+sSex+"','"+sGrade+"','"+sMajor+"','"+sBirth+"')"tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功添加一条新的纪录!");catch(Exception e)System.out.println(e);JOption
26、Pane.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+&
27、quot;',sname = '"+sName+"' where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功修改一条新的纪录!");catch(Exception e)System.out.println(e);JOptionPane.showMessageDialog(null, "更新失败", &qu
28、ot;错误", 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)+""tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.show
29、MessageDialog(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.
30、sNum = num;String s = new String5;if(sNum = null|sNum.equals("")JOptionPane.showMessageDialog(null, "请输入球队号!", "错误", JOptionPane.ERROR_MESSAGE);sql = "select * from Team where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();rs = DB.executeQuery(sq
31、l);if(rs.next()s0 = rs.getString("sname");elses = 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 = '"
32、+sNum+"',score = '"+sScore+"' where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功修改一条新的纪录!");catch(Exception e)System.out.println(e);JOptionPane.showMessageDialog(null, "更新失败&qu
33、ot;, "错误", JOptionPane.ERROR_MESSAGE); finally DB.closeStmt();DB.closeConn();/根据球队号查询球队积分信息public String stuSearch1(String num)Database DB = new Database();this.sNum = num;String s = new String5;if(sNum = null|sNum.equals("")JOptionPane.showMessageDialog(null, "请输入球队号!"
34、, "错误", JOptionPane.ERROR_MESSAGE);sql = "select * from Team where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();rs = DB.executeQuery(sql);if(rs.next()s0 = rs.getString("score");elses = null;catch(Exception e)finally DB.closeStmt();DB.closeConn();return s
35、;/删除积分信息public void stuDel1(String num)Database DB = new Database();this.sNum = num;sql = "delete from Team where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功删除一纪录!");catch(Exception e)System.out.println
36、(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("")J
37、OptionPane.showMessageDialog(null, "请输入球队号!", "错误", JOptionPane.ERROR_MESSAGE);return;else if(sScore = null|sScore.equals("")JOptionPane.showMessageDialog(null, "请输入球队积分!", "错误", JOptionPane.ERROR_MESSAGE);return;elsesql = "insert into Team(snum
38、,score) values ('"+sNum+"','"+sScore+"')"tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功添加一条新的纪录!");catch(Exception e)System.out.println(e);JOptionPane.showMessageDialog(null, "保存失败", "错误", JOptionPa
39、ne.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)积分
40、修改界面如下图所示: 图 3-8 积分修改界面(9)系统管理界面如下图所示: 图 3-9 系统管理界面4、 软件使用说明书为了很好的管理足球联赛中球队的信息与各球队积分信息,设计了此足球联赛积分管理系统。该系统的使用说明如下:(1)此系统有三个界面:一 系统管理界面;二 球队管理界面;三 积分管理界面;(2)进入系统后可以在以上三个选项中选择你所需要的的操作。(3)三个模块又由几个不同的小模块组成,根据需要选择相应的操作。(4)核心界面如下图所示: 附录主要程序代码(带注释):(1)连接数据库的类package Stu;import java.sql.*;/* * 连接数据库的类 */publ
41、ic class Database private Statement st=null;ResultSet rs=null;private Connection ct=null;String sql;String strurl="jdbc:odbc:scmanage"public Database()/* * 打开数据库连接 */public void OpenConn()throws ExceptiontryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ct=DriverManager.getConnec
42、tion("jdbc:odbc:scmanage");catch(Exception e) System.err.println("OpenConn:"+e.getMessage();/* * 执行SQL查询语句,返回结果集RS */public ResultSet executeQuery(String sql)st = null;rs=null;tryst=ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=st.executeQuer
43、y(sql);catch(SQLException e)System.err.println("executeQuery:"+e.getMessage();return rs;/* * 执行SQL更新语句 */public void executeUpdate(String sql)st=null;rs=null;tryst=ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);st.executeQuery(sql);mit();catch(SQLException
44、 e)System.err.println("executeUpdate:"+e.getMessage(); public void closeStmt()tryst.close();catch(SQLException e)System.err.println("closeStmt:"+e.getMessage(); /* * 关闭数据库连接 */public void closeConn()tryct.close();catch(SQLException ex)System.err.println("aq.closeConn:"+
45、ex.getMessage(); public static String toGBK(String str)try if(str=null)str = ""elsestr=new String(str.getBytes("ISO-8859-1"),"GBK"); catch (Exception e) System.out.println(e);return str;(2)数据库操作的类package Stu;import java.sql.*;import javax.swing.*;/有关球队信息数据库操作的类public cl
46、ass 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, "请输入球队号!", "
47、错误", JOptionPane.ERROR_MESSAGE);return;else if(sName = null|sName.equals("")JOptionPane.showMessageDialog(null, "请输入球队名!", "错误", JOptionPane.ERROR_MESSAGE);return;elsesql = "insert into Team(snum,sname) values ('"+sNum+"','"+sName+&q
48、uot;')"/,'"+sSex+"','"+sGrade+"','"+sMajor+"','"+sBirth+"')"tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功添加一条新的纪录!");catch(Exception e)System.out.println(e);JOptionPane.sho
49、wMessageDialog(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+"
50、9;,sname = '"+sName+"' where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功修改一条新的纪录!");catch(Exception e)System.out.println(e);JOptionPane.showMessageDialog(null, "更新失败", "错误&qu
51、ot;, 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)+""tryDB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessage
52、Dialog(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 =
53、num;String s = new String5;if(sNum = null|sNum.equals("")JOptionPane.showMessageDialog(null, "请输入球队号!", "错误", JOptionPane.ERROR_MESSAGE);sql = "select * from Team where snum = "+Integer.parseInt(sNum)+""tryDB.OpenConn();rs = DB.executeQuery(sql);if(rs.next()s0 = rs.getString("sname");e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考数学(理数)一轮复习听评课记录:2.6《对数与对数函数》(含详解)
- 北师大版物理八年级下册6-9章听评课记录
- 2026届河南省安阳第三十五中学 高三化学第一学期期末学业质量监测模拟试题含解析
- 吸氢保健知识培训内容课件
- 2025版防水涂料供应防水装修合同范本
- 2025版非在编人员劳动合同及福利待遇协议
- 2025版轻钢房建设施工合同验收标准范本
- 二零二五年度抵押借款保险合同书
- 二零二五年度房产中介经纪服务合同范本
- 二零二五年度矿石运输合同运输工具维护保养协议
- 新课标考纲词汇1600词背诵版
- 医疗数据共享
- 工贸行业可燃性粉尘作业场所工艺设施防爆技术指南(试行)
- 农业合作社线上线下营销方案
- 第1课时 化学方程式的意义及书写课件2024-2025学年人教版九年级化学
- 以诺书-中英对照
- 国家电网招投标培训
- 2024阿克苏拜城县招聘社区工作者(30人)笔试备考题库及答案解析
- 【正版授权】 ISO 1496-1:2013/Amd 2:2024 EN Series 1 freight containers - Specification and testing - Part 1: General cargo containers for general purposes - Amendment 2
- AQ 7014-2018 新型干法水泥生产安全规程
- GB/T 22581-2024混流式水泵水轮机基本技术条件
评论
0/150
提交评论