學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、  JAVA程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告 課    題:       學(xué)生信息管理系統(tǒng)                 姓    名:            肖   

2、                 學(xué)    號(hào):                         同組姓名:     &

3、#160;                專業(yè)班級(jí):       信管12101                         

4、指導(dǎo)教師:                               設(shè)計(jì)時(shí)間:     2014.6.23至2014.6.27    評(píng)閱意見:     評(píng)定成績:

5、指導(dǎo)老師簽名: 年 月 日    目 錄1.系統(tǒng)描述.3 1.1 需要實(shí)現(xiàn)的功能.3 1.2 設(shè)計(jì)的目的.32.分析與設(shè)計(jì).4 2.1 功能模塊劃分.4 2.2 數(shù)據(jù)庫結(jié)構(gòu)描述.5 2.3 系統(tǒng)詳細(xì)設(shè)計(jì)文檔.82.4 各模塊的實(shí)現(xiàn)方法描述.102.5 測(cè)試數(shù)據(jù)及期望結(jié)果.113.系統(tǒng)測(cè)試.174.總結(jié)或心得體會(huì).235.參考文獻(xiàn).236.附錄.24- 47 - / 47文檔可自由編輯打印1.系統(tǒng)描述1.1需要實(shí)現(xiàn)的功能(1)錄入學(xué)生基本信息的功能 學(xué)生基本信息主要包括:學(xué)號(hào)、姓名、性別、年齡、出生地、專業(yè)、班級(jí)、總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫則已經(jīng)存在該學(xué)號(hào),則不能再插入該學(xué)

6、號(hào)。(2)修改學(xué)生基本信息的功能在管理員模式下,只要在表格中選中某個(gè)學(xué)生,就可以對(duì)該學(xué)生信息進(jìn)行修改。(3)查詢學(xué)生基本信息的功能可使用 “姓名”對(duì)已存有的學(xué)生資料進(jìn)行查詢。(4)刪除學(xué)生基本信息的功能 在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。(5)用戶登陸用不同的登錄權(quán)限可以進(jìn)入不同的后臺(tái)界面,從而實(shí)現(xiàn)權(quán)限操作。(6)用戶登陸信息設(shè)置可以修改用戶登陸密碼1.2 設(shè)計(jì)的目的 學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全,簡(jiǎn)單易用的信息管理系統(tǒng)不但能減輕學(xué)校相關(guān)人員的工作負(fù)擔(dān),它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都是至關(guān)重要的。所以學(xué)生管理系統(tǒng)應(yīng)該能讓你為用戶提

7、供充足的信息和快捷的查詢手段。讓我們?cè)O(shè)計(jì)這個(gè)學(xué)生信息管理系統(tǒng),是讓我們學(xué)生了解學(xué)生管理系統(tǒng)的重要性和它的作用。使用Java語言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本思路和方法;加強(qiáng)學(xué)生研發(fā)、調(diào)試程序的能力;培養(yǎng)學(xué)生分析、解決問題的能力;提高學(xué)生的科技論文寫作能力。2.分析與設(shè)計(jì): 2.1功能模塊劃分學(xué)生信息管理系統(tǒng)瀏覽學(xué)生信息查詢學(xué)生信息添加學(xué)生信息修改學(xué)生信息刪除學(xué)生信息普通學(xué)生(用戶)模塊班委(管理員)模塊瀏覽學(xué)生信息查詢學(xué)生信息學(xué)生管理登陸管理修改登陸密碼顯示登陸用戶 圖1 功能模塊圖2.2數(shù)據(jù)庫結(jié)構(gòu)描述 (1)數(shù)據(jù)庫E-R模型圖2 學(xué)生局部E-R圖 圖3 登陸用戶局部E-R圖(2)數(shù)據(jù)庫關(guān)系模型二維表

8、1 學(xué)生表(student)字段數(shù)據(jù)類型說明stuIdnvarchar(30)學(xué)號(hào)stuNamenvarchar(30)姓名stuSexnvarchar(30)性別stuAgeint年齡stuJgnvarchar(30)籍貫stuZynvarchar(30)專業(yè)classIdnvarchar(30)班號(hào)stuSoursenumeric(5,2)總學(xué)分 表2 登陸權(quán)限表(login)字段數(shù)據(jù)類型說明userIdnvarchar(30)用戶名(賬號(hào)),即登陸Idpasswordnvarchar(30)登陸密碼positionnvarchar(30)職位,如班委,普通學(xué)生 (3)數(shù)據(jù)流圖進(jìn)度條(閃屏

9、)用戶登陸登陸驗(yàn)證falsetrue班委(管理員)界面普通學(xué)生界面查詢添加修改刪除查詢顯示班委(管理員員 )普通學(xué)生(用戶)退出退出系統(tǒng)結(jié)束結(jié)束退出系統(tǒng)truefalsefalsetrue修改用戶登陸密碼顯示登陸用戶信息 圖4 數(shù)據(jù)流圖2.3系統(tǒng)詳細(xì)設(shè)計(jì)文檔表3 包及其所包含的類包名(package)所包含的類說明com.sqlConnectionSqlConn.java用于連接數(shù)據(jù)庫com.ToolsMyFont.java用于設(shè)置窗體各組件的字體com.ViewIndex.java使用進(jìn)度條與線程結(jié)合實(shí)現(xiàn)閃屏,初始化進(jìn)入登陸界面Login.java登陸界面,管理員與用戶登陸ManageVie

10、w.java管理員界面,可進(jìn)行所有操作StuMainView.java普通學(xué)生(用戶)界面,只能進(jìn)行部分操作StuQuery.java學(xué)生信息查詢模塊AddStu.java添加學(xué)生信息模塊UpdateStu.java更新學(xué)生信息模塊TableModel.java表數(shù)據(jù)更新模型,學(xué)于更新并通過表來顯示信息LoginModel.java用戶登陸驗(yàn)證模型PurViewModel.java用戶權(quán)限設(shè)置界面UpdateLogin.java用戶賬戶修改界面表4 ManageView類類名類的成員屬性與方法說明ManageView.javaJMenuBar jmb定義一個(gè)菜單條JMenu jm1,jm2,j

11、m3定義三個(gè)菜單JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,jm2_6定義六個(gè)二級(jí)菜單項(xiàng)JTable jtb定義一個(gè)表格,用于顯示學(xué)生信息JScrollPane jsp定義一個(gè)滾動(dòng)面板,用于存放表格int width,height定義設(shè)置窗口初始位置的變量TableModel tm自定義一個(gè)表格模型,用于更新表數(shù)據(jù)PurViewModel pvm自定義一個(gè)登陸權(quán)限模型,用于判斷登陸用戶是否合法public void menuInit把菜單封裝成一個(gè)函數(shù),使用時(shí)在構(gòu)造方法內(nèi)調(diào)用即可初始化public ManageView()構(gòu)造函數(shù),初始化管理員后

12、臺(tái)界面的相關(guān)組件public void actionPerformed(ActionEvent arg0)事件響應(yīng)方法,實(shí)現(xiàn)各個(gè)功能的響應(yīng)表5 StuMainView類類名類的成員屬性與方法說明ManageView.javaJMenuBar jmb定義一個(gè)菜單條JMenu jm1,jm2,jm3定義三個(gè)菜單JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,jm2_6定義六個(gè)二級(jí)菜單項(xiàng)JTable jtb定義一個(gè)表格,用于顯示學(xué)生信息JScrollPane jsp定義一個(gè)滾動(dòng)面板,用于存放表格int width,height定義設(shè)置窗口初始位置的變量Ta

13、bleModel tm自定義一個(gè)表格模型,用于更新表數(shù)據(jù)PurViewModel pvm自定義一個(gè)登陸權(quán)限模型,用于判斷登陸用戶是否合法public void menuInit把菜單封裝成一個(gè)函數(shù),使用時(shí)在構(gòu)造方法內(nèi)調(diào)用即可初始化public StumainView()構(gòu)造函數(shù),初始化管理員后臺(tái)界面的相關(guān)組件public void actionPerformed(ActionEvent arg0)事件響應(yīng)方法,實(shí)現(xiàn)各個(gè)功能的響應(yīng)表6 LoginModel類類名類的成員屬性與方法說明LoginModel.javaSqlConn sqlconn自定義連接數(shù)據(jù)庫的對(duì)象ResultSet rs定義一個(gè)

14、用于接收數(shù)據(jù)庫返回的記錄集String sql,position,pwd定義三個(gè)字符串變量,存取查詢語句,職位,密碼int flag定義一個(gè)用于判斷變量,根據(jù)不同的用戶職位,置不同的值public int checkUser(String userId,String password)一個(gè)用戶權(quán)限與登陸驗(yàn)證的方法,當(dāng)用戶與密碼正確時(shí),返回一個(gè)值,該值表示該用戶的職位,根據(jù)該職位進(jìn)入不同的后臺(tái)界面2.4 各模塊實(shí)現(xiàn)方法的描述u Loginmodel 模塊是驗(yàn)證登陸用戶是否合法。SqlConn sqlconn是用于自定義鏈接數(shù)據(jù)庫的對(duì)象,ResultSet rs 是用于定義一個(gè)用于接收數(shù)據(jù)庫返回的

15、記錄表,String sql.position.pwd是定義三個(gè)字符串變量,存取查詢語句,職位和密碼,int flag 定義一個(gè)判斷變量,根據(jù)不同的用戶職位,設(shè)置不同的值,public int checkUser(String userId,String password) 當(dāng)用戶與密碼正確時(shí),返回一個(gè)值,該值表示該用戶的職位,根據(jù)該職位進(jìn)入不同的后臺(tái)界面。u ManageView模塊是管理員登陸成功后的界面,采用的是菜單管理制。JMenuBar jmb是用于定義一個(gè)菜單條,用JMenu jm1,jm2,jm3定義三個(gè)菜單, 采用JMenuItem jm1_1,jm2_1,jm2_2,jm2_

16、3,jm2_4,jm2_5,jm2_6定義六個(gè)二級(jí)菜單項(xiàng), JTable jtb適用于定義一個(gè)表格,用于顯示學(xué)生信息, JScrollPane jsp定義一個(gè)滾動(dòng)面板,用于存放表格, int width,height定義設(shè)置窗口初始位置的變量, TableModel tm自定義一個(gè)表格模型,用于更新表數(shù)據(jù), PurViewModel pvm自定義一個(gè)登陸權(quán)限模型,用于判斷登陸用戶是否合法public void menuInit把菜單封裝成一個(gè)函數(shù),使用時(shí)在構(gòu)造方法內(nèi)調(diào)用即可初始話, public StumainView()構(gòu)造函數(shù),初始化管理員后臺(tái)界面的相關(guān)組件public void acti

17、onPerformed(ActionEvent arg0) 事件響應(yīng)方法,實(shí)現(xiàn)各個(gè)功能的響應(yīng)。u StuMainview模塊是學(xué)生登錄成功后的界面,實(shí)現(xiàn)方法與ManageView模塊相同。在學(xué)生登錄后的界面與管理員登錄成功后的界面一致,只是學(xué)生登錄成功后的界面有些功能學(xué)生不能實(shí)現(xiàn),學(xué)生能實(shí)現(xiàn)的功能是現(xiàn)實(shí)學(xué)生信息和查詢學(xué)生的信息,不能增加,刪除和修改。u purViewModel模塊是一個(gè)登陸權(quán)限表模型,用于更新數(shù)據(jù),rowData,row,column是定義表格所需要的集合,是定義一個(gè)記錄集,Resulset rs用于接收從數(shù)據(jù)庫返回來的記錄集,設(shè)置的是賬號(hào),密碼和職位的表,用來記錄需要登錄的

18、管理員和學(xué)生的信息。2.3測(cè)試數(shù)據(jù)及期望結(jié)果(1)測(cè)試查詢金葉珍的信息 期望能顯示金葉珍的所有信息圖5 測(cè)試查詢金葉珍(2)測(cè)試添加學(xué)號(hào)為88888,姓名為李靜,性別為女,年齡為20歲,出生地為湖南省長沙市,專業(yè)為信息管理與信息系統(tǒng),班級(jí)為12101,總學(xué)分為200. 期望能添加此學(xué)生的信息。圖6 添加學(xué)生李靜的信息圖7 李靜信息添加成功(3) 測(cè)試刪除李靜的信息 期望能刪除成功圖8 選中要?jiǎng)h除的學(xué)生李靜的信息圖9 成功刪除學(xué)生李靜信息(4) 測(cè)試將琉璃的姓名改為瀟瀟 期望修改成功圖10 修改琉璃的信息圖11 將琉璃的姓名改成瀟瀟圖12 成功修改了琉璃的信息(4) 測(cè)試更換管理員的密碼 期望管

19、理員的密碼更改成功圖13 登陸權(quán)限表圖14 修改賬號(hào)為admin管理員的密碼圖14 將admin管理員的密碼修改成mima圖15 admin管理員的密碼修改成功3.系統(tǒng)測(cè)試圖16 系統(tǒng)啟動(dòng)界面圖17用戶登陸界面 圖18 班委(管理員)界面,即具有完全權(quán)限的用戶后臺(tái)界面圖19普通用戶(學(xué)生)界面子菜單項(xiàng)顯示圖20學(xué)生信息查詢界面圖21學(xué)生信息查詢結(jié)果顯示圖22 添加學(xué)生信息界面圖23修改學(xué)生信息界面 圖24 顯示所有學(xué)生信息圖25 當(dāng)沒有選中一行的時(shí)候,不能修改和刪除,并彈出提示警告框 圖26刪除文件時(shí)的確認(rèn)對(duì)話框(當(dāng)點(diǎn)擊確認(rèn)時(shí)才會(huì)刪除,點(diǎn)擊取消,則返回主界面)圖27顯示所有登陸用戶信息 圖28

20、 修改用戶登陸密碼,選中某個(gè)用戶進(jìn)行修改圖29關(guān)閉用戶記錄,即不顯示所有用戶信息圖30關(guān)閉學(xué)生記錄圖31退出系統(tǒng)確認(rèn)對(duì)話框,只有確認(rèn)時(shí)才會(huì)退出系統(tǒng),否則返加主界面 圖32 普通學(xué)生登陸后的界面(即不能對(duì)學(xué)生信息進(jìn)行添加,修改和刪除以及用戶密碼修改,對(duì)應(yīng)的這幾項(xiàng)灰色顯示,不可點(diǎn)擊)4、 總結(jié)或心得體會(huì) 這次課程設(shè)計(jì)我做的是學(xué)生信息管理系統(tǒng)。學(xué)生信息管理系主要對(duì)在校學(xué)生的個(gè)人基本信息以及成績信息進(jìn)行管理,對(duì)教師用戶提供查詢信息、增添信息、刪除信息等操作功能;對(duì)學(xué)生用戶提供成績查詢功能。我們的目標(biāo)就是為該系統(tǒng)提供后臺(tái)連接數(shù)據(jù)庫程序設(shè)計(jì)以及前臺(tái)用戶界面設(shè)計(jì)。 雖然系統(tǒng)的基本功能都已實(shí)現(xiàn),但還是存在系統(tǒng)

21、不穩(wěn)定等多個(gè)問題尚待解決。我在做系統(tǒng)的過程中遇到了很多問題,有的是知識(shí)存儲(chǔ)不足,有的是考慮不夠周全,之所以能夠順利實(shí)現(xiàn)基本功功能,離不開老師和同學(xué)的大力相助。事實(shí)證明,只靠自己是不能順利完成一套功能完整的系統(tǒng)的,必須充分利用團(tuán)隊(duì)的力量。 開發(fā)一套系統(tǒng),最重要的是細(xì)心,并不是一定要做到面面俱到,但也要充分考慮到客戶的需求和現(xiàn)實(shí)意義,不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具有現(xiàn)實(shí)意義。所以在準(zhǔn)備工作中要正確分析用戶需求,了解現(xiàn)實(shí)應(yīng)用,畫出流程圖,把大體框架做好,然后再逐一細(xì)化。我們不可能做到面面俱到,但一定要做到步步扎實(shí),作為一個(gè)程序編程人員,要保持清醒的頭腦,以現(xiàn)實(shí)為依據(jù),讓自己的每一

22、行代碼都能實(shí)現(xiàn)自己的意義。 通過這次課程設(shè)計(jì),我收獲的不僅僅是課程上的知識(shí)得到實(shí)際應(yīng)用,還有編程的基本習(xí)慣和開發(fā)系統(tǒng)時(shí)應(yīng)注意的流程。五參考文獻(xiàn)(1)趙海廷.Java語言程序設(shè)計(jì)教程.北京:清華大學(xué)出版社.2012(2)孫印杰,劉斌,孫玉強(qiáng).Java編程案例精解.北京:電子工業(yè)出版 社.2005(3)何梅.java編程實(shí)例系列叢書.北京:清華大學(xué)出版社,2002(4)楊昭.編著二級(jí)Java語言程序設(shè)計(jì)教程.北京:中國水利水電出版社,2006(5)趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006六、附錄登陸用戶驗(yàn)證是否合法package com.View;imp

23、ort java.sql.ResultSet;import javax.swing.JOptionPane;import com.SqlConnection.SqlConn;public class LoginModel /定義連接數(shù)據(jù)庫需要的組SqlConn sqlconn;ResultSet rs;String sql,position,pwd;int flag;public int checkUser(String userId,String password)flag=0;sql="select * from login where userId='"+us

24、erId+"'"sqlconn=new SqlConn();rs=sqlconn.sqlQuery(sql);/返回一個(gè)記錄集try while(rs.next()pwd=rs.getString(2);position=rs.getString(3);System.out.println("test1="+position);if(password.equals(pwd)if(position.equals("班委")flag=0;else if(position.equals("普通學(xué)生")flag=1

25、;else flag=2; catch (Exception e) e.printStackTrace();/ TODO: handle exceptionfinallysqlconn.closeSqlConn();return flag; 管理員登陸成功后的界面,采用菜單管理制package com.View;import com.SqlConnection.SqlConn;import com.Tools.*;/引入自定義的工具包(字體)import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.Act

26、ionListener;import javax.swing.*;public class ManageView extends JFrame implements ActionListener/定義菜單需要要的組件JMenuBar jmb;JMenu jm1,jm2,jm3;JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,jm2_6;JMenuItem jm3_1,jm3_2,jm3_3;/定義一個(gè)表格,用于顯示學(xué)生信息JTable jtb;/定義一個(gè)滾動(dòng)面板,用于存放表格JScrollPane jsp;/定義設(shè)置窗口初始位置的變量int widt

27、h,height;/定義一個(gè)表格模型,用于更新表數(shù)據(jù)TableModel tm;PurViewModel pvm;/把菜單封裝成一個(gè)函數(shù)public void menuInit()jm1=new JMenu("系統(tǒng)");jm1.setFont(MyFont.f1);jm1_1=new JMenuItem("<-退出系統(tǒng)->");jm1_1.addActionListener(this);jm1_1.setFont(MyFont.f2);jm1.add(jm1_1);jm2=new JMenu("學(xué)生管理");jm2.set

28、Font(MyFont.f1);jm2_1=new JMenuItem("<-查詢記錄->");jm2_1.addActionListener(this);jm2_1.setFont(MyFont.f2);jm2_2=new JMenuItem("<-添加記錄->");jm2_2.addActionListener(this);jm2_2.setFont(MyFont.f2);jm2_3=new JMenuItem("<-修改記錄->");jm2_3.addActionListener(this);

29、jm2_3.setFont(MyFont.f2);jm2_4=new JMenuItem("<-刪除記錄->");jm2_4.addActionListener(this);jm2_4.setFont(MyFont.f2);jm2_5=new JMenuItem("<-顯示記錄->");jm2_5.addActionListener(this);jm2_5.setFont(MyFont.f2);jm2_6=new JMenuItem("<-關(guān)閉記錄->");jm2_6.addActionListen

30、er(this);jm2_6.setFont(MyFont.f2);jm2.add(jm2_5);/把顯示學(xué)生記錄放在最前面jm2.add(jm2_1);jm2.add(jm2_2);jm2.add(jm2_3);jm2.add(jm2_4);jm2.add(jm2_6);jm3=new JMenu("系統(tǒng)設(shè)置");jm3.setFont(MyFont.f1);jm3_1=new JMenuItem("<-顯示用戶信息->");jm3_1.setFont(MyFont.f2);jm3_1.addActionListener(this);jm3

31、_2=new JMenuItem("<-修改用戶密碼->");jm3_2.setFont(MyFont.f2);jm3_2.addActionListener(this);jm3_3=new JMenuItem("<-關(guān)閉用戶信息->");jm3_3.setFont(MyFont.f2);jm3_3.addActionListener(this);jm3.add(jm3_1);jm3.add(jm3_2);jm3.add(jm3_3);/設(shè)置菜單條jmb=new JMenuBar();/把菜單添加到菜單條jmb.add(jm1);

32、jmb.add(jm2);jmb.add(jm3);/把菜單條添加到窗體this.setJMenuBar(jmb);public static void main(String args) / TODO Auto-generated method stubManageView manageview=new ManageView();public ManageView()/調(diào)用菜單函數(shù)this.menuInit();/當(dāng)?shù)顷戇M(jìn)入界面時(shí),最初顯示的界面jtb=new JTable();/在剛登陸進(jìn)去的時(shí)候不讓數(shù)據(jù)顯示出來,如果即時(shí)顯示,當(dāng)數(shù)據(jù)量大時(shí),影響速度,也不太符合常規(guī) ,因此在這里不用更新數(shù)

33、據(jù)模型jsp=new JScrollPane(jtb);this.add(jsp,"Center");/設(shè)置窗體屬性this.setSize(600,400);this.setTitle("學(xué)生信息管理系統(tǒng)->管理員");/設(shè)置窗口的初始位置width=Toolkit.getDefaultToolkit().getScreenSize().width;height=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(width/2-280, height/2-250

34、);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);/*事件響應(yīng)*/Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub/退出系統(tǒng)if(arg0.getSource()=jm1_1)Object options = "確定","取消" int respose=JOptionPane.showOptionDialog(this, &quo

35、t;你確認(rèn)要退出系統(tǒng)嗎?","退出系統(tǒng)確認(rèn)對(duì)話框",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null, options, options0); if(respose=0)System.out.println("你按下了確認(rèn)按鈕!");System.exit(0);/退出系統(tǒng)else if(respose=1)System.out.println("你按下了取消按鈕!");return;/*查詢記錄*/else if(arg0.getSource()=jm2

36、_1)System.out.println("查詢被點(diǎn)擊了");StuQuery sq=new StuQuery(this, "學(xué)生信息查詢", true);/*添加記錄*/else if(arg0.getSource()=jm2_2)System.out.println("添加被點(diǎn)擊了");AddStu addstu=new AddStu(this, "添加學(xué)生信息", true);if(addstu.falg()=1)/更新當(dāng)前窗口的學(xué)生信息,以便添加學(xué)生信息后就能看到新信息tm=new TableModel(

37、null);jtb.setModel(tm);else/不更新數(shù)據(jù)/*修改記錄*/else if(arg0.getSource()=jm2_3)/先判斷是否選擇了一行,沒有選中,則返回-1,如果選中,則返回選中的那一行的序號(hào),也就是第幾行int rowNo=jtb.getSelectedRow();if(rowNo=-1)/沒有選中,提示信息JOptionPane.showMessageDialog(this, "你沒有選中一行!");return;else /得到選擇的那一行的學(xué)號(hào)/String stuId=(String)tm.getValueAt(rowNo, 0);

38、/學(xué)號(hào)是字符串,因些得轉(zhuǎn)型/需要把當(dāng)前的這個(gè)數(shù)據(jù)模型和所選擇的那一行的序號(hào)傳過去UpdateStu updateStu=new UpdateStu(this, "修改學(xué)生信息", tm, rowNo, true);/更新當(dāng)前窗口的學(xué)生信息,以便更新學(xué)生信息后就能看到新信息tm=new TableModel(null);jtb.setModel(tm);/*刪除記錄*/else if(arg0.getSource()=jm2_4)System.out.println("你點(diǎn)擊了刪除按鈕");/到得某一行,即選擇的那一行int rowNo=jtb.getSe

39、lectedRow();/判斷是否已經(jīng)選擇一行,如果沒有選擇,則彈出一個(gè)對(duì)話框,當(dāng)?shù)扔?1時(shí),表示沒有選擇if(rowNo=-1)JOptionPane.showMessageDialog(this,"你沒有選擇一行!");return;else/得到選擇的那一行的學(xué)號(hào)String stuId=(String)tm.getValueAt(rowNo, 0);/某一行的第0列就是學(xué)號(hào),因?yàn)榈玫降膶W(xué)號(hào)是字符串,所以得轉(zhuǎn)型System.out.println("stuId="+stuId);String sql="delete * from stud

40、ent where stuId='"+stuId+"'"Object options = "確定","取消" int respose=JOptionPane.showOptionDialog(this, "你確認(rèn)要?jiǎng)h除該學(xué)生嗎?","刪除信息確認(rèn)對(duì)話框",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null, options, options0); if(respose=0)System.out.prin

41、tln("你按下了確認(rèn)按鈕!");/連接數(shù)據(jù)庫SqlConn sqlconn=new SqlConn();sqlconn.sqlDelete(sql);/注意:*這在里必須調(diào)用關(guān)閉數(shù)據(jù)庫連接的方法,在這里,如果沒有關(guān)閉資源,則表模型無法更新成功,切記!sqlconn.closeSqlConn();tm=new TableModel(null);jtb.setModel(tm);else if(respose=1)System.out.println("你按下了取消按鈕!");return;/*顯示記錄*/else if(arg0.getSource()=

42、jm2_5)tm=new TableModel(null);jtb.setModel(tm);/讓表格顯示學(xué)生信息jtb.setVisible(true);/*關(guān)閉記錄*/else if(arg0.getSource()=jm2_6)System.out.println("jm2_6,關(guān)閉記錄被點(diǎn)擊了!");/不顯示學(xué)生信息jtb.setVisible(false);/*/*這是用戶管理*/*顯示所有賬戶*/else if(arg0.getSource()=jm3_1)pvm=new PurViewModel(null);jtb.setModel(pvm);/讓表格顯示學(xué)生

43、信息jtb.setVisible(true);/*修改密碼*/else if(arg0.getSource()=jm3_2)System.out.println("修改密碼按鈕被點(diǎn)擊了");/先判斷是否選擇了一行,沒有選中,則返回-1,如果選中,則返回選中的那一行的序號(hào),也就是第幾行int rowNo=jtb.getSelectedRow();if(rowNo=-1)/沒有選中,提示信息JOptionPane.showMessageDialog(this, "你沒有選中用戶!");return;else /得到選擇的那一行的賬號(hào)/String userI

44、d=(String)tm.getValueAt(rowNo, 0);/學(xué)號(hào)是字符串,因些得轉(zhuǎn)型/需要把當(dāng)前的這個(gè)數(shù)據(jù)模型和所選擇的那一行的序號(hào)傳過去UpdateLogin updateLogin=new UpdateLogin(this, "修改密碼信息", pvm, rowNo, true);/更新當(dāng)前窗口的學(xué)生信息,以便更新學(xué)生信息后就能看到新信息pvm=new PurViewModel(null);jtb.setModel(pvm);/*關(guān)閉表格數(shù)據(jù)*/else if(arg0.getSource()=jm3_3)System.out.println("jm

45、3_3關(guān)閉表格數(shù)據(jù)被點(diǎn)擊了");/不讓表數(shù)據(jù)顯示出來jtb.setVisible(false); 一個(gè)管理員表模型,用于更新數(shù)據(jù)package com.View;import com.SqlConnection.*;/引入數(shù)據(jù)庫連接的包import java.sql.*;import java.util.*;import javax.swing.table.AbstractTableModel;import com.SqlConnection.SqlConn;public class PurViewModel extends AbstractTableModel /定義表格所需要的集

46、合Vector rowData,row,column;/定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫返回來的記錄集ResultSet rs;SqlConn conn;public PurViewModel(String sql)if(sql=null)sql="select * from login"/設(shè)置表格的列名column=new Vector();column.add("賬號(hào)");column.add("密碼");column.add("職位");/創(chuàng)建表的記錄集rowData=new Vector();/調(diào)用數(shù)據(jù)庫連

47、接conn=new SqlConn();rs=conn.sqlQuery(sql);try while(rs.next()row=new Vector();row.add(rs.getString(1);row.add(rs.getString(2);row.add(rs.getString(3);rowData.add(row); catch (Exception e) e.printStackTrace();/ TODO: handle exceptionOverridepublic String getColumnName(int column) / TODO Auto-generate

48、d method stubreturn (String)this.column.get(column);Override/得到的列數(shù)public int getColumnCount() / TODO Auto-generated method stubreturn this.column.size();/得到的行數(shù)Overridepublic int getRowCount() / TODO Auto-generated method stubreturn this.rowData.size();Override/得到某行某列的值public Object getValueAt(int ar

49、g0, int arg1) / TODO Auto-generated method stubreturn (Vector)this.rowData.get(arg0).get(arg1);管理員登陸成功后的界面(學(xué)生管理),采用菜單管理制package com.View;import com.SqlConnection.SqlConn;import com.Tools.*;/引入自定義的工具包(字體)import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import j

50、avax.swing.*;public class StuMainView extends JFrame implements ActionListener/定義菜單需要要的組件JMenuBar jmb;JMenu jm1,jm2,jm3;JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,jm2_6;JMenuItem jm3_1,jm3_2,jm3_3;/定義一個(gè)表格,用于顯示學(xué)生信息JTable jtb;/定義一個(gè)滾動(dòng)面板,用于存放表格JScrollPane jsp;/定義設(shè)置窗口初始位置的變量int width,height;/定義一個(gè)表格模型,

51、用于更新表數(shù)據(jù)TableModel tm;/把菜單封裝成一個(gè)函數(shù)public void menuInit()jm1=new JMenu("系統(tǒng)");jm1.setFont(MyFont.f1);jm1_1=new JMenuItem("<-退出系統(tǒng)->");jm1_1.addActionListener(this);jm1_1.setFont(MyFont.f2);jm1.add(jm1_1);jm2=new JMenu("學(xué)生管理");jm2.setFont(MyFont.f1);jm2_1=new JMenuItem("<-查詢記錄->");jm2_1.addActionListener(this);jm2_1.setFont(MyFont.f2);jm2_2=new JMenuItem("<-添加記錄->");jm2_2.addActionListener(this);jm2_2.setEnabled(false);jm2_2.setFont(MyFont.f2);jm2_3=new JMenuItem("<-修改記錄->");jm2_3.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論