java學(xué)生信息管理系統(tǒng)+代碼_第1頁(yè)
java學(xué)生信息管理系統(tǒng)+代碼_第2頁(yè)
java學(xué)生信息管理系統(tǒng)+代碼_第3頁(yè)
java學(xué)生信息管理系統(tǒng)+代碼_第4頁(yè)
java學(xué)生信息管理系統(tǒng)+代碼_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)課程設(shè)計(jì)姓名:于晴學(xué)號(hào):121842237班級(jí):1班指導(dǎo)教師:陳學(xué)進(jìn) 14年12月30學(xué)生信息管理系統(tǒng)1、 內(nèi)容簡(jiǎn)介學(xué)生信息管理系統(tǒng)是學(xué)校管理的重要工具,是學(xué)校不可或缺的部分。 隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)量也不斷的上漲,。學(xué)校工作繁雜、資料眾多,人工管理信息的難度也越來(lái)越大,顯然是不能滿足實(shí)際的需要,效率也是很低的。并且這種傳統(tǒng)的方式存在著很多的弊端,如:保密性差、查詢不便、效率低,很難維護(hù)和更新等。然而,本系統(tǒng)針對(duì)以上缺點(diǎn)能夠極大地提高學(xué)生信息管理的效率,也是科學(xué)化、正規(guī)化的管理,與世界接軌的重要條件。所以如何自動(dòng)高效地管理信息是這些年來(lái)許多人所研究的。本系統(tǒng)提供了學(xué)生

2、信息管理中常見的基本功能,主要包括管理員和學(xué)生兩大模塊。管理員的主要功能有對(duì)學(xué)生信息和課程信息進(jìn)行增加、刪除、修改、查找等操作,對(duì)選課信息進(jìn)行管理,對(duì)成績(jī)信息和用戶信息進(jìn)行修改、查找等操作。學(xué)生的主要功能有對(duì)學(xué)生信息和成績(jī)信息進(jìn)行查看,對(duì)個(gè)人的密碼信息進(jìn)行修改等。一. 需求分析本系統(tǒng)需要實(shí)現(xiàn)的功能:(1)、管理員對(duì)學(xué)生信息和課程信息進(jìn)行增加、刪除、修改、查找等操作,對(duì)選課信息進(jìn)行管理,對(duì)成績(jī)信息和用戶信息進(jìn)行修改、查找等操作。(2)、學(xué)生對(duì)學(xué)生信息和成績(jī)信息進(jìn)行查看,對(duì)個(gè)人的密碼信息進(jìn)行修改等。2 總體設(shè)計(jì)學(xué)生信息管理系統(tǒng)主要包括管理員和學(xué)生兩大模塊。管理員模塊包括:學(xué)生信息管理、課程信息管理

3、、選課信息管理、成績(jī)信息管理、用戶信息管理等。用戶模塊包括:學(xué)生信息查看、成績(jī)信息查看、個(gè)人信息管理等。系統(tǒng)總體結(jié)構(gòu)如圖所示??傮w結(jié)構(gòu)圖3 模塊詳細(xì)設(shè)計(jì)1、學(xué)生信息管理模塊學(xué)生信息管理模塊包括增加、刪除、修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。學(xué)生信息管理模塊結(jié)構(gòu)圖2、選課信息管理模塊選課信息管理模塊包括查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。選課信息管理模塊結(jié)構(gòu)圖3、成績(jī)信息管理模塊成績(jī)信息管理模塊包括修改成績(jī)、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。成績(jī)信息管理模塊結(jié)構(gòu)圖4、用戶信息管理模塊用戶信息管理模塊包括修改、查詢、顯示全部等。具體的結(jié)構(gòu)圖如圖所示。用戶信息管理模塊結(jié)構(gòu)圖2、

