⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuwuqi.java

📁 用JAVA编写的综合测评系统毕业设计
💻 JAVA
📖 第 1 页 / 共 2 页
字号:


import java.awt.event.*;  //导入程序需要的类
import javax.swing.*;
import javax.swing.border.*;
import java.net.*;
import java.io.*;
import java.sql.*;
import java.awt.*;

public class Fuwuqi extends Frame implements ActionListener,Runnable  //定义服务器端的类
{
	public static void main(String[] args)  //main 函数实例化服务器类
	{
		Fuwuqi f=new Fuwuqi();
		f.setSize(500,400);
		f.setVisible(true);
	}
	
	    Label lkechengming=new Label("课程名称:");
		Label lxuefen=new Label("      学分:");
		Label lleixing=new Label("成绩类型: ");
		Checkbox fenshu=new Checkbox("分数          ");
		Checkbox dengji=new Checkbox("等级");
		CheckboxGroup cgroup=new CheckboxGroup();
		Button zengjia=new Button("增加");
		Button shanchu=new Button("删除");
		Button blianjie=new Button("    连接数据库    ");
		Button bqidong=new  Button("启动代理软件");
		List list=new List();
		JPanel p1=new JPanel();
		Panel p2=new Panel();
		Panel p3=new Panel();
		Panel p4=new Panel();
		Panel p5=new Panel();
		Panel p6=new Panel();
		Panel p7=new Panel();

	    Connection con=null;
	    Statement  stmt=null;
	    ResultSet  resultset=null;
	    ServerSocket serversocket=null;
	    Socket socket=null;
	    DataInputStream datain=null;
	    DataOutputStream dataout=null;
	    Thread thread=null;
	    String readin;
	    
	    TextField tkechengming=new TextField(15);
	    Intext txuefen=new Intext();
	    private boolean connectdata=false;
	    private boolean statrthread=false;
	    
	    public Fuwuqi()    //服务器类构造函数
	    {
	    	
		      fenshu.setCheckboxGroup(cgroup);    //分数与等级单选按钮设为同一组
		      dengji.setCheckboxGroup(cgroup);
		      fenshu.setState(true);
		      Font f=new Font("宋体",Font.PLAIN,12);
		      //下面设置面板的边框,背景色,及界面的形成
		     p1.setBorder(BorderFactory.createTitledBorder(null,"请输入课程的相关信息:",0,0,f));
		     p1.setBackground(Color.white);
		     p2.add(lkechengming);
		     p2.add(tkechengming);
		     p1.add(p2);
		     p3.add(lxuefen);
		     p3.add(txuefen);
		     p1.add(p3);
		     p1.add(lleixing);
		     p4.add(fenshu);
		     p4.add(dengji);
		     p1.add(p4);
		     this.zengjia.addActionListener(this);
		     this.shanchu.addActionListener(this);
		     p5.add(zengjia);
		     p5.add(shanchu);
		     p1.add(p5);
		     this.blianjie.addActionListener(this);
		     p6.add(blianjie);
		     this.bqidong.addActionListener(this);
		     p6.add(bqidong);
		     this.add(p6,"North");
		     p7.setLayout(new GridLayout(1,2));
		     p7.add(p1);
		     p7.add(list);
		     this.add(p7);
		     this.addWindowListener(new WindowListener()    //为窗体填加关闭按钮的事件程序
		     {
		     	
			     public void windowOpened(WindowEvent e){}
			     public void windowClosing(WindowEvent e)
			     {
				        System.exit(0);
			     }
			     public void windowClosed(WindowEvent e){}
			     public void windowIconified(WindowEvent e){}
			     public void windowDeiconified(WindowEvent e){}
			     public void windowActivated(WindowEvent e){}
			     public void windowDeactivated(WindowEvent e){}
			
		     });
		
		
	     }
	     
	     
	     
