资源描述
学生学籍管理详细设计
学号:____________
姓名:____________
班级:____________
一、 设计题目:
学生学籍管理
二:设计内容:
设计GUI学生学籍管理界面,顾客可以加入学生信息,并对基本信息进行修改,添加,查询,删除。
三:设计规定:
进行简朴学生信息管理。
四:总体设计
(1)登陆界面设计
(2)主窗体设计
(3)添加学生信息窗体
(4)查询学生信息窗体
(5)修改学生信息窗体
(6)删除学生信息窗体
(7)事件响应解决
五:详细设计
(1) 程序构造阐明:
A. 入口程序:student.java;
B. 登陆界面程序:mainframe.java;
C. 主窗体程序:interfac.java;
D. 添加信息窗口程序:tj.java;
E. 修改信息窗口程序:xg.java;
F. 查询信息窗口程序:cx.java;
G. 删除信息窗口程序:sc.java;
H. 程序数据连接:DatabaseConn.java;
(2) 程序代码及分析阐明
A.程序源代码(已提交)
B.Student.java是程序入口。使登录窗口位于窗口中间,并且不可变化窗口大小。
C.mainframe.java是程序登陆窗体。输入顾客名和密码(顾客名和密码在数据库password表中)点击“进入系统”,然后登陆界面消失;浮现要操作界面(屏幕左上角)。
D.tj.java是添加信息界面。添加基本信息后,点击“添加信息”按钮,将信息加入xinxi表中。
E.xg.java是修改信息界面。输入要修改学号或姓名(两者数其一或所有输入),并输入所有信息,点击“修改信息”按钮(如果数据库中不存在此学号,则弹出对话框“无此学生信息”),若有则修改。
F.sc.java是删除信息界面。输入要删除学生学号,点击“删除信息”按钮,弹出确认删除对话框,即可删除该生信息。
G.cx.java是查询信息界面。输入要查询学生学号,点击“信息查询”按钮,在相应文本区里显示查询信息。
H:源代码
//student.java:程序入口。初始化界面,使主界面位于屏幕中间,且顾客不能变化大小
//功能:完毕程序执行顺序
import javax.swing.UIManager;
import java.awt.*;
import java.sql.*;
//import screen
public class student
{
boolean packFrame=false;
//JFrame frame=new JFrame();
public student()
{
mainframe frame=new mainframe();
if(packFrame)
{
frame.pack();
}
else
{
frame.validate();
}
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
if(frameSize.height>screenSize.height)
{
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width)
{
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
public static void main(String[] args)
{
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e)
{
e.printStackTrace();
}
new student();
}
}
//数据库连接
//package sql.database;
import java.sql.*;
public class DatabaseConn
{
private static String user="";
private static String password="";
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
static
{
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动
}
catch(ClassNotFoundException e){}
}
//创立数据库连接对象
public Connection getConnection()
{
try{
conn=DriverManager.getConnection("jdbc:odbc:stu",user,password);
return conn;
}catch(SQLException e)
{
return null;
}
}
public Statement createStat()
{
try{
conn=getConnection();
stmt=conn.createStatement();
return stmt;
}catch(SQLException e)
{return null;}
}
public ResultSet getRs(String sql)
{
try{
conn=getConnection();//...
stmt=createStat();
rs=stmt.executeQuery(sql);
return rs;
}catch(SQLException e)
{
return null;
}
}
public void close()
{
try{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}catch(SQLException ex)
{
ex.printStackTrace();
}
}
}
//mainframe.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class mainframe extends JFrame implements ActionListener
{
static mainframe s;
static JPanel pan=new JPanel();
static JLabel label1 = new JLabel("用 户");
static JLabel label2 = new JLabel("密 码");
static JTextField textField1 = new JTextField();
static JPasswordField password = new JPasswordField();
static JButton button1 = new JButton("进入系统");
static JRadioButton radioButton1=new JRadioButton("管理员",true);//“管理员”初始状态被选中
static JRadioButton radioButton2=new JRadioButton("学生");
static JRadioButton radioButton3=new JRadioButton("教师");
ButtonGroup buttonGroup=new ButtonGroup();
public mainframe()
{
JLabel label=new JLabel(new ImageIcon("图片44.jpg"));
label.setSize(400,400);
pan.add(label);
pan.setLayout(null);
pan.setSize(400,400);
this.setTitle("学籍管理系统");
this.setSize(400,400);
this.setLayout(null);
label1.setBounds(100,25,49,20);
textField1.setBounds(155,24,120,20);
label2.setBounds(100,62,49,20);
password.setBounds(155,61,120,20);
button1.setBounds(150,200,101,22);
radioButton1.setBounds(105,120,80,20);
radioButton2.setBounds(180,120,60,20);
radioButton3.setBounds(240,120,60,20);
button1.addActionListener(this);
buttonGroup.add(radioButton1);
buttonGroup.add(radioButton2);
buttonGroup.add(radioButton3);
this.add(radioButton1);
this.add(radioButton2);
this.add(radioButton3);
this.add(label1);
this.add(label2);
this.add(textField1);
this.add(password);
this.add(button1);
this.add(pan);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args)
{
new mainframe();
}
public void actionPerformed(ActionEvent e)
{
if(radioButton1.isSelected())//管理员
{
if(textField1.getText().equals("syc") && password.getText().equals("123")){
interfac b=new interfac();
this.dispose();
//JOptionPane.showMessageDialog(null,"登陆成功");
}else if("".equals(textField1.getText()) || "".equals(password.getText()) ){
JOptionPane.showMessageDialog(null,"顾客名或密码不能为空");
}else{
JOptionPane.showMessageDialog(null,"顾客名或密码输入有误");
}
}
if(radioButton2.isSelected())//学生
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException ce)
{
JOptionPane.showMessageDialog(s,ce.getMessage());
}
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:stu","sa","");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from password where 顾客名 = '"+textField1.getText()+"' and 密码 = '"+password.getText()+"'");
if(textField1.getText().equals("")||password.getText().equals(""))
{
JOptionPane.showMessageDialog(this,"顾客名或密码不可为空!");
}
else if(rs.next())
{ new interfac();}
else
{JOptionPane.showMessageDialog(this,"您输入有误");}
//stmt.close();
}
catch (SQLException se)
{
JOptionPane.showMessageDialog(s,se.getMessage());
}
}
}
}
//interface.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class interfac extends JFrame implements ActionListener
{
static JMenuBar jMenuBar = new JMenuBar();//菜单条
static JMenu jMenuFile = new JMenu("文献");//菜单项
static JMenu jMenuExit = new JMenu("退出");
static JMenuItem jMenuItem1 = new JMenuItem("添加信息");//菜单子项
static JMenuItem jMenuItem2 = new JMenuItem("修改信息");
static JMenuItem jMenuItem3 = new JMenuItem("信息查询");
static JMenuItem jMenuItem4 = new JMenuItem("删除信息");
static JLabel label3 = new JLabel("请选取操作项");
static JLabel label4 = new JLabel("学籍管理系统");
static JButton button2 = new JButton("添加信息");
static JButton button3 = new JButton("修改信息");
static JButton button4 = new JButton("信息查询");
static JButton button5 = new JButton("删除信息");
public interfac()
{
this.setTitle("学籍管理系统");
this.setLayout(null);
this.setSize(400,400);
label3.setBounds(158,92,98,33);
label3.setFont(new Font("Dialog",Font.PLAIN,15));
label4.setFont(new Font("Dialog",Font.BOLD,20));
label4.setBounds(157,37,280,40);
button2.setBounds(74,136,97,33);
button3.setBounds(226,136,97,33);
button4.setBounds(74,185,97,33);
button5.setBounds(226,185,97,33);
this.add(button2);
this.add(button3);
this.add(button4);
this.add(button5);
this.add(label3);
this.add(label4);
setJMenuBar(jMenuBar);
jMenuFile.add(jMenuItem1);//”文献“菜单项中加入子菜单
jMenuFile.add(jMenuItem2);
jMenuFile.add(jMenuItem3);
jMenuFile.add(jMenuItem4);
jMenuBar.add(jMenuFile);//将菜单项加入菜单条
jMenuBar.add(jMenuExit);
button2.addActionListener(this);//本窗口向按钮事件源注册
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
jMenuItem1.addActionListener(this);//本窗口菜单子项注册
jMenuItem2.addActionListener(this);
jMenuItem3.addActionListener(this);
jMenuItem4.addActionListener(this);
jMenuExit.addActionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args)
{
interfac a=new interfac();
}
public void actionPerformed(ActionEvent e) //按钮事件解决
{
if(e.getSource()==jMenuExit)
{
System.exit(0);
}
else if(e.getSource()==jMenuItem1||e.getSource()==button2)
{
try{
tj a=new tj();
}
catch(Exception ee) {}
}
else if(e.getSource()==jMenuItem2||e.getSource()==button3)
{
try{
xg a=new xg();
}catch(Exception ed) {}
}
else if(e.getSource()==jMenuItem3||e.getSource()==button4)
{
try{
cx a=new cx();}
catch(Exception ec){}
}
else if(e.getSource()==jMenuItem4||e.getSource()==button5)
{
try{
sc a=new sc();
}catch(Exception es){}
}
}
}
//tj.java 添加界面
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class tj extends JFrame implements ActionListener
{
static tj s;
static JLabel label1 = new JLabel("学号:");
static JTextField textField1 = new JTextField("");
static JLabel label2 = new JLabel("姓名:");
static JTextField textField2 = new JTextField("");
static JLabel label3 = new JLabel("性别:");
static JTextField textField7=new JTextField("");
static JLabel label4 = new JLabel("出生日期:");
static JTextField textField3 = new JTextField("");
static JLabel label5 = new JLabel("政治面貌:");
static JTextField textField8=new JTextField("");
static JLabel label6 = new JLabel("籍贯");
static JTextField textField4 = new JTextField("");
static JLabel label7 = new JLabel("系别:");
static JTextField textField9 = new JTextField("");
static JLabel label8 = new JLabel("专业:");
static JTextField textField5 = new JTextField("");
static JButton button1 = new JButton("增长");
public tj()
{
this.setTitle("增长学生信息");
this.setLayout(null);
this.setSize(400,400);
label1.setBounds(30,11,51,33);
textField1.setBounds(86,16,74,22);
label2.setBounds(162,11,51,33);
textField2.setBounds(192,16,44,22);
label3.setBounds(241,11,70,33);
textField7.setBounds(275,15,50,25);
label4.setBounds(31,53,55,33);
textField3.setBounds(86,58,74,22);
label5.setBounds(241,53,70,33);
textField8.setBounds(296,57,72,25);
label6.setBounds(163,53,26,33);
textField4.setBounds(191,58,44,22);
label7.setBounds(30,94,50,33);
textField9.setBounds(86,94,74,22);
label8.setBounds(163,94,51,33);
textField5.setBounds(190,99,178,22);
button1.setBounds(25,241,80,33);
button1.addActionListener(this);
this.add(label1);
this.add(label2);
this.add(label3);
this.add(label4);
this.add(label5);
this.add(label6);
this.add(label7);
this.add(label8);
this.add(textField1);
this.add(textField2);
this.add(textField3);
this.add(textField4);
this.add(textField5);
this.add(textField7);
this.add(textField8);
this.add(textField9);
this.add(button1);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) throws Exception
{
tj a= new tj();
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)//事件解决程序
{
if (e.getSource() == button1)
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException ce)
{
JOptionPane.showMessageDialog(s,ce.getMessage());
}
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:stu","sa","
");
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from xinxi where 学号='"+textField1.getText
()+"'");
if(rs.next())
{
JOptionPane.showMessageDialog(null,"此学号已经被注册");
}
else
{
stmt.execute("insert into xinxi (学号,姓名,性别,出生日期,政治面貌,
籍贯,系别,专业) values ('"+
textField1.getText()+"','"+textField2.getText()
+"','"+textField7.getText()+"','"+
textField3.getText()+"','"+textField8.getText()
+"','"+textField4.getText()+"','"+
textField9.getText()+"','"+textField5.getText()+"')");
JOptionPane.showMessageDialog(null,"添加信息成功");
}
}
catch (SQLException se)
{
JOptionPane.showMessageDialog(s,se.getMessage());
}
}
}
}
//xg.java 修改界面
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class xg extends JFrame implements ActionListener
{
static xg s;
static JLabel label1 = new JLabel("学号:");
static JTextField textField1 = new JTextField("");
static JLabel label2 = new JLabel("姓名:");
static JTextField textField2 = new JTextField("");
static JLabel label3 = new JLabel("性别:");
static JTextField textField7=new JTextField("");
static JLabel label4 = new JLabel("出生日期:");
static JTextField textField3 = new JTextField("");
static JLabel label5 = new JLabel("政治面貌:");
static JTextField textField8=new JTextField("");
static JLabel label6 = new JLabel("籍贯");
static JTextField textField4 = new JTextField("");
static JLabel label7 = new JLabel("系别:");
static JTextField textField9 = new JTextField("");
static JLabel label8 = new JLabel("专业:");
static JTextField textField5 = new JTextField("");
static JButton button2=new JButton("修改");
public xg()
{
this.setTitle("修改学生信息");
this.setLayout(null);
this.setSiz
展开阅读全文