您的位置:首页 > 编程语言 > Java开发

JAVA源码(学生信息管理系统)

2014-06-12 11:40 736 查看



1. [代码][Java]代码

package student;

import java.sql.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class StuDataBase implements ActionListener {

Connection con;

Statement state;

// 连接数据库的账号和密码

String conAccount;

String conPassword;

JTextField textAccount;

JPasswordField textPass;

JFrame frame;

JButton sure1;

JDialog dialog;

JButton sure2;

MainFrame mainF;

public StuDataBase(MainFrame mainF) {

frame = new JFrame("登录");

conAccount = "student";

conPassword = "123456";

this.mainF = mainF;

frame.setSize(305, 165);

frame.setLocation(550, 250);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

buildConnect();

buildpane();

frame.setVisible(true);

}

public void buildConnect() {

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

public void buildpane() {

// frame的面板

JPanel fPane = (JPanel) frame.getContentPane();

fPane.setLayout(new GridLayout(3, 2));

Font f = new Font("MyFont", Font.PLAIN, 15);

JLabel account = new JLabel("账号", JLabel.CENTER);

JLabel password = new JLabel("密码", JLabel.CENTER);

account.setFont(f);

password.setFont(f);

textAccount = new JTextField();

textPass = new JPasswordField();

sure1 = new JButton("确定");

sure1.addActionListener(this);

fPane.add(account);

fPane.add(textAccount);

fPane.add(password);

fPane.add(textPass);

fPane.add(new JLabel());

fPane.add(sure1);

// dialog的面板

dialog = new JDialog(frame);

dialog.setSize(277, 137);

dialog.setLocation(565, 265);

JPanel dPane = (JPanel) dialog.getContentPane();

dPane.setLayout(new GridBagLayout());

GridBagConstraints c = new GridBagConstraints();

JLabel tip = new JLabel("账号密码错误,请重新输入", JLabel.CENTER);

tip.setFont(f);

sure2 = new JButton("确定");

sure2.addActionListener(this);

c.gridwidth = 3;

dPane.add(tip, c);

c.insets = new Insets(10, 10, 0, 0);

c.gridy = 1;

c.gridx = 2;

c.gridwidth = 1;

dPane.add(sure2, c);

}

public void createTable() {

try {

state.execute("Create table major(ID Integer Primary key, Name String);");

state.execute("Create table student(ID Integer Primary key,Name String,Sex String,Class Integer, Major Integer, Constraint fk foreign key(Major) references major(ID));");

} catch (SQLException e) {

System.out.println("表已存在");

}

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == sure1) {

if (textAccount.getText().equals(conAccount)

&& String.valueOf(textPass.getPassword()).equals(

conPassword))

try {

con = DriverManager.getConnection("JDBC:ODBC:Student",

conAccount, conPassword);

state = con.createStatement();

createTable();

frame.dispose();

mainF.state = state;

mainF.isStuExist(0);

mainF.isMajorExist(0);

mainF.setVisible(true);

} catch (SQLException e1) {


e1.printStackTrace();

}

else {

dialog.setVisible(true);

}

} else {

dialog.setVisible(false);

}

}

}

view sourceprint?

package student;

import javax.swing.*;

import java.util.Vector;

import java.awt.*;

import java.sql.*;

import java.awt.event.*;

@SuppressWarnings("serial")

