2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  JAVA程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告</p><p>  課    題:       學(xué)生信息管理系統(tǒng)                 &l

2、t;/p><p>  姓    名:                             

3、;  </p><p>  學(xué)    號(hào):                         <

4、;/p><p>  同組姓名:                      </p><p>  專(zhuān)業(yè)班級(jí):     &

5、#160;                         </p><p>  指導(dǎo)教師:      

6、                         </p><p>  設(shè)計(jì)時(shí)間:     2014.6.

7、23至2014.6.27  </p><p><b>  目 錄</b></p><p>  1.系統(tǒng)描述.....................................3</p><p>  1.1 需要實(shí)現(xiàn)的功能............................3</p><p>  

8、1.2 設(shè)計(jì)的目的................................3</p><p>  2.分析與設(shè)計(jì)....................................4</p><p>  2.1 功能模塊劃分..............................4</p><p>  2.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)描述.............

9、...............5</p><p>  2.3 系統(tǒng)詳細(xì)設(shè)計(jì)文檔..........................8</p><p>  2.4 各模塊的實(shí)現(xiàn)方法描述.....................10</p><p>  2.5 測(cè)試數(shù)據(jù)及期望結(jié)果.......................11</p><p>

10、  3.系統(tǒng)測(cè)試.....................................17</p><p>  4.總結(jié)或心得體會(huì)...............................23</p><p>  5.參考文獻(xiàn).....................................23</p><p>  6.附錄.............

11、............................24</p><p><b>  1.系統(tǒng)描述</b></p><p>  1.1需要實(shí)現(xiàn)的功能</p><p>  (1)錄入學(xué)生基本信息的功能</p><p>  學(xué)生基本信息主要包括:學(xué)號(hào)、姓名、性別、年齡、出生地、專(zhuān)業(yè)、班級(jí)、總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫(kù)則已

12、經(jīng)存在該學(xué)號(hào),則不能再插入該學(xué)號(hào)。</p><p>  (2)修改學(xué)生基本信息的功能</p><p>  在管理員模式下,只要在表格中選中某個(gè)學(xué)生,就可以對(duì)該學(xué)生信息進(jìn)行修改。</p><p>  (3)查詢(xún)學(xué)生基本信息的功能</p><p>  可使用 “姓名”對(duì)已存有的學(xué)生資料進(jìn)行查詢(xún)。</p><p>  (4)

13、刪除學(xué)生基本信息的功能 </p><p>  在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。</p><p><b>  (5)用戶(hù)登陸</b></p><p>  用不同的登錄權(quán)限可以進(jìn)入不同的后臺(tái)界面,從而實(shí)現(xiàn)權(quán)限操作。</p><p>  (6)用戶(hù)登陸信息設(shè)置</p><p>

14、;  可以修改用戶(hù)登陸密碼</p><p><b>  1.2 設(shè)計(jì)的目的</b></p><p>  學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全,簡(jiǎn)單易用的信息管理系統(tǒng)不但能減輕學(xué)校相關(guān)人員的工作負(fù)擔(dān),它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都是至關(guān)重要的。所以學(xué)生管理系統(tǒng)應(yīng)該能讓你為用戶(hù)提供充足的信息和快捷的查詢(xún)手段。讓我們?cè)O(shè)計(jì)這個(gè)學(xué)生信息管理系統(tǒng),是

15、讓我們學(xué)生了解學(xué)生管理系統(tǒng)的重要性和它的作用。使用Java語(yǔ)言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本思路和方法;加強(qiáng)學(xué)生研發(fā)、調(diào)試程序的能力;培養(yǎng)學(xué)生分析、解決問(wèn)題的能力;提高學(xué)生的科技論文寫(xiě)作能力。</p><p><b>  2.分析與設(shè)計(jì): </b></p><p><b>  2.1功能模塊劃分</b></p><p><b

16、>  圖1 功能模塊圖</b></p><p>  2.2數(shù)據(jù)庫(kù)結(jié)構(gòu)描述</p><p> ?。?)數(shù)據(jù)庫(kù)E-R模型</p><p>  圖2 學(xué)生局部E-R圖</p><p>  圖3 登陸用戶(hù)局部E-R圖</p><p> ?。?)數(shù)據(jù)庫(kù)關(guān)系模型——二維</p><p>

17、;  表1 學(xué)生表(student)</p><p>  表2 登陸權(quán)限表(login)</p><p><b> ?。?)數(shù)據(jù)流圖</b></p><p><b>  圖4 數(shù)據(jù)流圖</b></p><p>  2.3系統(tǒng)詳細(xì)設(shè)計(jì)文檔</p><p>  表3 包及其所包

18、含的類(lèi)</p><p>  表4 ManageView類(lèi)</p><p>  表5 StuMainView類(lèi)</p><p>  表6 LoginModel類(lèi)</p><p>  2.4 各模塊實(shí)現(xiàn)方法的描述</p><p>  Loginmodel 模塊是驗(yàn)證登陸用戶(hù)是否合法。SqlConn sqlconn是用于自定

19、義鏈接數(shù)據(jù)庫(kù)的對(duì)象,ResultSet rs 是用于定義一個(gè)用于接收數(shù)據(jù)庫(kù)返回的記錄表,String sql.position.pwd是定義三個(gè)字符串變量,存取查詢(xún)語(yǔ)句,職位和密碼,int flag 定義一個(gè)判斷變量,根據(jù)不同的用戶(hù)職位,設(shè)置不同的值,public int checkUser(String userId,String password) 當(dāng)用戶(hù)與密碼正確時(shí),返回一個(gè)值,該值表示該用戶(hù)的職位,根據(jù)該職位進(jìn)入不同的后臺(tái)界面。

20、</p><p>  ManageView模塊是管理員登陸成功后的界面,采用的是菜單管理制。JMenuBar 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è)

21、滾動(dòng)面板,用于存放表格, int width,height定義設(shè)置窗口初始位置的變量, TableModel tm自定義一個(gè)表格模型,用于更新表數(shù)據(jù), PurViewModel pvm自定義一個(gè)登陸權(quán)限模型,用于判斷登陸用戶(hù)是否合法public void menuInit把菜單封裝成一個(gè)函數(shù),使用時(shí)在構(gòu)造方法內(nèi)調(diào)用即可初始話(huà), public StumainView()構(gòu)造函數(shù),初始化管理員后臺(tái)界面的相關(guān)組件public void act

22、ionPerformed(ActionEvent arg0) 事件響應(yīng)方法,實(shí)現(xiàn)各個(gè)功能的響應(yīng)。</p><p>  StuMainview模塊是學(xué)生登錄成功后的界面,實(shí)現(xiàn)方法與ManageView模塊相同。在學(xué)生登錄后的界面與管理員登錄成功后的界面一致,只是學(xué)生登錄成功后的界面有些功能學(xué)生不能實(shí)現(xiàn),學(xué)生能實(shí)現(xiàn)的功能是現(xiàn)實(shí)學(xué)生信息和查詢(xún)學(xué)生的信息,不能增加,刪除和修改。</p><p> 

23、 purViewModel模塊是一個(gè)登陸權(quán)限表模型,用于更新數(shù)據(jù),rowData,row,column是定義表格所需要的集合,是定義一個(gè)記錄集,Resulset rs用于接收從數(shù)據(jù)庫(kù)返回來(lái)的記錄集,設(shè)置的是賬號(hào),密碼和職位的表,用來(lái)記錄需要登錄的管理員和學(xué)生的信息。</p><p>  2.3測(cè)試數(shù)據(jù)及期望結(jié)果</p><p>  (1)測(cè)試查詢(xún)金葉珍的信息</p><

24、p>  期望能顯示金葉珍的所有信息</p><p>  圖5 測(cè)試查詢(xún)金葉珍</p><p>  (2)測(cè)試添加學(xué)號(hào)為88888,姓名為李靜,性別為女,年齡為20歲,出生地為湖南省長(zhǎng)沙市,專(zhuān)業(yè)為信息管理與信息系統(tǒng),班級(jí)為12101,總學(xué)分為200.</p><p>  期望能添加此學(xué)生的信息。</p><p>  圖6 添加學(xué)生李靜的信

25、息</p><p>  圖7 李靜信息添加成功</p><p><b>  測(cè)試刪除李靜的信息</b></p><p><b>  期望能刪除成功</b></p><p>  圖8 選中要?jiǎng)h除的學(xué)生李靜的信息</p><p>  圖9 成功刪除學(xué)生李靜信息</p>

26、<p>  測(cè)試將琉璃的姓名改為瀟瀟</p><p><b>  期望修改成功</b></p><p>  圖10 修改琉璃的信息</p><p>  圖11 將琉璃的姓名改成瀟瀟</p><p>  圖12 成功修改了琉璃的信息</p><p>  測(cè)試更換管理員的密碼</p

27、><p>  期望管理員的密碼更改成功</p><p><b>  圖13 登陸權(quán)限表</b></p><p>  圖14 修改賬號(hào)為admin管理員的密碼</p><p>  圖14 將admin管理員的密碼修改成mima</p><p>  圖15 admin管理員的密碼修改成功</p>

28、;<p><b>  3.系統(tǒng)測(cè)試</b></p><p>  圖16 系統(tǒng)啟動(dòng)界面</p><p><b>  圖17用戶(hù)登陸界面</b></p><p>  圖18 班委(管理員)界面,即具有完全權(quán)限的用戶(hù)后臺(tái)界面</p><p>  圖19普通用戶(hù)(學(xué)生)界面子菜單項(xiàng)顯示<

29、/p><p>  圖20學(xué)生信息查詢(xún)界面</p><p>  圖21學(xué)生信息查詢(xún)結(jié)果顯示</p><p>  圖22 添加學(xué)生信息界面</p><p>  圖23修改學(xué)生信息界面</p><p>  圖24 顯示所有學(xué)生信息</p><p>  圖25 當(dāng)沒(méi)有選中一行的時(shí)候,不能修改和刪除,并彈出提

30、示警告框</p><p>  圖26刪除文件時(shí)的確認(rèn)對(duì)話(huà)框(當(dāng)點(diǎn)擊確認(rèn)時(shí)才會(huì)刪除,點(diǎn)擊取消,則返回主界面)</p><p>  圖27顯示所有登陸用戶(hù)信息</p><p>  圖28 修改用戶(hù)登陸密碼,選中某個(gè)用戶(hù)進(jìn)行修改</p><p>  圖29關(guān)閉用戶(hù)記錄,即不顯示所有用戶(hù)信息</p><p><b>

31、  圖30關(guān)閉學(xué)生記錄</b></p><p>  圖31退出系統(tǒng)確認(rèn)對(duì)話(huà)框,只有確認(rèn)時(shí)才會(huì)退出系統(tǒng),否則返加主界面</p><p>  圖32 普通學(xué)生登陸后的界面(即不能對(duì)學(xué)生信息進(jìn)行添加,修改和刪除以及用戶(hù)密碼修改,對(duì)應(yīng)的這幾項(xiàng)灰色顯示,不可點(diǎn)擊)</p><p><b>  總結(jié)或心得體會(huì)</b></p>&l

32、t;p>  這次課程設(shè)計(jì)我做的是學(xué)生信息管理系統(tǒng)。學(xué)生信息管理系主要對(duì)在校學(xué)生的個(gè)人基本信息以及成績(jī)信息進(jìn)行管理,對(duì)教師用戶(hù)提供查詢(xún)信息、增添信息、刪除信息等操作功能;對(duì)學(xué)生用戶(hù)提供成績(jī)查詢(xún)功能。我們的目標(biāo)就是為該系統(tǒng)提供后臺(tái)連接數(shù)據(jù)庫(kù)程序設(shè)計(jì)以及前臺(tái)用戶(hù)界面設(shè)計(jì)。</p><p>  雖然系統(tǒng)的基本功能都已實(shí)現(xiàn),但還是存在系統(tǒng)不穩(wěn)定等多個(gè)問(wèn)題尚待解決。我在做系統(tǒng)的過(guò)程中遇到了很多問(wèn)題,有的是知識(shí)存儲(chǔ)不足,

33、有的是考慮不夠周全,之所以能夠順利實(shí)現(xiàn)基本功功能,離不開(kāi)老師和同學(xué)的大力相助。事實(shí)證明,只靠自己是不能順利完成一套功能完整的系統(tǒng)的,必須充分利用團(tuán)隊(duì)的力量。 </p><p>  開(kāi)發(fā)一套系統(tǒng),最重要的是細(xì)心,并不是一定要做到面面俱到,但也要充分考慮到客戶(hù)的需求和現(xiàn)實(shí)意義,不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具有現(xiàn)實(shí)意義。所以在準(zhǔn)備工作中要正確分析用戶(hù)需求,了解現(xiàn)實(shí)應(yīng)用,畫(huà)出流程圖,把大體框架做好,然

34、后再逐一細(xì)化。我們不可能做到面面俱到,但一定要做到步步扎實(shí),作為一個(gè)程序編程人員,要保持清醒的頭腦,以現(xiàn)實(shí)為依據(jù),讓自己的每一行代碼都能實(shí)現(xiàn)自己的意義。 </p><p>  通過(guò)這次課程設(shè)計(jì),我收獲的不僅僅是課程上的知識(shí)得到實(shí)際應(yīng)用,還有編程的基本習(xí)慣和開(kāi)發(fā)系統(tǒng)時(shí)應(yīng)注意的流程。</p><p><b>  五.參考文獻(xiàn)</b></p><

35、;p>  (1)趙海廷.Java語(yǔ)言程序設(shè)計(jì)教程.北京:清華大學(xué)出版社.2012(2)孫印杰,劉斌,孫玉強(qiáng).Java編程案例精解.北京:電子工業(yè)出版 社.2005(3)何梅.java編程實(shí)例系列叢書(shū).北京:清華大學(xué)出版社,2002(4)楊昭.編著二級(jí)Java語(yǔ)言程序設(shè)計(jì)教程.北京:中國(guó)水利水電出版社,2006(5)趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006</p><

36、p><b>  六、附錄</b></p><p>  登陸用戶(hù)驗(yàn)證是否合法</p><p>  package com.View;</p><p>  import java.sql.ResultSet;</p><p>  import javax.swing.JOptionPane;</p>&l

37、t;p>  import com.SqlConnection.SqlConn;</p><p>  public class LoginModel {</p><p>  //定義連接數(shù)據(jù)庫(kù)需要的組</p><p>  SqlConn sqlconn;</p><p>  ResultSet rs;</p><p&g

38、t;  String sql,position,pwd;</p><p><b>  int flag;</b></p><p>  public int checkUser(String userId,String password)</p><p><b>  {</b></p><p><

39、;b>  flag=0;</b></p><p>  sql="select * from login where userId='"+userId+"'";</p><p>  sqlconn=new SqlConn();</p><p>  rs=sqlconn.sqlQuery(sql)

40、;//返回一個(gè)記錄集</p><p><b>  try {</b></p><p>  while(rs.next())</p><p><b>  {</b></p><p>  pwd=rs.getString(2);</p><p>  position=rs.get

41、String(3);</p><p>  System.out.println("test1="+position);</p><p><b>  }</b></p><p>  if(password.equals(pwd))</p><p><b>  {</b></p

42、><p>  if(position.equals("班委"))</p><p><b>  {</b></p><p><b>  flag=0;</b></p><p><b>  }</b></p><p>  else if(po

43、sition.equals("普通學(xué)生"))</p><p><b>  {</b></p><p><b>  flag=1;</b></p><p><b>  }</b></p><p><b>  }</b></p>

44、<p><b>  else </b></p><p><b>  {</b></p><p><b>  flag=2;</b></p><p><b>  }</b></p><p>  } catch (Exception e) {&l

45、t;/p><p>  e.printStackTrace();</p><p>  // TODO: handle exception</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b

46、></p><p>  sqlconn.closeSqlConn();</p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p><b>  }</b></p

47、><p>  管理員登陸成功后的界面,采用菜單管理制</p><p>  package com.View;</p><p>  import com.SqlConnection.SqlConn;</p><p>  import com.Tools.*;//引入自定義的工具包(字體)</p><p>  import j

48、ava.awt.*;</p><p>  import java.awt.event.ActionEvent;</p><p>  import java.awt.event.ActionListener;</p><p>  import javax.swing.*;</p><p>  public class ManageView ex

49、tends JFrame implements ActionListener{</p><p>  //定義菜單需要要的組件</p><p>  JMenuBar jmb;</p><p>  JMenu jm1,jm2,jm3;</p><p>  JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,

50、jm2_6;</p><p>  JMenuItem jm3_1,jm3_2,jm3_3;</p><p>  //定義一個(gè)表格,用于顯示學(xué)生信息</p><p>  JTable jtb;</p><p>  //定義一個(gè)滾動(dòng)面板,用于存放表格</p><p>  JScrollPane jsp;</p>

51、<p>  //定義設(shè)置窗口初始位置的變量</p><p>  int width,height;</p><p>  //定義一個(gè)表格模型,用于更新表數(shù)據(jù)</p><p>  TableModel tm;</p><p>  PurViewModel pvm;</p><p>  //把菜單封裝成一個(gè)函

52、數(shù)</p><p>  public void menuInit()</p><p><b>  {</b></p><p>  jm1=new JMenu("系統(tǒng)");</p><p>  jm1.setFont(MyFont.f1);</p><p>  jm1_1=new

53、 JMenuItem("<-退出系統(tǒng)->");</p><p>  jm1_1.addActionListener(this);</p><p>  jm1_1.setFont(MyFont.f2);</p><p>  jm1.add(jm1_1);</p><p>  jm2=new JMenu("

54、;學(xué)生管理");</p><p>  jm2.setFont(MyFont.f1);</p><p>  jm2_1=new JMenuItem("<-查詢(xún)記錄->");</p><p>  jm2_1.addActionListener(this);</p><p>  jm2_1.setFont(

55、MyFont.f2);</p><p>  jm2_2=new JMenuItem("<-添加記錄->");</p><p>  jm2_2.addActionListener(this);</p><p>  jm2_2.setFont(MyFont.f2);</p><p>  jm2_3=new JMen

56、uItem("<-修改記錄->");</p><p>  jm2_3.addActionListener(this);</p><p>  jm2_3.setFont(MyFont.f2);</p><p>  jm2_4=new JMenuItem("<-刪除記錄->");</p>&l

57、t;p>  jm2_4.addActionListener(this);</p><p>  jm2_4.setFont(MyFont.f2);</p><p>  jm2_5=new JMenuItem("<-顯示記錄->");</p><p>  jm2_5.addActionListener(this);</p>

58、;<p>  jm2_5.setFont(MyFont.f2);</p><p>  jm2_6=new JMenuItem("<-關(guān)閉記錄->");</p><p>  jm2_6.addActionListener(this);</p><p>  jm2_6.setFont(MyFont.f2);</p>

59、;<p>  jm2.add(jm2_5);//把顯示學(xué)生記錄放在最前面</p><p>  jm2.add(jm2_1);</p><p>  jm2.add(jm2_2);</p><p>  jm2.add(jm2_3);</p><p>  jm2.add(jm2_4);</p><p>  jm

60、2.add(jm2_6);</p><p>  jm3=new JMenu("系統(tǒng)設(shè)置");</p><p>  jm3.setFont(MyFont.f1);</p><p>  jm3_1=new JMenuItem("<-顯示用戶(hù)信息->");</p><p>  jm3_1.setF

61、ont(MyFont.f2);</p><p>  jm3_1.addActionListener(this);</p><p>  jm3_2=new JMenuItem("<-修改用戶(hù)密碼->");</p><p>  jm3_2.setFont(MyFont.f2);</p><p>  jm3_2.ad

62、dActionListener(this);</p><p>  jm3_3=new JMenuItem("<-關(guān)閉用戶(hù)信息->");</p><p>  jm3_3.setFont(MyFont.f2);</p><p>  jm3_3.addActionListener(this);</p><p>  j

63、m3.add(jm3_1);</p><p>  jm3.add(jm3_2);</p><p>  jm3.add(jm3_3);</p><p><b>  //設(shè)置菜單條</b></p><p>  jmb=new JMenuBar();</p><p>  //把菜單添加到菜單條</

64、p><p>  jmb.add(jm1);</p><p>  jmb.add(jm2);</p><p>  jmb.add(jm3);</p><p>  //把菜單條添加到窗體</p><p>  this.setJMenuBar(jmb);</p><p><b>  }</

65、b></p><p>  public static void main(String[] args) {</p><p>  // TODO Auto-generated method stub</p><p>  ManageView manageview=new ManageView();</p><p><b>  }

66、</b></p><p>  public ManageView()</p><p><b>  {</b></p><p><b>  //調(diào)用菜單函數(shù)</b></p><p>  this.menuInit();</p><p>  //當(dāng)?shù)顷戇M(jìn)入界面時(shí),最初

67、顯示的界面</p><p>  jtb=new JTable();</p><p>  //在剛登陸進(jìn)去的時(shí)候不讓數(shù)據(jù)顯示出來(lái),如果即時(shí)顯示,當(dāng)數(shù)據(jù)量大時(shí),影響速度,也不太符合常規(guī) ,因此在這里不用更新數(shù)據(jù)模型</p><p>  jsp=new JScrollPane(jtb);</p><p>  this.add(jsp,"C

68、enter");</p><p><b>  //設(shè)置窗體屬性</b></p><p>  this.setSize(600,400);</p><p>  this.setTitle("學(xué)生信息管理系統(tǒng)-->管理員");</p><p>  //設(shè)置窗口的初始位置</p>

69、<p>  width=Toolkit.getDefaultToolkit().getScreenSize().width;</p><p>  height=Toolkit.getDefaultToolkit().getScreenSize().height;</p><p>  this.setLocation(width/2-280, height/2-250);<

70、;/p><p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  this.setVisible(true);</p><p><b>  }</b></p><p>  //***************事件響應(yīng)****************

71、****//</p><p><b>  @Override</b></p><p>  public void actionPerformed(ActionEvent arg0) {</p><p>  // TODO Auto-generated method stub</p><p><b>  //退出

72、系統(tǒng)</b></p><p>  if(arg0.getSource()==jm1_1)</p><p><b>  {</b></p><p>  Object[] options = {"確定","取消"}; </p><p>  int respose=JOpti

73、onPane.showOptionDialog(this, "你確認(rèn)要退出系統(tǒng)嗎?","退出系統(tǒng)確認(rèn)對(duì)話(huà)框",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null, options, options[0]); </p><p>  if(respose==0)</p><p><

74、b>  {</b></p><p>  System.out.println("你按下了確認(rèn)按鈕!");</p><p>  System.exit(0);//退出系統(tǒng)</p><p><b>  }</b></p><p>  else if(respose==1)</p&g

75、t;<p><b>  {</b></p><p>  System.out.println("你按下了取消按鈕!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b&g

76、t;  }</b></p><p>  //*****************查詢(xún)記錄*********************//</p><p>  else if(arg0.getSource()==jm2_1)</p><p><b>  {</b></p><p>  System.out.prin

77、tln("查詢(xún)被點(diǎn)擊了");</p><p>  StuQuery sq=new StuQuery(this, "學(xué)生信息查詢(xún)", true);</p><p><b>  }</b></p><p>  //***************添加記錄******************//</p>

78、;<p>  else if(arg0.getSource()==jm2_2)</p><p><b>  {</b></p><p>  System.out.println("添加被點(diǎn)擊了");</p><p>  AddStu addstu=new AddStu(this, "添加學(xué)生信息&qu

79、ot;, true);</p><p>  if(addstu.falg()==1)</p><p><b>  {</b></p><p>  //更新當(dāng)前窗口的學(xué)生信息,以便添加學(xué)生信息后就能看到新信息</p><p>  tm=new TableModel(null);</p><p> 

80、 jtb.setModel(tm);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  //不更新數(shù)據(jù)</b></p><p>

81、<b>  }</b></p><p><b>  }</b></p><p>  //*************************修改記錄********************//</p><p>  else if(arg0.getSource()==jm2_3)</p><p><

82、;b>  {</b></p><p>  //先判斷是否選擇了一行,沒(méi)有選中,則返回-1,如果選中,則返回選中的那一行的序號(hào),也就是第幾行</p><p>  int rowNo=jtb.getSelectedRow();</p><p>  if(rowNo==-1)</p><p><b>  {</b&

83、gt;</p><p>  //沒(méi)有選中,提示信息</p><p>  JOptionPane.showMessageDialog(this, "你沒(méi)有選中一行!");</p><p><b>  return;</b></p><p><b>  }</b></p>

84、<p><b>  else </b></p><p><b>  {</b></p><p>  //得到選擇的那一行的學(xué)號(hào)</p><p>  //String stuId=(String)tm.getValueAt(rowNo, 0);//學(xué)號(hào)是字符串,因些得轉(zhuǎn)型</p><p>

85、;  //需要把當(dāng)前的這個(gè)數(shù)據(jù)模型和所選擇的那一行的序號(hào)傳過(guò)去</p><p>  UpdateStu updateStu=new UpdateStu(this, "修改學(xué)生信息", tm, rowNo, true);</p><p>  //更新當(dāng)前窗口的學(xué)生信息,以便更新學(xué)生信息后就能看到新信息</p><p>  tm=new TableM

86、odel(null);</p><p>  jtb.setModel(tm);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //*********************刪除記錄*******************//</p&g

87、t;<p>  else if(arg0.getSource()==jm2_4)</p><p><b>  {</b></p><p>  System.out.println("你點(diǎn)擊了刪除按鈕");</p><p>  //到得某一行,即選擇的那一行</p><p>  int r

88、owNo=jtb.getSelectedRow();</p><p>  //判斷是否已經(jīng)選擇一行,如果沒(méi)有選擇,則彈出一個(gè)對(duì)話(huà)框,當(dāng)?shù)扔?1時(shí),表示沒(méi)有選擇</p><p>  if(rowNo==-1)</p><p><b>  {</b></p><p>  JOptionPane.showMessageDial

89、og(this,"你沒(méi)有選擇一行!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

90、;<p>  //得到選擇的那一行的學(xué)號(hào)</p><p>  String stuId=(String)tm.getValueAt(rowNo, 0);//某一行的第0列就是學(xué)號(hào),因?yàn)榈玫降膶W(xué)號(hào)是字符串,所以得轉(zhuǎn)型</p><p>  System.out.println("stuId="+stuId);</p><p>  Str

91、ing sql="delete * from student where stuId='"+stuId+"'";</p><p>  Object[] options = {"確定","取消"}; </p><p>  int respose=JOptionPane.showOptionDial

92、og(this, "你確認(rèn)要?jiǎng)h除該學(xué)生嗎?","刪除信息確認(rèn)對(duì)話(huà)框",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null, options, options[0]); </p><p>  if(respose==0)</p><p><b>  {</b>&l

93、t;/p><p>  System.out.println("你按下了確認(rèn)按鈕!");</p><p><b>  //連接數(shù)據(jù)庫(kù)</b></p><p>  SqlConn sqlconn=new SqlConn();</p><p>  sqlconn.sqlDelete(sql);</p>

94、;<p>  //注意:********這在里必須調(diào)用關(guān)閉數(shù)據(jù)庫(kù)連接的方法,在這里,如果沒(méi)有關(guān)閉資源,則表模型無(wú)法更新成功,切記?。。。?!</p><p>  sqlconn.closeSqlConn();</p><p>  tm=new TableModel(null);</p><p>  jtb.setModel(tm);</p>

95、<p><b>  }</b></p><p>  else if(respose==1)</p><p><b>  {</b></p><p>  System.out.println("你按下了取消按鈕!");</p><p><b>  return

96、;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //****************顯示記錄*******************//</p>&l

97、t;p>  else if(arg0.getSource()==jm2_5)</p><p><b>  {</b></p><p>  tm=new TableModel(null);</p><p>  jtb.setModel(tm);</p><p>  //讓表格顯示學(xué)生信息</p><

98、;p>  jtb.setVisible(true);</p><p><b>  }</b></p><p>  //*****************關(guān)閉記錄*******************//</p><p>  else if(arg0.getSource()==jm2_6)</p><p><b

99、>  {</b></p><p>  System.out.println("jm2_6,關(guān)閉記錄被點(diǎn)擊了!");</p><p><b>  //不顯示學(xué)生信息</b></p><p>  jtb.setVisible(false);</p><p><b>  }<

100、;/b></p><p>  //***********************************************************//</p><p>  //*****************這是用戶(hù)管理**************//</p><p>  //*******顯示所有賬戶(hù)********//</p><

101、;p>  else if(arg0.getSource()==jm3_1)</p><p><b>  {</b></p><p>  pvm=new PurViewModel(null);</p><p>  jtb.setModel(pvm);</p><p>  //讓表格顯示學(xué)生信息</p>

102、<p>  jtb.setVisible(true);</p><p><b>  }</b></p><p>  //*********修改密碼**********//</p><p>  else if(arg0.getSource()==jm3_2)</p><p><b>  {</b&

103、gt;</p><p>  System.out.println("修改密碼按鈕被點(diǎn)擊了");</p><p>  //先判斷是否選擇了一行,沒(méi)有選中,則返回-1,如果選中,則返回選中的那一行的序號(hào),也就是第幾行</p><p>  int rowNo=jtb.getSelectedRow();</p><p>  if(

104、rowNo==-1)</p><p><b>  {</b></p><p>  //沒(méi)有選中,提示信息</p><p>  JOptionPane.showMessageDialog(this, "你沒(méi)有選中用戶(hù)!");</p><p><b>  return;</b><

105、;/p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  //得到選擇的那一行的賬號(hào)</p><p>  //String userId=(String)tm.getV

106、alueAt(rowNo, 0);//學(xué)號(hào)是字符串,因些得轉(zhuǎn)型</p><p>  //需要把當(dāng)前的這個(gè)數(shù)據(jù)模型和所選擇的那一行的序號(hào)傳過(guò)去</p><p>  UpdateLogin updateLogin=new UpdateLogin(this, "修改密碼信息", pvm, rowNo, true);</p><p>  //更新當(dāng)前窗口

107、的學(xué)生信息,以便更新學(xué)生信息后就能看到新信息</p><p>  pvm=new PurViewModel(null);</p><p>  jtb.setModel(pvm);</p><p><b>  }</b></p><p><b>  }</b></p><p&g

108、t;  //**************關(guān)閉表格數(shù)據(jù)***************//</p><p>  else if(arg0.getSource()==jm3_3)</p><p><b>  {</b></p><p>  System.out.println("jm3_3關(guān)閉表格數(shù)據(jù)被點(diǎn)擊了");</p&g

109、t;<p>  //不讓表數(shù)據(jù)顯示出來(lái)</p><p>  jtb.setVisible(false);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

110、;  一個(gè)管理員表模型,用于更新數(shù)據(jù)</p><p>  package com.View;</p><p>  import com.SqlConnection.*;//引入數(shù)據(jù)庫(kù)連接的包</p><p>  import java.sql.*;</p><p>  import java.util.*;</p><p&

111、gt;  import javax.swing.table.AbstractTableModel;</p><p>  import com.SqlConnection.SqlConn;</p><p>  public class PurViewModel extends AbstractTableModel {</p><p>  //定義表格所需要的集合<

112、;/p><p>  Vector rowData,row,column;</p><p>  //定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫(kù)返回來(lái)的記錄集</p><p>  ResultSet rs;</p><p>  SqlConn conn;</p><p>  public PurViewModel(String sql)

113、</p><p><b>  {</b></p><p>  if(sql==null)</p><p><b>  {</b></p><p>  sql="select * from login";</p><p><b>  }</b

114、></p><p><b>  //設(shè)置表格的列名</b></p><p>  column=new Vector();</p><p>  column.add("賬號(hào)");</p><p>  column.add("密碼");</p><p> 

115、 column.add("職位");</p><p><b>  //創(chuàng)建表的記錄集</b></p><p>  rowData=new Vector();</p><p><b>  //調(diào)用數(shù)據(jù)庫(kù)連接</b></p><p>  conn=new SqlConn();<

116、/p><p>  rs=conn.sqlQuery(sql);</p><p><b>  try {</b></p><p>  while(rs.next())</p><p><b>  {</b></p><p>  row=new Vector();</p>

117、<p>  row.add(rs.getString(1));</p><p>  row.add(rs.getString(2));</p><p>  row.add(rs.getString(3));</p><p>  rowData.add(row);</p><p><b>  }</b><

118、;/p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p>  // TODO: handle exception</p><p><b>  }</b></p><p><b>  }</b>

119、</p><p><b>  @Override</b></p><p>  public String getColumnName(int column) {</p><p>  // TODO Auto-generated method stub</p><p>  return (String)this.colum

120、n.get(column);</p><p><b>  }</b></p><p><b>  @Override</b></p><p><b>  //得到的列數(shù)</b></p><p>  public int getColumnCount() {</p>

121、<p>  // TODO Auto-generated method stub</p><p>  return this.column.size();</p><p><b>  }</b></p><p><b>  //得到的行數(shù)</b></p><p><b>  @

122、Override</b></p><p>  public int getRowCount() {</p><p>  // TODO Auto-generated method stub</p><p>  return this.rowData.size();</p><p><b>  }</b><

123、;/p><p><b>  @Override</b></p><p>  //得到某行某列的值</p><p>  public Object getValueAt(int arg0, int arg1) {</p><p>  // TODO Auto-generated method stub</p>&

124、lt;p>  return ((Vector)this.rowData.get(arg0)).get(arg1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  管理員登陸成功后的界面(學(xué)生管理),采用菜單管理制</p><p>  pac

125、kage com.View;</p><p>  import com.SqlConnection.SqlConn;</p><p>  import com.Tools.*;//引入自定義的工具包(字體)</p><p>  import java.awt.*;</p><p>  import java.awt.event.ActionE

126、vent;</p><p>  import java.awt.event.ActionListener;</p><p>  import javax.swing.*;</p><p>  public class StuMainView extends JFrame implements ActionListener{</p><p> 

127、 //定義菜單需要要的組件</p><p>  JMenuBar jmb;</p><p>  JMenu jm1,jm2,jm3;</p><p>  JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,jm2_6;</p><p>  JMenuItem jm3_1,jm3_2,jm3_3;<

128、/p><p>  //定義一個(gè)表格,用于顯示學(xué)生信息</p><p>  JTable jtb;</p><p>  //定義一個(gè)滾動(dòng)面板,用于存放表格</p><p>  JScrollPane jsp;</p><p>  //定義設(shè)置窗口初始位置的變量</p><p>  int width,

129、height;</p><p>  //定義一個(gè)表格模型,用于更新表數(shù)據(jù)</p><p>  TableModel tm;</p><p>  //把菜單封裝成一個(gè)函數(shù)</p><p>  public void menuInit()</p><p><b>  {</b></p>

130、<p>  jm1=new JMenu("系統(tǒng)");</p><p>  jm1.setFont(MyFont.f1);</p><p>  jm1_1=new JMenuItem("<-退出系統(tǒng)->");</p><p>  jm1_1.addActionListener(this);</p>

131、;<p>  jm1_1.setFont(MyFont.f2);</p><p>  jm1.add(jm1_1);</p><p>  jm2=new JMenu("學(xué)生管理");</p><p>  jm2.setFont(MyFont.f1);</p><p>  jm2_1=new JMenuItem

132、("<-查詢(xún)記錄->");</p><p>  jm2_1.addActionListener(this);</p><p>  jm2_1.setFont(MyFont.f2);</p><p>  jm2_2=new JMenuItem("<-添加記錄->");</p><p&g

133、t;  jm2_2.addActionListener(this);</p><p>  jm2_2.setEnabled(false);</p><p>  jm2_2.setFont(MyFont.f2);</p><p>  jm2_3=new JMenuItem("<-修改記錄->");</p><p>

134、;  jm2_3.addActionListener(this);</p><p>  jm2_3.setEnabled(false);</p><p>  jm2_3.setFont(MyFont.f2);</p><p>  jm2_4=new JMenuItem("<-刪除記錄->");</p><p>

135、  jm2_4.addActionListener(this);</p><p>  jm2_4.setEnabled(false);</p><p>  jm2_4.setFont(MyFont.f2);</p><p>  jm2_5=new JMenuItem("<-顯示記錄->");</p><p> 

136、 jm2_5.addActionListener(this);</p><p>  jm2_5.setFont(MyFont.f2);</p><p>  jm2_6=new JMenuItem("<-關(guān)閉記錄->");</p><p>  jm2_6.addActionListener(this);</p><p

137、>  jm2_6.setFont(MyFont.f2);</p><p>  jm2.add(jm2_5);</p><p>  jm2.add(jm2_1);</p><p>  jm2.add(jm2_2);</p><p>  jm2.add(jm2_3);</p><p>  jm2.add(jm2_4)

138、;</p><p>  jm2.add(jm2_6);</p><p>  jm3=new JMenu("系統(tǒng)設(shè)置");</p><p>  jm3.setFont(MyFont.f1);</p><p>  jm3_1=new JMenuItem("<-顯示用戶(hù)->");</p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論