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

      完整代码加实验报告都在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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值