小白学java------做一个歌手比赛系统(二)

2023-05-16

      完整代码加实验报告都在https://download.csdn.net/download/qq_39980334/11232331

我已经设置成0积分下载了,有需要的自行下载,如果页面打不开可能还在审核中(2020.7.7设置的),有问题的多看看代码和实验报告,我已经记不太清里面的代码的详细细节了。

好久没更新了,现在的界面进行了更新,连接上了数据库,虽然连接数据库出了很大的问题,我的配置是eclipse 32位+JDK1.6+SQL2008R2 下载了jdbc3.0驱动程序但还是连接不成功,网上找了很多方法依然连不上,最后下了JDK1.7 问题就解决了,更换JDK的时候要新建一个项目才能更换成功.

连上数据库之后的界面:

 

 

   依然还有一些功能没有实现,追加数据和评委评分基本上实现要求,添加的数据会插入数据库中,评委评分也会保存入数据库,但是没法在表格中刷新显示,只有下一次打开的时候才有刷新,这是需要改进的地方,还有排序功能,现在还在研究当中

我的数据库文件

评分界面

 

上代码:

主界面

 

package model1;


import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;


import utils.DBHandler;






public class SingerManage extends JFrame implements ActionListener{
JPanel jp1, jp2,jp3,p,jp4;
JLabel jl1,jl2;
JButton jb1, jb2, jb3, jb4,jb5,jb6;
JTable jt;
JScrollPane jsp = null;
JTextField jtf;
JTable jt2 ;
JScrollPane jsp2 ;

Connection conn = null;
PreparedStatement ps = null;


public SingerManage(){

jp1 = new JPanel();
jtf = new JTextField(10);
jb1 = new JButton("数据查询");
jb1.addActionListener(this);
jl2 = new JLabel("欢迎进入歌手管理系统!");

jp3=new JPanel();
jl1 = new JLabel("请输入选手编号:");

jp1.add(jl2);

jp3.add(jl1);
jp3.add(jtf);
jp3.add(jb1);

jp2 = new JPanel();
jb2 = new JButton("成绩排序");
jb2.addActionListener(this);
jb3 = new JButton("追加数据");
jb3.addActionListener(this);
jb4 = new JButton("写入数据文件");
jb4.addActionListener(this);
jb5 = new JButton("评委评分");
jb5.addActionListener(this);
jb6 = new JButton("退出系统");
jb6.addActionListener(this);

jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
jp2.add(jb5);
jp2.add(jb6);

Singermodel singer=new Singermodel();
String[] columnNames={"姓名","编号","得分"};
jt = new JTable(singer.queryData(),columnNames);
jsp = new JScrollPane(jt);

jp2.setLayout(new GridLayout(5, 1));



this.add(jp1, "North");
this.add(jp2, "East");
this.add(jp3,"South");
this.add(jsp,"Center");

this.setTitle("歌手管理系统");
this.setSize(600, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1){                  //数据查询
String n1=jtf.getText();
int n = Integer.valueOf(n1);
n = this.jt.getSelectedRow();

}else if(e.getSource()==jb3){                //追加数据
SingerAdd add=new SingerAdd();
Singermodel singer=new Singermodel();
jt = new JTable(singer);


}else if(e.getSource()==jb5){                //评委评分
  Judge jud=new Judge();
}else if(e.getSource()==jb2){               // "成绩排序"
Suquence squ=new Suquence();

}else if(e.getSource()==jb4){               //"写入数据文件"
DBHandler sql=new DBHandler();
sql.queryAll();
System.out.print(sql);
}else if(e.getSource()==jb6){            //"退出系统"
System.exit(0);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SingerManage demo = new SingerManage();
}



}

 

添加类:

 

package model1;


import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;


import model3.Add;
import model3.SqlConnection;


public class SingerAdd extends JDialog implements ActionListener  {
JPanel jp1,jp2,jp3;
JLabel jl1, jl2,jl3;
JButton jb1, jb2;
JTextField jf1, jf2,jf3;
public SingerAdd(){


jl1 = new JLabel("姓名");
jl2 = new JLabel("编号");
jl3 =new JLabel("得分");

jf1 = new JTextField();
jf2 = new JTextField();
jf3 = new JTextField();

jb1 = new JButton("添加");
jb2 = new JButton("取消");

jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();

jp1.setLayout(new GridLayout(4, 1));
jp2.setLayout(new GridLayout(4, 1));

jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);

jp2.add(jf1);
jp2.add(jf2);
jp2.add(jf3);
jp3.add(jb1);
jp3.add(jb2);

this.add(jp1, BorderLayout.WEST);
this.add(jp2, BorderLayout.CENTER);
this.add(jp3, BorderLayout.SOUTH);

jb1.addActionListener(this);

this.setTitle("追加数据");
this.setSize(300, 200);
this.setVisible(true);


  }


public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1){   //添加
int q;
SqlFunction sql=new SqlFunction();
q=sql.add(jf1.getText(),jf2.getText(),jf3.getText());
if(q==1)
JOptionPane.showMessageDialog(SingerAdd.this,"添加成功!");
else
  JOptionPane.showMessageDialog(SingerAdd.this,"系统故障,请稍后在试!");
}
if(e.getSource()==jb2){   //取消
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}
}


}

 