4、數(shù)據(jù)庫(kù)設(shè)計(jì)在數(shù)據(jù)庫(kù)student中共有4張數(shù)據(jù)表:s(學(xué)生信息表)、c(課程信息表)、sc(選課信息表)、unpw(用戶信息表),下面定義每張表的字段名稱和數(shù)據(jù)類型。s(學(xué)生信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學(xué)號(hào),關(guān)鍵字snchar (20)姓名saint年齡sschar (10)性別sdchar (10)院系c(課程信息表)字段名稱數(shù)據(jù)類型描述cnochar (10)課程號(hào),關(guān)鍵字cnchar (30)課程名pcnochar (10)先行課程號(hào)sc(選課信息表)字段名稱數(shù)據(jù)類型描述snochar (10)學(xué)號(hào),關(guān)鍵字cnochar (10)課程號(hào),關(guān)鍵字gint成績(jī)unpw

5、(用戶信息表)字段名稱數(shù)據(jù)類型描述unchar (10)用戶名,關(guān)鍵字pwchar (10)密碼qxint角色3、 界面庫(kù)設(shè)計(jì)1、學(xué)生信息管理系統(tǒng)的登錄學(xué)生信息管理系統(tǒng)可由管理員和學(xué)生兩種身份的人使用。管理員和學(xué)生身份登錄所能操作的功能有很大的區(qū)別。系統(tǒng)初始化一個(gè)系統(tǒng)管理員,登錄名:admin 密碼:admin 學(xué)生登錄系統(tǒng)的登錄名為學(xué)號(hào),密碼也為學(xué)號(hào)(如:10001),登錄后可以修改密碼。登錄界面管理員登錄系統(tǒng)后的界面2、實(shí)現(xiàn)管理員和學(xué)生操作功能的界面管理員的登錄系統(tǒng)后可以進(jìn)行學(xué)生信息管理、課程信息管理、選課信息管理、成績(jī)信息管理、用戶信息管理等功能操作,其具體界面設(shè)計(jì)如下圖所示。 學(xué)生信息

6、管理功能的界面選課信息管理功能的界面成績(jī)信息管理功能的界面用戶信息管理功能的界面學(xué)生的登錄系統(tǒng)后可以進(jìn)行學(xué)生信息查看、成績(jī)信息查看、個(gè)人信息管理等功能操作,其具體界面設(shè)計(jì)如下圖所示。學(xué)生信息查看功能的界面成績(jī)信息查看功能的界面?zhèn)€人信息管理功能的界面4、 程序類的設(shè)計(jì) SimpleStudentManager 主函數(shù)類DLFrame 登陸界面類 ManagerFrane 管理員界面類 StudentFrame 學(xué)生界面類 SM 學(xué)生信息管理的類 SAdd 用于學(xué)生信息管理中增加或修改某條記錄的界面的類 SSelect 用于學(xué)生基本信息管理中查詢時(shí)輸入學(xué)號(hào)的界面的類 CM 課程信息管理的類 CAd

7、d 用于課程信息管理中增加或修改某條記錄的界面的類CSelect 用于課程信息管理中查詢時(shí)輸入課程號(hào)的界面的類 SCM 選課信息管理的類 SCSelect 用于選課信息管理中查詢時(shí)輸入學(xué)號(hào)的界面的類 GM 成績(jī)信息管理的類 GAdd 用于成績(jī)信息管理中修改成績(jī)的界面的類 GSelect 用于成績(jī)信息管理中查詢時(shí)輸入學(xué)號(hào)的界面的類 PM 用戶信息管理的類 UAdd 用于用戶信息管理中修改密碼的界面的類 PSelect 用于用戶信息管理中查詢時(shí)輸入用戶名的界面的類 StudentS 用于學(xué)生信息查看時(shí)輸入學(xué)號(hào)的界面的類 StudentSelect 用于成績(jī)信息查看時(shí)輸入學(xué)號(hào)的界面的類 PPM 個(gè)人

8、信息管理的類 PPSelect 用于個(gè)人信息管理查詢時(shí)輸入用戶名的界面的類 程序類的具體代碼實(shí)現(xiàn)見工程文件夾中的代碼及注釋5、 系統(tǒng)的使用說(shuō)明及環(huán)境配置學(xué)生信息管理系統(tǒng)提供了管理員和學(xué)生這兩個(gè)角色登錄系統(tǒng),管理員通過(guò)用戶名:admin 密碼:admin 登錄系統(tǒng)后可以進(jìn)行相應(yīng)的操作。學(xué)生通過(guò)以自己的學(xué)號(hào)(如10001)作為用戶名和密碼登錄系統(tǒng)后進(jìn)行相應(yīng)的學(xué)生權(quán)限范圍內(nèi)的操作。數(shù)據(jù)庫(kù):SQL Server 2005連接數(shù)據(jù)庫(kù)的登錄名:sa 密碼:123代碼:import javax.swing.*;import java.awt.*;import java.awt.event.*;import

9、java.sql.*;class CAdd extends JFrame implements ActionListener/ 用于課程信息管理中增加或修改某條記錄的界面JLabel lcno = new JLabel("課程號(hào):");JLabel lcname = new JLabel("課程名:");JLabel lpcno = new JLabel("先行課程號(hào):");JTextField tcno = new JTextField(10);JTextField tcname = new JTextField(10);JText

