JAVA課程設(shè)計學生學籍管理系統(tǒng)_第1頁
JAVA課程設(shè)計學生學籍管理系統(tǒng)_第2頁
JAVA課程設(shè)計學生學籍管理系統(tǒng)_第3頁
JAVA課程設(shè)計學生學籍管理系統(tǒng)_第4頁
JAVA課程設(shè)計學生學籍管理系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄一、 設(shè)計目的2二、 功能介紹21、 系統(tǒng)功能要求22、 其他要求2三、 程序流程31、 數(shù)據(jù)庫設(shè)計32、 應(yīng)用程序設(shè)計4四、 設(shè)計步驟61、 連接數(shù)據(jù)庫類DBConnect62、 用戶登錄面板63、 應(yīng)用程序功能81. 查詢?nèi)?2. 條件查詢93. 個人信息顯示144. 添加信息155. 刪除信息186. 修改密碼217. 注銷22五、 設(shè)計總結(jié)23六、 參考資料23一、 設(shè)計目的通過課程設(shè)計,使學生提高理論聯(lián)系實際解決實際問題的能力;也使學生對基于面向?qū)ο蟮睦碚撨M行系統(tǒng)設(shè)計過程中的諸多具體問題有感性的認識和深入的理解;進而提高學生的學習興趣為其將來順利進入畢業(yè)環(huán)節(jié)作必要的準備。由教

2、師布置課程設(shè)計的題目與思路,學生每56人一個題目,按照教師給出的思路和計劃進度安排獨立完成課程設(shè)計,最后每人提交一份課程設(shè)計報告。二、 功能介紹(一)系統(tǒng)功能要求:(1)具有新用戶注冊功能。(2)具有注冊用戶登錄功能。(3)具有學生學籍的錄入功能。(4)具有數(shù)據(jù)查詢功能,可以實現(xiàn)查詢?nèi)啃畔⒑桶礂l件執(zhí)行查詢。(5)具有按條件刪除數(shù)據(jù)功能。(二)其它要求:(1)只能使用Java語言,采用面向?qū)ο蠓椒ㄟM行設(shè)計,要求源程序要有適當?shù)淖⑨專钩绦蛉菀组喿x。(2)程序必須與數(shù)據(jù)庫進行通信。(3)系統(tǒng)必須是圖形用戶界面的形式并連接數(shù)據(jù)庫。(4)學生可根據(jù)自身情況酌情增加新功能(視情況可另外加分)。(5)獨

3、立完成課程設(shè)計,并完成課程設(shè)計報告,報告應(yīng)記錄設(shè)計的過程,尤其是分析/設(shè)計/實現(xiàn)過程中的決策。三、 程序流程1、 數(shù)據(jù)庫設(shè)計1.admin表的設(shè)計表1 admin表2.student_info表的設(shè)計表2 student_info表2、應(yīng)用程序設(shè)計1.程序功能表視圖圖1 功能視圖2.程序流程圖圖2 流程圖四、 設(shè)計步驟1. 設(shè)計連接數(shù)據(jù)庫類DBConnect。功能說明:該類主要用于數(shù)據(jù)庫的連接。方法:public static Connection getConnect();方法實現(xiàn):public static Connection getConnect() throws ExceptionS

4、tring driver = com.mysql.jdbc.Driver;String url = jdbc:mysql:/localhost:3306/student;String user = root;String password = root;Class.forName(driver);return DriverManager.getConnection(url,user,password);2. 設(shè)計歡迎使用面板功能說明:顯示用戶登錄歡迎界面,當用戶選擇不同類型用戶登錄時,設(shè)置不同的下一頁面顯示信息。方法:public void loginButton_actionPerforme

5、d(ActionEvent e); 效果展示:圖3 歡迎界面方法實現(xiàn):public void loginButton_actionPerformed(ActionEvent e)if(e.getSource()=adminLoginButton)flag = true;user = 管理員;else if(e.getSource()=userLoginButton)flag = false;user = 普通;this.setTitle(學生學籍管理系統(tǒng)-+user+用戶登錄);LoginInfo.setText(歡迎+user+用戶登錄);setInfo();3. 設(shè)計用戶登錄面板功能說明:

6、該面板主要用于填寫用戶登錄信息,并根據(jù)用戶登錄信息查詢數(shù)據(jù)庫。點擊提交按鈕,查詢數(shù)據(jù)庫,若數(shù)據(jù)庫中有該用戶信息并且輸入密碼正確,則登錄成功,否則提示錯誤。點擊重置按鈕則清空文本框,點擊返回則返回上一級歡迎面板。方法:public void submit_actionPerformed(ActionEvent e); public void cancel_actionPerformed(ActionEvent e); public void back_actionPerformed(ActionEvent e);效果展示:圖4 填寫登錄信息方法實現(xiàn):/點擊提交按鈕public void subm

7、it_actionPerformed(ActionEvent e) throws Exceptionconnection = DBConnect.getConnect();statement = connection.createStatement();String textField = jTextField.getText().toString();String password = jPasswordField.getText().toString();String select = null;if(flag = true)select = select password from ad

8、min where username = +textField+;elseselect = select password from student_info where sno = +textField+;rs = statement.executeQuery(select);if(rs.next()&rs.getString(password).equals(password)username = textField;jTextField.setText();jPasswordField.setText();showInfo();elseJOptionPane.showMessageDia

9、log(this, 用戶名或密碼錯誤,請重新輸入);jPasswordField.setText();rs.close();/點擊重置按鈕public void cancel_actionPerformed(ActionEvent e)jTextField.setText();jPasswordField.setText();/點擊返回按鈕public void back_actionPerformed(ActionEvent e)this.setTitle(歡迎使用學生學籍管理系統(tǒng));jTextField.setText();jPasswordField.setText();try welc

10、ome(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();4. 設(shè)計應(yīng)用程序功能1. 查詢?nèi)?功能說明:當該用戶是管理員用戶的時候,該用戶具有查詢?nèi)繉W生信息和全部管理員信息的權(quán)限,當該用戶是普通學生用戶時,只有查詢?nèi)繉W生信息的功能。在查詢?nèi)繕撕炏拢c擊學生信息或管理員信息按鈕,程序就會將所有查詢信息顯示在右下角的表格里。方法:public void jButtonQurryAll_ationPerformed(ActionEvent e);效果展示圖5 查詢?nèi)繉W生信息圖6 查詢?nèi)?/p>

11、部管理員信息方法實現(xiàn):public void jButtonQurryAll_actionPerformed(ActionEvent e)if(e.getSource()=jButtonQurryAllAd)selectFlag = true;jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setColumnWidth(jTable);qurryString = select username, name, sex, people, age, dept from admin;else if(e.getSource()=jButtonQur

12、ryAllSt)selectFlag = false;jTable.setModel(JTableInfo.tableModelSt);JTableInfo.setColumnWidth(jTable);qurryString = select sno, sname, sex, people, age, sid, address, dept, sclass, inscore from student_info;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStac

13、kTrace();if(jComboBoxQuery.isEnabled() jComboBoxQuery.setEnabled(false);if(jComboBoxCon.isEnabled()jComboBoxCon.setEnabled(false);if(jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setEnabled(false);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTe

14、xtFieldQuery.setVisible(false);if(jButtonQueryOK.isEnabled() jButtonQueryOK.setEnabled(false);2. 條件查詢功能說明:當該用戶是管理員用戶的時候,該用戶具有按條件查詢學生信息和管理員信息的權(quán)限,當該用戶是普通學生用戶時,只有按條件查詢學生信息的功能。在條件查詢標簽下,點擊學生信息或管理員信息按鈕,之后在查詢條件下拉列表里選擇要查詢的條件并填寫相應(yīng)的值之后點擊查詢按鈕,在面板的右下角的表格中就會顯示查詢結(jié)果,若沒有記錄則給出提示。方法:public void jButtonQurryPrt_action

15、Performed(ActionEvent e); public void jButtonQueryOK_actionPerformed(ActionEvent e); public void jComboBoxQuery_actionPerformed(ActionEvent e);效果展示:圖7 按條件查詢學生信息成功圖8 按條件查詢管理員信息成功圖9 沒有符合條件的信息方法實現(xiàn):/search as conditionpublic void jButtonQurryPrt_actionPerformed(ActionEvent e)jComboBoxQuery.removeAllItem

16、s();jComboBoxCon.removeAllItems();if(e.getSource()=jButtonQurryPrtSt)selectFlag = false;jTable.setModel(JTableInfo.tableModelSt);for(int i = 0; i cbxStringSt.length; i +)jComboBoxQuery.addItem(cbxStringSti);else if(e.getSource()=jButtonQurryPrtAd)selectFlag = true;jTable.setModel(JTableInfo.tableMod

17、elAd);for(int i = 0; i cbxStringAd.length; i +)jComboBoxQuery.addItem(cbxStringAdi);JTableInfo.setColumnWidth(jTable);JTableInfo.setJTableEmpty(jTable);if(jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setEnabled(false);if(!jComboBoxQuery.isEnabled() jComboBoxQuery.setEnabled(true);if(!jButtonQuery

18、OK.isEnabled() jButtonQueryOK.setEnabled(true);/查詢按鈕事件處理public void jButtonQueryOK_actionPerformed(ActionEvent e)if(jTextFieldQuery.isEnabled() &jTextFieldQuery.isVisible()&(jTextFieldQuery.getText().toString() = null|jTextFieldQuery.getText().toString().equals() JOptionPane.showMessageDialog(this,

19、請輸入查詢的值);elseif(selectFlag)jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setColumnWidth(jTable);qurryString = select username, name, sex, people, age, dept from admin where ;if(jComboBoxQuery.getSelectedIndex()=0)qurryString += username = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getS

20、electedIndex()=1)qurryString += name like %+jTextFieldQuery.getText().toString()+%;else if(jComboBoxQuery.getSelectedIndex()=2)qurryString +=age ;if(jComboBoxCon.getSelectedIndex()=0)qurryString += +jTextFieldQuery.getText()+;else if(jComboBoxCon.getSelectedIndex()=1)qurryString += +jTextFieldQuery.

21、getText()+;else qurryString += =+jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=3)qurryString += dept = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=4)if(jComboBoxCon.getSelectedIndex()=0)qurryString += sex = 男;else qurryString += sex = 女;else qurryStri

22、ng += people = +jTextFieldQuery.getText()+;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();elsejTable.setModel(JTableInfo.tableModelSt);JTableInfo.setColumnWidth(jTable);qurryString = select sno, sname, sex, people, age, sid, address, dept, sclas

23、s, inscore from student_info where ;if(jComboBoxQuery.getSelectedIndex()=0)qurryString += sno = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=1)qurryString += sname like %+jTextFieldQuery.getText().toString()+%;else if(jComboBoxQuery.getSelectedIndex()=2)qurryString +=age ;if

24、(jComboBoxCon.getSelectedIndex()=0)qurryString += +jTextFieldQuery.getText()+;else if(jComboBoxCon.getSelectedIndex()=1)qurryString += +jTextFieldQuery.getText()+;else qurryString += =+jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=3)qurryString += dept = +jTextFieldQuery.getTe

25、xt()+;else if(jComboBoxQuery.getSelectedIndex()=4)if(jComboBoxCon.getSelectedIndex()=0)qurryString += sex = 男;else qurryString += sex = 女;else if(jComboBoxQuery.getSelectedIndex()=5)qurryString += people = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=6)qurryString += address

26、 = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=7)qurryString += sclass = +jTextFieldQuery.getText()+;else qurryString +=inscore ;if(jComboBoxCon.getSelectedIndex()=0)qurryString += +jTextFieldQuery.getText()+;else if(jComboBoxCon.getSelectedIndex()=1)qurryString += +jTextFi

27、eldQuery.getText()+;else qurryString += =+jTextFieldQuery.getText()+;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();if(cnt = 0) JOptionPane.showMessageDialog (this, 沒有符合條件的信息);/jComboBoxQuery 第一個下拉列表事件public void jComboBoxQuery_actionPerformed(A

28、ctionEvent e)jTextFieldQuery.setText();if(jComboBoxQuery.getSelectedIndex() = 2|jComboBoxQuery.getSelectedIndex() = 4|jComboBoxQuery.getSelectedIndex() = 8)jComboBoxCon.setEnabled(true);if(jComboBoxQuery.getSelectedIndex() = 4)jComboBoxCon.removeAllItems();for(int i = 0; i cbxStringSexCon.length; i

29、+)jComboBoxCon.addItem(cbxStringSexConi);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(false);elseif(!jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(true);if(!jTextFieldQuery.isVisible() jTextFieldQuery.setVisib

30、le(true);jComboBoxCon.removeAllItems();for(int i = 0; i cbxStringCon.length; i +)jComboBoxCon.addItem(cbxStringConi);elseif(!jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(true);if(!jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(true);jComboBoxCon.setEnabled(false);3. 個人信息顯示功能說明:主要

31、顯示個人信息,當用戶點擊個人信息標簽下的顯示信息按鈕時,在面板的右下角顯示用戶個人信息方法:public void jButtonUpdate_actionPerformed(ActionEvent e);效果展示:圖10 顯示當前用戶信息方法實現(xiàn):/show own infopublic void jButtonUpdate_actionPerformed(ActionEvent e)if(flag)jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setColumnWidth(jTable);qurryString = select u

32、sername, name, sex, people, age, dept from admin where username = +username+;selectFlag = true;elsejTable.setModel(JTableInfo.tableModelSt);JTableInfo.setColumnWidth(jTable);selectFlag = false;qurryString = select sno, sname, sex, people, age, sid, address, dept, sclass, inscore from student_info wh

33、ere sno = +username+;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();if(jComboBoxQuery.isEnabled() jComboBoxQuery.setEnabled(false);if(jComboBoxCon.isEnabled() jComboBoxCon.setEnabled(false);if(jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setE

34、nabled(false);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(false);if(jButtonQueryOK.isEnabled() jButtonQueryOK.setEnabled(false);4. 添加信息功能說明:主要用于添加學生記錄和管理員。當點擊添加信息標簽下的學生記或管理員用戶時,在面板右下角的表格中就會有一個空行,在空行中填寫你要添加的記錄,點擊添加按鈕,若數(shù)據(jù)

35、庫中沒有該學號的學生或用戶名唯一,則會提示添加成功,否則提示添加失敗方法:public void jButtonAdd_actionPerformed(ActionEvent e); public void jBtuuonUpdateInfo_actionPerformed(ActionEvent e);效果展示:圖11 添加學生記錄成功圖12 添加管理員用戶失敗方法實現(xiàn):/add infopublic void jButtonAdd_actionPerformed(ActionEvent e)if(e.getSource()=jButtonAddSt)selectFlag = false;j

36、Table.setModel(JTableInfo.tableModelSt);JTableInfo.setJTableEmpty(jTable);JTableInfo.setColumnWidth(jTable);DefaultTableModel tableModel = (DefaultTableModel)jTable.getModel();tableModel.addRow(new Objectnull, null, null, null, null, null, null, null, null, null);else if(e.getSource()=jButtonAddAd)s

37、electFlag = true;jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setJTableEmpty(jTable);JTableInfo.setColumnWidth(jTable);DefaultTableModel tableModel = (DefaultTableModel)jTable.getModel();tableModel.addRow(new Objectnull,null,null,null,null,null);if(jComboBoxQuery.isEnabled()jComboBoxQuery.set

38、Enabled(false);if(jComboBoxCon.isEnabled()jComboBoxCon.setEnabled(false);if(!jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setEnabled(true);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(false);if(jButtonQueryOK.isEnable

39、d() jButtonQueryOK.setEnabled(false);/添加信息public void jButtonUpdateInfo_actionPerformed(ActionEvent e)qurryString = insert into ;if(selectFlag)qurryString += admin values(;Admin ad = new Admin();ad.setUserName(String)jTable.getValueAt(0, 0);ad.setName(String)jTable.getValueAt(0, 1);ad.setSex(String)

40、jTable.getValueAt(0, 2);ad.setPeople(String)jTable.getValueAt(0, 3);if(jTable.getValueAt(0, 4)!=null)ad.setAge(Integer.parseInt(String)jTable.getValueAt(0, 4);ad.setDept(String)jTable.getValueAt(0, 5);ad.setPassword(String)jTable.getValueAt(0, 0);if(ad.getSex()!= null&!ad.getSex().equals()&!ad.getSe

41、x().equals(男)&!ad.getSex().equals(女)JOptionPane.showMessageDialog(this, 性別只能為男或女);elseBoolean fg = false;qurryString +=ad.getUserName()+, +ad.getName()+, +ad.getSex()+, +ad.getPeople()+, +ad.getAge()+, +ad.getDept()+, +ad.getPassword()+);try statement.executeUpdate(qurryString); catch (SQLException

42、e1) fg = true;JOptionPane.showMessageDialog(this, 用戶已存在或性別為空);if(!fg)JOptionPane.showMessageDialog(this, 添加成功);elsequrryString += student_info values(;Student st = new Student();st.setSno(String)jTable.getValueAt(0, 0);st.setName(String)jTable.getValueAt(0, 1);st.setSex(String)jTable.getValueAt(0, 2

43、);st.setPeople(String)jTable.getValueAt(0, 3);if(jTable.getValueAt(0, 4)!=null)st.setAge(Integer.parseInt(String)jTable.getValueAt(0, 4);st.setSID(String)jTable.getValueAt(0, 5);st.setAddress(String)jTable.getValueAt(0, 6);st.setDept(String)jTable.getValueAt(0, 7);st.setClass(String)jTable.getValueA

44、t(0, 8);if(jTable.getValueAt(0, 9)!=null)st.setInScore(Integer.parseInt(String)jTable.getValueAt(0, 9);st.setPassword(String)jTable.getValueAt(0, 0);if(st.getSex()!=null& !st.getSex().equals() & !st.getSex().equals(男)& !st.getSex().equals(女)JOptionPane.showMessageDialog(this, 性別只能為男或女);elseBoolean f

45、g = false;qurryString += st.getSno()+, +st.getName()+, +st.getSex()+, +st.getPeople()+, +st.getAge()+, +st.getSID()+, +st.getAddress()+, +st.getDept()+, +st.getSClass()+, +st.getInScore()+, +st.getPassword()+);try statement.executeUpdate(qurryString); catch (SQLException e1) fg = true;JOptionPane.sh

46、owMessageDialog(this, 已有該學號的學生記錄或性別為空);if(!fg)JOptionPane.showMessageDialog(this, 添加成功);5. 刪除記錄功能說明:主要用于刪除學生記錄和管理員用戶。在表格中選擇你要刪除的信息后,當點擊刪除信息標簽下的學生信息或管理員信息時,應(yīng)用程序就會提示你是否真的要刪除你選擇的信息,若點是,則應(yīng)用程序會刪除你要刪除的信息,點擊其他則取消刪除。方法:public jBottonDelete_actionPerformed(ActionEvent e);效果展示:圖13 刪除學生信息圖14 刪除管理員用戶成功方法實現(xiàn):/delete infopublic void jButtonDelete_actionPerformed(ActionEvent e) throws ExceptionString sql = null;boolean isRight = true;int selectRows = jTable.getSelectedRows().length;DefaultTableModel tableModel = (DefaultTableModel)jTable.getM

溫馨提示

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

評論

0/150

提交評論