评分类:

package model1;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.StringTokenizer;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;


import model3.Score;
import model3.SqlConnection;


public class Judge extends JFrame implements ActionListener  {
JPanel jp1,jp2,jp3,jp4,jp5;
JLabel jl1, jl2,jl3,jl4;
JButton jb1, jb2,jb3;
JTextField jf1, jf2,jf3,jf4;
JTextArea ja1;
JFrame frame=new JFrame();


Container contentPane=frame.getContentPane();//获得放置组件的容器对象

@SuppressWarnings("deprecation")
public Judge(){
jl1 = new JLabel("请输入选手姓名");
jl2 = new JLabel("请输入选手编号");
jl3=new JLabel("请十个评委评分");
jb2=new JButton("得分");
   jb2.setBackground(Color.cyan);
jb2.addActionListener(this);

jf1 = new JTextField(10);
jf2 = new JTextField(10);
jf3 = new JTextField(10);
ja1=new JTextArea("",10,10);


jb1 = new JButton("Random");
jb1.addActionListener(this);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp5= new JPanel();

jp1.add(jl1);
jp1.add(jl2);
jp1.add(jb2);

jp2.add(jf3);
jp2.add(jf1);
jp2.add(jf2);
jp2.add(jb1);

jp3.add(jl3);
jp3.add(ja1);




contentPane.setLayout(new GridLayout(1,1));//布局2行1列
jp1.setLayout(new GridLayout(4, 1));//面板布局3行1列
jp2.setLayout(new GridLayout(4, 1));//
jp3.setLayout(new GridLayout(1, 1));//
jp5.setLayout(new GridLayout(2, 2));//

jp5.add(jp1);//将面板1放入面板5中
jp5.add(jp2);//
jp5.add(jp3);//

contentPane.add(jp5);//将面板5放入框架容器




frame.pack();
frame.setTitle("评委评分");
frame.setSize(400,400);
frame.show();

}
public void countSore(String s){
StringTokenizer tokens=new StringTokenizer(s);//使用默认的分隔符集合:空格、换行、Tab符合回车作分隔符
     double sum=0;
     int i;
     List score=new ArrayList();
     for(i=0;i<=9;i++){
     
       String temp=tokens.nextToken();//从文本区取下一个数据
       double n = Double.valueOf(temp);
       sum+=n;
       score.add(n);
     } 
     double max=Collections.max(score);
     double min=Collections.min(score);
     sum=sum-max-min;
     double sc=sum/8;
     jf2.setText(""+sc);
}

public void random(){
int sum=0;
List list=new ArrayList();
for(int i=0;i<=9;i++){
int n=(int)(Math.random()*9+1);
sum+=n;
list.add(n);
}
int max=Collections.max(list);
   int min=Collections.min(list);
   sum=sum-max-min;
   int sc=sum/8;
   jf2.setText(""+sc);
        
}

public void actionPerformed(ActionEvent e) {
String name=jf3.getText();
String number=jf1.getText();

if(e.getSource()==jb2){    //得分
String s=ja1.getText();
countSore(s);
SqlFunction sql=new SqlFunction();
int  j=sql.score(jl2.getText(),jf2.getText());
if(j==1)
JOptionPane.showMessageDialog(Judge.this,"评分成功!");
else if(j==3)
  JOptionPane.showMessageDialog(Judge.this,"系统故障,请稍后在试!");
else
JOptionPane.showMessageDialog(Judge.this,"此歌手不存在!");

}else if(e.getSource()==jb1){         //随机
random();
SqlFunction sql=new SqlFunction();
int  j=sql.score(jl2.getText(),jf2.getText());
if(j==1)
JOptionPane.showMessageDialog(Judge.this,"评分成功!");
else if(j==3)
  JOptionPane.showMessageDialog(Judge.this,"系统故障,请稍后在试!");
else
JOptionPane.showMessageDialog(Judge.this,"此歌手不存在!");

}
}

数据库类:

package model1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


public class SqlFunction{

 public Connection getConnection(){
 try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=massenge","lhx","1234567");
return con;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
     return null;
     
 }
 
 public void closeConnection(Connection connection){
 if(connection!=null)
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
 }
 
