1、java程序设计学生管理系统报告 Java程序设计结课报告学生信息管理系统第1章 系统简介1.1 系统功能本系统主要功能:1)通过数据校验如果数据校验成功,显示主界面;2)登入后查询所有学生信息;3)窗体实现对学生信息的增加、删除、修改;4)模糊查询,根据姓名或者一个字查询;5)实现子管理员的注册,并且写入注册信息到记事本,并实现可以用新注册的管理账号登入系统主界面1.2 系统引用例子课本P275页 15.5和课本P386页 21.6第2章 表的设计2.1 系统数据库表结构将系统数据库表结构用表的形式画出,如:字段名字段类型长度主/外键字段值约束对应中文名SNOInt10PNot null学生
2、编号SNAMEVarchar20Not null学生名字SSEXVarchar 1Not null学生性别表2.1 用户表(JBXX)SAGEInt2Not null学生年龄字段名字段类型长度主/外键字段值约束对应中文名SNOInt10PNot null学生编号JNAMEVarchar20Not null家长名字JTELInt 10Not null家庭电话表2.2 家庭信息表(JTXX)注册子管理员的记事本1111.TXT内信息如下:yyyy#yyyylinlin#linlinadmin1#1111admin2#2222admin3#3333admin4#4444opop#opopuuuu#u
3、uuubbbb#bbbbtttt#tttt第3章 连接数据库的实现3.1 SQL Server数据库连接的关键代码public class DButil Connection con = null;String name = linqun;String passname = linqun;String ul1 = jdbc:oracle:thin:127.0.0.1:1521:orcl;public Connection getconn() try Class.forName(oracle.jdbc.driver.OracleDriver);System.out.println(数据库驱动加载
4、成功); con = DriverManager.getConnection(ul1, name, passname);System.out.println(数据库连接成功); catch (Exception e) System.out.println(e);return con;public void dbclose(Connection conn, Statement sta, ResultSet rs) try if (rs != null) rs.close();if (conn != null) conn.close();if (sta != null)sta.close(); c
5、atch (Exception e) e.printStackTrace(); finallySystem.out.println(数据库释放!); 系统登录模块设计4.1.1、运行效果图图 4.1 登录主界面效果图4.1.2、主要代码public class login extends JDialog static PreparedStatement SQL; private static final long serialVersionUID = 1L;private JLabel l_Id = new JLabel(登陆账户, JLabel.CENTER);private JLabel
6、l_pw = new JLabel(登陆密码, JLabel.CENTER);private JTextField t_Id = new JTextField(10);private JPasswordField t_pw = new JPasswordField(10);private JButton btnLogin;private JButton btnAdd;private JButton btnClose;int num = 3;public login() super();Dimension screenSize = Toolkit.getDefaultToolkit().getS
7、creenSize();this.setLocation(screenSize.width - 300) / 2,(screenSize.height - 200) / 2);this.setResizable(false);getContentPane().setBackground(new Color(225, 225, 225);getContentPane().setLayout(null);initialize();protected void initialize() setTitle(系统登录); l_Id.setBounds(48, 43, 53, 25); t_Id.setB
8、ounds(110, 43, 150, 25); l_pw.setBounds(48, 93, 53, 25); t_pw.setBounds(110, 93, 150, 25); getContentPane().add(l_Id); getContentPane().add(l_pw);getContentPane().add(t_Id);getContentPane().add(t_pw);btnLogin = new JButton();btnLogin.setText(登 录);btnLogin.setBounds(20, 142, 85, 28);btnLogin.setBackg
9、round(new Color(244, 243, 239); btnLogin.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) addBtnLoginActionListener(); ); getContentPane().add(btnLogin);btnAdd = new JButton();btnAdd.setText(注册);btnAdd.setBounds(105, 142, 85, 28);btnAdd.addActionListener(new ActionLi
10、stener() public void actionPerformed(ActionEvent e) addNew zc = new addNew(); setVisible(false); zc.setVisible(true); );getContentPane().add(btnAdd);btnClose = new JButton();btnClose.setText(关 闭);btnClose.setBounds(190, 142, 85, 28);btnClose.addActionListener(new ActionListener() public void actionP
11、erformed(ActionEvent e) dispose(); System.exit(-1); );getContentPane().add(btnClose);private void addBtnLoginActionListener() String id = t_Id.getText();String password = new String(t_pw.getPassword();if (id.equals() JOptionPane.showMessageDialog(this, 帐号不可为空, 提示, JOptionPane.WARNING_MESSAGE); retur
12、n; else if (password.equals() JOptionPane.showMessageDialog(this, 密码不可为空, 提示, JOptionPane.WARNING_MESSAGE); return; else tools t = new tools(); boolean success = false; / TODO:数据校验 success = t.eqes(id, password); if (success) / 如果数据校验成功 显示主界面 JOptionPane.showMessageDialog(this, 成功登录, 提示, JOptionPane
13、.INFORMATION_MESSAGE); new mainView(); this.dispose(); else -num; if (num = 0) JOptionPane.showMessageDialog(this, 用户名或者密码错误!您没有机会了); System.exit(0); else JOptionPane.showMessageDialog(this, 用户名或者密码错误!您还有 + num+ 次机会); public Dimension getPreferredSize() return new Dimension(320, 170);public void sho
14、w() Toolkit tk = Toolkit.getDefaultToolkit();Dimension screen = tk.getScreenSize();Dimension d = getSize();this.setLocation(screen.width - d.width) / 2,(screen.height - d.height) / 2); / 输入密码后回车相当于点击了登录按钮 getRootPane().setDefaultButton(btnLogin);t_pw.requestFocus();setDefaultCloseOperation(DISPOSE_O
15、N_CLOSE); setSize(300, 220); super.show(); public static void main(String args) DButil util = new DButil(); util.getconn(); login loginFrame = new login();loginFrame.setVisible(true);4.2.1、运行效果图图 4.2 登录后系统界面效果图4.2.2、主要代码public mainView() super(); setTitle(所有学生信息); setBounds(350, 150, 700, 400); setD
16、efaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); final JScrollPane scrollPane = new JScrollPane(); con = db.getconn(); Vector tableValueV, columnNameV;/ 存放列名 columnNameV = new Vector(); columnNameV.add(学号); columnNameV.add(名字); columnNameV.add(性别); columnNameV.add(年龄); tableValueV = new
17、 Vector();scrollPane.setViewportView(table); final JPanel panel = new JPanel(); getContentPane().add(panel, BorderLayout.SOUTH); panel.add(new JLabel(编号:); aTextField = new JTextField(, 5); panel.add(aTextField); panel.add(new JLabel(姓名:); bTextField = new JTextField(, 5); panel.add(bTextField); pan
18、el.add(new JLabel(性别:); cTextField = new JTextField(, 5); panel.add(cTextField); panel.add(new JLabel(年龄:); dTextField = new JTextField(, 5); panel.add(dTextField);4.3.1、增加信息(121,白娘子,M,22)后运行效果图如下:图 4.3 增加一个记录效果图4.3.2、主要代码final JButton addButton = new JButton(添加);addButton.addActionListener(new Acti
19、onListener() public void actionPerformed(ActionEvent e) userDao add = new userDaoImpl(); user u = new user(); u.setSno(Integer.parseInt(aTextField.getText(); u.setsName(bTextField.getText(); u.setSsex(cTextField.getText(); u.setSage(Integer.parseInt(dTextField.getText(); add.addUser(u); setVisible(f
20、alse); new mainView(); );panel.add(addButton);4.3.3、删除信息编号为120的学生信息后结果如下:图 4.4 删除一个记录效果图4.3.4、主要代码: final JButton delButton = new JButton(删除); delButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) userDao del = new userDaoImpl(); user ud = new user(); int select
21、edRow = table.getSelectedRow();/ 获得被选中行的索引 if (selectedRow != -1)/ 判断是否存在被选中行 del.deleUser(Integer.parseInt(aTextField.getText(); setVisible(false); tableModel.removeRow(selectedRow); ); panel.add(delButton);4.3.5、修改信息(105,关美眉,F,41)为(105,关大侠,M,30)后运行效果图如下:图 4.5 修改一个记录效果图4.3.6、主要代码:panel.add(searchBu
22、tton);final JButton updButton = new JButton(修改);updButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) userDao update = new userDaoImpl(); user upe = new user(); aTextField.setEditable(false); int selectedRow = table.getSelectedRow();/ 获得被选中行的索引 if (selectedRow !
23、= -1) / 判断是否存在被选中行 upe.setSno(Integer.parseInt(aTextField.getText(); upe.setsName(bTextField.getText(); upe.setSsex(cTextField.getText(); upe.setSage(Integer.parseInt(dTextField.getText(); update.updateUser(upe); setVisible(false); new mainView(); );panel.add(updButton);4.4.1、运行效果图图 4.6 查询记录集效果图查询姓赵
24、的人信息:图 4.7 查询结果图查询名字带“山”的人信息:图 4.8 查询结果图4.4.2、主要代码:public search() setTitle(根据姓名查询学生信息); setLayout(new BorderLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); validate(); setBounds(350, 150, 650, 400); final JPanel pane = new JPanel(); jl=new JLabel(输入姓或者名查询); TextField = new JTextField(, 5)
25、; jb1 = new JButton(查询); jb2 = new JButton(返回); pane.add(jl); pane.add(TextField); pane.add(jb1); pane.add(jb2); getContentPane().add(pane, BorderLayout.NORTH); jb1.addActionListener(this); jb2.addActionListener(this); setVisible(true);public void actionPerformed(ActionEvent e) if (e.getActionmand()
26、.equals(查询) JScrollPane jsp = new JScrollPane(); Vector tableValueV,columnNameV; columnNameV = new Vector(); columnNameV.add(学号); columnNameV.add(名字); columnNameV.add(性别); columnNameV.add(年龄); tableValueV = new Vector(); userDao user = new userDaoImpl(); user u = user.searchByName(TextField.getText(
27、); Vector rowV = new Vector(); rowV.add(u.getSno(); rowV.add(u.getsName(); rowV.add(u.getSsex(); rowV.add(u.getSage(); tableValueV.add(rowV); tableModel= new DefaultTableModel(tableValueV, columnNameV); table = new JTable(tableModel); jsp = new JScrollPane(table); jsp.setViewportView(table); getCont
28、entPane().add(jsp, BorderLayout.CENTER); setVisible(true); if (e.getActionmand().equals(返回) new mainView(); 4.5.1、运行效果图图 4.9 注册子管理员效果图4.5.2、主要代码:public addNew() setDefaultCloseOperation(EXIT_ON_CLOSE); load(); this.setVisible(true); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation(screenSize.width - 300) / 2, (screenSize.height - 200) / 2); this.setResizable(false); this.setTitle(注册子管理员界面); this.setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void load() Pane
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1