




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实践教学实践教学 * 兰州理工大学兰州理工大学 计算机与通信学院 2012 年秋季学期 java 课程设计课程设计 题 目:足球联赛积分管理系统 专业班级:计算机科学与技术(5)班 姓 名: 郭虹 学 号: 10240544 指导教师: 李明 成 绩:_ 目目 录录 1. 摘 要.2 2. 序言 .4 3. 系统分析与设计.8 4. 详细设计.9 5.设计总结设计总结. 6.参考文献参考文献 .19 7.致致 谢谢 .20 附件附件 部分源程序代码部分源程序代码 21 摘摘 要要 此说明书专为计算机与通信学院计算机科学与技术专业 2012 年秋季学 期 java 课程设计而做。 面向对象的基本元素是对象,面向对象程序的主要结构特点是:第一, 程序一般由类的定义和类的使用两部分组成;第二,程序中的一切操作都是 通过向对象发送消息来实现的,对象接收到消息后,启动有关的方法完成相 应的操作。一个程序中涉及的类,可以由程序设计者决定,但在一个程序中 只能有一个父类且类不能实现多重继承,程序中还必须要有一个主函数 main,在主函数中声明并创建一个类的对象,通过类的对象调用类中定义的 成员函数,此函数是程序执行的入口。在足球联赛赛的 java 程序中就定义 了一个 football 类来实现有关的功能,还定义了许多构造函数,构造函数 用来初始化对象。 关键字:类;对象;构造函数;主函数 前前 言言 近年来,在计算机软件行业,面向对象程序设计的思想已经被越来越多 的软件设计人员所接受。不仅因为它是一种最先进的,新颖的计算机程序设 计思想,最主要的是这种新的思想更接近人的思维活动,人们利用这种思想 进行程序设计时,可以很大程度地提高编程能力,减少软件维护的开销。面 向对象程序设计方法是通过增加软件的可扩充性和可重用性来提高程序员的 编程能力。 随着计算机在我国广泛而深入的应用,在分析和开发计算机系统软件和 应用软件的过程中,迫切需要掌握各种数据结构的描述方法以及相应的处理 算法。因此面向对象程序设计知识是计算机相关科学的学生和从事计算机应 用的技术人员必备的专业基础知识。 系统分析与设计 1.需求分析 足球联赛积分采用主客场双循环赛制,胜一场得 3 分,平局各得 1 分,负一 场得 0 分,联赛排名以积分多着在前,当两队(或多队)积分相同时,则净胜 球(即进球数与失球数之差)多着在前,若净胜球相同,则进球数多着在前, 若仍相同,则抽签活踢附加赛决定名次(这在联赛结束后进行,联赛未结束则 两队名次并列,本程序不做这方面的要求)。此课程设计的主要目的在于以足 球联赛为背景,设计,开发一套“足球联赛积分管理系统”软件。 2.系统模块设计 足球联赛管理系统 球队管理子模块 球员管理子模块 比赛管理子模块 结果统计子模块 3.数据库设计模块图 球队球员 比赛 进行参加 属于 名称 主场 主教练 姓名 号码 位置 身高 体重出生日期 轮次日期 主队 客队 主队比分 客队比分进球时间 1 2 M N P Q 4.界面的组织和整体设计 主窗体 球队管理球员管理比赛情况统计信息 添加球队 删除球队 修改球队 查询球队 添加球员 按姓名修改球员 按球队和号码修改 按姓名删除球员 按球队和号码删除 查询球员 积分榜 射手榜 总体界面设计 5程序的类层次结构 (1)主函数部分:定义了一个类main, main函数是程序执行的入口public class Main /* * 程序入口 */ public static void main(String args) JDBCAdapter jdbc = new JDBCAdapter(); MainFrame mainFrame = new MainFrame(jdbc); mainFrame.setVisible(true); (2) 定义了一个主窗体类 mainFrame, 这个类继承了 CeenterDialog,在这个类 中定义了成员变量 private JButton teamBtn; private JButton quitBtn; private JButton calBtn; private JButton matchBtn; private JButton memberBtn; TeamFrame tf; MemberFrame mf; MatchFrame af; CalculateFrame cf; 定义了一个构造函数 public MainFrame(JDBCAdapter jdbc) this.jdbc=jdbc; initGUI(); 在类中定义了一个 initGUI()方法来实现系统主界面的显示,在方法体中设置了 五个按钮,点击按钮来实现对球员,球队,和比赛结果的管理,并在数据库中 显示添加或者删除的球员或者球队,主界面如下如下图所示: 主界面 (3) 在同一个包中又定义了类 member, team, score, match,用来实现对球员,球队 等的添加和删除,并说明这些类中成员变量的属性的,并在数据库中显示添加 的球员或者球队的信息 (4)在程序中定义了一个类JDBCAdapter在程序中定义了成员变量, private String user; private String pwd; private String host; private String port; private String dbName; 定义了成员函数: Private void Getparams()用来读取数据库初始化配置信息,调用类中 的成员变量 User=br.readline(); Password=br.readline(); Host=br.readline(); Port=br.readline(); 成员函数 closeCnnection()用来关闭链接 定义了构造函数 JDBCAdapter()用来执行驱动加载程序,创建操作对象等一 系列操作,定义了登陆数据库的用户名,密码等界面如图所示: 初始化数据库配置界面 详细设计 1.球队管理界面设计:在主界面选项中点击球队管理按钮,进入 球队管理界面则可实现对球队的管理,包括添加球队,根据修改球 队,删除球队,球队界面显示,球队管理界面如图所示: 球队管理 (1)添加球队界面:定义了类 AddTeamFrame,并定义了构造函数 public AddTeamFrame(),调用了数据库接口。定义了成员方法 public void initGUI() 添加球队界面 (2)变更球队界面:定义了类 UpdTeamFrame 变更球队界面 (3)删除球队界面:定义了类 DelTeamFrame (4)显示球队界面:定义了类 DispTeamFrame 显示球队界面 2球员管理界面设计 (1)添加球员:定义了类 AddMemberFrame 添加球员 (2)根据姓名修改球员信息 (3)根据队名和号码修改球员信息 根据队名和球衣号修改球员 (4)根据姓名删除球员 根据姓名删除球员 (5).根据球队和号码删除球员 根据队名和球衣号删除球员 (6)显示球员 3 比赛管理界面设计 4 统计信息界面设计 统计信息 积分榜 射手榜 设计总结 通过此次课程设计,我对所学的知识有了更加深刻的了解,以往作业 中的代码往往不知道是否完全正确,总是按照所学到的东西自己写一些相 关的代码,来完成一定的任务,但是缺乏实践,总是难以发现自己所写代 码的缺点和不足。在这次课程设计中,刚开始按照自己的想法很快的写好 了,结果一调试,错误很多,刚开始有将近二十个错误,才发现这些都不 是想当然的就能搞好,计算机语言有自己特定的格式,java 语言也有其特 殊性,如果考虑不到的话那就无法通过编译,因为在控制机器时,容不得 半点错误,机器只会按照我们的只回来进行相应的运作,所以我应该对写 出的每一条语句负责,这样才能写出来高质量的代码,才能充分的发挥数 据结构在计算机应用中的强大作用; 在这次课设中,还学会了如何应对错误。以往调试程序时老是对出现 的一大堆错误头疼不已,一看见错误就想退却。在这次课设中,我刚开始 写的代码就像上面说的,一开始错误特别多,但是由于是靠自己辛辛苦苦 忙了大半天才写出来的,所以格外有信心,坐下来按照编译器的提示一步 一步分析,修改。竟然没花多长时间就把错误全部找出来了,编译顺利通 过。从那以后我再遇见错误时候就给自己加油,逐渐的我也就不再害怕错 误了,反而感觉在代码中找错误是很有趣的,找出错误以后很有成就感。 总的来说这次课设让我学到了很多东西,在网上找的参考资料不仅仅 对这次可设有用处,而且对以后的学习也有不小的帮助,因为从中我学到 了不少很实用的编程技巧。 参考文献 1曲朝阳,杨杰明等.Java 程序设计. 北京: 清华大学出版社,2008.10 2耿祥以,张跃平.Java 大学生实用教程. 北京: 电子工业出版社,2012.6 3明日科技.Java 经典编程.北京:清华大学出版社,2012.10 4李尊朝,苏军.Java 语言程序设计.北京:中国铁道出版社,2004.2 5王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990. 致谢 首先感谢我的指导老师李明老师,他在我的课程设计过程中提出了指导性 的方案和架构,并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能 迅速掌握新的技术。 在这两周的 java 课程设计中,对课本中所学的知识有了进一步的理解和掌握,学 会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。 一个人要完成所有的工作是非常困难和耗时的。在以后的学习中我会更加注 意各个方面的能力的协调发展。在课程设计时遇到了很多的问题,在老师的帮 助,和对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能 力,为今后在学习工作中能更好的发展打下了坚实的基础。 附录(部分源程序) package common; public class Main public static void main(String args) JDBCAdapter jdbc = new JDBCAdapter(); MainFrame mainFrame = new MainFrame(jdbc); mainFrame.setVisible(true); package common; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import calculate.CalculateFrame; import matchManage.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; MatchFrame af; CalculateFrame cf; public MainFrame(JDBCAdapter jdbc) this.jdbc=jdbc; initGUI(); private void initGUI() try this.setTitle(“-足球联赛积分管理系统-“); /*足球联赛积分管理系统 * 其中用十六进制进行,也可以直接用汉字进行编排性质一样,都是用的是unicode 编码 * 下面的编码方式都一样 */ getContentPane().setLayout(new FlowLayout(); teamBtn = 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(); 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(); getContentPane().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 JButton(); getContentPane().add(quitBtn); quitBtn.setText(“u9000u51fa“);/退出 quitBtn.setBounds(142, 204, 79, 33); quitBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) if(jdbc != null) jdbc.close(); System.exit(0); ); setSize(400, 300); super.center(); catch (Exception e) e.printStackTrace(); public static Object getGUIBuilderInstance() return new MainFrame(Boolean.FALSE); public MainFrame(Boolean initGUI) super(); package common; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.Vector; import javax.swing.JOptionPane; public class JDBCAdapter private String user; private String pwd; private String host; private String port; private String dbName; Connection conn; Statement stat; ResultSet rs; Vector rows; / 打开文件, 读取数据库初始化配置信息 /BufferedReader br=new BufferedReader(new FileReader(new File(“D:databaseInit.txt“); private void getParams() try BufferedReader br=new BufferedReader(new FileReader(new File(“C:/Users/lenovo/Desktop/Footballsample/Footballsample/lib/databaseInit.txt“); user = br.readLine(); pwd = br.readLine(); host = br.readLine(); port = br.readLine(); dbName = br.readLine(); br.close(); catch (FileNotFoundException e) System.err.println(“未找到文件!“); catch (IOException e) System.err.println(“读取文件数据错误!“); / 构造函数,执行加载驱动程序、建立 / 数据库连接、创建语句对象等一系列操作 public JDBCAdapter() try getParams(); / 采用微软提供的驱动程序进行JDBC方式连接 Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“); conn = DriverManager.getConnection (“jdbc:sqlserver:/“+host+“:“+port+ “;DatabaseName=“+dbName+“;USER=“ + user + “;PASSWORD=“ + pwd); stat = conn.createStatement(); catch(ClassNotFoundException ex) System.err.println(“加载驱动程序错误,无法连接!“); catch(SQLException ex2) ex2.printStackTrace(); System.err.println(“连接字符串错误,或者语句对象错误!“); / 关闭连接对象 public void closeConnection() if(conn != null) try conn.close(); catch (SQLException e) e.printStackTrace(); conn = null; / 关闭语句对象 public void closeStatement() if(stat != null) try stat.close(); catch (SQLException e) e.printStackTrace(); stat = null; / 执行insert操作 public void insert(String inserting) if(conn = null | stat = null) JOptionPane.showMessageDialog (null,“没有建立数据库连接!“); try stat.executeUpdate(inserting); JOptionPane.showMessageDialog (null,“插入成功!“); catch(Exception ex) System.err.println(ex); JOptionPane.showMessageDialog (null,“数据插入错误!“); / 执行delete操作 public void delete(String deleting) if(conn = null | stat = null) JOptionPane.showMessageDialog (null,“没有建立数据库连接!“); try stat.executeUpdate(deleting); JOptionPane.showMessageDialog (null,“删除成功!“); catch(Exception ex) JOptionPane.showMessageDialog (null,“数据删除错误!“); / 执行update操作 public void update(String updating) if(conn = null | stat = null) JOptionPane.showMessageDialog (null,“没有建立数据库连接!“); try stat.executeUpdate(updating); JOptionPane.showMessageDialog (null,“修改成功!“); catch(Exception ex) JOptionPane.showMessageDialog (null,“数据修改错误!“); / 查询操作, 输入参数是SQL的字符串 / 返回结果是一个Vector的二维数组 public Vector query(String selecting) if (conn=null | stat=null) JOptionPane.showMessageDialog (null, “没有建立数据库连接!“); return null; /元数据,即数据字典 /通过它能够得到结果集有多少字段, /每个字段的名称 ResultSetMetaData meta; int colNum; /记录结果集的列数 String colName;/记录每个字段的名称 try rs = stat.executeQuery(selecting); meta = rs.getMetaData(); colNum = meta.getColumnCount(); colName = new StringcolNum; for (int i=0; i(); /将返回的结果集存入rows二维数组中 while(rs.next() Vector oneRow = new Vector(); /每一行各个单元格内容加入到oneRow数组中 for(int i=1; i=colNum; i+) oneRow.addElement (Object)rs.getObject(i); rows.addElement(oneRow); catch(Exception ex) ex.printStackTrace(); JOptionPane.showMessageDialog (null, “数据查询错误!“); return rows; / 关闭结果集对象 public void closeResultSet() if (rs != null) try rs.close()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药学专业试题及答案软件
- 河北省唐山市2025-2026学年高三上学期摸底演练化学试卷(含答案)
- 甘肃省金太阳2026届高三9月开学联考(26-1002C)政治(含答案)
- 黑龙江省佳木斯市桦川县2026届九年级上学期开学考试数学试卷(含答案)
- 闵行区自制鱼池施工方案
- 乐山塑胶操场施工方案
- 祖国生日庆祝致辞模板
- 会计年终工作总结
- 辽宁省大连市滨城高中联盟2024-2025学年高二上学期期中物理试卷(含解析)
- 山西省阳泉市部分学校2025-2026学年上学期第一次月考八年级地理试卷
- 生鲜店食品安全管理制度
- 2025年中国微网雾化器行业市场前景预测及投资价值评估分析报告
- 即墨区离婚协议书
- 别墅设计全套方案
- 精神患者监管协议书
- 军队文职理工类-数学2+物理-黄金考点汇编
- 中国养老产业发展研究报告
- 2025-2030体感游戏机行业市场深度调研及发展趋势与投资战略研究报告
- 煤炭矿井通信设计规范
- 2025年陕西省咸阳市秦都区中考一模语文试题(卷尾带答案)
- 抖音本地生活服务方案
评论
0/150
提交评论