10、Field tpcno = new JTextField(10);JButton btnOK = new JButton("確定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;/ 用于判斷是否顯示課程信息管理的界面public CAdd() / 構(gòu)造方法this.setTitle("增加&qu

11、ot;);this.setBounds(200, 200, 146, 235);p.setLayout(new FlowLayout(FlowLayout.LEFT);p.add(lcno);p.add(tcno);p.add(lcname);p.add(tcname);p.add(lpcno);p.add(tpcno);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionList

12、ener(this);btnCancel.addActionListener(this);this.show();public void connDB() / 連接數(shù)據(jù)庫(kù)try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); catch (ClassNotFoundException e) e.printStackTrace();try con = DriverManager.getConnection("jdbc:sqlserver:/localhost:1433; DatabaseN

13、ame=student","sa", "123");stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 關(guān)閉連接try stmt.close();con.close(); catch (SQLException e) e.printStackTrace();public void insertst() / 插入記錄String kch = null;String kcm = null; String xx

14、kch=null;kch = tcno.getText();kcm = tcname.getText();xxkch=tpcno.getText();if (this.getTitle() = "修改") / 如果是修改記錄,先刪除再增加try this.connDB();int rs1 = stmt.executeUpdate("delete from c where cno='"+ kch + "'"); catch (SQLException e) e.printStackTrace();String str =

15、 "insert into c values('" + kch + "','" + kcm + "','" + xxkch + "')"this.connDB();/ 連接數(shù)據(jù)庫(kù)try stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!","提示", JOptionPane.INFORMATION_MESSAGE,

16、new ImageIcon("menu4.gif");this.setVisible(false); catch (SQLException e) JOptionPane.showMessageDialog(null, "課程號(hào)已存在!");tcno.setText("");public void actionPerformed(ActionEvent e) if (e.getActionCommand() = "確定") this.insertst();if (isNewsm) new CM("課程信息

17、管理").display();isNewsm = true;if (e.getActionCommand() = "取消") this.setVisible(false);new CM("課程信息管理").display();class CM extends JFrame implements ActionListener / 課程信息管理JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton(&qu

18、ot;刪除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查詢");JButton btnDisplay = new JButton("顯示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs

19、 = null;Object playerInfo;CSelect cst;String mkch = null;boolean bstd = false;CM(String title) / 構(gòu)造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();/ 連接數(shù)據(jù)庫(kù)this.setBounds(200,

20、 200, 400, 260);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();CM(CSelect

21、 cst, String title) / 構(gòu)造方法super(title);this.cst = cst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(200, 200, 400, 260);btnAdd.addActionListener(this);btnDelet

22、e.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);/ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();public void display() / 顯示所有的課程信息int i = 0;int j = 0;int k = 0;Li

23、st al = new ArrayList();try rs = stmt.executeQuery("select * from c");while (rs.next() / 找出表中的記錄數(shù)賦給ial.add(rs.getString("cno");al.add(rs.getString("cn");al.add(rs.getString("pcno");i+; catch (SQLException e) e.printStackTrace();playerInfo = new Objecti3;String

24、 columnNames = "課程號(hào)", "課程名", "先行課程號(hào)" ;try rs = stmt.executeQuery("select * from c order by cno");while (rs.next() playerInfoj0 = rs.getString("cno");playerInfoj1 = rs.getString("cn");playerInfoj2 = rs.getString("pcno");j+; catch (

25、SQLException e) e.printStackTrace();sTable = new JTable(playerInfo, columnNames);/ 創(chuàng)建網(wǎng)格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);public void connDB() / 連接數(shù)據(jù)庫(kù)try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); catch (ClassNotFoundException e) e.printSta

26、ckTrace();try con = DriverManager.getConnection("jdbc:sqlserver:/localhost:1433; DatabaseName=student","sa", "123");stmt = con.createStatement(); catch (SQLException e) e.printStackTrace();public void closeDB() / 關(guān)閉連接try stmt.close();con.close(); catch (SQLException e)

27、e.printStackTrace();public void delete() / 刪除某個(gè)課程信息String kch = null;String kcm = null;String xxkch = null;int row = -1;row = sTable.getSelectedRow();if (row = -1) / 判斷要?jiǎng)h除的信息是否被選中JOptionPane.showMessageDialog(null, "請(qǐng)選擇要?jiǎng)h除的記錄!"); else if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果int j1 = 0;try rs = stmt.exe

28、cuteQuery("select * from c");while (rs.next() && j1 <= row) / 找出當(dāng)前被選中的記錄在數(shù)據(jù)庫(kù)中的對(duì)應(yīng)kch = rs.getString("cno");kcm = rs.getString("cn");xxkch = rs.getString("pcno");j1+; catch (SQLException e) e.printStackTrace();int i1 = 0;try int rs1 = stmt.executeUpda

29、te("delete from c where cno='"+ kch + "'");/ 刪除數(shù)據(jù)庫(kù)中當(dāng)前被選中的記錄JOptionPane.showMessageDialog(null, "記錄刪除成功!");this.dispose();new CM("課程信息管理").display(); catch (SQLException e) e.printStackTrace(); else try int rs1 = stmt.executeUpdate("delete from c w

30、here cno='"+ mkch + "'");/ 刪除數(shù)據(jù)庫(kù)中當(dāng)前被選中的記錄JOptionPane.showMessageDialog(null, "記錄刪除成功!");this.dispose();new CM("課程信息管理").display(); catch (SQLException e) e.printStackTrace();public void update() / 修改某個(gè)課程記錄String kch = null;String kcm = null;String xxkch = n

31、ull;int row = -1;row = sTable.getSelectedRow();if (row = -1) JOptionPane.showMessageDialog(null, "請(qǐng)選擇要修改的記錄!"); else int j1 = 0;try if (!bstd) / 判斷選擇的是不是查詢后的結(jié)果rs = stmt.executeQuery("select * from c"); else rs = stmt.executeQuery("select * from c where cno='" + mkch+ "'");while (rs.next() && j1 <= row) / 找出當(dāng)前

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論