 public List<Singer> queryAll(){
 List<Singer> siners=new ArrayList<Singer>();
 Connection con=getConnection();
 try{
  Statement stmt=con.createStatement();
  ResultSet rs=stmt.executeQuery("select * from massenge");
  while(rs.next()){
  Singer s=new Singer();
  s.setName(rs.getString("name"));
  s.setId(rs.getString("id

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小白学java------做一个歌手比赛系统(二) 的相关文章

随机推荐

  • VNC的使用

    1 安装 yum install tigervnc server x86 64 2 配置 客户机和远程vnc桌面间的复制粘贴 参考 xff1a VNC怎么和宿主机共享粘贴板 整理 cxcbupt CSDN博客 3 日常使用 1 解决远程桌面
  • WPF异常处理详解

    总目录 文章目录 总目录一 WPF异常1 未捕获异常2 模拟未捕获异常场景 二 处理未捕获异常1 DispatcherUnhandledException 异常捕获2 UnhandledException异常捕获3 UnobservedTa
  • javafx 多线程赛马设计

    根据上一篇博客的内容 xff0c 这篇将展示设计过程 xff1a 二 xff0e 概要设计 2 1 系统流程图 2 2 功能模块图 2 3 赛马程序模拟程序初始化模块 在这一模块当中 xff0c 要求使用者选择当局需要赛马的马匹数量 xff
  • Cannot find module 'vue-loader/lib/plugin'

    安装了 webpack4 的版本之后发现报这个错 Cannot find module vue loader lib plugin 然后上node modules 里找了一下还真没有 plugin xff0c 所以我肯定是 vue load
  • ubuntu16.04 安装配置python3.6

    在Ubuntu下 xff0c 时不时会有这个错误的 add apt repository command not found 这个是缺少程序 xff0c 安装一下就可以了 只是不知道安装的名字 按以下命令走一趟就可以的了 sudo apt
  • 最新最快最简单解决rosdep更新失败问题

    在安装ros的时候 xff0c 最后一步会由于源在国外 xff0c sudo rosdep init会失败 xff0c 其中一种方式是通过加https ghproxy com 代理的方式 xff0c 参考链接 我之前也都是这样做的 xff0
  • 解决wsl无法同步本地代理的dns信息

    问题 本地开了公司的vpn xff0c 使用vscode的remote wsl插件连接wsl1 xff0c 结果wsl里面无法解析公司内部的一些域名 xff0c 查了下发现原来是wsl无法自动同步本地代理的dns信息 wsl2没有这个问题
  • 如何在Oracle官网下载jdk

    Oracle官方网址 xff1a Oracle Cloud Applications and Cloud Platform 注册账号 xff1a 登录进入首页 xff1a 点击Products xff1a 来到Products页面 xff0
  • ubuntu安装字体

    先安装 span class token function sudo span span class token function apt get span span class token function install span y
  • windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本

    某个文件夹下有几十个子文件夹 xff0c 想要单个压缩每个子文件夹备份到云盘 如果手动操作会有点累 xff0c 尝试写个脚本吧 版本 适用于win10 win11 其他版本未测试 一 编写脚本 众所周知windows下有两种自带脚本cmd和
  • SpringMVC的配置和执行流程

    要想成功的配置和调试springmvc xff0c 了解掌握它的执行流程是必不可少的 xff0c 话不多说 xff0c 看下图 xff1a 我们边说执行边讲配置 xff0c 首先 xff0c 想要使用springmvc xff0c 依赖是必
  • Maven安装与配置详解、多镜像节点的配置

    下载 Maven是Apache下面的一个项目 xff0c 官网下载地址 xff1a https maven apache org download cgi 历史版本下载地址 xff1a https archive apache org di
  • 使用FTPClient上传文件到ftp服务器。并解决图片损坏问题。

    1 先借鉴此博客的方法 xff08 此博客的方法上传txt文件没有问题 xff0c 但是上传的图片文件会损坏 xff09 https blog csdn net weixin 37196194 article details 5500166
  • libnet的使用详解

    最近搬砖需要对libnet进行介绍在这里对知识进行汇总 1 libnet简介 在 libnet 出现以前 xff0c 如果要构造数据包并发送到网络中 xff0c 程序员要通过一些复杂的接口来处理 libnet 的出现 xff0c 为程序员提
  • electron启动报错

    一个简单的程序启动居然报错了 xff0c 那就排查原因吧 xff0c 搜索网上的资料没有一个一样的 xff0c 大致类似的说的是electron版本和node不一致 还有说是electron的版本问题 但排查后都不是 xff0c 最后我把m
  • 手把手使用 Egg+TypeScript+mongoDB快速实现增删改查

    创建一个Egg的TS项目 xff08 Egg js官方教程 xff09 安装MogoDB Egg 依赖 span class token function npm span span class token function install
  • 小白学java——做一个歌手比赛系统(一)

    xfeff xfeff 完整代码加实验报告都在https download csdn net download qq 39980334 11232331 我已经设置成0积分下载了 xff0c 有需要的自行下载 xff0c 有问题的多看看代码
  • 使用尾插法创建链表并打印输出

    include lt stdio h gt include lt stdlib h gt include lt string h gt typedef struct LNode struct LNode next int data LNod
  • RabbitMQ 发展史与安装

    RabbitMQ 天降奇兵 解决的实例1 xff1a 统计用户的行为 xff0c 利用消息队列解耦模块和认证服务器 xff0c 认证模块被设计为 xff0c 在每一次请求页面的时候 xff0c 发送一条认证请求消息到rabbitmq xff
  • 小白学java------做一个歌手比赛系统(二)

    完整代码加实验报告都在 https download csdn net download qq 39980334 11232331 我已经设置成0积分下载了 xff0c 有需要的自行下载 xff0c 如果页面打不开可能还在审核中 xff08