ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:311.04KB ,
资源ID:9357182      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9357182.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于数据库实现的选手比赛计分系统.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于数据库实现的选手比赛计分系统.doc

1、[在此处键入] 《Java语言程序设计》课程设计 课设题目: 基于数据库实现的选手比赛评分系统 院 系: 计算机科学与技术学院 专 业: 物联网工程 学生姓名: 程念 学号: 20123921036 学生姓名: 张松青 学号: 20123921035 学生姓名:

2、施毅 学号: 20123921037 指导教师: 段善荣 2014 年 12 月 目录 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

3、主界面类设计 10 4.2.1 ScoreBoard类 10 4.2.2 ShowData类 14 4.3 从数据库读入数据的类的设计 16 4.4 评分统计类设计 17 5系统难点及实现 18 6.实验设计总结 18 附录 19 题目六:基于数据库实现的选手比赛计分系统 1统概述 1.1背景与意义 计分系统是比赛最基本的技术支持系统,担负着所有比赛成绩的采集和基本信息处理。它作为采集、处理、显示比赛成绩及赛事中计分的系统,对赛事的顺利进行至关重要。它主要分为数据采集部分、数据处理部分部分和显示部分,其中数据采集部分主要为采集裁判给出的选手成绩;数据处理部分

4、通过计算机软件将比赛成绩进行统计、平均、存储;显示部分显示选手的得分信息。因此,要求能够快速、准确地进行数据处理。 1.2任务要求 对参赛结果分数进行处理:参赛选手n人(n>1),评委m人(m>2),评委给每一选手打一个分数score(分数score为小于等于10的一个正实数)。选手的最后得分lastScore计算方法为 (1)m<9时,去掉一个最高分和一个最低分后另m-2个得分的平均值。 (2)m≥9时,去掉两个最高分和两个最低分后另m-4个得分的平均值。 请设计比赛分数图形化界面,实现录入信息到数据库的功能,输入n个选手的编号(一个正整数)、姓名(一个字符串)以及m个评委给出的得

5、分。 请编制程序,同时构建一个应用程序,显示选手的原始成绩以及最后成绩,原始成绩依次从数据库读入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

6、3 5 liuyifan 9.5 9.1 9.8 9.2 9.0 9.5 8.9 那么,程序执行后,屏幕显示为: 参赛号 姓 名 最高分 最低分 累积分   最后得分 1 zhangjin 9.7 7.9 44.9  8.98 2 lintao 9.3 8.4 42.9 8.58 3 guojian 8.9 8.4 42.2 8.44 4 maling 8.9 8.9 46.3 9.26 5 liuyifan   9.8 8.8 45.8 9.1 思考:可进一步考虑找出比赛的第1至第k名,也在屏幕同时输出相关的

7、结果信息(k小于等于n,并规定若多个选手最后得分相同时,则有效分(即已删除原来的最高分后)中最高分高者名次优先) 2求分析 2.1程序功能 根据设计任务要求可以得出所涉及程序必须具有以下功能: 1.显示选手编号,计算选手得分; 2.根据选手的最后得分排序(本程序按照分数由高到低排列); 3.在输入评委人数后(如图2.1),能够按题目的要求来自动选择最后得分的计算方法,进入选手计分系统(如图2.2)。 图2.1 选择评委 4.系统主界面: 图2.2 选手计分系统 2.2系统主要功能图 1. 我们做的系统主要就是三个按钮的功能实现,因为评

8、委人数是不定的,所以我们需要随时做出调整,所以在我们第一次输入评委人数是已经确定了评委人数,但是我们有需要修改,所以我们就有修改评委人数这一按钮。 2. 我们在确定评委人人数以后就要对我们所选取的评委所给的分数对每个选手的分数进行计算。排出名次,以便我们更方面的看出选手得比赛结果,所以显示最后成绩的按钮功能为:根据你所确定的评委打出的分数计算出所有选手的最高分、最低分、总分,最后得分,排名。 3. 我们需要把我们更新后的数据进行保存 2.3系统总流程图 流程图就是我们按照我们的想法一步步的实现我们所需要的功能的描述,能够清晰、快速的制动我们应该干什么,怎么做?比赛评分系统的流程

9、图开始的时候我们需要确定我们的评委人数,在系统中输入评委人数,在输入时,我们需要判定评委人数输入是否合法,符合我们所设定的要求,热然后根据评委人数从文件中读取评委成绩。然后就是各个按钮的功能实现流程图的实现,在后面有具体描述。如图2.5所示: 开始 请输入参赛人数 输入评委人数 单击“统计结果” 单击“关闭” 单击“重新开始” 保存到数据库并关闭窗口 显示选手的最后结果 显示选择评委的界面 结束 图2.5 系统流程图 3功能模块概述 3.1选择评委界面模块的概述 这个界面我们用到了就是

10、用来生成主界面的“选择评委EnterFrame”主类,它继承了JFrame,其中包括了程序运行的主方法段,主要是取得评委人数的具体值,然后进行参数传递到下个界面进行计算。 3.2显示最后结果功能描述: 这个功能模块主要是用于对选手最终成绩的评判进行实现的过程。我们接收到的数据存入到数据库,然后将计算结果显示到屏幕表格。 3.3 数据库部分 本系统使用MySQL数据库,首先在MySQL中建库建表,建立数据库score,dbUser="root",dbPassword="123456",并且在score数据库中建立三张表,result_data表存贮评委打分信息,即选手id,最

11、高分(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) D

12、EFAULT 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(

13、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

14、数据库连接部分 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 getCo

15、nn(){ 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 存放主函数

16、 在选择评委界面我们定义了一个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

17、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; im

18、port 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.scor

19、e.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){ th

20、is.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.CENT

21、ER); 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

22、i++) { for(int j=0;j

23、 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 st

24、ub if(e.getSource()==jb1){ //数据存入数据库,同时处理得分 for(int i=0;i scoreList=new ArrayList(); int userId=-1; for(int j=0;j

25、).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().toStrin

26、g())); 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(); } } n

27、ew 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;

28、 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 = {"参

29、赛号", "姓名","最高分","最低分","累积分","最后得分","排名"}; 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()); ar

30、r[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);

31、 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)

32、 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 EnterFr

33、ame(); 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 评分统计类 类名

34、功能 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));

35、 data.setMinScore(list.get(0)); Double sum=0.0,lastScore=0.0; int count=0; if(m<9){ count=1; }else{ count=2; } for(int i=count;i

36、sum/(m-4);//m≥9时,去掉两个最高分和两个最低分后另m-4个得分的平均值 } data.setSumScore(sum); data.setUserId(userId); data.setAvgScore(lastScore); return data; } } 5系统难点及实现 1.我们做了两个界面,需要把第一个界面的JTextfiled里输入的数字传递到第二个界面中使用,以判定评委人数,选择算法 解决方法: 把两个java文件放入同一包中。然后再第一个java界面中定义一个成员变量。然后把输入的值出入到成员变量中,在

37、java文件中可以直接访问这一成员变量。 2.按钮的事件处理中.,读取出事成绩和显示最后成绩中需要调用同一方法。,但是在调用的过程中总是出现问题。 3.做这个系统时,我们刚开始的分析是错误的,我们刚开始时分析的时候把读取初始成绩分析为显示成绩的最高分最低分,然后显示最后成绩的时候是出现总分和平均分,所以在做的时候后就会出现问题,,鉴于我们已经做了一部分,所以就把读取初始成绩改为修改评委人数。 4.在此过程中我们遇到的问题是,界面总是新建,以前的没有办法释放掉,然后我们在按钮的事件处理前都先释放原有的界面来实现这一错误。 6.实验设计总结 通过这次的课程设计,我们深深体会到团队合作的重要性,每一部分的完成了,都是经过小组的一起努力实现,同时体会到做设计的艰辛,通过这个小小的系统的设计,深感自己需要学习的东西还很多,要走的路还很长,虽然本设计做的很简陋,但是我们感觉很欣慰,我们小组会再接再厉,共同进步! 附录 组员 任务分配 自评 最后得分 123921036 程念 负责总体程序编写 90 123921035 张松青 负责程序调试 85 123921037 施毅 负责实验报告文档撰写 85

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服