	     public void actionPerformed(ActionEvent ex) //按钮事件监听器的实现
	     {
	     	
	        if(((Button)ex.getSource()).equals(blianjie)) //点击"连接"按钮
	        {
	        	if(this.connectdata)
	        	{
	        		JOptionPane.showMessageDialog(this,"数据库已经连接!");
	        	} 
	        	else
	        	{
	        		boolean  success=true;
		            try
		            {
			            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		            }
		            catch(ClassNotFoundException e)
		            {
		                JOptionPane.showMessageDialog(this,e.toString());
		                success=false;
		            }
		            try
		            {
			           con=DriverManager.getConnection("jdbc:odbc:zonghecepingshujuku");//与数据库的连接
			           stmt=con.createStatement();
			           this.resultset=this.stmt.executeQuery("select * from  课程信息表");
			           this.list.removeAll();
			           while(this.resultset.next())
			           {
			       	       String temp=this.resultset.getString("课程名")+":"+this.resultset.getString("学分")
			       	                   +":"+this.resultset.getString("成绩类型");
			       	       this.list.add(temp);
			           }
			
		            }
		            catch(Exception e)
		            {
			            JOptionPane.showMessageDialog(this,e.toString());
			            success=false;  
		            }
		            if(success)
		            {
		      	         this.connectdata=true;
		 	             JOptionPane.showMessageDialog(this,"数据库连接成功");
		            }
	        	}
	        
	       }
	       if(((Button)ex.getSource()).equals(this.bqidong))    //点击启动按钮
	       {
	       	  if(this.connectdata && !this.statrthread )
	       	  {
	       	  	 thread=new Thread(this);
	   	         thread.start();
	   	         this.statrthread=true;
	   	         JOptionPane.showMessageDialog(this,"代理软件已启动!");
	       	  }
	       	  else
	       	  {
	       	  	if(!this.connectdata)
	       	  	{
	       	  		JOptionPane.showMessageDialog(this,"请先连接数据库");
	       	  	}
	       	  	else
	       	  	{
	       	  		 JOptionPane.showMessageDialog(this,"代理软件已启动!");
	       	  	}
	       	  	
	       	  }
	   	      
	       }
	       if(((Button)ex.getSource()).equals(this.zengjia))   //点击增加按钮
	       {
	       	 if(this.tkechengming.getText().trim().length()==0 || this.txuefen.getText().trim().length()==0) 
	       	 {
	       	 	JOptionPane.showMessageDialog(this,"课程名与学分都不能为空!");
	       	 }
	       	 else
	       	 {
	       	  String sql;
	   	      String xinxi;
	   	      String addcolsql;
	   	      if(this.fenshu.getState())
	   	      {
	   	 	        sql="insert into  课程信息表 values('" + this.tkechengming.getText()
	   	 	             +"','" + this.txuefen.getText() +"','分数')" ;
	   	 	        xinxi=this.tkechengming.getText()+":"+this.txuefen.getText() +":分数";
	   	      }
	   	      else
	   	      {
	   	            sql="insert into 课程信息表 values('" + this.tkechengming.getText()
	   	 	             +"','" + this.txuefen.getText() +"','等级')" ;
	   	 	        xinxi=this.tkechengming.getText()+":"+this.txuefen.getText() +":等级";
	   	      }
	   	      addcolsql="alter table 业务学习成绩表 add  "+this.tkechengming.getText()+" char(20)";
	   	 
	   	      try
	   	      {
	   	 	      
	   	 	       int j=stmt.executeUpdate(addcolsql);
	   	 	       int i=stmt.executeUpdate(sql);
	   	 	       this.list.add(xinxi);
	   	 
	   	      }
	   	      catch(Exception e)
	   	      {
	   	 	        JOptionPane.showMessageDialog(this,"添加失败,请确认你课程名是否含点、空格等非法字段请重试!");
	   	      }
	       	 }
	       
	       	
	       	
	   	      
	   	 
	   
	   	 
	       }
	   
	       if(((Button)ex.getSource()).equals(this.shanchu))   //点击删除按钮
	       {

	    	   String[] str=list.getSelectedItem().split(":");
	    	   String sql="delete from 课程信息表 where 课程名='"+str[0]+"'";
	    	   String delcolsql="alter table  业务学习成绩表 drop  " +str[0];
	    	   try
	    	   {
	    	   	    int j=stmt.executeUpdate(delcolsql);
	    		    int i=stmt.executeUpdate(sql);
	    		    list.remove(list.getSelectedIndex());
	    		
	
	    	   }
	    	   catch(Exception e)
	    	   {
	    		   JOptionPane.showMessageDialog(this,e.toString()+"删除失败,请重试!");
	    	
	    	   }
	    	
	    	
	    	
	       } 
	}
	
	
	public void run()    //实现Runnable接口
	{
		try
		{
			serversocket=new ServerSocket(3636);  //建立服务器端的socket
		}
		catch(Exception e)
		{
			JOptionPane.showMessageDialog(this,e.toString());
		}
		
	    
		while(true)
		{
			System.out.println("wait to connet...");
			try
			{
				this.socket=serversocket.accept();
				System.out.println("accept....");   
				this.datain=new DataInputStream(this.socket.getInputStream());
			    this.dataout=new DataOutputStream(this.socket.getOutputStream());
				this.readin=this.datain.readUTF();
				System.out.println(this.readin);
				String[] xinxis=this.readin.split(":");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -