




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在此处键入 J Ja av va a语语言言程程序序设设计计 课课程程设设计计 课设题目 课设题目 基于数据库实现的选手比赛评分系统 院院 系 系 计算机科学与技术学院 专专 业 业 物联网工程 学生姓名 学生姓名 程念学号 20123921036 学生姓名 学生姓名 张松青学号 学号 20123921035 学生姓名 学生姓名 施毅学号 20123921037 在此处键入 指导教师 指导教师 段善荣 20142014 年年 1212 月月 目录 1 统概述统概述 2 1 1 背景与意义 2 1 2 任务要求 2 2 求分析求分析 3 2 1 程序功能 3 2 2 系统主要功能图 5 2 3 系统总流程图 5 3 功能模块概述功能模块概述 6 3 1 选择评委界面模块的概述 6 3 2 显示最后结果功能描述 7 3 3 数据库部分 7 3 3 L脚本语言 8 3 3 2 数据库连接部分 9 4 类的设计类的设计 9 4 1 主函数类的设计 9 4 2 主界面类设计 10 在此处键入 4 2 1 SCOREBOARD类 10 4 2 2 SHOWDATA类 14 4 3 从数据库读入数据的类的设计 16 4 4 评分统计类设计 17 5 系统难点及实现系统难点及实现 18 6 实验设计总结实验设计总结 18 附录附录 19 题目六 基于数据库实现的选手比赛计分系统 1 统概述 1 11 1 背景与意义背景与意义 计分系统是比赛最基本的技术支持系统 担负着所有比赛成绩的采集和基本信息处理 它作为采集 处理 显示比赛成绩及赛事中计分的系统 对赛事的顺利进行至关重要 它 主要分为数据采集部分 数据处理部分部分和显示部分 其中数据采集部分主要为采集裁 判给出的选手成绩 数据处理部分通过计算机软件将比赛成绩进行统计 平均 存储 显 示部分显示选手的得分信息 因此 要求能够快速 准确地进行数据处理 1 21 2 任务要求任务要求 对参赛结果分数进行处理 参赛选手 n 人 n 1 评委 m 人 m 2 评委给每一选 手打一个分数 score 分数 score 为小于等于 10 的一个正实数 选手的最后得分 lastScore 计算方法为 1 m 9 时 去掉一个最高分和一个最低分后另 m 2 个得分的平均值 2 m 9 时 去掉两个最高分和两个最低分后另 m 4 个得分的平均值 在此处键入 请设计比赛分数图形化界面 实现录入信息到数据库的功能 输入 n 个选手的编号 一个正整数 姓名 一个字符串 以及 m 个评委给出的得分 请编制程序 同时构建一个应用程序 显示选手的原始成绩以及最后成绩 原始成绩 依次从数据库读入 n 个选手的有关信息 而后按上述规定方法计算出每一个选手的最后得 分 而且存放到数据库中 并在屏幕上用表格方式输出每位选手的得分以及最后得分 假设参赛选手人数 n 5 评委人数 m 7 录入的数据为 1 zhangjin 8 8 9 3 7 9 8 7 8 9 9 7 9 2 2 lintao 8 9 8 2 8 6 8 8 8 5 9 1 9 3 3 guojian 8 9 8 4 8 7 8 6 8 6 8 4 8 6 4 maling 7 9 8 3 8 5 8 6 8 5 8 9 8 3 5 liuyifan 9 5 9 1 9 8 9 2 9 0 9 5 8 9 那么 程序执行后 屏幕显示为 参赛号姓 名最高分最低分累积分 最后得分 1zhangjin9 77 944 9 8 98 2lintao9 38 442 98 58 3guojian8 98 442 28 44 4maling8 98 946 39 26 5liuyifan 9 88 845 89 1 思考 可进一步考虑找出比赛的第1至第k名 也在屏幕同时输出相关的结果信息 k小 于等于n 并规定若多个选手最后得分相同时 则有效分 即已删除原来的最高分后 中最 高分高者名次优先 2 求分析 2 1 程序功能程序功能 根据设计任务要求可以得出所涉及程序必须具有以下功能 1 显示选手编号 计算选手得分 2 根据选手的最后得分排序 本程序按照分数由高到低排列 3 在输入评委人数后 如图 2 1 能够按题目的要求来自动选择最后得分的计算方法 进入选手计分系统 如图 2 2 在此处键入 图 2 1 选择评委 4 系统主界面 图 2 2 选手计分系统 在此处键入 2 2 系统主要功能图系统主要功能图 1 我们做的系统主要就是三个按钮的功能实现 因为评委人数是不定的 所以我们需 要随时做出调整 所以在我们第一次输入评委人数是已经确定了评委人数 但是我们有需 要修改 所以我们就有修改评委人数这一按钮 2 我们在确定评委人人数以后就要对我们所选取的评委所给的分数对每个选手的分 数进行计算 排出名次 以便我们更方面的看出选手得比赛结果 所以显示最后成绩的按 钮功能为 根据你所确定的评委打出的分数计算出所有选手的最高分 最低分 总分 最 后得分 排名 3 我们需要把我们更新后的数据进行保存 2 3 系统总流程图系统总流程图 流程图就是我们按照我们的想法一步步的实现我们所需要的功能的描述 能够清晰 快速的制动我们应该干什么 怎么做 比赛评分系统的流程图开始的时候我们需要确定我 们的评委人数 在系统中输入评委人数 在输入时 我们需要判定评委人数输入是否合法 符合我们所设定的要求 热然后根据评委人数从文件中读取评委成绩 然后就是各个按钮 的功能实现流程图的实现 在后面有具体描述 如图 2 5 所示 开始 请输入参赛人数 单击 重 新开始 单击 统 计结果 单击 关 闭 输入评委人数 在此处键入 图 2 5 系统流程图 3 功能模块概述 3 1 选择评委界面模块的概述选择评委界面模块的概述 这个界面我们用到了就是用来生成主界面的 选择评委EnterFrame 主类 它继承了 JFrame 其中包括了程序运行的主方法段 主要是取得评委人数的具体值 然后进行参数 传递到下个界面进行计算 3 2 显示最后结果功能描述 显示最后结果功能描述 这个功能模块主要是用于对选手最终成绩的评判进行实现的过程 我们接收到的数据 存入到数据库 然后将计算结果显示到屏幕表格 显示选择评委 的界面 显示选手的最后 结果 保存到数据库并 关闭窗口 结束 在此处键入 3 3 数据库部分数据库部分 本系统使用 MySQL 数据库 首先在 MySQL 中建库建表 建立数据库 score dbUser root dbPassword 123456 并且在 score 数据库中建立三张表 result data 表存贮评委打分信息 即选手 id 最高分 max 最低分 min 平均分 avg 总分和 sum core 表存储参赛选手最终得分 user 表存储参赛选手信息 结果如下图 3 3 图 3 3 3 3 l MySQL 脚本语言脚本语言 if exists select name from sysobjects where name result data drop table result data CREATE TABLE result data id char 18 NOT NULL 在此处键入 user id char 18 DEFAULT NULL max char 5 DEFAULT NULL min char 5 DEFAULT NULL sum char 5 DEFAULT NULL avg char 5 DEFAULT NULL PRIMARY KEY id if exists select name from sysobjects where name score drop table score CREATE TABLE score id char 18 NOT NULL user id char 18 NOT NULL score char 5 DEFAULT NULL PRIMARY KEY id if exists select name from sysobjects where name play drop table play CREATE TABLE play id char 18 NOT NULL number char 18 DEFAULT NULL name varchar 30 DEFAULT NULL PRIMARY KEY id 3 3 2 数据库连接部分数据库连接部分 package com score db import java sql public class DBHelper private String dbUrl jdbc mysql localhost 3306 score 在此处键入 private String dbUser root private String dbPassword 123456 private String jdbcName com mysql jdbc Driver 获取数据库连接 public Connection getConn Connection conn null try Class forName jdbcName catch Exception e try conn DriverManager getConnection dbUrl dbUser dbPassword catch SQLException ex return conn 4 类的设计 4 1 主函数类的设计主函数类的设计 这里设计了一个类 表 4 1 主函数类 类名功能 EnterFrame 存放主函数 在选择评委界面我们定义了一个 EnterFrame 主类 然后来存放主函数 显示主界面 public static void main String args new EnterFrame 在此处键入 4 2 主界面主界面类设计类设计 这里设计了 2 个类 表 4 2 主界面类 类名功能 ScoreBoard 显示主界面 ShowData 显示统计结果 4 2 1 ScoreBoard 类类 创建 ScoreBoard 类属性 package com score ui import java awt BorderLayout import java awt GridLayout import java awt HeadlessException import java awt event ActionEvent import java awt event ActionListener import java util ArrayList import java util Arrays import java util Collections import java util List import javax swing JButton import javax swing JFrame import javax swing JLabel import javax swing JPanel import javax swing JTextField 在此处键入 import com score dao ResultDataDao import com score dao ScoreDao import com score dao UserDao import com score model ResultData import com score model Score import com score model User import com score tools DataUtil public class ScoreBoard extends JFrame implements ActionListener JPanel jp1 jp2 jp2 1 jp2 2 jp3 JLabel jp1 jlb1 jp2 jlb1 jp2 lib2 tiltes JTextField jp2 jtf1 jp2 jtf2 scores JButton jb1 private int n m n 个选手 m 个评委 public ScoreBoard int n int m this n n this m m jp1 jlb1 new JLabel 计分界面 JLabel CENTER jp1 new JPanel jp1 add jp1 jlb1 jp2 2 new JPanel new BorderLayout jp2 1 new JPanel new GridLayout 1 m 2 20 20 jp2 new JPanel new GridLayout n m 2 20 20 jp2 jlb1 new JLabel 参赛人编号 JLabel CENTER jp2 lib2 new JLabel 参赛人姓名 JLabel CENTER jp2 1 add jp2 jlb1 jp2 1 add jp2 lib2 tiltes new JLabel m for int i 0 i m i 在此处键入 tiltes i new JLabel 评委 i 1 JLabel CENTER jp2 1 add tiltes i scores new JTextField n m 2 for int i 0 i n i for int j 0 j m 2 j scores i j new JTextField jp2 add scores i j jp2 2 add jp2 1 North jp2 2 add jp2 Center jb1 new JButton 统计结果 jb1 addActionListener this jp3 new JPanel jp3 add jb1 this add jp1 North this add jp2 2 Center this add jp3 South this setSize 200 m 100 n this setDefaultCloseOperation JFrame EXIT ON CLOSE this setVisible true Override public void actionPerformed ActionEvent e TODO Auto generated method stub 在此处键入 if e getSource jb1 数据存入数据库 同时处理得分 for int i 0 i n i User user new User List scoreList new ArrayList int userId 1 for int j 0 j m 2 j if j 0 user setNumber Integer parseInt scores i j getText trim toString else if j 1 user setName scores i j getText trim toString userId new UserDao AddUser user else Score score new Score score setUser id userId scoreList add Double parseDouble scores i j getText trim toString score setScore Double parseDouble scores i j getText trim toString new ScoreDao AddScore score Collections sort scoreList new ResultDataDao AddResult DataUtil calculate scoreList userId m this dispose new ShowData n 在此处键入 4 2 2 ShowData 类类 创建 ShowData 类属性 package com score ui import java awt event ActionEvent import java awt event ActionListener import java util List import javax swing JButton import javax swing JFrame import javax swing JPanel import javax swing JScrollPane import javax swing JTable import com score dao CleanDao import com score dao ResultDataDao import com score model ResultData public class ShowData extends JFrame implements ActionListener JTable table JScrollPane jsp JPanel jp1 JButton jb1 jb2 String columnNames 参赛号 姓名 最高分 最低分 累积分 最后得分 排 名 public ShowData int n List datas new ResultDataDao getDataList Object datatable new Object n 7 int i 0 for ResultData data datas 在此处键入 String arr new String 7 arr 0 String valueOf data getNumber arr 1 data getName arr 2 data getMaxScore toString arr 3 data getMinScore toString arr 4 data getSumScore toString arr 5 data getAvgScore toString arr 6 String valueOf i 1 datatable i arr i table new JTable datatable columnNames table setEnabled false jsp add table jsp new JScrollPane jsp setViewportView table this add jsp Center jp1 new JPanel jb1 new JButton 重新开始 jb2 new JButton 关闭 jb1 addActionListener this jb2 addActionListener this jp1 add jb1 jp1 add jb2 this add jp1 South this setSize 400 200 this setDefaultCloseOperation JFrame EXIT ON CLOSE this setVisible true Override 在此处键入 public void actionPerformed ActionEvent e TODO Auto generated method stub if e getSource jb1 new EnterFrame CleanDao deleteData this dispose else CleanDao deleteData this dispose 4 3 从数据库读入数据的类的设计从数据库读入数据的类的设计 表 4 3 数据库读入数据类设计 类名功能 CleanDao 清除选手信息 ResultDataDao 从 result data 表读入数据 ScoreDao 显示选手 id 和 score UserDao 获取指定 ID 的实体 Bean 4 4 评分统计类设计评分统计类设计 表 4 4 评分统计类 类名功能 DataUtil 统计选手最终得分 package com score tools import java util List import com score model ResultData 在此处键入 public class DataUtil public static ResultData calculate List list int userId int m ResultData data new ResultData data setMaxScore list get list size 1 data setMinScore list get 0 Dou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东教育出版社出版六年级品德与社会复习
- 2026届长沙市重点中学化学九年级第一学期期末经典模拟试题含解析
- 山东省肥城市2026届九上化学期中学业质量监测试题含解析
- 2026届江苏省江阴市澄要片英语九年级第一学期期末检测试题含解析
- 2026届四川省甘孜县九年级化学第一学期期中学业水平测试模拟试题含解析
- 2026届安徽省宿州市鹏程中学化学九年级第一学期期末教学质量检测模拟试题含解析
- 水电人防劳务合同5篇
- 办公空间租赁合同主体变更及租金调整协议
- 财务稳健型私人小企业员工薪资支付合同
- 跨国婚姻离婚协议:资产评估与跨境财产分配
- 品酒师(黄酒)理论知识考核要素细目表四级
- 山茱萸培训课件
- 健康照护师测试题及答案【300题】附有答案
- 西师版五年级上册数学全册教案设计
- 液压软管接头24°锥密封端软管接头规范指引
- 2024挡烟垂壁包工合同协议书
- 2024年中医经典知识竞赛考试题库300题(含答案)
- 二级简码口诀和二级简码表
- 广州版初中英语词汇表
- 肿瘤与冠心病 - 副本
- 共享农机管理平台综合解决方案
评论
0/150
提交评论