Java程序综合案例:教务处管理系统之学生档案管理模块

1.这是一个学生信息系统的入口框架类。 studentframe是顶层窗口框架。 通过七个按钮控件来分别可以进入到不同班级、不同系的学生信息系统中。

class studentmanageframe extends JPanel {
	private static final long serialVersionUID = 1L;

	static final int WIDTH = 400;

	static final int HEIGHT = 200;

	JFrame studentframe;

	public studentmanageframe() {
		studentframe = new JFrame();
		studentframe.setBackground(Color.black);

		studentframe.setTitle("学生信息管理系统");
		studentframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		studentframe.setSize(WIDTH, HEIGHT);
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();
		int width = screenSize.width;
		int height = screenSize.height;
		int x = (width - WIDTH) / 2;
		int y = (height - HEIGHT) / 2;
		studentframe.setLocation(x, y);
		studentframe.setVisible(true);
		studentframe.setResizable(false);
		studentframe.add(this, BorderLayout.CENTER);
		JButton computerone = new JButton("英语系一班学生信息系统");
		JButton computertwo = new JButton("英语系二班学生信息系统");
		JButton computerthree = new JButton("法律系一班学生信息系统");
		JButton bioone = new JButton("法律系二班学生信息系统");
		JButton mechone = new JButton("法律系三班学生信息系统");
		JButton mechtwo = new JButton("数学系一班学生信息系统");
		JButton mechthree = new JButton("数学系二班学生信息系统");
		JLabel title = new JLabel("学生信息管理");
		JLabel banket1 = new JLabel();
		JLabel banket2 = new JLabel();
		GridBagLayout lay = new GridBagLayout();
		setLayout(lay);
		GridBagConstraints constraints = new GridBagConstraints();
		constraints.fill = GridBagConstraints.NONE;
		constraints.anchor = GridBagConstraints.EAST;
		constraints.weightx = 2;
		constraints.weighty = 5;
		JPanel jp = new JPanel();
		jp.setLayout(new GridLayout(1, 3));
		jp.add(banket1);
		jp.add(title);
		jp.add(banket2);
		studentframe.add(jp, BorderLayout.NORTH);
		add(computerone, constraints, 0, 1, 1, 1); // 使用网格组布局添加控件
		add(computertwo, constraints, 0, 2, 1, 1);
		add(computerthree, constraints, 0, 3, 1, 1);
		add(bioone, constraints, 0, 4, 1, 1);
		add(mechone, constraints, 1, 1, 1, 1);
		add(mechtwo, constraints, 1, 2, 1, 1);
		add(mechthree, constraints, 1, 3, 1, 1);
		// /单击这个按钮,进入到英语系一班学生信息系统
		computerone.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='一班'and major='英语系'";
				Show_Student info = new Show_Student("英语系一班学生信息系统", sql);

			}
		});
		// /单击这个按钮,进入到英语系二班学生信息系统
		computertwo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='二班'and major='英语系'";
				Show_Student studentinformation = new Show_Student("英语系二班学生信息系统",
						sql);
			}
		});
		// /单击这个按钮,进入到法律系三班学生信息系统
		computerthree.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='一班'and major='法律系'";
				Show_Student studentinformation = new Show_Student("法律系一班学生信息系统",
						sql);
			}
		});
		// /单击这个按钮,进入到法律系一班学生信息系统
		bioone.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='二班'and major='法律系'";
				Show_Student studentinformation = new Show_Student("法律系二班学生信息系统",sql);
			}
		});
		// /单击这个按钮,进入到机械机系一班学生信息系统
		mechone.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='三班'and major='法律系'";
				Show_Student studentinformation = new Show_Student("法律系三班学生信息系统",
						sql);
			}
		});
		// /单击这个按钮,进入数学系一班学生信息系统
		mechtwo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='一班'and major='数学系'";
				Show_Student studentinformation = new Show_Student("数学系一班学生信息系统",
						sql);
			}
		});
		// /单击这个按钮,数学系二班学生信息系统
		mechthree.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String sql = "select * from studentinfo where class='二班'and major='数学系'";
				Show_Student studentinformation = new Show_Student("数学系二班学生信息系统",
						sql);
			}
		});
	}

	public void add(Component c, GridBagConstraints constraints, int x, int y,
			int w, int h) {
		constraints.gridx = x;
		constraints.gridy = y;
		constraints.gridwidth = w;
		constraints.gridheight = h;
		add(c, constraints);
	}
}