public class MainFrame extends JFrame implements Runnable, ActionListener {

CardLayout cards;

Font font;

JMenuBar menuBar;

Statement state;

String sql;

// 定义外来码时用到

Vector MID;

// 记录下一个空ID

static int stuID;

static int majorID;

// 学生操作对应的面板

JPanel SR;

JPanel SQ;

JPanel SD;

JPanel SU;

// 专业操作对应的面板

JPanel MR;

JPanel MQ;

JPanel MD;

JPanel MU;

// 学生信息登记面板组件

JTextField SR_Name;

JTextField SR_Sex;

JTextField SR_Class;

JComboBox<Vector> SR_Major;

JButton SR_Yes;

JButton SR_No;

// 学生信息查询面板的组件

JTextField SQ_ID;

JTextField SQ_Name;

JTextField SQ_Class;

JTextField SQ_Major;

JButton SQ_Yes;

// 学生信息更新面板的组件

JTextField SU_Name;

JTextField SU_Class;

JTextField SU_Major;

JButton SU_Update;

JButton SU_Show;

// 学生信息删除面板的组件

JTextField SD_Field;

// 专业信息登记面板的组件

JTextField MR_ID;

JTextField MR_Name;

JButton MR_Yes;

JButton MR_No;

// 专业信息查询面板的组件

JTextField MQ_ID;

JTextField MQ_Name;

JButton MQ_Yes;

// 专业信息更新面板的组件

JTextField MU_Name;

JButton MU_Update;

// 专业信息删除面板

JLabel MD_Tip;

084

JTextField MD_Field;

085

JButton MD_Delete;

086

087

// 菜单项

JMenuItem stuR;

JMenuItem stuQ;

JMenuItem stuD

JMenuItem majorR;

JMenuItem major

JMenuItem majorD;

JMenuItem majorU;

public MainFrame() {

SR = new JPanel();

SQ = new JPanel();

SD = new JPanel();

SU = new JPanel();

MR = new JPanel();

MQ = new JPanel();

MU = new JPanel();

MD = new JPanel();

majorID = 1;

stuID = 1;

new Thread(this).start();

cards = new CardLayout();

font = new Font("myFont", Font.PLAIN, 15);

MID = new Vector();

// 当Major的ID的删除完时,显示

MID.add("");

// 菜单条

menuBar = new JMenuBar();

setTitle("学生管理");

setSize(400, 377);

setLocation(530, 200);

Main_Pane(this.getContentPane());

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

pane.add(SU, "2");

pane.add(SD, "3");

pane.add(MR, "4");

pane.add(MQ, "5");

pane.add(MU, "6");

pane.add(MD, "7");

}

public void Main_Menu() {

stuR = new JMenuItem("登记");

stuQ = new JMenuItem("查询");

stuD = new JMenuItem("删除");

stuU = new JMenuItem("更新");

JMenu stu = new JMenu("学生");

stu.add(stuR);

stu.add(stuQ);

stu.add(stuU);

stu.add(stuD);

majorR = new JMenuItem("登记");

majorQ = new JMenuItem("查询");

majorU = new JMenuItem("更新");

majorD = new JMenuItem("删除");

JMenu major = new JMenu("专业");

major.add(majorR);

major.add(majorQ);

major.add(majorU);

major.add(majorD);

menuBar.add(stu);

menuBar.add(major);

this.setJMenuBar(menuBar);

// 增加监听器

stuR.addActionListener(this);

stuQ.addActionListener(this);

stuD.addActionListener(this);

stuU.addActionListener(this);

majorR.addActionListener(this);

majorQ.addActionListener(this);

majorD.addActionListener(this);

majorU.addActionListener(this);

}

@Override

public void run() {

SR_Pane();

SQ_Pane();

SD_Pane();

SU_Pane();

MR_Pane();

MQ_Pane();

MU_Pane();

MD_Pane();

}

// 学生登记和查询面板

public void SR_Pane() {

SR.setLayout(new GridLayout(6, 2));

JLabel labelID = new JLabel("学号", JLabel.CENTER);

JLabel labelName = new JLabel("姓名", JLabel.CENTER);

JLabel labelSex = new JLabel("性别", JLabel.CENTER);

JLabel labelClass = new JLabel("班级", JLabel.CENTER);

JLabel labelMajor = new JLabel("专业码", JLabel.CENTER);

labelID.setFont(font);

labelName.setFont(font);

labelSex.setFont(font);

labelClass.setFont(font);

labelMajor.setFont(font);

SR_ID = new JTextField();

SR_ID.setText(String.valueOf(stuID));

SR_Name = new JTextField();

SR_Sex = new JTextField();

SR_Class = new JTextField();

SR_Major = new JComboBox<Vector>(MID);

SR_Yes = new JButton("登记");

SR_No = new JButton("取消");

SR_Yes.addActionListener(this);

SR_No.addActionListener(this);

SR.add(labelID);

SR.add(SR_ID);

SR.add(labelName);

SR.add(SR_Name);

SR.add(labelSex);

SR.add(SR_Sex);

SR.add(labelClass);

SR.add(SR_Class);

SR.add(labelMajor);

SR.add(SR_Major);

SR.add(SR_Yes);

SR.add(SR_No);

}

public void SQ_Pane() {

SQ.setLayout(new GridLayout(6, 2));

JLabel labelID = new JLabel("学号", JLabel.CENTER);

JLabel labelName = new JLabel("姓名", JLabel.CENTER);

JLabel labelSex = new JLabel("性别", JLabel.CENTER);

JLabel labelClass = new JLabel("班级", JLabel.CENTER);

JLabel labelMajor = new JLabel("专业码", JLabel.CENTER);

JLabel SD_Tip = new JLabel("输入学号", JLabel.CENTER);

labelID.setFont(font);

labelName.setFont(font);

labelSex.setFont(font);

labelClass.setFont(font);

labelMajor.setFont(font);

SD_Tip.setFont(font);

SQ_ID = new JTextField();

SQ_Name = new JTextField();

SQ_Sex = new JTextField();

SQ_Class = new JTextField();

SQ_Major = new JTextField();

SQ_Yes = new JButton("查询");

SQ_Yes.addActionListener(this);

SQ.add(labelID);

SQ.add(SQ_ID);

SQ.add(labelName);

SQ.add(SQ_Name);

SQ.add(labelSex);

SQ.add(SQ_Sex);

SQ.add(labelClass);

SQ.add(SQ_Class);

SQ.add(labelMajor);

SQ.add(SQ_Major);

SQ.add(SD_Tip);

SQ.add(SQ_Yes);

}

public void SD_Pane() {

SD.setLayout(new GridBagLayout());

GridBagConstraints c = new GridBagConstraints();

JLabel label = new JLabel("学号", JLabel.CENTER);

SD_Field = new JTextField();

JButton delete = new JButton("删除");

c.fill = GridBagConstraints.HORIZONTAL;

c.gridwidth = 1;

c.insets = new Insets(10, 10, 10, 10);

SD.add(label, c);

c.gridx = 1;

c.gridwidth = 3;

c.ipadx = 120;

SD.add(SD_Field, c);

c.gridwidth = 1;

c.gridx = 3;

c.ipadx = 0;

SD.add(delete, c);

delete.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

sql = "Delete from student where ID=";

sql += SD_Field.getText();

sql += ";";

System.out.println(sql);

try {

int i = Integer.valueOf(SD_Field.getText());

if (isStuExist(i)) {

state.execute(sql);

JOptionPane.showMessageDialog(SD, "已删除");

} else {

JOptionPane.showMessageDialog(SD, "删除失败");

}

} catch (SQLException e1) {

JOptionPane.showMessageDialog(SD, "删除失败");

}

}

});

}

