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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16、>  圖1 功能模塊圖</b></p><p>  2.2數(shù)據(jù)庫結(jié)構(gòu)描述</p><p> ?。?)數(shù)據(jù)庫E-R模型</p><p>  圖2 學(xué)生局部E-R圖</p><p>  圖3 登陸用戶局部E-R圖</p><p>  (2)數(shù)據(jù)庫關(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è)計文檔</p><p>  表3 包及其所包

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

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

20、</p><p>  ManageView模塊是管理員登陸成功后的界面,采用的是菜單管理制。JMenuBar jmb是用于定義一個菜單條,用JMenu jm1,jm2,jm3定義三個菜單, 采用JMenuItem jm1_1,jm2_1,jm2_2,jm2_3,jm2_4,jm2_5,jm2_6定義六個二級菜單項, JTable jtb適用于定義一個表格,用于顯示學(xué)生信息, JScrollPane jsp定義一個

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

36、p><b>  六、附錄</b></p><p>  登陸用戶驗證是否合法</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ù)庫需要的組</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、;//返回一個記錄集</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>  //定義一個表格,用于顯示學(xué)生信息</p><p>  JTable jtb;</p><p>  //定義一個滾動面板,用于存放表格</p><p>  JScrollPane jsp;</p>

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

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("<-查詢記錄->");</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("<-顯示用戶信息->");</p><p>  jm3_1.setF

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

62、dActionListener(this);</p><p>  jm3_3=new JMenuItem("<-關(guān)閉用戶信息->");</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)入界面時,最初

67、顯示的界面</p><p>  jtb=new JTable();</p><p>  //在剛登陸進(jìn)去的時候不讓數(shù)據(jù)顯示出來,如果即時顯示,當(dāng)數(shù)據(jù)量大時,影響速度,也不太符合常規(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)對話框",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>  //*****************查詢記錄*********************//</p><p>  else if(arg0.getSource()==jm2_1)</p><p><b>  {</b></p><p>  System.out.prin

77、tln("查詢被點擊了");</p><p>  StuQuery sq=new StuQuery(this, "學(xué)生信息查詢", 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("添加被點擊了");</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>  //先判斷是否選擇了一行,沒有選中,則返回-1,如果選中,則返回選中的那一行的序號,也就是第幾行</p><p>  int rowNo=jtb.getSelectedRow();</p><p>  if(rowNo==-1)</p><p><b>  {</b&

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

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

85、;  //需要把當(dāng)前的這個數(shù)據(jù)模型和所選擇的那一行的序號傳過去</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("你點擊了刪除按鈕");</p><p>  //到得某一行,即選擇的那一行</p><p>  int r

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

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

90、;<p>  //得到選擇的那一行的學(xué)號</p><p>  String stuId=(String)tm.getValueAt(rowNo, 0);//某一行的第0列就是學(xué)號,因為得到的學(xué)號是字符串,所以得轉(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)要刪除該學(xué)生嗎?","刪除信息確認(rèn)對話框",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ù)庫</b></p><p>  SqlConn sqlconn=new SqlConn();</p><p>  sqlconn.sqlDelete(sql);</p>

94、;<p>  //注意:********這在里必須調(diào)用關(guān)閉數(shù)據(jù)庫連接的方法,在這里,如果沒有關(guān)閉資源,則表模型無法更新成功,切記?。。。。?lt;/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)閉記錄被點擊了!");</p><p><b>  //不顯示學(xué)生信息</b></p><p>  jtb.setVisible(false);</p><p><b>  }<

100、;/b></p><p>  //***********************************************************//</p><p>  //*****************這是用戶管理**************//</p><p>  //*******顯示所有賬戶********//</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("修改密碼按鈕被點擊了");</p><p>  //先判斷是否選擇了一行,沒有選中,則返回-1,如果選中,則返回選中的那一行的序號,也就是第幾行</p><p>  int rowNo=jtb.getSelectedRow();</p><p>  if(

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

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

106、alueAt(rowNo, 0);//學(xué)號是字符串,因些得轉(zhuǎn)型</p><p>  //需要把當(dāng)前的這個數(shù)據(jù)模型和所選擇的那一行的序號傳過去</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ù)被點擊了");</p&g

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

110、;  一個管理員表模型,用于更新數(shù)據(jù)</p><p>  package com.View;</p><p>  import com.SqlConnection.*;//引入數(shù)據(jù)庫連接的包</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>  //定義一個記錄集,用于接收從數(shù)據(jù)庫返回來的記錄集</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("賬號");</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ù)庫連接</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>  //定義一個表格,用于顯示學(xué)生信息</p><p>  JTable jtb;</p><p>  //定義一個滾動面板,用于存放表格</p><p>  JScrollPane jsp;</p><p>  //定義設(shè)置窗口初始位置的變量</p><p>  int width,

129、height;</p><p>  //定義一個表格模型,用于更新表數(shù)據(jù)</p><p>  TableModel tm;</p><p>  //把菜單封裝成一個函數(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、("<-查詢記錄->");</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("<-顯示用戶->");</p>

溫馨提示

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

評論

0/150

提交評論