2.学生类

class studentBean {
		private String name;


		private String code;


		private String sexy;


		private String birthday;


		private String address;


		private String age;


		private String grade;


		private String major;


		studentBean(String name, String code) {
			this.name = name;
			this.code = code;
		}

3.把学生信息存入数据库

import java.util.Vector;
import java.sql.*;

class From_student {
	public Vector getstudent(Connection con, String sql) {
		Vector v = new Vector();
		try {
			Statement st = con.createStatement();
			ResultSet rs = st.executeQuery(sql);
			while (rs.next()) {
				String name = rs.getString(1);
				String code = rs.getString(2);
				String sexy = rs.getString(3);
				String age = rs.getString(4);
				String address = rs.getString(5);
				String birthday = rs.getString(6);
				String grade = rs.getString(7);
				String major = rs.getString(8);
				studentBean ss = new studentBean(name, code);
				ss.setsexy(sexy);
				ss.setmajor(major);
				ss.setbirthday(birthday);
				ss.setaddress(address);
				ss.setage(age);
				ss.setgrade(grade);
				v.add(ss);
			}
			rs.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return v;
	}

	public studentBean getobject(Connection con, String stname) {
		studentBean sst = null;
		try {
			Statement st = con.createStatement();
			String sql = "select * from studentinfo where stname='" + stname
					+ "'";
			ResultSet rs = st.executeQuery(sql);
			// /通过结果集中的getString方法从数据库中表中提取表字段的数据
			// /再将提取出来的数据赋值给学生对象。
			// /最后将学生对象存储到vector数据结构中
			while (rs.next()) {
				String code = rs.getString(2);
				String sexy = rs.getString(3);
				String age = rs.getString(4);
				String address = rs.getString(5);
				String birthday = rs.getString(6);
				String grade = rs.getString(7);
				String major = rs.getString(8);
				sst = new studentBean(stname, code);
				sst.setsexy(sexy);
				sst.setmajor(major);
				sst.setbirthday(birthday);
				sst.setaddress(address);
				sst.setage(age);
				sst.setgrade(grade);
			}
			rs.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
		return sst;
	}

	// /通过设置数据库的URL,密码,用户名来建立与数据库的连接
	public Connection getConnection() {
		Connection con = null;

		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			// 加载odbc数据驱动
			con = DriverManager.getConnection("jdbc:odbc:myodbc", "", "");
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException ex) {
			ex.printStackTrace();
		}
		return con;
	}
}

4.这个是学生信息系统添加信息框架类 通过九个文本域将不同信息的领导分别输出在其中。 通过一个添加按钮,将数据添加到数据库中。

/**主运行类
 * main指主框架
 *  setDefaultCloseOperation指让框架右上角的按钮都有效
 *  show让框架能显示出来
 *  */
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.Vector;
import javax.swing.*;

/**
 * 这个是学生信息系统添加信息框架类 通过九个文本域将不同信息的领导分别输出在其中。 通过一个添加按钮,将数据添加到数据库中。
 * 在这里的布局是通过网格组布局管理器来设定的 在回送到信息界面时将学生对象ss设定为静态。放置新建对象时,其值会改变。
 */

class Student_Frame extends JPanel {
	String codetext;

	String agetext;

	String sexytext;

	String birthdaytext;

	String addresstext;

	String gradetext;

	String majortext;

	public final JTextField nameinput = new JTextField(10);

	private static final long serialVersionUID = 1L;

	static final int WIDTH = 700;

	static final int HEIGHT = 400;

	static studentBean ss;

	JFrame studentBeanaddframe;

	public void add(Component c, GridBagConstraints constraints, int x, int y,
			int w, int h) {
		constraints.gridx = x;
		constraints.gridy = y;
		constraints.gridwidth = w;
		constraints.gridheight = h;
		add(c, constraints);
	}