public void SU_Pane() {

SU.setLayout(new GridLayout(6, 2));

JLabel labelID = new JLabel("学号", JLabel.CENTER);

JLabel labelName = new JLabel("姓名", JLabel.CENTER);

JLabel labelSex = new JLabel("性别", JLabel.CENTER);

JLabel labelClass = new JLabel("班级", JLabel.CENTER);

JLabel labelMajor = new JLabel("专业码", JLabel.CENTER);

labelID.setFont(font);

labelName.setFont(font);

labelSex.setFont(font);

labelClass.setFont(font);

labelMajor.setFont(font);

SU_ID = new JTextField();

SU_Name = new JTextField();

SU_Sex = new JTextField();

SU_Class = new JTextField();

SU_Major = new JTextField();

SU_Update = new JButton("更新");

SU_Update.addActionListener(this);

SU_Show = new JButton("显示");

SU_Show.addActionListener(this);

SU.add(labelID);

SU.add(SU_ID);

SU.add(labelName);

SU.add(SU_Name);

SU.add(labelSex);

SU.add(SU_Sex);

SU.add(labelClass);

SU.add(SU_Class);

SU.add(labelMajor);

SU.add(SU_Major);

SU.add(SU_Show);

}

public void MR_Pane() {

MR.setLayout(new GridLayout(3, 2));

JLabel labelID = new JLabel("专业码", JLabel.CENTER);

JLabel labelName = new JLabel("专业名", JLabel.CENTER);

labelID.setFont(font);

labelName.setFont(font);

MR_ID = new JTextField();

MR_Name = new JTextField();

MR_ID.setText(String.valueOf(majorID));

MR_Yes = new JButton("登记");

MR_Yes.addActionListener(this);

MR_No = new JButton("取消");

MR_No.addActionListener(this);

MR.add(labelID);

MR.add(MR_ID);

MR.add(labelName);

MR.add(MR_Name);

MR.add(MR_Yes);

MR.add(MR_No);

}

