收藏 分销(赏)

JAVA课程设计运动会成绩管理系统.doc

上传人:w****g 文档编号:10595638 上传时间:2025-06-04 格式:DOC 页数:25 大小:308.01KB 下载积分:10 金币
下载 相关 举报
JAVA课程设计运动会成绩管理系统.doc_第1页
第1页 / 共25页
JAVA课程设计运动会成绩管理系统.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
《JAVA程序设计》 课程设计报告 设计题目: 运动会成绩管理系统 学院名称: 信息工程学院 专业班级: 13计本2 姓 名: 杨昀 学 号: 1312210239    目录 一 需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二 概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 三 详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.1 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2 模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.1 数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4 3.2.2 用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.3主页面模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.4 运动员信息浏览模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 3.2.5添加运动员信息模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 3.2.6运动员信息查询修改模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7 3.2.7运动员信息查删除模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 3.3 主要程序代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 四 软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 五 总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。23 参考资料:.......................................................24 一 需求分析 本系统的主要目的就是实现运动会成绩管理,使运动会成绩管理工作更加容易,从而提高工作效率,降低管理成本. 系统中需要对拥护身份进行管理,采取登陆进入系统的形式. 二 概要设计 /************************************************************************ 概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。 2.1 概要设计的原则 概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。概要设计要坚持以下几个原则。 (1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。解决复杂问题的方法是将其分解成几个小问题,一个个来解决。 (2)提高代码重用性:在面向对象设计中,首先考虑的就是代码的重用,一个好的设计,将来在升级换代时不需要太大的改动,节省了人力物力。 (3)从上而下层层分析:概要设计要从整体出发,逐个剖析软件的功能,从上而下,先分析系统总的功能,然后一步步细分,直到最小的功能模块。 (4)一致性原则:概要设计要求所有功能模块在定义时使用统一的规范。 (5)提高独立性,减少耦合:各个模块与模块之间尽量减少关联,否则修改一个地方就会引起其他多处的变动,不符合面向对象的原则。一般情况下,对类封装后,只允许对类进行扩展,而不能修改,而封装的类必须具有单一职责,既理论情况下不允许两个类共同完成一个功能。 (6)模块的大小要尽量适中:不是结构算法越复杂的模块越好,模块的大小要根据实际工作目标和其他类的耦合紧密程度来决定。经验表明,一个模块的规模不应过大,模块的总行数应控制在10~100行的范围内,最好为30~60行,这样理解和阅读都较方便。过长的模块往往是分解不充分的表现,会增加阅读理解的难度;但小规模太多也会使模块之间联系变得复杂,增大系统在模块调用时传递信息所花费的开销。 由于概要设计是整个设计的重中之重,牵一发而动全身,所以要努力做一个好的概要设计,才能在今后软件开发过程中不再反复。现在软件行业流行模式化驱动设计,将一些市场上比较成功的模式拿来用在自己的设计中。 2.2 将用户需求模块化 根据概要设计的原则来分析一下本项目的用户需求,并最终转化成用程序语言描述的模块。什么样的需求才是一个模块?模块应该具备如下3个特征。 (1)输入和输出:模块必须能被调用并且正确的返回调用,而且调用都是相对一个对象而言,这是模块独立性的一个体现。 (2)处理功能:模块必须可以对调用的输入数据进行灵活的处理,并为输出准备好处理结果。 (3)程序代码:用来实现模块功能的源代码。 2.3 确定系统最终模块 概要设计中最重要的就是确定此项目包括哪些模块。根据上两节讲述的设计原则和模块特征,将用户需求转化为下面的模块。 **************************************************************************/ 2.4 UML用例图 1.管理员权限 2.系统流程图 2.5 模块设计 1 数据库设计模块 2 用户登录识别模块 3主页面模块 4运动员信息浏览模块 5 运动员信息添加模块 6运动员信息查询修改模块 7运动员信息删除模块 三 详细设计 3.1 数据库设计 数据库名称:yangyun 表名:tablename 运动员信息表: 学号(INT型) 姓名(varchar) 班级(varchar) 项目名(varchar) 成绩(varchar) 1312210101 杨昀 13计本 100米 11.2S 1312210102 马凯 13金融 跳高 2.6M 1312210103 马嘉岐 14电子 50米短跑 14S 1312210104 刘飞 12英语 铅球 5M 1312210105 王青山 13信管 跳远 2.2米 1312210106 李连杰 14网络 1*400 45S 1312210107 任宇锴 13计本 跳高 2.8M 1312210108 乔欢 14网络 跳远 3.2M 1312210109 李小龙 15信管 4*400男子接力 40S 1312210110 周杰伦 13音乐 跳远 3.5M 1312210111 周星星 14表演 跳高 2.9M 1312210112 王泽林 15生物 铅球 6M 1312210113 刘德华 15表演 跳远 3.4M 1312210114 赵一德 13计本 跳远 3M 1312210115 周小华 14英语 跳高 2.5M 1312210116 王晶晶 15生物 4*400女子接力 50S 1312210117 刘华 15信管 铅球 6.9M 1312210118 刘毅 14英语 4*400男子接力 43S 1312210119 王缓缓 14网络 铅球 6.3M 3.2 模块及窗体设计 3.2.1 数据库模块设计 将数据库的连接包装在一个lianjie类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。 下表是他的基本属性 文件名 成员变量 成员方法 lianjie.java Connection conn PreparedStatement ps; Statement stmt ResultSet rs Public static int shanchu(String ) public static int xiugai(String) public static int zhucezh() 3.2.2 用户登录识别模块 代码封装在类Denlu,下表是他的基本属性 文件名 控件 成员方法 Denlu.java JLabel label1=new JLabel("管理员登录:"); JLabel label2=new JLabel("管理员:"); TextField name JLabel label3=new JLabel(" 密码:"); JPasswordField mima JButton button1=new JButton("登录"); JButton button2=new JButton("取消"); public Denlu() 3.2.3 主页面 以下是它的基本属性 文件名 控件名称 Jiemian.java JButton button1_0=new JButton("运动员信息浏览"); JButton button1_1=new JButton("添加运动员信息"); JButton button1_2=new JButton("查询修改运动员信息"); JButton button1_3=new JButton("删除运动员信息"); JButton button1_4=new JButton("退出系统"); 3.2.4运动员信息浏览 基本属性如下 文件名 控件名 Chakansuoyou.java JTable table; JButton button4_0=new JButton("刷新"); JButton button4_1=new JButton("返回主页"); 3.2.5 添加运动员信息 基本属性如下 文件名 控件名 Tianjia.java TextField num=new TextField(20); TextField name=new TextField(20); TextField banji=new TextField(20); TextField xiangmuming=new TextField(20); TextField chengji=new TextField(20); Label label1_0,label1_1,label1_2,label1_3,label1_4,label1_5; JButton button1_0=new JButton("添加"); JButton button1_1=new JButton("取消"); 3.2.6运动员信息的查询与修改 基本属性如下 文件名 控件名 Chagai.java TextField num=new TextField(20); TextField name=new TextField(20); TextField banji=new TextField(20); TextField xiangmuming=new TextField(20); TextField chengji=new TextField(20); Label label1_0,label1_1,label1_2,label1_3,label1_4,label1_5; JButton button1_0=new JButton("修改"); JButton button1_1=new JButton("取消"); JButton button1_2=new JButton("查询"); 3.2.7删除运动员信息 3.3主要程序代码 1.登陆主页: public class Denlu extends JFrame{ TextField name=new TextField(20); JPasswordField mima=new JPasswordField(15); JFrame f=new JFrame("榆林学院运动会成绩管理系统"); public Denlu(){ f.setBounds(450,200,400,300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setResizable(false); f.setLayout(null); JLabel label1=new JLabel("管理员登录:"); JLabel label2=new JLabel("管理员:"); JLabel label3=new JLabel(" 密 码:"); label1.setFont(new Font("Serif",Font.BOLD,20)); label1.setBounds(0,0,300,50); label2.setFont(new Font("Serif",Font.BOLD,15)); label3.setFont(new Font("Serif",Font.BOLD,15)); JButton button1=new JButton("登录"); JButton button2=new JButton("取消"); BHandler h=new BHandler(); button1.addActionListener(h); button2.addActionListener(h); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); f.add(label1); p1.setBounds(0,60,380,30); p1.add(label2); p1.add(name); p2.setBounds(0,90,380,30); p2.add(label3); p2.add(mima); p3.setBounds(0,150,420,40); p3.add(button1); p3.add(button2); f.add(p1); f.add(p2); f.add(p3); f.setVisible(true); } public static void main(String[] args) { Denlu a=new Denlu(); } public class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { if(event.getActionCommand()=="登录") { if(name.getText().equals("yangyun")&&mima.getText().equals("123")) { Jiemian zhuce=new Jiemian(); } else JOptionPane.showMessageDialog(Denlu.this,"卡号或者密码不正确!"); } else { f.dispose(); } } } } 2.主界面: public class Jiemian extends JFrame{ JFrame f=new JFrame("运动会成绩管理系统界面"); public Jiemian(){ JLabel label1; f.setBounds(400,150,600,450); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setResizable(false); f.setLayout(null); label1=new JLabel("欢迎进入榆林学院运动会成绩管理系统",SwingConstants.CENTER); label1.setFont(new Font("Serif",Font.BOLD,25)); JButton button1_0=new JButton("运动员信息浏览"); JButton button1_1=new JButton("添加运动员信息"); JButton button1_2=new JButton("查询修改运动员信息"); JButton button1_3=new JButton("删除运动员信息"); JButton button1_4=new JButton("退 出 系 统"); BHandler h=new BHandler(); button1_0.addActionListener(h); button1_0.setFont(new Font("宋体", Font.BOLD, 20)); button1_0.setSize(400,35); button1_1.addActionListener(h); button1_1.setFont(new Font("宋体", Font.BOLD, 20)); button1_1.setSize(400,35); button1_2.addActionListener(h); button1_2.setFont(new Font("宋体", Font.BOLD, 20)); button1_2.setSize(400,35); button1_3.addActionListener(h); button1_3.setFont(new Font("宋体", Font.BOLD, 20)); button1_3.setSize(400,35); button1_4.addActionListener(h); button1_4.setFont(new Font("宋体", Font.BOLD, 20)); button1_4.setSize(400,35); JPanel p0=new JPanel(); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); p0.setBounds(0,0,600,60); p0.add(label1); p1.setLayout(null); p1.setBounds(100,60,600,40); p1.add(button1_0); p2.setLayout(null); p2.setBounds(100,120,600,40); p2.add(button1_1); p3.setLayout(null); p3.setBounds(100,180,600,40); p3.add(button1_2); p4.setLayout(null); p4.setBounds(100,240,600,40); p4.add(button1_3); p5.setLayout(null); p5.setBounds(100,300,600,40); p5.add(button1_4); f.add(p0); f.add(p1); f.add(p2); f.add(p3); f.add(p4); f.add(p5); f.setVisible(true); } private class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { if(event.getActionCommand()=="运动员信息浏览") {Chakansuoyou a=new Chakansuoyou(); } else if(event.getActionCommand()=="添加运动员信息") { Tianjia b=new Tianjia();} else if(event.getActionCommand()=="查询修改运动员信息") { Chagai b=new Chagai();} else if(event.getActionCommand()=="删除运动员信息") { Shanchu b=new Shanchu();} else if(event.getActionCommand()=="退 出 系 统") { f.dispose();} } } } 3.运动员信息浏览: public class Chakansuoyou extends JFrame{ JFrame f=new JFrame("查看所有运动员信息"); public static Object[][] data=new Object[30][5]; JTable table; String[] lieming={"学 号","姓 名","班 级","项目名","成绩"}; public Chakansuoyou(){ f.setBounds(400,150,600,450); //f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //f.setResizable(false); f.setLayout(null); table=new JTable(data,lieming); table.setEnabled(false); //表格不可编辑 JButton button4_0=new JButton("刷新"); JButton button4_1=new JButton("返回主页"); BHandler h=new BHandler(); button4_0.addActionListener(h); button4_1.addActionListener(h); JPanel p1=new JPanel(); JPanel p2=new JPanel(); p1.setBounds(0,0,600,40); p1.add(button4_0); p1.add(button4_1); p2.setBounds(0,44,600,410); p2.add(new JScrollPane(table)); f.add(p1); f.add(p2); f.setVisible(true); } private class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { if(event.getActionCommand()=="刷新") { int h=0,l=0; //data=new Object[30][5]; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/yangyun","root",""); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from tablename"); while(rs.next()){ System.out.println(rs.getString("Uname")); data[h][l++]=rs.getString("ID"); data[h][l++]=rs.getString("Uname"); data[h][l++]=rs.getString("Ubanji"); data[h][l++]=rs.getString("Uxiangmuming"); data[h][l++]=rs.getString("Uchengji"); h++;l=0; } rs.close(); stmt.close(); conn.close(); table=new JTable(data,lieming); f.setVisible(true); } catch(Exception sqle){ System.err.println(sqle); JOptionPane.showMessageDialog(Chakansuoyou.this,"系统故障,请稍后在试!"); } } else f.dispose(); } } } 4运动员信息添加: public class Tianjia extends JFrame{ JFrame f=new JFrame("添加运动员"); TextField num=new TextField(20); TextField name=new TextField(20); TextField banji=new TextField(20); TextField xiangmuming=new TextField(20); TextField chengji=new TextField(20); public Tianjia(){ //添加运动员 JLabel label1_0,label1_1,label1_2,label1_3,label1_4,label1_5; JPanel p1,p2,p3,p4,p1_0,p1_1,p1_2,p1_3,p1_4,p1_5,p1_6; f.setBounds(400,150,600,450); //f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setResizable(false); f.setLayout(null); JButton button1_0=new JButton("添加"); JButton button1_1=new JButton("取消"); BHandler h=new BHandler(); button1_0.addActionListener(h); button1_1.addActionListener(h); label1_0=new JLabel("请输入要添加的运动员信息",SwingConstants.CENTER); label1_0.setFont(new Font("Serif",Font.BOLD,25)); label1_1=new JLabel("学 号:",SwingConstants.CENTER); label1_1.setFont(new Font("Serif",Font.BOLD,15)); label1_2=new JLabel("姓 名:",SwingConstants.CENTER); label1_2.setFont(new Font("Serif",Font.BOLD,15)); label1_3=new JLabel("班 级:",SwingConstants.CENTER); label1_3.setFont(new Font("Serif",Font.BOLD,15)); label1_4=new JLabel("项目名:",SwingConstants.CENTER); label1_4.setFont(new Font("Serif",Font.BOLD,15)); label1_5=new JLabel("成 绩:",SwingConstants.CENTER); label1_5.setFont(new Font("Serif",Font.BOLD,15)); p1_0=new JPanel(); p1_0.setBounds(0,0,400,80); p1_0.add(label1_0); p1_1=new JPanel(); p1_1.setBounds(0,80,550,50); p1_1.add(label1_1); p1_1.add(num); p1_2=new JPanel(); p1_2.setBounds(0,130,550,50); p1_2.add(label1_2); p1_2.add(name); p1_3=new JPanel(); p1_3.setBounds(0,180,550,50); //p1_3.setBackground(Color.blue); p1_3.add(label1_3); p1_3.add(banji); p1_4=new JPanel(); p1_4.setBounds(0,230,550,50); p1_4.add(label1_4); p1_4.add(xiangmuming); p1_5=new JPanel(); p1_5.setBounds(0,280,550,50); p1_5.add(label1_5); p1_5.add(chengji); p1_6=new JPanel(); p1_6.setBounds(0,330,600,50); p1_6.add(button1_0); p1_6.add(button1_1); f.add(p1_0); f.add(p1_1); f.add(p1_2); f.add(p1_3); f.add(p1_4); f.add(p1_5); f.add(p1_6); f.setVisible(true); } private class BHandler implements ActionListener { public void actionPerformed (ActionEvent event) { if(event.getActionCommand()=="添加") {int q; q=Lianjie.zhucezh(num.getText(),name.getText(),banji.getText(),xiangmuming.getText(),chengji.getText()); if(q==1) JOptionPane.showMessageDialog(Tianjia.this,"添加成功!"); else JOptionPane.showMessageDialog(Tianjia.this,"系统故障,请稍后在试!"); } else { f.dispose(); } } } } 5.运动员信息查询与修改: public class Chagai extends JFrame{ JFrame f=new JFrame("修改运动员信息"); TextField num=new TextField(20); TextField name=new TextField(20); TextField banji=new TextField(20); TextField xiangmuming=new TextField(20); TextField chengji=new TextField(20); public Chagai(){ JLabel label1_0,label1_1,label1_2,label1_3,label1_4,label1_5; JPanel p1,p2,p3,p4,p1_0,p1_1,p1_2,p1_3,p1_4,p1_5,p1_6; f.setBounds(400,150,600,450); //f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setResizable(false); f.setLayout(null)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服