	public Student_Frame() {
		studentBeanaddframe = new JFrame();
		studentBeanaddframe.setTitle("学生添加系统");
		studentBeanaddframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		studentBeanaddframe.setSize(WIDTH, HEIGHT);
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();
		int width = screenSize.width;
		int height = screenSize.height;
		int x = (width - WIDTH) / 2;
		int y = (height - HEIGHT) / 2;
		studentBeanaddframe.setLocation(x, y);
		studentBeanaddframe.setVisible(true);
		studentBeanaddframe.setResizable(false);
		studentBeanaddframe.add(this, BorderLayout.CENTER);
		GridBagLayout lay = new GridBagLayout();
		setLayout(lay);
		JLabel name = new JLabel(new ImageIcon("D://abc//11.jpg"));
		JLabel code = new JLabel(new ImageIcon("D://abc//13.jpg"));
		JLabel sexy = new JLabel(new ImageIcon("D://abc//12.jpg"));
		JLabel age = new JLabel(new ImageIcon("D://abc//14.jpg"));
		JLabel birthday = new JLabel(new ImageIcon("D://abc//15.jpg"));
		JLabel address = new JLabel(new ImageIcon("D://abc//16.jpg"));
		JLabel grade = new JLabel(new ImageIcon("D://abc//17.jpg"));
		JLabel major = new JLabel(new ImageIcon("D://abc//18.jpg"));
		final JTextField codeinput = new JTextField(10);
		final JTextField sexyinput = new JTextField(10);
		final JTextField ageinput = new JTextField(10);
		final JTextField birthdayinput = new JTextField(10);
		final JTextField addressinput = new JTextField(10);
		final JTextField gradeinput = new JTextField(10);
		final JTextField majorinput = new JTextField(10);
		JLabel title = new JLabel("学生被添加的基本信息");
		JButton additionbutton = new JButton("添加");
		GridBagConstraints constraints = new GridBagConstraints();
		constraints.fill = GridBagConstraints.NONE;
		constraints.weightx = 4;
		constraints.weighty = 6;
		add(title, constraints, 0, 0, 4, 1); // 使用网格组布局添加控件
		add(name, constraints, 0, 1, 1, 1);
		add(code, constraints, 0, 2, 1, 1);
		add(sexy, constraints, 0, 3, 1, 1);
		add(age, constraints, 0, 4, 1, 1);
		add(nameinput, constraints, 1, 1, 1, 1);
		add(codeinput, constraints, 1, 2, 1, 1);
		add(sexyinput, constraints, 1, 3, 1, 1);
		add(ageinput, constraints, 1, 4, 1, 1);
		add(birthday, constraints, 2, 1, 1, 1);
		add(address, constraints, 2, 2, 1, 1);
		add(grade, constraints, 2, 3, 1, 1);
		add(major, constraints, 2, 4, 1, 1);
		add(birthdayinput, constraints, 3, 1, 1, 1);
		add(addressinput, constraints, 3, 2, 1, 1);
		add(gradeinput, constraints, 3, 3, 1, 1);
		add(majorinput, constraints, 3, 4, 1, 1);
		add(additionbutton, constraints, 0, 5, 4, 1);
		// /将每个文本域中的信息赋值给变量,再将变量以值的形式存储到数据库的表中
		// /最后,再将这些值存储到学生对象中,并且这个学生对象是一个静态的对象
		additionbutton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				try {
					String nametext = nameinput.getText();
					codetext = codeinput.getText();
					agetext = ageinput.getText();
					sexytext = sexyinput.getText();
					birthdaytext = birthdayinput.getText();
					addresstext = addressinput.getText();
					gradetext = gradeinput.getText();
					majortext = majorinput.getText();
					From_student store = new From_student();
					Connection con = store.getConnection();
					Statement st = con.createStatement();
					String sql = "insert into studentinfo values('" + nametext
							+ "','" + codetext + "','" + sexytext + "','"
							+ agetext + "','" + addresstext + "','"
							+ birthdaytext + "','" + gradetext + "','"
							+ majortext + "')";
					st.executeUpdate(sql);
					ss = new studentBean(nametext, codetext);
					ss.setage(agetext);
					ss.setsexy(sexytext);
					ss.setaddress(addresstext);
					ss.setbirthday(birthdaytext);
					ss.setgrade(gradetext);
					ss.setmajor(majortext);
					Vector vec = new Vector();
					vec.add(ss);
				} catch (Exception e) {
				}
				studentBeanaddframe.dispose();
			}
		});
	}
}

5.*这是学生类信息系统的框架类

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.sql.*;

/**这是学生类信息系统的框架类
 *  studentinfoframe是顶层窗口框架。
 *  通过八个文本域控件来分别可以显示不同班级、不同系的学生信息。
 *  三个按钮控件分别产生三个不同的动作事件简史事件,分别是添加,删除和更新。Addition是添加。Delete是删除,update是更新
 *  在布局方面有两个布局管理器,一个是lay即网格组布局。一个是jp是GridLayout布局。
 *  通过不同的SQL语句进入不同的班级和系的管理系统。
 *  使用将数据库中的数据先导入到vec中。然后在将vec中的数据导入学生类中。最后再将数据输出
 *  */
class Show_Student extends JPanel {
	private static final long serialVersionUID = 1L;

	static final int WIDTH = 700;

	static final int HEIGHT = 400;

	final JComboBox nameinput;

	final JTextField codeinput;

	final JTextField sexyinput;

	final JTextField birthdayinput;

	final JTextField ageinput;

	final JTextField addressinput;

	final JTextField gradeinput;

	final JTextField majorinput;

	JFrame studentinfoframe;

	From_student store = new From_student();

	Connection con = store.getConnection();

	Student_Frame af = new Student_Frame();

	public void add(Component c, GridBagConstraints constraints, int x, int y,
			int w, int h) {
		constraints.gridx = x;
		constraints.gridy = y;
		constraints.gridwidth = w;
		constraints.gridheight = h;
		add(c, constraints);
	}

	public Show_Student(String str, String sql) {
		studentinfoframe = new JFrame();
		studentinfoframe.setTitle(str);
		studentinfoframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		studentinfoframe.setSize(WIDTH, HEIGHT);
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();
		int width = screenSize.width;
		int height = screenSize.height;
		int x = (width - WIDTH) / 2;
		int y = (height - HEIGHT) / 2;
		studentinfoframe.setLocation(x, y);
		studentinfoframe.setVisible(true);
		// studentinfoframe.setResizable(false);
		studentinfoframe.add(this, BorderLayout.CENTER);
		GridBagLayout lay = new GridBagLayout();
		setLayout(lay);
		JLabel name = new JLabel(new ImageIcon("D://abc//11.jpg"));
		JLabel code = new JLabel(new ImageIcon("D://abc//13.jpg"));
		JLabel sexy = new JLabel(new ImageIcon("D://abc//12.jpg"));
		JLabel age = new JLabel(new ImageIcon("D://abc//14.jpg"));
		JLabel birthday = new JLabel(new ImageIcon("D://abc//15.jpg"));
		JLabel address = new JLabel(new ImageIcon("D://abc//16.jpg"));
		JLabel grade = new JLabel(new ImageIcon("D://abc//17.jpg"));
		JLabel major = new JLabel(new ImageIcon("D://abc//18.jpg"));
		JLabel title = new JLabel(str);
		nameinput = new JComboBox();
		codeinput = new JTextField(10);
		sexyinput = new JTextField(10);
		ageinput = new JTextField(10);
		birthdayinput = new JTextField(10);
		addressinput = new JTextField(10);
		gradeinput = new JTextField(10);
		majorinput = new JTextField(10);
		// /将存储在Vector中的数据提取出来重新赋值给学生对象。再利用学生对象中
		// getname方法来提取出学生姓名来,最后使用组合列表框的添加功能将这些名字添加到列表中去。
		Vector vec = store.getstudent(con, sql);
		for (int i = 0; i < vec.size(); i++) {
			studentBean one = (studentBean) vec.get(i);
			String nameselect = one.getname();
			nameinput.addItem(nameselect);
		}
		String namestring = (String) nameinput.getSelectedItem();
		studentBean p = store.getobject(con, namestring);
		String inputcode = p.getcode();
		String inputsexy = p.getsexy();
		String inputage = p.getage();
		String inputbirthday = p.getbirthday();
		String inputaddress = p.getaddress();
		String inputgrade = p.getgrade();
		String inputmajor = p.getmajor();
		codeinput.setText(inputcode);
		sexyinput.setText(inputsexy);
		ageinput.setText(inputage);
		birthdayinput.setText(inputbirthday);
		addressinput.setText(inputaddress);
		gradeinput.setText(inputgrade);
		majorinput.setText(inputmajor);
		JButton addition = new JButton("添加");
		JButton delete = new JButton("删除");
		JButton update = new JButton("更新");
		JButton bereturn = new JButton("返回");
		GridBagConstraints constraints = new GridBagConstraints();
		constraints.fill = GridBagConstraints.NONE;
		constraints.weightx = 4;
		constraints.weighty = 6;
		add(title, constraints, 0, 0, 4, 1); // 使用网格组布局添加控件
		add(name, constraints, 0, 1, 1, 1);
		add(code, constraints, 0, 2, 1, 1);
		add(sexy, constraints, 0, 3, 1, 1);
		add(age, constraints, 0, 4, 1, 1);
		add(nameinput, constraints, 1, 1, 1, 1);
		add(codeinput, constraints, 1, 2, 1, 1);
		add(sexyinput, constraints, 1, 3, 1, 1);
		add(ageinput, constraints, 1, 4, 1, 1);
		add(birthday, constraints, 2, 1, 1, 1);
		add(address, constraints, 2, 2, 1, 1);
		add(grade, constraints, 2, 3, 1, 1);
		add(major, constraints, 2, 4, 1, 1);
		add(birthdayinput, constraints, 3, 1, 1, 1);
		add(addressinput, constraints, 3, 2, 1, 1);
		add(gradeinput, constraints, 3, 3, 1, 1);
		add(majorinput, constraints, 3, 4, 1, 1);
		add(addition, constraints, 0, 5, 1, 1);
		add(delete, constraints, 1, 5, 1, 1);
		add(update, constraints, 2, 5, 1, 1);
		add(bereturn, constraints, 3, 5, 1, 1);
		// /通过点击每一个列表框中的名字,会相应地显示出此名字的所有信息
		nameinput.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				String namestring = (String) nameinput.getSelectedItem();
				studentBean p = store.getobject(con, namestring);
				String inputcode = p.getcode();
				String inputsexy = p.getsexy();
				String inputage = p.getage();
				String inputbirthday = p.getbirthday();
				String inputaddress = p.getaddress();
				String inputgrade = p.getgrade();
				String inputmajor = p.getmajor();
				codeinput.setText(inputcode);
				sexyinput.setText(inputsexy);
				ageinput.setText(inputage);
				birthdayinput.setText(inputbirthday);
				addressinput.setText(inputaddress);
				gradeinput.setText(inputgrade);
				majorinput.setText(inputmajor);
			}
		});
		// /返回主菜单
		bereturn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				studentmanageframe manageframe = new studentmanageframe();
				manageframe.setVisible(true);
				studentinfoframe.dispose();
			}
		});
		// /进入添加主界面
		addition.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				Student_Frame addfr = new Student_Frame();
				addfr.setVisible(true);
			}
		});
		// /更新按钮,使得从数据库表中,将数据提取显示到界面中
		update.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String name1 = af.ss.getname();
				String code1 = af.ss.getcode();
				String age1 = af.ss.getage();
				String sexy1 = af.ss.getsexy();
				String birthday1 = af.ss.getbirthday();
				String address1 = af.ss.getaddress();
				String grade1 = af.ss.getgrade();
				String major1 = af.ss.getmajor();
				nameinput.addItem(name1);
				nameinput.setSelectedItem(name1);
				codeinput.setText(code1);
				ageinput.setText(age1);
				sexyinput.setText(sexy1);
				addressinput.setText(address1);
				birthdayinput.setText(birthday1);
				gradeinput.setText(grade1);
				majorinput.setText(major1);
			}
		});
		// /删除数据,且更新到数据库中
		delete.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent Event) {
				String namestring = (String) nameinput.getSelectedItem();
				From_student store = new From_student();
				try {
					Connection con = store.getConnection();
					Statement st = con.createStatement();
					String sql = "delete * from studentinfo where='"
							+ namestring + "'";
					st.executeUpdate(sql);
				} catch (Exception e) {
				}
				nameinput.removeItem(namestring);
			}

		});
	}
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值