Java课程设计报告---运动会成绩管理系统.doc_第1页
Java课程设计报告---运动会成绩管理系统.doc_第2页
Java课程设计报告---运动会成绩管理系统.doc_第3页
Java课程设计报告---运动会成绩管理系统.doc_第4页
Java课程设计报告---运动会成绩管理系统.doc_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运动会成绩管理系统Java课程设计小组成员:姓名: 班级: 学号: 日期: 2012年1月4日6日目录运动会成绩管理系统21 概述21.1 课程设计的目的和意义21.2 团队介绍21.2.1成员介绍21.2.2 组内分工22 系统功能介绍32.1 数据库结构设计介绍42.1.1 数据库和表名称42.1.2 表的结构设计42.2 管理模块介绍52.2.1 赛前管理模块62.2.2 成绩管理模块62.2.3 成绩查询模块62.2.4 用户管理模块73 系统界面展示73.1 主界面73.2 登录后的主界面73.2.1 用户管理83.2.2 赛前管理83.2.3 成绩管理83.2.4 成绩查询93.2.5 更换背景93.2.6 帮助管理94 主要程序代码104.1 mainframe104.2 Runframe144.3 connection175 个人总结18参考文献19运动会成绩管理系统1 概述1.1 课程设计的目的和意义运动会管理系统是针对一般的小型运动会中成绩的记录仍需要手工处理和排序、个人的成绩往往会在处理中丢失或者不准确、比赛排名出来慢等现象而设计的,通过这个小型的运动会管理系统,展现如何设计这样一个复杂的系统。运动会项目繁多,如何使系统具有良好的扩展性和稳定性,对于一个系统来说将面临很大的挑战,需要处理的数据格式也不一致,如何很好地考虑这些,对于设计实现人员来讲,也都有一定的难度。本例包含了数据库层的的设计、业务的处理以及Java界面的实现,从各个方面进行详细的设计和规划,使整个系统能够满足现实需要。通过Java课程设计,学生能够了解整个课程设计的流程及系统设计实现过程,使学生能够更好的将课堂所学知识运用于实践中,在实践中检验自己的所学,同时也锻炼学生的动手能力以及思考能力。1.2 团队介绍1.2.1成员介绍组长:祝组员:龙、熊、李、余、郭、王、刘1.2.2 组内分工祝:负责组内的任务分工,在课程设计的过程中协调组员之间的合作。同时负责程序设计中运动员成绩查询模块的设计。龙:负责程序设计中运动员成绩管理模块的设计。熊:负责系统开发的设计及程序文档的撰写。李:负责程序中数据库的搭建与连接。余:负责用户管理模块的设计。郭:负责数据库中表单的输入及帮助文档的撰写。王:负责数据库中表单的输入及帮助文档的撰写。刘:主要负责协助组长工作,在本次课程设计中起协助作用。2 系统功能介绍本系统采用软件工程原理,使用面向对象的Java编程环境编写运动员管理系统,利用SQL Sever数据库技术,对数据库进行了全面的开发。该运动员管理系统主要包括前台应用程序的开发以及后台数据库的建立和维护两个方面,实现了运动员成绩数据库的创建及运动员成绩的输入、统计、浏览和维护,使得系统具有界面友好,功能强大,易于维护的特点。本运动会成绩管理系统在功能实现方面主要分为以下几点:1. 赛前管理模块。这一模块是主要完成运动会参赛项目的维护,如确定每个学院运动员的编号范围,参赛的项目,及以往运动会的历史记录。2.运动员成绩管理模块。操作员可以对成绩进行录入,一旦提交则只能查看不能修改;管理员可以查看成绩并调整成绩,因为前场工作人员可能犯错,需要管理员进行更改,但日志中要对此更改进行记录。3.运动员成绩查询模块。用户可以通过终端查看运动员成绩信息、项目成绩信息、学院成绩信息、每日成绩、名次查询。4.用户管理模块。包括用户的添加、修改、编辑和删除功能。管理员可以对操作人员进行信息维护,管理普通用户。普通用户在注册后登陆查询运动员成绩。5.系统帮助模块。提供相关的系统帮助文档,包括成绩查询帮助、成绩管理帮助、赛前管理帮助、用户使用帮助。设计系统体系结构如图1所示。其中,应用层提供诸如GUI的显示、事件处理等;代理层是分离上层和具体数据库访问层的,也可称为业务层,这样的目的是当数据库发生变更时,可以将程序的改动缩减到最小。数据库接口层是与具体的数据库进行交互面对数据进行提取、存入操作。模块包是与数据库实体相对应的类定义,也可以说与数据库中的每条记录相对应。 应用层 模块 代理层 数据库接口层图12.1 数据库结构设计介绍2.1.1 数据库和表名称在本系统中数据库的名称设置为yundonghui。数据库中表名称和字符标识如下所示:序号表名称1表一(运动员信息)2项目表3参赛表4最高记录5用户2.1.2 表的结构设计表一(运动员信息表)字段名称类型宽度小数位数是否为空运动员编号Char8NO姓名Char20Yes性别char4Yes项目Char20Yes学院Char20Yes成绩Char12Yes名次int40Yes日期data8Yes记录Char4Yes项目字段名称类型宽度小数位数是否为空项目Char20NO类别Char8Yes参赛表字段名称类型宽度小数位数是否为空参赛单位Char20NO参赛项目Char20Yes参赛类别char8Yes最高记录表字段名称类型宽度小数位数是否为空项目Char20NO成绩Char20Yes创造者char20Yes创造单位char20Yes创造地点char20Yes用户表字段名称类型宽度小数位数是否为空用户名Char20NO密码Char20Yes用户类型Char10Yes2.2 管理模块介绍为了详细描述系统模块功能,在系统功能模块划分的的基础上,对相应系统的数据流图进行功能分解,得到含义明确、功能单一的单元功能模块,从而得到系统的功能模块图。如下图所示。运动员成绩管理系统赛前管理模块成绩管理模块成绩查询模块系统帮助模块用户管理模块图2 系统功能结构图2.2.1 赛前管理模块这一模块是主要完成运动会赛前事务,如确定每个学院运动员的编号范围,参赛的项目,及每个学院所打破项目记录的情况。如图3所示。赛前管理模块参赛赛单位浏览、添加、删除项目记录浏览运动员编号范围浏览、添加、删除比赛项目浏览、添加、删除图3 赛前管理模块2.2.2 成绩管理模块 这一模块主要完成运动员成绩的管理,包括运动员成绩的录入,成绩排名,是否破纪录,项目排名,和记录所有运动员成绩。按编号或姓名查询运动员的成绩,按记录查询本次运动会中破纪录的运动员信息,按学院查询本学院比赛情况,如图4所示。成绩管理模块总成绩汇总项目排名汇总运动员成绩排名运动员成绩录入记录破平汇总图4 成绩管理模块2.2.3 成绩查询模块 这一模块主要完成浏览运动员成绩信息、项目成绩信息、学院成绩信息、每日成绩、名次查询。如图5所示。成绩查询模块名次查询每日成绩查询学院成绩查询项目成绩查询运动员成绩查询图5 成绩查询模块2.2.4 用户管理模块这一模块主要完成浏览用户,删除/修改用户权限,修改用户密码。如图6所示。用户密码修改系统用户管理用户管理模块用户浏览删除用户用户权限修改3 系统界面展示3.1 主界面主界面中包括了登录注册两个选项(如左下图所示),已注册用户可以输入用户名及密码直接登录,未注册用户可通过注册按钮进行注册(如右下图所示)。3.2 登录后的主界面登录后会显示系统的主要操作界面,导航栏中包括有用户管理、赛前管理、成绩管理、更换背景、帮助管理共5个选项。单击每个选项会弹出相对应的下拉菜单。3.2.1 用户管理用户管理中包含了系统用户管理、用户密码修改及返回登录框。(如左下图所示)其中,系统用户可以通过选项查看并管理普通用户。(如右下图所示)普通用户则可以进行密码的修改及返回登陆框的操作。3.2.2 赛前管理系统用户可以通过赛前管理对比赛项目、参赛单位、项目记录及运动员编号范围进行修改和编辑。3.2.3 成绩管理系统用户可以通过成绩管理对运动会成绩进行成绩的录入、修改和删除、统计学院成绩及总成绩册管理。3.2.4 成绩查询用户可以通过成绩查询查询运动员成绩、项目成绩、每日成绩及记录查询。3.2.5 更换背景用户可以根据自己的喜欢进行背景图片的更改。3.2.6 帮助管理用户可以通过帮助文档查看查询帮助。4 主要程序代码4.1 mainframepackage system;import help.help1;import help.help2;import help.help3;import help.help4;import javax.swing.*;import java.awt.event.*;import java.io.FileNotFoundException;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JFrame;import prapare_manager.bsProject;import prapare_manager.csDW;import prapare_manager.eth_no;import prapare_manager.pj_record;import record_find.break_record_find;import record_find.date_result_find;import record_find.eth_result_find;import record_find.pj_result_find;import record_find.xueyuan_result_find;import record_manager.add_record;import record_manager.all_record;import record_manager.change_del_record;import record_manager.tj_result;import user.change_pwd;import user.quanxian;import user.user_manager;public class mainframe extends JFrame implements ActionListener,Runnable private static final long serialVersionUID = 1L; JPanel cp;int i=1; ImageIcon icon1=new ImageIcon(picture/7.jpg); ImageIcon icon2=new ImageIcon(picture/2.jpg); ImageIcon icon3=new ImageIcon(picture/3.jpg); ImageIcon icon4=new ImageIcon(picture/4.jpg); ImageIcon icon5=new ImageIcon(picture/6.jpg); ImageIcon icon6=new ImageIcon(picture/1.jpg); ImageIcon icon7=new ImageIcon(picture/5.jpg); ImageIcon icon8=new ImageIcon(picture/8.jpg); ImageIcon icon9=new ImageIcon(picture/9.jpg); ImageIcon icon10=new ImageIcon(picture/10.jpg); ImageIcon icon11=new ImageIcon(picture/11.jpg); ImageIcon icon12=new ImageIcon(picture/12.jpg); JLabel tp1=new JLabel(icon1,JLabel.CENTER); JMenuBar bar=new JMenuBar(); JMenu menu1=new JMenu(用户管理); JMenuItem a1=new JMenuItem(系统用户管理); JMenuItem a2=new JMenuItem(用户密码修改); JMenuItem a3=new JMenuItem(返回登录框); JMenu menu2=new JMenu(赛前管理); JMenuItem b1=new JMenuItem(比赛项目); JMenuItem b2=new JMenuItem(参赛单位); JMenuItem b3=new JMenuItem(项目记录); JMenuItem b4=new JMenuItem(运动员编号范围); JMenu menu3=new JMenu(成绩管理); JMenuItem c1=new JMenuItem(成绩录入); JMenuItem c2=new JMenuItem(成绩修改/删除); JMenuItem c3=new JMenuItem(统计学院成绩); JMenuItem c4=new JMenuItem(总成绩册); JMenu menu4=new JMenu(成绩查询); JMenuItem d1=new JMenuItem(运动员成绩); JMenuItem d2=new JMenuItem(项目成绩); JMenuItem d3=new JMenuItem(学院成绩); JMenuItem d4=new JMenuItem(每日成绩); JMenuItem d5=new JMenuItem(纪录查询); JMenu menu7=new JMenu(更换背景); JMenuItem g1=new JMenuItem(上一张); JMenuItem g2=new JMenuItem(下一张); JMenu menu6=new JMenu(帮助管理); JMenuItem f1=new JMenuItem(赛前管理帮助); JMenuItem f2=new JMenuItem(成绩管理帮助); JMenuItem f3=new JMenuItem(成绩查询帮助); JMenuItem f5=new JMenuItem(用户使用帮助); JMenuItem f4=new JMenuItem(退出系统); JMenu menu8=new JMenu(); public mainframe()tryInit(); if(new quanxian().get_quanxian()=2)a1.setEnabled(false);c1.setEnabled(false);c2.setEnabled(false); if(new quanxian().get_quanxian()=0)a1.setEnabled(true);c1.setEnabled(true);c2.setEnabled(true); catch(Exception err)err.printStackTrace(); public void Init() throws Exception cp = (JPanel)this.getContentPane(); cp.setLayout(null); /this.setSize(new Dimension(800, 600);this.setTitle(运动会成绩管理系统);this.setResizable(false);tp1.setText();tp1.setSize(700, 500); bar.setOpaque(true); setJMenuBar(bar); menu1.add(a1); menu1.add(a2); menu1.add(a3); bar.add(menu1); a1.addActionListener(this); a2.addActionListener(this); a3.addActionListener(this); menu2.add(b1); menu2.add(b2); menu2.add(b3); menu2.add(b4); bar.add(menu2); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); menu3.add(c1); menu3.add(c2); menu3.add(c3); menu3.add(c4); bar.add(menu3); c1.addActionListener(this); c2.addActionListener(this); c3.addActionListener(this); c4.addActionListener(this); menu4.add(d1); menu4.add(d2); menu4.add(d3); menu4.add(d4); menu4.add(d5); bar.add(menu4); d1.addActionListener(this); d2.addActionListener(this); d3.addActionListener(this); d4.addActionListener(this); d5.addActionListener(this); menu7.add(g1); menu7.add(g2); bar.add(menu7); g1.addActionListener(this); g2.addActionListener(this); menu6.add(f5); menu6.add(f1); menu6.add(f2); menu6.add(f3); menu6.add(f4); bar.add(menu6); f1.addActionListener(this); f2.addActionListener(this); f3.addActionListener(this); f5.addActionListener(this); f4.addActionListener(this); menu8.setEnabled(false); bar.add(menu8);cp.add(tp1,null);this.setSize(700,500);this.setLocationRelativeTo(null);this.setVisible(true); public void run() while(true) SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); menu8.setText( +sdf.format(new Date(); try Thread.sleep(1000); catch(Exception e) e.printStackTrace(); public static void main(String arg) mainframe t=new mainframe(); Thread thread1=new Thread(t); thread1.start(); public void actionPerformed(ActionEvent e) if(e.getSource()=f4) System.exit(0); else if(e.getSource()=g1|e.getSource()=g2) if(e.getSource()=g1) i=(i+11)%12; else i=(i+1)%12; switch(i) case 1: tp1.setIcon(icon1);break; case 2: tp1.setIcon(icon2);break; case 3: tp1.setIcon(icon3);break; case 4: tp1.setIcon(icon4);break; case 5: tp1.setIcon(icon5);break; case 6: tp1.setIcon(icon6);break; case 7: tp1.setIcon(icon7);break; case 8: tp1.setIcon(icon8);break; case 9: tp1.setIcon(icon9);break; case 10: tp1.setIcon(icon10);break; case 11: tp1.setIcon(icon11);break; case 0: tp1.setIcon(icon12);break; cp.add(tp1,null); else if(e.getSource()=a1)new user_manager(); else if(e.getSource()=a2)new change_pwd(); else if(e.getSource()=a3)this.dispose();new Runframe(); else if(e.getSource()=b1)new bsProject(); else if(e.getSource()=b2)new csDW(); else if(e.getSource()=b3)new pj_record(); else if(e.getSource()=b4)new eth_no(); else if(e.getSource()=c1)new add_record(); else if(e.getSource()=c2)new change_del_record(); else if(e.getSource()=c3)new tj_result(); else if(e.getSource()=c4)new all_record(); else if(e.getSource()=d1)new eth_result_find(); else if(e.getSource()=d2)new pj_result_find(); else if(e.getSource()=d3)new xueyuan_result_find(); else if(e.getSource()=d4)new date_result_find(); else if(e.getSource()=d5)new break_record_find(); else if(e.getSource()=f1) try new help1(); catch (FileNotFoundException e1) e1.printStackTrace(); else if(e.getSource()=f2) try new help2(); catch (FileNotFoundException e1) e1.printStackTrace(); else if(e.getSource()=f3) try new help3(); catch (FileNotFoundException e1) e1.printStackTrace(); else trynew help4(); catch (FileNotFoundException e1)e1.printStackTrace(); 4.2 Runframepackage system;import javax.swing.*;import java.sql.*;import java.awt.Color;import java.awt.TextField;import java.awt.event.*;import javax.swing.JFrame;import user.add_user;import user.quanxian;public class Runframe extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L; JPanel cp;int i=0; ImageIcon icon=new ImageIcon(picture/5.jpg); JLabel tp=new JLabel(icon,JLabel.CENTER); JLabel j1=new JLabel(姓名: ); JLabel j2=new JLabel(密码: ); JLabel j3=new JLabel( 湖工运动会成绩管理系统); JButton b1=new JButton(登 录); JButton b2=new JButton(注 册); TextField t1=new TextField(20); TextField t2=new TextField(16); public Runframe() try Init(); catch(Exception err)err.printStackTrace(); private void Init() throws Exception cp=(JPanel) this.getContentPane(); cp.setLayout(null); this.setTitle(系统登录); this.setResizable(false); this.setSize(640,480); j1.setBounds(220,140,60,30); j1.setFont(new java.awt.Font(Dialog,2,20); j1.setForeground(new Color(250,0,0); j2.setBounds(220,190,60,30); j2.setFont(new java.awt.Font(Dialog,2,20); j2.setForeground(new Color(250,0,0); j3.setBounds(40,40,580,40); j3.setFont(new java.awt.Font(Dialog,6,40); j3.setForeground(new Color(250,0,0); t1.setBounds(280,140,120,30); t1.setFont(new java.awt.Font(Dialog,0,15); t1.setBackground(new Color(20,150,20); t1.addActionListener(this); t2.setBounds(280,190,120,30); t2.setFont(new java.awt.Font(Dialog,0,14); t2.setBackground(new Color(20,150,20); t2.addActionListener(this); b1.setBounds(200,290,90,30); b1.setFont(new java.awt.Font(Dialog,0,15); b1.addActionListener(this); b2.setBounds(350,290,90,30); b2.setFont(new java.awt.Font(Dialog,0,15); b2.addActionListener(this); tp.setText(); tp.setSize(640,480); cp.add(j1,null); cp.add(j2,null); cp.add(j3,null); cp.add(t1,null); cp.add(t2,null); cp.add(b1,null); cp.add(b2,null); cp.add(tp,null); t2.setEchoChar(*); this.setLocationRelativeTo(null); this.setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=b2)new add_user(); else if(t1.getText().equals()JOptionPane.showMessageDialog(null,请输入用户名!);t1.requestFocus();t2.setText(); else if(e.getSource()=t1)t2.requestFocus(); else if(t2.getText().equals()JOptionPane.showMessageDialog(null,请输入密码!);t2.requestFocus(); else if(e.getSource()=t2|e.getSource()=b1) try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); Connection con=DriverManager.getConnection(jdbc:odbc:yundonghui,sa,); Statement ps=con.createStatement(); ResultSet rs=null; rs=ps.executeQuery(select * from 用户管理 where 用户名=+t1.getText().trim()+); if(!rs.next() JOptionPane.showMessageDialog(null,没有此用户请重新输入!); t1.setText();t2.setText();t1.requestFocus(); else if(rs.getString(4).trim().equals(锁定)JOptionPane.showMessageDialog(null, 此账号已被锁定,请求管理员解锁!);this.dispose(); else rs=ps.executeQuery(select * from 用户管理 where 用户名=+t1.getText().trim()+); rs.next(); String msg=rs.getString(1); if(rs.getString(2).equals(t2.getText().trim() new quanxian().user_type1(msg);new mainframe();this.dispose(); else i+; if(i=3) JOptionPane.showMessageDialog(null,密码三次输入错误!); new quanxian().user_type2(msg); this.dispose(); else JOptionPane.showMessageDialog(null,密码输入错误!); t2.setText();t2.requestFocus(); catch (Exception err) err.printStackTrace();JOptionPane.showMessageDialog(null,数据库连接出错!); public static void main(String args) new Runframe(); 4.3 connectionpackage system;import java.sql.*;import javax.swing.*;class jdbcExample1 public static void main(String args) try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);String url =jdbc:sqlserver:/localhost:1433;DatabaseName=yundonghui; String login = sa; String password =;Connection conn = DriverManager.getConnection(url,login,password);Statement statement =conn.createStatement();String sqlQuery=select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论