《java程序設計》學生管理系統(tǒng)報告
《《java程序設計》學生管理系統(tǒng)報告》由會員分享,可在線閱讀,更多相關《《java程序設計》學生管理系統(tǒng)報告(21頁珍藏版)》請在裝配圖網上搜索。
1、精品文檔 好文檔 《Java程序設計》 結課報告 課程名稱 JAVA程序設計 設計題目 學生信息管理系統(tǒng) 專業(yè)班級 信科101班 學 號 09 學生姓名 XX 教 師 彭 潔 信息工程系 精品文檔 好文檔 目 錄 目 錄 II 第1章 系統(tǒng)簡介 3 1.1
2、 系統(tǒng)功能 3 1.2 系統(tǒng)引用例子 3 第2章 表的設計 4 2.1 系統(tǒng)數據庫表結構 4 第3章 連接數據庫的實現 5 3.1 SQL Server數據庫連接的關鍵代碼 5 第4章 系統(tǒng)詳細設計 6 4.1 系統(tǒng)登錄模塊設計 6 4.2 系統(tǒng)主界面詳細設計 9 4.3 學生信息增刪改模塊設計 10 4.4 學生信息查詢模塊設計 12 4.5 注冊子管理員模塊設計 15 答辯記錄 20 成績考核表 20 精品文檔 好文檔 學生信息管理系統(tǒng) 第1章 系統(tǒng)簡介 1.1 系統(tǒng)功能 本系統(tǒng)主要功能: 1) 通過數據校驗如果數據校驗成功,顯示
3、主界面; 2)登入后查詢所有學生信息; 3)窗體實現對學生信息的增加、刪除、修改; 4)模糊查詢,根據姓名或者一個字查詢; 5)實現子管理員的注冊,并且寫入注冊信息到記事本,并實現可以用新注冊的管理賬號登入系統(tǒng)主界面 1.2 系統(tǒng)引用例子 課本P275頁 15.5和課本P386頁 21.6 第2章 表的設計 2.1 系統(tǒng)數據庫表結構 將系統(tǒng)數據庫表結構用表的形式畫出,如: 字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名 SNO Int 10 P Not null 學生編號 SNAME Varchar 20 Not null
4、學生名字 SSEX Varchar 1 Not null 學生性別 表2.1 用戶表(JBXX) SAGE Int 2 Not null 學生年齡 字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名 SNO Int 10 P Not null 學生編號 JNAME Varchar 20 Not null 家長名字 JTEL Int 10 Not null 家庭電話 表2.2 家庭信息表(JTXX) 注冊子管理員的記事本1111.TXT內信息如下: yyyy#yyyy linlin#
5、linlin admin1#1111 admin2#2222 admin3#3333 admin4#4444 opop#opop uuuu#uuuu bbbb#bbbb tttt#tttt 第3章 連接數據庫的實現 3.1 SQL Server數據庫連接的關鍵代碼 public class DButil { Connection con = null; String name = "linqun"; String passname = "linqun"; String ul1 = "jdbc:oracle:t
6、hin:@127.0.0.1:1521:orcl"; public Connection getconn() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("數據庫驅動加載成功"); con = DriverManager.getConnection(ul1, name, passname); System.out.println("數據庫連接成功"); } catch (Exception e) { System.out.println(e); } retur
7、n 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(); } catch (Exception e) { e.printStackTrace(); }finally{ System.out.println("數據庫釋放!");} } } 第4章 系統(tǒng)詳細設計
8、 4.1 系統(tǒng)登錄模塊設計 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 l_pw = new JLabel("登陸密碼", JLabel.CENTER); priv
9、ate 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().getScreenSize(); this.setLo
10、cation((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("系統(tǒng)登錄"); l_Id.setBounds(48, 43, 53, 25); t_Id
11、.setBounds(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,
12、85, 28); btnLogin.setBackground(new Color(244, 243, 239)); btnLogin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addBtnLoginActionListener(); } }); getContentPane().add(btnLogin); btnAdd = new JButton(); btnAdd.setText("注冊")
13、; btnAdd.setBounds(105, 142, 85, 28); btnAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addNew zc = new addNew(); setVisible(false); zc.setVisible(true); } }); getContentPane().add(btnAdd); btnClose = new JButton(); btnClose.setText("關 閉
14、"); btnClose.setBounds(190, 142, 85, 28); btnClose.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); System.exit(-1); } }); getContentPane().add(btnClose); } private void addBtnLoginActionListener() { String id = t_Id.getText(); S
15、tring password = new String(t_pw.getPassword()); if (id.equals("")) { JOptionPane.showMessageDialog(this, "帳號不可為空", "提示", JOptionPane.WARNING_MESSAGE); return; } else if (password.equals("")) { JOptionPane.showMessageDialog(this, "密碼不可為空", "提示", JOptionPane.WARNING_MESSAGE); return; }
16、 else { tools t = new tools(); boolean success = false; // TODO:數據校驗 success = t.eqes(id, password); if (success) { // 如果數據校驗成功 顯示主界面 JOptionPane.showMessageDialog(this, "成功登錄", "提示", JOptionPane.INFORMATION_MESSAGE); new mainView(); this.dispose(); } else { --num;
17、 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
18、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(); setDefaultClos
19、eOperation(DISPOSE_ON_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 系統(tǒng)主界面詳細設計 4.2.1、運行效果圖 圖 4.2 登錄后系統(tǒng)界面效果圖 4.2.2、主要代碼 publi
20、c mainView() { super(); setTitle("所有學生信息"); setBounds(350, 150, 700, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); final JScrollPane scrollPane = new JScrollPane(); con = db.getconn(); Vector tableValueV, columnNameV;// 存放列名 columnNameV = new Vect
21、or(); columnNameV.add("學號"); columnNameV.add("名字"); columnNameV.add("性別"); columnNameV.add("年齡"); tableValueV = new Vector(); scrollPane.setViewportView(table); final JPanel panel = new JPanel(); getContentPane().add(panel, BorderLayout.SOUTH); panel.add(new JLabel("編號:"));
22、 aTextField = new JTextField("", 5); panel.add(aTextField); panel.add(new JLabel("姓名:")); bTextField = new JTextField("", 5); panel.add(bTextField); panel.add(new JLabel("性別:")); cTextField = new JTextField("", 5); panel.add(cTextField); panel.add(new JLabel("年齡:")); dTe
23、xtField = new JTextField("", 5); panel.add(dTextField); } 4.3 學生信息增刪改模塊設計 4.3.1、增加信息(121,白娘子,M,22)后運行效果圖如下: 圖 4.3 增加一個記錄效果圖 4.3.2、主要代碼 final JButton addButton = new JButton("添加"); addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { userDa
24、o 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(false); new mainView(); } });
25、 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
26、 selectedRow = 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)后運行效果圖如下:
27、 圖 4.5 修改一個記錄效果圖 4.3.6、主要代碼: panel.add(searchButton);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);
28、int selectedRow = table.getSelectedRow();// 獲得被選中行的索引 if (selectedRow != -1) {// 判斷是否存在被選中行 upe.setSno(Integer.parseInt(aTextField.getText())); upe.setsName(bTextField.getText()); upe.setSsex(cTextField.getText()); upe.setSage(Integer.parseInt(dTextField.getText())); update.up
29、dateUser(upe); setVisible(false); new mainView(); } } }); panel.add(updButton); 4.4 學生信息查詢模塊設計 4.4.1、運行效果圖 圖 4.6 查詢記錄集效果圖 查詢姓趙的人信息: 圖 4.7 查詢結果圖 查詢名字帶“山”的人信息: 圖 4.8 查詢結果圖 4.4.2、主要代碼: public search() { setTitle("根據姓名查詢學生信息"); setLayout(new BorderLayout()); setDefa
30、ultCloseOperation(JFrame.EXIT_ON_CLOSE); validate(); setBounds(350, 150, 650, 400); final JPanel pane = new JPanel(); jl=new JLabel("輸入姓或者名查詢"); TextField = new JTextField("", 5); jb1 = new JButton("查詢"); jb2 = new JButton("返回"); pane.add(jl); pane.add(TextField); pane.add(jb1);
31、 pane.add(jb2); getContentPane().add(pane, BorderLayout.NORTH); jb1.addActionListener(this); jb2.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("查詢")) { JScrollPane jsp = new JScrollPane(); Vector tableValu
32、eV,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()); Vector rowV = new Vector()
33、; 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); ge
34、tContentPane().add(jsp, BorderLayout.CENTER); setVisible(true); } if (e.getActionCommand().equals("返回")) { new mainView(); } } 4.5 注冊子管理員模塊設計 4.5.1、運行效果圖 圖 4.9 注冊子管理員效果圖 4.5.2、主要代碼: public addNew() { setDefaultCloseOperation(EXIT_ON_CLOSE); load(); this.setVisible(tr
35、ue); 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() {
36、public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void load() { Pane = (JPanel) getContentPane(); Pane.setLayout(null); setSize(new Dimension(410, 300)); setTitle("管理員登入界面"); t1.setBounds(70, 50, 100, 30); t2.setBounds(70, 80, 100, 30); t3
37、.setBounds(70, 110, 100, 30); t4.setBounds(250, 50, 100, 30); t5.setBounds(250, 80, 100, 30); f1.setBounds(150, 50, 100, 20); f2.setBounds(150, 80, 100, 20); f3.setBounds(150, 110, 100, 20); b1.setFont(new java.awt.Font("Botton", Font.BOLD, 12)); b1.setBounds(120, 140, 60, 50);
38、 b2.setFont(new java.awt.Font("Dialog", Font.BOLD, 12)); b2.setBounds(200, 140, 60, 50); Pane.add(t1); Pane.add(t2); Pane.add(t3); Pane.add(t4); Pane.add(t5); Pane.add(f1); Pane.add(f2); Pane.add(f3); Pane.add(b1); Pane.add(b2); b1.addActionListener(this); b2
39、.addActionListener(this); } 4.5.3、當注冊名已經存在時效果如下: 圖 4.10 驗證注冊界面 4.5.4、成功注冊時效果如下:(用戶名:qunqun;密碼:qunqun) 圖 4.11 注冊成功界面 4.5.5、主要代碼 public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("注冊")) { if (tools.indes(f1.getText()) && tools.indes(f2.getText())) {
40、 if (tools.eqes(f1.getText(), f2.getText())) { JOptionPane.showMessageDialog(this, "該用戶已被注冊,請重新輸入!"); System.exit(0); } else { tools.addUser(f1.getText(), f1.getText()); JOptionPane.showMessageDialog(this, "你已經成功注冊~"); System.exit(0); } } if (f1.ge
41、tText().equals("") || f2.getText().equals("")) { JOptionPane.showMessageDialog(this, "帳號或密碼長度有誤", "提示", JOptionPane.WARNING_MESSAGE); } } if (e.getActionCommand().equals("退出")) { System.exit(0); } 4.5.6、新注冊管理員(用戶名:qunqun;密碼:qunqun)登入效果如下: 圖 4 .12 登錄界面 圖 4 .13 登錄成功
42、界面 4.5.7、主要代碼: static boolean eqes(String admin, String passwd) { boolean bool = true; try { InputStream is = new FileInputStream("1111.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line = reader.readLine(); while (line != null) { // 如果 line
43、為空說明讀完了 String[] str = line.trim().split("#"); for (int i = 0; i < line.trim().split("#").length; i++) { if (admin.equals(str[0])) { if (passwd.equals(str[1])) { return true; } else { bool = false; } } else { bool = false; }
44、 } line = reader.readLine(); } } catch (Exception e) { e.printStackTrace(); } return bool; } static void addUser(String admin, String passwd) { File f = new File("1111.txt"); String oldStr = ""; try { FileReader fr = new FileReader(f); BufferedReader bufr
45、= new BufferedReader(fr); String line = null; while ((line = bufr.readLine()) != null) { oldStr += line+"\r\n"; } } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String content = oldStr+admin + "#" + pas
46、swd; try { FileWriter fw=new FileWriter(f); BufferedWriter bufw = new BufferedWriter(fw); bufw.write(content); bufw.newLine(); bufw.close(); fw.close(); } catch (Exception e) { e.printStackTrace(); } } 答辯記錄 答辯日期 答辯地點 主要問題 答辯要點 成績考核表 成績評定 項 目 參考權重 實際權重 原始 成績 加權 成績 1、作品質量程度(100分計) 0.4 2、報告書寫(100分計) 0.2 3、答辯(100分計) 0.4 總 成 績
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。