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

📄 student.java

📁 自己用java编的选课系统
💻 JAVA
字号:
package xuankexitong;
import java.awt.*;

import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.sql.*;
import java.lang.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import java.net.*;
import javax.swing.table.*;
public class Student extends JFrame implements ActionListener{
	JTextField[] benren=new JTextField[5];
	int count;
	JTable jt1,jt2,jt3;
	JButton tijiao,chexiao;
	JTextField j=new JTextField(10);
	DataModel data2;
	DefaultTableModel data1,data3;
	String stunumber;
	Connection con;
	Statement stmt;
	ResultSet res=null;
	Object[][] o1,o3;
	Vector v,vv,vvv;
	  String[] column={"课程号","课程名","学分","任课老师"};
	public Student(String num){
	stunumber=num;
	j.setText("");
	addConnection();
	
		Container content=getContentPane();
		  content.setLayout(new BorderLayout());
		  addWindowListener(new WindowAdapter(){
			  public void windowClosing(WindowEvent e){
				  dispose();
			  }
		  });
		  JTabbedPane tabbed=new JTabbedPane();
		  JPanel p1=new JPanel(),p2=new JPanel(),p3=new JPanel(),p4=new JPanel();
		  JPanel pp1=new JPanel(),pp2=new JPanel(),pp3=new JPanel(),pp4=new JPanel();
		  tabbed.add(p1,"本人信息");
		  tabbed.add(p2,"已选课程");
		  tabbed.add(p3,"选定课程");
		  tabbed.add(p4,"成绩查询");
		  pp1.setBorder(new TitledBorder("本人信息"));
		  pp2.setBorder(new TitledBorder("课程信息"));
		  pp4.setBorder(new TitledBorder("本学期成绩"));
		  pp1.setLayout(new GridLayout(5,1));
		  p2.setLayout(new GridLayout(1,1));
		  p3.setLayout(new GridLayout(1,1));
		  p4.setLayout(new GridLayout(1,1));
		  //本人信息面板
		  JPanel[] pl=new JPanel[5];
		  JLabel l1=new JLabel("学号");
		  JLabel l2=new JLabel("姓名");
		  JLabel l3=new JLabel("性别");
		  JLabel l4=new JLabel("年龄");
		  JLabel l5=new JLabel("专业");
		  for(int i=0;i<5;i++){
			  benren[i]=new JTextField(15);
			pl[i]=new JPanel();
		  }
		  try{
				res=stmt.executeQuery("select * from student where 学号='"+stunumber+"'");
				while(res.next()){
					benren[0].setText(res.getString("学号"));
					benren[1].setText(res.getString("姓名"));
					benren[2].setText(res.getString("性别"));
					benren[3].setText(res.getString("年龄"));
					benren[4].setText(res.getString("系别"));
				}
			}catch(SQLException e){
				e.printStackTrace(System.out);
			}
		  pl[0].add(l1);
		  pl[0].add(benren[0]);
		  pl[1].add(l2);
		  pl[1].add(benren[1]);
		  pl[2].add(l3);
		  pl[2].add(benren[2]);
		  pl[3].add(l4);
		  pl[3].add(benren[3]);
		  pl[4].add(l5);
		  pl[4].add(benren[4]);
		  for(int i=0;i<5;i++)
			  pp1.add(pl[i]);
		  //课程信息
		
		  v=new Vector();
		  try{
				res=stmt.executeQuery("select xuanke.课程号,课程名,学分 from xuanke,course " +
						"where xuanke.课程号=course.课程号   and xuanke.学号='"+stunumber+"'");
				while(res.next()){
					Vector vect=new Vector();
					vect.add(res.getString("课程号"));
					vect.add(res.getString("课程名"));
					vect.add(res.getString("学分"));
					v.add(vect);
				}
			}catch(SQLException e){
				e.printStackTrace(System.out);
			}
			count=v.size();
			o1=new Object[v.size()][3];
			for(int i=0;i<v.size();i++){
				Vector ve=(Vector)v.elementAt(i);
				for(int j=0;j<3;j++)
					o1[i][j]=ve.elementAt(j);
			}
			data1=new DefaultTableModel(o1,column);
		  jt1=new JTable(data1);
			JScrollPane scrollpane1 = 
			      JTable.createScrollPaneForTable(jt1);
			pp2.setLayout(new BorderLayout());
			pp2.add(scrollpane1,BorderLayout.CENTER);
			//选定课程
			JPanel zong=new JPanel();
			zong.setLayout(new BorderLayout());
			JPanel xuan=new JPanel(),suoyou=new JPanel();
			xuan.setBorder(new TitledBorder("选定课程"));
			suoyou.setBorder(new TitledBorder("所有课程信息"));
			tijiao=new JButton("提交");
			chexiao=new JButton("撤销");
			tijiao.addActionListener(this);
			chexiao.addActionListener(this);
	        JLabel l=new JLabel("课程号");
	        xuan.add(l);
	        xuan.add(j);
	        xuan.add(tijiao);
	        xuan.add(chexiao);
	        
	        String[] col={"课程号","课程名","先行课","学分"};
			   vv=new Vector();
			  try{
					res=stmt.executeQuery("select * from course");
					while(res.next()){
						Vector vect=new Vector();
						vect.add(res.getString("课程号"));
						vect.add(res.getString("课程名"));
						vect.add(res.getString("先行课"));
						vect.add(res.getString("学分"));
						vv.add(vect);
					}
				}catch(SQLException e){
					e.printStackTrace(System.out);
				}
				data2=new DataModel(vv,col);
	        jt2=new JTable(data2);
			JScrollPane scrollpane2 = 
			      JTable.createScrollPaneForTable(jt2);
			suoyou.setLayout(new BorderLayout());
			suoyou.add(scrollpane2,BorderLayout.CENTER);
			zong.add(xuan,BorderLayout.NORTH);
			zong.add(suoyou,BorderLayout.CENTER);
			p3.add(zong);
			
			//成绩查询
			 String[] co={"课程号","课程名","学分","成绩"};
			  vvv=new Vector();
			  try{
					res=stmt.executeQuery("select * from course,xuanke where course.课程号=xuanke.课程号 and xuanke.学号='"+stunumber+"'");
					while(res.next()){
						Vector vect=new Vector();
						vect.add(res.getString("课程号"));
						vect.add(res.getString("课程名"));
						vect.add(res.getString("学分"));
						vect.add(res.getString("成绩"));
						vvv.add(vect);
					}
				}catch(SQLException e){
					e.printStackTrace(System.out);
				}
				o3=new Object[vvv.size()][4];
				for(int i=0;i<vvv.size();i++){
					Vector ve=(Vector)vvv.elementAt(i);
					for(int j=0;j<4;j++)
						o3[i][j]=ve.elementAt(j);
				}
				data3=new DefaultTableModel(o3,co);
			jt3=new JTable(data3);
			JScrollPane scrollpane3 = 
			      JTable.createScrollPaneForTable(jt3);
			pp4.setLayout(new BorderLayout());
			pp4.add(scrollpane3,BorderLayout.CENTER);
			p1.add(pp1);
			  p2.add(pp2);
			  p4.add(pp4);
		  content.add(tabbed,BorderLayout.CENTER);
		  
		  Toolkit   tk=getToolkit();   
		  Dimension   screenSize=tk.getScreenSize();  
		  int   frameWidth=600;   
		  int   frameHeight=400;   
		  setBounds((screenSize.width-frameWidth)/2,(screenSize.height-frameHeight)/2,frameWidth,frameHeight);   
	  setVisible(true);
	}
	
	public void addConnection(){
		 try{
			  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			 }
			 catch(ClassNotFoundException g){
				 JOptionPane.showMessageDialog(null,"驱动器加载失败,无法建立数据库连接");
			  return;
			 }
			 try{
				   con=DriverManager.getConnection("jdbc:odbc:stu","","");
			 stmt=con.createStatement();
				 }
			 catch(SQLException se){
			  se.printStackTrace(System.out);
			 }
	}
	public void actionPerformed(ActionEvent e){
		String s=e.getActionCommand();
		if(s.equals("提交")){
			String ss=j.getText();
			if(ss.equals("")){
				 JOptionPane.showMessageDialog(null,"请输入课程号");
			}
			else{
			try{
				res=stmt.executeQuery("select * from xuanke where xuanke.课程号='"+ss+"' and xuanke.学号='"+stunumber+"'");
				if(res.next()){
					 JOptionPane.showMessageDialog(null,"你已经选了这门课,不能再选");
				}
				else{
					res=stmt.executeQuery("select * from xuanke,course where xuanke.课程号=course.先行课 and course.课程号='"+ss+"' and xuanke.学号='"+stunumber+"'");
				if(res.next()){
					int nu=stmt.executeUpdate("insert into xuanke values('"+stunumber+"','"+ss+"',0)");
					JOptionPane.showMessageDialog(null,"选课成功");
					for(int i=count-1;i>=0;i--){
						data1.removeRow(i);
						data3.removeRow(i);
						System.out.println(i);
					}
					con.close();
					stmt.close();
					addConnection();
					count--;
					  try{
							res=stmt.executeQuery("select xuanke.课程号,课程名, 学分 from xuanke,course " +
									"where xuanke.课程号=course.课程号  and xuanke.学号='"+stunumber+"'");
							while(res.next()){
								Object[] o=new Object[3];
								o[0]=res.getString("课程号");
								o[1]=res.getString("课程名");
								o[2]=res.getString("学分");
								data1.addRow(o);
								count++;
							}
							res=stmt.executeQuery("select * from course,xuanke where course.课程号=xuanke.课程号 and xuanke.学号='"+stunumber+"'");
							while(res.next()){
								Object[] ooo=new Object[4];
								ooo[0]=res.getString("课程号");
								ooo[1]=res.getString("课程名");
								ooo[2]=res.getString("学分");
								ooo[3]=res.getString("成绩");
								data3.addRow(ooo);
							}
					 }catch(SQLException se){
							se.printStackTrace(System.out);
						}
				}
				else{
					JOptionPane.showMessageDialog(null,"未修先行课,你不能选这门课");
				}
				}
			}catch(SQLException se){
				se.printStackTrace(System.out);
			}}
			
			
		}
		else if(s.equals("撤销")){
			String ss=j.getText();
			if(ss.equals("")){
				 JOptionPane.showMessageDialog(null,"请输入课程号");
			}
			else{
			try{
				res=stmt.executeQuery("select * from xuanke where xuanke.课程号='"+ss+"' and xuanke.学号='"+stunumber+"'");
				if(!res.next()){
					 JOptionPane.showMessageDialog(null,"你没有选这门课,不能删除课程");
				}
				else{
					int nu=stmt.executeUpdate("delete from xuanke where 课程号='"+ss+"' and 学号='"+stunumber+"'");
					JOptionPane.showMessageDialog(null,"删除成功");
					for(int i=count-1;i>=0;i--){
						data1.removeRow(i);
						data3.removeRow(i);
						System.out.println(i);
					}
					con.close();
					stmt.close();
					addConnection();
					count--;
					  try{
							res=stmt.executeQuery("select xuanke.课程号,课程名, 学分 from xuanke,course " +
									"where xuanke.课程号=course.课程号 and xuanke.学号='"+stunumber+"'");
							while(res.next()){
								Object[] o=new Object[3];
								o[0]=res.getString("课程号");
								o[1]=res.getString("课程名");
								o[2]=res.getString("学分");
								data1.addRow(o);
							}
							res=stmt.executeQuery("select * from course,xuanke where course.课程号=xuanke.课程号 and xuanke.学号='"+stunumber+"'");
							while(res.next()){
								Object[] ooo=new Object[4];
								ooo[0]=res.getString("课程号");
								ooo[1]=res.getString("课程名");
								ooo[2]=res.getString("学分");
								ooo[3]=res.getString("成绩");
								data3.addRow(ooo);
							}
							
						}catch(SQLException se){
							se.printStackTrace(System.out);
						}
				}
			}catch(SQLException se){
				se.printStackTrace(System.out);
			}}
			
			
		}
	}
}

⌨️ 快捷键说明

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