public void MQ_Pane() {

MQ.setLayout(new GridLayout(3, 2));

JLabel labelID = new JLabel("专业码", JLabel.CENTER);

JLabel labelName = new JLabel("专业名", JLabel.CENTER);

labelID.setFont(font);

labelName.setFont(font);

MQ_ID = new JTextField();

MQ_Name = new JTextField();

MQ_Yes = new JButton("查询");

MQ_Yes.addActionListener(this);

MQ.add(labelID);

MQ.add(MQ_ID);

MQ.add(labelName);

MQ.add(MQ_Name);

MQ.add(new JLabel("输入专业码", JLabel.CENTER));

MQ.add(MQ_Yes);

}

public void MU_Pane() {

MU.setLayout(new GridLayout(3, 2));

JLabel labelID = new JLabel("专业码", JLabel.CENTER);

JLabel labelName = new JLabel("专业名", JLabel.CENTER);

labelID.setFont(font);

labelName.setFont(font);

MU_ID = new JTextField();

MU_Name = new JTextField();

MU_Update = new JButton("更新");

MU_Update.addActionListener(this);

MU.add(labelID);

MU.add(MU_ID);

MU.add(labelName);

MU.add(MU_Name);

MU.add(new JLabel("输入专业码", JLabel.CENTER));

MU.add(MU_Update);

}

public void MD_Pane() {

MD.setLayout(new GridLayout(2, 2));

JLabel labelID = new JLabel("专业码", JLabel.CENTER);

MD_Tip = new JLabel("输入专业码", JLabel.CENTER);

labelID.setFont(font);

MD_Field = new JTextField();

MD_Delete = new JButton("删除");

MD_Delete.addActionListener(this);

MD.add(labelID);

MD.add(MD_Field);

MD.add(MD_Tip);

MD.add(MD_Delete);

}

@Override

public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

Container pane = getContentPane();

try {

if (source == SR_Yes) {

String ID = SR_ID.getText();

String Name = SR_Name.getText();

String Sex = SR_Sex.getText();

String Class = SR_Class.getText();

String Major = String.valueOf(SR_Major.getSelectedItem());

if (ID.length() > 0 && Name.length() > 0 && Sex.length() > 0

&& Class.length() > 0 && Major.length() > 0) {

sql = "Insert into student values(" + ID + ", '" + Name

+ "' , '" + Sex + "' ," + Class + "," + Major

+ ");";

state.execute(sql);

stuID++;

SR_ID.setText(String.valueOf(stuID));

SR_Name.setText("");

SR_Sex.setText("");

SR_Class.setText("");

}

}

if (source == SR_No) {

SR_Name.setText("");

SR_Sex.setText("");

SR_Class.setText("");

}

if (source == SQ_Yes) {

String ID = SQ_ID.getText();

if (ID.length() > 0) {

if (isStuExist(Integer.valueOf(ID))) {

sql = "Select * from student where ID="+ID+";";

ResultSet rs = state.executeQuery(sql);

while (rs.next()) {

SQ_Name.setText(rs.getString(2));

SQ_Sex.setText(rs.getString(3));

SQ_Class.setText(String.valueOf(rs.getInt(4)));

SQ_Major.setText(String.valueOf(rs.getInt(5)));

}

} else

JOptionPane.showMessageDialog(this, "输入的ID不存在");

}

}

if (source == SU_Show) {

showInformation_SU_Pane();

}

if (source == SU_Update) {

String SUID = SU_ID.getText();

if (SUID.length() > 0) {

String Name = SU_Name.getText();

String Sex = SU_Sex.getText();

String Class = SU_Class.getText();

String Major = SU_Major.getText();

sql = "Update student Set Name = '" + Name + "', Sex= ' "

+ Sex + "', Class= " + Class + ", Major = " + Major

+ " Where ID =" + SUID;

state.executeUpdate(sql);

JOptionPane.showMessageDialog(this, "更新成功");

}

}

if (source == MR_Yes) {

String ID = MR_ID.getText();

String MName = MR_Name.getText();

if (ID.length() > 0 && MName.length() > 0) {

sql = "Insert into major values( " + ID + ",'" + MName

+ "');";

state.execute(sql);

majorID++;

MID.add(Integer.valueOf(ID));

MR_ID.setText(String.valueOf(majorID));

MR_Name.setText("");

}

}

if (source == MR_No) {

MR_Name.setText("");

}

if (source == MQ_Yes) {

String ID = MQ_ID.getText();

if (ID.length() > 0) {

if (isMajorExist(Integer.valueOf(ID))) {

sql = "Select * from major where ID=" + ID + ";";

ResultSet rs = state.executeQuery(sql);

while (rs.next())

MQ_Name.setText(rs.getString(2));

} else

JOptionPane.showMessageDialog(this, "输入的ID不存在");

}

}

if (source == MU_Update) {

String ID = MU_ID.getText();

String Name = MU_Name.getText();

if (ID.length() > 0 && Name.length() > 0) {

sql = "Update major set Name = '" + Name + "' where ID ="

+ ID;

state.executeUpdate(sql);

JOptionPane.showMessageDialog(this, "更新成功");

}

}

if (source == MD_Delete) {

String ID = MD_Field.getText();

if (ID.length() > 0) {

int i = Integer.valueOf(ID);

if (isMajorExist(i)) {

try {

sql = "Delete from major where ID = " + ID;

state.execute(sql);

MID.remove((Integer) i);

SR_Major.setSelectedItem("");

JOptionPane.showMessageDialog(this, "已删除");

} catch (SQLException e2) {

JOptionPane.showMessageDialog(this,

"删除失败 ,学生中包含相关专业");

}

} else

JOptionPane.showMessageDialog(this, "删除失败");

}

}

} catch (SQLException e1) {

e1.printStackTrace();

}

if (source == stuR) {

cards.show(pane, "0");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 377);

}

if (source == stuQ) {

cards.show(pane, "1");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 377);

}

if (source == stuU) {

cards.show(pane, "2");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 377);

}

if (source == stuD) {

cards.show(pane, "3");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 377);

}

if (source == majorR) {

cards.show(pane, "4");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 250);

}

if (source == majorQ) {

cards.show(pane, "5");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 250);

}

if (source == majorU) {

cards.show(pane, "6");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 250);

}

if (source == majorD) {

cards.show(pane, "7");

Reset_S_Pane();

Reset_M_Pane();

setSize(400, 250);

}

}

public void Reset_S_Pane() {

SR_Name.setText("");

SR_Sex.setText("");

SR_Class.setText("");

SR_Major.setSelectedItem("");

SQ_ID.setText("");

SQ_Name.setText("");

SQ_Sex.setText("");

SQ_Class.setText("");

SQ_Major.setText("");

SU_ID.setText("");

SU_Name.setText("");

SU_Sex.setText("");

SU_Class.setText("");

SU_Major.setText("");

SD_Field.setText("");

}

public void Reset_M_Pane() {

MR_Name.setText("");

MQ_ID.setText("");

MQ_Name.setText("");

MU_ID.setText("");

MU_Name.setText("");

MD_Field.setText("");

}

public boolean isStuExist(int ID) {

try {

ResultSet rs = state.executeQuery("Select * from student");

while (rs.next()) {

int rsID = rs.getInt("ID");

stuID = rsID;

SR_ID.setText(String.valueOf(++stuID));

if (ID == rsID)

return true;

}

} catch (SQLException e) {

e.printStackTrace();

}

return false;

}

public boolean isMajorExist(int ID) {

try {

ResultSet rs = state.executeQuery("Select *from major");

while (rs.next()) {

int rsID = rs.getInt("ID");

if (!MID.contains(rsID))

MID.add(rsID);

majorID = rsID;

MR_ID.setText(String.valueOf(++majorID));

if (ID == rsID)

return true;

}

} catch (SQLException e) {

e.printStackTrace();

}

return false;

}

public void showInformation_SU_Pane() {

String SuID = SU_ID.getText();

if (SuID.length() > 0) {

sql = "Select * from student where ID="+SuID+";";

try {

ResultSet rs = state.executeQuery(sql);

while (rs.next()) {

SU_Name.setText(rs.getString(2));

SU_Sex.setText(rs.getString(3));

SU_Class.setText(String.valueOf(rs.getInt(4)));

SU_Major.setText(String.valueOf(rs.getInt(5)));

}

} catch (SQLException e1) {

e1.printStackTrace();

}

}

}

public static void main(String args[]) {

try {

UIManager

.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");

} catch (ClassNotFoundException | InstantiationException

| IllegalAccessException | UnsupportedLookAndFeelException e) {

e.printStackTrace();

}

JFrame.setDefaultLookAndFeelDecorated(true);

JDialog.setDefaultLookAndFeelDecorated(true);

MainFrame MF = new MainFrame();

new StuDataBase(MF);

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: