2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩40頁(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、<p>  軟件工程綜合實(shí)踐報(bào)告</p><p><b>  名片管理系統(tǒng)設(shè)計(jì)</b></p><p><b>  目錄</b></p><p><b>  1 問(wèn)題定義2</b></p><p><b>  2 可行性研究2</b><

2、/p><p>  2.1 技術(shù)可行性:2</p><p>  2.2 經(jīng)濟(jì)可行性:2</p><p>  2.3 操作可行性:2</p><p><b>  3 需求分析2</b></p><p>  3.1系統(tǒng)功能需求分析2</p><p>  3.2系統(tǒng)性能需求分

3、析3</p><p>  3.3實(shí)體-關(guān)系3</p><p>  3.4 系統(tǒng)數(shù)據(jù)流圖3</p><p><b>  3.5數(shù)據(jù)字典4</b></p><p><b>  4.總體設(shè)計(jì)5</b></p><p><b>  4.1層次圖5</b&g

4、t;</p><p>  4.2系統(tǒng)流程圖5</p><p><b>  4.3關(guān)系模式6</b></p><p><b>  5.詳細(xì)設(shè)計(jì)6</b></p><p><b>  5.1建表6</b></p><p>  5.2加載驅(qū)動(dòng)和URL

5、6</p><p>  5.3應(yīng)用系統(tǒng)部分7</p><p>  5.3.1視圖窗口7</p><p>  5.3.2監(jiān)視器7</p><p>  5.3.3數(shù)據(jù)操作7</p><p>  5.4程序流程圖8</p><p>  5.5數(shù)據(jù)庫(kù)設(shè)計(jì)8</p><p&

6、gt;<b>  6.實(shí)現(xiàn)9</b></p><p>  6.1用戶登錄界面9</p><p>  6.2名片管理系統(tǒng)主窗體11</p><p>  6.3監(jiān)視器mnuHandler()和SelectFrameHandler()15</p><p>  6.4數(shù)據(jù)操作類DatabaseOperate()22&l

7、t;/p><p><b>  7.測(cè)試31</b></p><p>  7.1修改密碼模塊測(cè)試31</p><p>  7.2退出模塊測(cè)試32</p><p>  7.3增加類別模塊測(cè)試32</p><p>  7.4修改類別模塊測(cè)試33</p><p>  7.5刪

8、除類別模塊測(cè)試34</p><p>  7.6插入名片模塊測(cè)試35</p><p>  7.7多項(xiàng)查詢模塊測(cè)試36</p><p>  7.8修改名片模塊測(cè)試38</p><p>  7.9刪除名片模塊測(cè)試38</p><p>  7.10生日提示模塊測(cè)試39</p><p><

9、;b>  8.個(gè)人小結(jié)39</b></p><p><b>  參考文獻(xiàn)40</b></p><p><b>  1 問(wèn)題定義</b></p><p>  項(xiàng)目名稱:名片管理系統(tǒng)</p><p>  完成的功能:按客戶編號(hào)、姓名或者職業(yè)查詢客戶的基本信息;可以添加,修改或刪除客

10、戶信息;按客戶信息編號(hào)查詢名片的基本信息;對(duì)名片信息進(jìn)行添加、刪除、修改。</p><p>  需要處理的基本數(shù)據(jù):個(gè)人信息:編號(hào)、姓名、職業(yè)、聯(lián)系方式等;名片信息:名片號(hào)等。</p><p><b>  2 可行性研究</b></p><p>  2.1 技術(shù)可行性:</p><p>  本設(shè)計(jì)“名片管理系統(tǒng)”是為各類

11、人員開(kāi)發(fā)的信息管理系統(tǒng)。通過(guò)兩個(gè)星期的學(xué)習(xí),對(duì)開(kāi)發(fā)管理信息系統(tǒng)又有了新的認(rèn)識(shí)。使自己在開(kāi)發(fā)管理信息系統(tǒng)方面的技術(shù)更加成熟。由于本設(shè)計(jì)最重要體現(xiàn)的是實(shí)用性,所以通過(guò)大量的社會(huì)調(diào)查和分析,結(jié)合自己現(xiàn)有的技術(shù)水平加上老師的指導(dǎo),能按期完成本次課程設(shè)計(jì)。</p><p>  2.2 經(jīng)濟(jì)可行性:</p><p>  支出:硬件設(shè)備:PC機(jī);</p><p>  軟件:Win

12、dows xp,Myeclipse,SQL Server。</p><p>  效益:進(jìn)一步實(shí)現(xiàn)辦公自動(dòng)化,減少人力投資和辦公費(fèi)用,極大地提高辦公效率。</p><p>  2.3 操作可行性:</p><p>  本軟件的用戶對(duì)象是信息管理的工作人員,由于本軟件要設(shè)計(jì)成友好的界面,寫出詳細(xì)的使用說(shuō)明,用戶只需懂得簡(jiǎn)單的計(jì)算機(jī)操作知識(shí),就能自由應(yīng)用本軟件。</

13、p><p>  所以從以上幾個(gè)方面的分析來(lái)看,開(kāi)發(fā)本軟件是完全可行的。</p><p><b>  3 需求分析</b></p><p>  3.1系統(tǒng)功能需求分析</p><p>  系統(tǒng)開(kāi)發(fā)的總體任務(wù)是各種信息的系統(tǒng)化、規(guī)范化和自動(dòng)化。</p><p><b>  主要完成的功能:<

14、;/b></p><p>  按客戶編號(hào)、姓名或者職業(yè)查詢客戶的基本信息;</p><p>  可以添加,修改或刪除客戶信息;</p><p>  按客戶信息編號(hào)查詢名片的基本信息;</p><p>  對(duì)名片信息進(jìn)行添加、刪除、修改、查詢。</p><p>  3.2系統(tǒng)性能需求分析</p>&l

15、t;p><b> ?。?)數(shù)據(jù)精確度</b></p><p>  進(jìn)行操作請(qǐng)求時(shí),如:名片添加、名片刪除、名片修改、名片查詢時(shí),應(yīng)保證輸入數(shù)據(jù)與數(shù)據(jù)庫(kù)數(shù)據(jù)的相匹配性。而在滿足用戶請(qǐng)求時(shí),系統(tǒng)應(yīng)保證所響應(yīng)數(shù)據(jù)的正確性和全面性。</p><p><b>  (2)時(shí)間特性</b></p><p>  為滿足用戶高效要求,

16、數(shù)據(jù)的響應(yīng)時(shí)間、更新處理時(shí)間、數(shù)據(jù)轉(zhuǎn)換與傳輸時(shí)間、運(yùn)行時(shí)間都應(yīng)在可接受范圍之內(nèi)。</p><p><b>  3.3實(shí)體-關(guān)系</b></p><p>  名片信息實(shí)體E-R圖如圖3-1所示:</p><p>  圖3-1 名片信息實(shí)體E-R圖</p><p>  3.4 系統(tǒng)數(shù)據(jù)流圖</p><p&

17、gt;  本系統(tǒng)根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:名片存儲(chǔ)系統(tǒng)(名片號(hào)),用戶個(gè)人信息(編號(hào)、姓名、職業(yè)、聯(lián)系方式)。</p><p>  描述名片管理系統(tǒng)功能的數(shù)據(jù)流圖如3-2所示:</p><p>  圖3-2 名片管理系統(tǒng)的數(shù)據(jù)流圖</p><p><b>  3.5數(shù)據(jù)字典</b></p><p><b>

18、  4.總體設(shè)計(jì)</b></p><p>  經(jīng)過(guò)需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在是決定“怎樣做”的時(shí)候了??傮w設(shè)計(jì)的基本目的就是回答“概括的說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè)問(wèn)題,因此,總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)??傮w設(shè)計(jì)的重要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序由哪些模塊組成,以及這些模塊相互間的關(guān)系。</p><p>  通常程序中的一個(gè)

19、模塊完成一個(gè)恰當(dāng)?shù)淖庸δ?。?yīng)該把模塊組成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個(gè)下層模塊再調(diào)用更下層的模塊,從而完成程序的一個(gè)子功能,最下層的模塊完成最具體的功能。軟件結(jié)構(gòu)(即由模塊組成的層次系統(tǒng))可以用層次圖或結(jié)構(gòu)圖來(lái)描述。</p><p><b>  4.1層次圖</b></p><p>  對(duì)需求分析得到各項(xiàng)功能進(jìn)行集中、分塊、按照結(jié)構(gòu)

20、化程序設(shè)計(jì)的 ,得到如圖4-1所示的層次圖。</p><p>  圖4-1 名片管理系統(tǒng)的層次圖</p><p><b>  4.2系統(tǒng)流程圖</b></p><p>  系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處

21、理的控制過(guò)程,因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。</p><p>  系統(tǒng)流程圖如圖4-2所示:</p><p>  圖4-2 系統(tǒng)流程圖</p><p><b>  4.3關(guān)系模式</b></p><p>  用戶(用戶名,密碼)</p>&l

22、t;p>  分類(類別編號(hào),類別)</p><p>  名片(卡號(hào),姓名,性別,生日,工作單位,職務(wù),家庭電話,辦公電話,移動(dòng)電話,家庭地址,郵編,電子郵件)</p><p><b>  5.詳細(xì)設(shè)計(jì)</b></p><p>  詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系

23、統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。</p><p>  從前面得知,本系統(tǒng)是JAVA在與數(shù)據(jù)庫(kù)連接的基礎(chǔ)上對(duì)數(shù)據(jù)進(jìn)行的一系列操作。JAVA編寫的名片管理系統(tǒng)屬于前臺(tái)應(yīng)用,SQL SERVER數(shù)據(jù)庫(kù)管理系統(tǒng)作為提供后臺(tái)數(shù)據(jù)的平臺(tái)。 </p><p><b>  5.1建表<

24、/b></p><p>  后臺(tái)數(shù)據(jù)庫(kù)的建立可以很容易根據(jù)前面的數(shù)據(jù)庫(kù)設(shè)計(jì)分析實(shí)現(xiàn),即建立三張表,分別存儲(chǔ)用戶登錄時(shí)所需數(shù)據(jù),名片信息和名片的分類信息。</p><p>  5.2加載驅(qū)動(dòng)和URL</p><p>  JAVA連接SQL SERVER2005本程序采用ODBC數(shù)據(jù)源的連接方法。加載驅(qū)動(dòng)和URL為:</p><p>  C

25、lass.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  url="jdbc:odbc:userinfo";</p><p><b>  5.3應(yīng)用系統(tǒng)部分</b></p><p>  JAVA編寫的應(yīng)用系統(tǒng)部分可以大致分為:視圖窗口,監(jiān)視器,數(shù)據(jù)操作

26、。他們相互隔離又相互配合來(lái)完成各種操作。</p><p><b>  5.3.1視圖窗口</b></p><p>  作為系統(tǒng)的主界面,采用BorderLayout的布局方式,需要包含菜單、現(xiàn)實(shí)名片信息的窗口和名片分類的窗口。新建四個(gè)菜單:用戶管理,類別管理,名片管理,生日提示,用于各項(xiàng)操作。把菜單添加到菜單條中。然后把各菜單中的菜單項(xiàng)添加到菜單中,并聲明監(jiān)視器。顯示

27、類別信息和名片信息的分塊,分別設(shè)置成模塊pnlBtn和pnlAll。他們分別寫成類TypeDialog和CardDialog,在類中分別把Label,Button,Txtfield等元組添加進(jìn)去。其他窗口,例如進(jìn)行類別管理時(shí)的要彈出的窗口,查詢名片信息的窗口等,都是類似的寫法。</p><p><b>  5.3.2監(jiān)視器</b></p><p>  用戶管理和類別管

28、理需要調(diào)用到另一個(gè)彈出窗口,所以聲明addActionListener(new mnuHandler(this)),mnuHandler()中并沒(méi)有具體的操作,只是提供一個(gè)該操作所需的窗口,并把需要處理的數(shù)據(jù)轉(zhuǎn)入到SelectFrameHandler(),該監(jiān)視器再調(diào)用DatabaseOperate()類中的具體的數(shù)據(jù)處理的方法。名片信息管理中,查詢和新建操作與上面的類似,也是利用mnuHandler()來(lái)提供一個(gè)窗口,最終把需要的操作

29、送入SelectFrameHandler();刪除和修改直接調(diào)用SelectFrameHandler()監(jiān)視器。監(jiān)視器只是把外部的用戶動(dòng)作提供給系統(tǒng)處理,并沒(méi)有對(duì)數(shù)據(jù)的直接操作,對(duì)數(shù)據(jù)的操作都集中在DatabaseOperate()類中。</p><p><b>  5.3.3數(shù)據(jù)操作</b></p><p>  對(duì)三張表進(jìn)行查找,更新,刪除,插入操作。首先調(diào)用Con

30、nection,然后調(diào)用statement執(zhí)行語(yǔ)句,ResultSet存儲(chǔ)操作結(jié)果。另外,為了方便數(shù)據(jù)的設(shè)置和返回,需要建立兩個(gè)類typemodel,cardmodel,而Allmodel可以返回這兩個(gè)類的實(shí)體。</p><p>  對(duì)用戶表的操作分為查找和更新,查找即在登錄時(shí)校驗(yàn)用戶輸入的ID在usertable 表中所對(duì)應(yīng)的密碼是否與輸入的密碼一致,可以用以下語(yǔ)句實(shí)現(xiàn): select * from usert

31、able where username='" +um.getUsername() + "'。更新即對(duì)密碼進(jìn)行修改,用以下語(yǔ)句實(shí)現(xiàn):update usertable set password='" + um.getPassword() +"' where username='" + um.getUsername() + "'。對(duì)用戶

32、表的操作體現(xiàn)在主界面菜單欄的第一欄,調(diào)用監(jiān)視器mnuHandler()。</p><p>  對(duì)名片分類表的操作分為更新、刪除和插入。更新可用以下代碼實(shí)現(xiàn)update typetable set tpname=? where tpid=?;刪除可用以下代碼實(shí)現(xiàn):delete typetable where tpid=?;插入可用以下代碼實(shí)現(xiàn):insert into typetable(tpname) values

33、 (?)。</p><p>  對(duì)名片表的操作復(fù)雜的多,于是名片的操作放在兩個(gè)監(jiān)視器中SelectFrameHandler()和muHandler()中。對(duì)名片表的操作可分為查找,插入,更新,刪除。SQL語(yǔ)句與對(duì)其他兩張表的操作類似。查找可以用以下代碼實(shí)現(xiàn):selecttpid,frdname,sex,birthday,depart,power,homephone,officephone,mobil,addres

34、s,number,email from cardtable where carid=" +car + "。插入可以用以下代碼實(shí)現(xiàn):insert into cardtable(carid,tpid,frdname,sex,birthday,depart,power,homephone,officephone,mobil,address,number,email)values(?,?,?,?,?,?,?,?,?,?,?,

35、?,?)。</p><p>  更新和刪除操作直接放在SelectFrameHandler()中完成。對(duì)名片分類表的操作體現(xiàn)在主界面菜單欄的第三欄,調(diào)用監(jiān)視器muHandler()或者直接調(diào)用SelectFrameHandler()。</p><p><b>  5.4程序流程圖</b></p><p>  描述名片管理系統(tǒng)的程序流程圖如圖5-

36、1所示:</p><p>  圖5-1 程序流程圖</p><p><b>  5.5數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  該實(shí)例實(shí)現(xiàn)的是簡(jiǎn)單的名片管理功能,因此系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)比較簡(jiǎn)單,只有名片表、類別表、用戶表3個(gè)數(shù)據(jù)表。</p><p><b>  表3-3 名片表</b></p>

37、<p><b>  表3-4 類別表</b></p><p><b>  表3-5 用戶表</b></p><p><b>  6.實(shí)現(xiàn)</b></p><p><b>  6.1用戶登錄界面</b></p><p><b>  主

38、要代碼如下:</b></p><p>  import javax.swing.JFrame;</p><p>  import javax.swing.JLabel;</p><p>  import java.awt.*;</p><p>  import javax.swing.JTextField;</p>

39、<p>  import javax.swing.JPasswordField;</p><p>  import javax.swing.JButton;</p><p>  import java.awt.Rectangle;</p><p>  public class LoginFrame extends JFrame {</p>&

40、lt;p>  public LoginFrame() {</p><p><b>  try {</b></p><p><b>  jbInit();</b></p><p>  } catch (Exception ex) {</p><p>  ex.printStackTrace();

41、</p><p><b>  }</b></p><p><b>  }</b></p><p>  private void jbInit() throws Exception {</p><p>  this.getContentPane().setLayout(null);</p>

42、<p>  setSize(250,200);</p><p>  this.setTitle("登錄");</p><p>  lblTitle.setFont(new java.awt.Font("Dialog", Font.BOLD, 20));</p><p>  lblTitle.setText(&qu

43、ot;用戶登錄");</p><p>  lblTitle.setBounds(new Rectangle(82, 8, 93, 34));</p><p>  lblUserName.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  lblUserName.

44、setText("用 戶 名:");</p><p>  lblUserName.setBounds(new Rectangle(30, 44, 83, 19));</p><p>  txtUserName.setText("");</p><p>  txtUserName.setBounds(new Rectangle(

45、112, 42, 105, 22));</p><p>  psUserPassword.setBounds(new Rectangle(112, 68, 106, 22));</p><p>  btnLogin.setBounds(new Rectangle(41, 95, 73, 25));</p><p>  btnLogin.setFont(new jav

46、a.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  btnLogin.setText("登錄");</p><p>  btnLogin.addActionListener(lh);</p><p>  lh.lf=this;</p><p>  btnRe

47、s.setBounds(new Rectangle(135, 95, 73, 25));</p><p>  btnRes.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  btnRes.setText("取消");</p><p>  btnRes

48、.addActionListener(lh);</p><p>  lblErr.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  lblErr.setForeground(Color.red);</p><p>  lblErr.setText(""

49、;);</p><p>  lblErr.setBounds(new Rectangle(31, 123, 191, 19));</p><p>  lblPassword.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  lblPassword.setText(&qu

50、ot;密碼:");</p><p>  lblPassword.setBounds(new Rectangle(30, 70, 83, 19));</p><p>  this.getContentPane().add(lblTitle);</p><p>  this.getContentPane().add(lblUserName);</p>

51、;<p>  this.getContentPane().add(lblPassword);</p><p>  this.getContentPane().add(txtUserName);</p><p>  this.getContentPane().add(psUserPassword);</p><p>  this.getContentPa

52、ne().add(btnLogin);</p><p>  this.getContentPane().add(btnRes);</p><p>  this.getContentPane().add(lblErr);</p><p><b>  }</b></p><p>  LoginHandler lh=new L

53、oginHandler();</p><p>  JLabel lblTitle = new JLabel();</p><p>  JLabel lblPassword = new JLabel();</p><p>  JLabel lblUserName = new JLabel();</p><p>  JTextField txtU

54、serName = new JTextField();</p><p>  JPasswordField psUserPassword = new JPasswordField();</p><p>  JButton btnLogin = new JButton();</p><p>  JButton btnRes = new JButton();</p&

55、gt;<p>  JLabel lblErr = new JLabel();</p><p><b>  }</b></p><p>  6.2名片管理系統(tǒng)主窗體</p><p><b>  主要代碼如下:</b></p><p>  package card;</p>

56、<p>  import javax.swing.JFrame;</p><p>  import javax.swing.JLabel;</p><p>  import java.awt.*;</p><p>  import javax.swing.JScrollPane;</p><p>  import javax.swi

57、ng.JTable;</p><p>  import javax.swing.JTextField;</p><p>  import javax.swing.JButton;</p><p>  import javax.swing.table.DefaultTableModel;</p><p>  import javax.swing

58、.JPanel;</p><p>  import javax.swing.JTree;</p><p>  import javax.swing.BorderFactory;</p><p>  import javax.swing.border.Border;</p><p>  import javax.swing.JComboBox;

59、</p><p>  import javax.swing.JMenuBar;</p><p>  import javax.swing.JMenu;</p><p>  import javax.swing.JMenuItem;</p><p>  import javax.swing.tree.DefaultMutableTreeNode

60、;</p><p>  import javax.swing.tree.DefaultTreeModel;</p><p>  public class SelectFrame extends JFrame {</p><p>  public SelectFrame() {</p><p><b>  try {</b>

61、;</p><p><b>  jbInit();</b></p><p>  } catch (Exception exception) {</p><p>  exception.printStackTrace();</p><p><b>  }</b></p><p>

62、;<b>  }</b></p><p>  private void jbInit() throws Exception {</p><p>  scrpnlInfo.setSize(100,300);</p><p>  getContentPane().setLayout(borderLayout1);</p><p&

63、gt;  lblTitle.setFont(new java.awt.Font("Dialog", Font.BOLD, 21));</p><p>  lblTitle.setText("個(gè)人名片信息管理系統(tǒng)");</p><p>  tabInfo.setFont(new java.awt.Font("Dialog", Fon

64、t.PLAIN, 15));</p><p>  this.setJMenuBar(mnuBar);</p><p>  this.setState(Frame.ICONIFIED);</p><p>  this.setTitle("個(gè)人名片信息管理系統(tǒng)");</p><p>  pnlAll.setLayout(bor

65、derLayout2);</p><p>  root = new DefaultMutableTreeNode("類別");</p><p>  DefaultTreeModel dtm=new DefaultTreeModel(root);</p><p>  treType = new JTree(dtm);</p><

66、p>  treType.addTreeSelectionListener(new SelectFrameHandler(this));</p><p>  borderLayout1.setHgap(0);</p><p>  borderLayout1.setVgap(0);</p><p>  borderLayout2.setHgap(0);</p

67、><p>  borderLayout2.setVgap(0);</p><p>  lblType.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  lblType.setText("請(qǐng)選擇查詢類別:");</p><p>  

68、pnlBtn.setBorder(border2);</p><p>  pnlTitle.setBorder(border1);</p><p>  lblIn.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  lblIn.setText("包含:"

69、;);</p><p>  btnSelect.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  btnSelect.setText("查詢");</p><p>  btnSelect.setActionCommand("select&q

70、uot;);</p><p>  btnSelect.addActionListener(new SelectFrameHandler(this));</p><p>  btnEdit.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p>  btnEdit.setText(

71、"編輯");</p><p>  btnEdit.setActionCommand("edit");</p><p>  btnEdit.addActionListener(new SelectFrameHandler(this));</p><p>  btnDel.setFont(new java.awt.Font(&qu

72、ot;Dialog", Font.PLAIN, 15));</p><p>  btnDel.setText("刪除");</p><p>  btnDel.addActionListener(new SelectFrameHandler(this));</p><p>  btnDel.setActionCommand("d

73、elete");</p><p>  mnuUser.setText("用戶管理");</p><p>  mnuPwd.setText("修改密碼");</p><p>  mnuPwd.setActionCommand("pwd");</p><p>  mnuPwd.

74、addActionListener(new mnuHandler(this));</p><p>  menExit.setText("退出");</p><p>  menExit.setActionCommand("exit");</p><p>  menExit.addActionListener(new mnuHan

75、dler(this));</p><p>  mnuType.setText("類別管理");</p><p>  mnuCard.setText("名片管理");</p><p>  mnuDate.setText("生日提示");</p><p>  mnuAddtype.set

76、Text("增加類別");</p><p>  mnuAddtype.setActionCommand("addtype");</p><p>  mnuAddtype.addActionListener(new mnuHandler(this));</p><p>  mnuUpdateType.setText("

77、修改類別");</p><p>  mnuUpdateType.setActionCommand("updatetype");</p><p>  mnuUpdateType.addActionListener(new mnuHandler(this));</p><p>  mnuDelType.setText("刪除類別&

78、quot;);</p><p>  mnuDelType.setActionCommand("deltype");</p><p>  mnuDelType.addActionListener(new mnuHandler(this));</p><p>  mnuAddCard.setText("增加名片");</p&

79、gt;<p>  mnuAddCard.setActionCommand("addcard");</p><p>  mnuAddCard.addActionListener(new mnuHandler(this));</p><p>  mnuUpdateCard.setText("多項(xiàng)查詢");</p><p&

80、gt;  mnuUpdateCard.setActionCommand("select");</p><p>  mnuUpdateCard.addActionListener(new mnuHandler(this));</p><p>  mnudeleteCard.setText("刪除名片");</p><p>  m

81、nudeleteCard.setActionCommand("delete");</p><p>  mnudeleteCard.addActionListener(new SelectFrameHandler(this));</p><p>  mnueditCard.setText("修改名片");</p><p>  m

82、nueditCard.setActionCommand("edit");</p><p>  mnueditCard.addActionListener(new SelectFrameHandler(this));</p><p>  mnuWho.setText("今天誰(shuí)生日");</p><p>  mnuWho.setA

83、ctionCommand("who");</p><p>  mnuWho.addActionListener(new mnuHandler(this));</p><p>  pnlAll.add(scrpnlTree, java.awt.BorderLayout.WEST);</p><p>  pnlAll.add(scrpnlInfo,

84、java.awt.BorderLayout.CENTER);</p><p>  pnlTitle.add(lblTitle);</p><p>  this.getContentPane().add(pnlBtn, java.awt.BorderLayout.SOUTH);</p><p>  this.getContentPane().add(pnlAll, j

85、ava.awt.BorderLayout.CENTER);</p><p>  scrpnlInfo.getViewport().add(tabInfo);</p><p>  scrpnlTree.getViewport().add(treType);</p><p>  this.getContentPane().add(pnlTitle, java.awt.B

86、orderLayout.NORTH);</p><p>  mnuBar.add(mnuUser);</p><p>  mnuBar.add(mnuType);</p><p>  mnuBar.add(mnuCard);</p><p>  mnuBar.add(mnuDate);</p><p>  mnuUse

87、r.add(mnuPwd);</p><p>  mnuUser.add(menExit);</p><p>  mnuType.add(mnuAddtype);</p><p>  mnuType.add(mnuUpdateType);</p><p>  mnuType.add(mnuDelType);</p><p&

88、gt;  mnuCard.add(mnuAddCard);</p><p>  mnuCard.add(mnuUpdateCard);</p><p>  mnuCard.add(mnudeleteCard);</p><p>  mnuCard.add(mnueditCard);</p><p>  mnuDate.add(mnuWho);

89、</p><p>  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();</p><p>  this.setBounds(0, 0, screenSize.width, screenSize.height);</p><p>  this.setExtendedState(this

90、.MAXIMIZED_BOTH);</p><p>  this.setVisible(true);</p><p>  this.validate();</p><p><b>  }</b></p><p>  JLabel lblTitle = new JLabel();</p><p> 

91、 JScrollPane scrpnlInfo = new JScrollPane();</p><p>  Object arrInfo[][] = {};</p><p>  Object arrField[] = {"類別", "姓名", "性別", "生日", "工作單位", &qu

92、ot;職務(wù)", "家庭電話", "辦公電話","手機(jī)", "家庭地址", "郵編", "電子郵件"};</p><p>  DefaultTableModel tm = new DefaultTableModel(arrInfo, arrField);</p><p

93、>  JTable tabInfo = new JTable(tm);</p><p>  BorderLayout borderLayout1 = new BorderLayout();</p><p>  JPanel pnlTitle = new JPanel();</p><p>  JScrollPane scrpnlTree = new JScro

94、llPane();</p><p>  JTree treType;</p><p>  JPanel pnlAll = new JPanel();</p><p>  BorderLayout borderLayout2 = new BorderLayout();</p><p>  JPanel pnlBtn = new JPanel()

95、;</p><p>  JLabel lblType = new JLabel();</p><p>  Border border1 = BorderFactory.createEmptyBorder(20, 0, 20, 0);</p><p>  Border border2 = BorderFactory.createEmptyBorder(40, 0, 4

96、0, 0);</p><p>  JComboBox cboType = new JComboBox();</p><p>  JLabel lblIn = new JLabel();</p><p>  JTextField txtIn = new JTextField();</p><p>  JButton btnSelect = ne

97、w JButton();</p><p>  JButton btnEdit = new JButton();</p><p>  JButton btnDel = new JButton();</p><p>  JMenuBar mnuBar = new JMenuBar();</p><p>  JMenu mnuUser = new

98、JMenu();</p><p>  JMenuItem mnuPwd = new JMenuItem(); </p><p>  JButton btncardDel = new JButton(); </p><p>  JMenuItem menExit = new JMenuItem();</p><p>  JMenu mnuTy

99、pe = new JMenu();</p><p>  JMenu mnuCard = new JMenu();</p><p>  JMenu mnuDate = new JMenu();</p><p>  JMenuItem mnuAddtype = new JMenuItem();</p><p>  JMenuItem mnuUpd

100、ateType = new JMenuItem();</p><p>  JMenuItem mnuDelType = new JMenuItem();</p><p>  JMenuItem mnuAddCard = new JMenuItem();</p><p>  JMenuItem mnuUpdateCard = new JMenuItem();</

101、p><p>  JMenuItem mnudeleteCard = new JMenuItem();</p><p>  JMenuItem mnueditCard = new JMenuItem();</p><p>  JMenuItem mnuWho = new JMenuItem();</p><p>  DefaultMutableTr

102、eeNode root;</p><p><b>  }</b></p><p>  6.3監(jiān)視器mnuHandler()和SelectFrameHandler()</p><p>  mnuHandler()代碼如下:</p><p>  package card;</p><p>  impo

103、rt java.awt.event.ActionListener;</p><p>  import java.awt.event.ActionEvent;</p><p>  public class mnuHandler implements ActionListener {</p><p>  SelectFrame sf;</p><p&

104、gt;  UserManagerDialog ud;</p><p>  typeDialog td;</p><p>  cardDialog cd;</p><p>  SelectDialog sd;</p><p>  public mnuHandler(SelectFrame f) {</p><p>  t

105、his.sf = f;</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if (e.getActionCommand() == "pwd") { //修改密碼</p><p>  

106、ud = new UserManagerDialog();</p><p>  ud.setBounds(400, 200, 300, 300);</p><p>  ud.setVisible(true);</p><p><b>  }</b></p><p>  if (e.getActionCommand() =

107、= "exit") { //退出</p><p>  System.exit(0);</p><p><b>  }</b></p><p>  if (e.getActionCommand() == "addtype") { //增加類別</p><p>  td = new t

108、ypeDialog(sf, "增加類別", true);</p><p>  td.btndele.setVisible(false);</p><p>  td.btnupdate.setVisible(false);</p><p>  td.setBounds(350, 150, 400, 400);</p><p>

109、;  td.setVisible(true);</p><p>  new SelectFrameHandler(sf);</p><p><b>  }</b></p><p>  if (e.getActionCommand() == "updatetype") { //修改類別</p><p>

110、  td = new typeDialog();</p><p>  td.btndele.setVisible(false);</p><p>  td.btncreate.setVisible(false);</p><p>  td.setBounds(350, 150, 400, 400);</p><p>  td.setVisib

111、le(true);</p><p>  new SelectFrameHandler(sf);</p><p><b>  }</b></p><p>  if (e.getActionCommand() == "deltype") {</p><p>  td = new typeDialog();

112、</p><p>  td.btncreate.setVisible(false);</p><p>  td.btnupdate.setVisible(false);</p><p>  td.setBounds(350, 150, 400, 400);</p><p>  td.setVisible(true);</p>&

113、lt;p>  new SelectFrameHandler(sf);</p><p><b>  }</b></p><p>  if (e.getActionCommand() == "addcard") {</p><p>  cd = new cardDialog();</p><p> 

114、 cd.btnupdate.setVisible(false);</p><p>  cd.btnselect.setVisible(false);</p><p>  cd.setBounds(350, 150, 550, 550);</p><p>  cd.setVisible(true);</p><p>  new SelectFr

115、ameHandler(sf);</p><p><b>  }</b></p><p>  if (e.getActionCommand() == "select") {</p><p>  sd = new SelectDialog(sf, "多項(xiàng)查詢", true);</p><p

116、>  sd.setBounds(350, 150, 550, 550);</p><p>  sd.setVisible(true);</p><p>  SelectFrameHandler sfh = new SelectFrameHandler(sf);</p><p>  sfh.updateinfo(Static.getSQL());</p&g

117、t;<p><b>  }</b></p><p>  if (e.getActionCommand() == "who") {</p><p>  Static.getTodayBirthdayDialog();</p><p><b>  }</b></p><p&

118、gt;<b>  }</b></p><p><b>  }</b></p><p>  SelectFrameHandler()代碼如下:</p><p>  package card;</p><p>  import java.awt.event.ActionListener;</p&g

119、t;<p>  import java.awt.event.ActionEvent;</p><p>  import java.util.ArrayList;</p><p>  import javax.swing.table.DefaultTableModel;</p><p>  import javax.swing.JOptionPane;&

120、lt;/p><p>  import javax.swing.event.TreeSelectionListener;</p><p>  import javax.swing.event.TreeSelectionEvent;</p><p>  import javax.swing.tree.DefaultMutableTreeNode;</p>&l

121、t;p>  import javax.swing.tree.DefaultTreeModel;</p><p>  public class SelectFrameHandler implements ActionListener,</p><p>  TreeSelectionListener {</p><p>  SelectFrame sf;</

122、p><p>  DatabaseOperate dbo = new DatabaseOperate();</p><p>  ArrayList al;</p><p>  cardDialog cd;</p><p>  updatecardDialog ud;</p><p>  public SelectFrameH

123、andler(SelectFrame f) {</p><p>  this.sf = f;</p><p>  updateinfo("");</p><p>  updateType();</p><p><b>  }</b></p><p>  public void

124、actionPerformed(ActionEvent e) {</p><p>  if (e.getActionCommand() == "select") {</p><p>  choicSql();</p><p><b>  }</b></p><p>  if (e.getActionC

125、ommand() == "delete") {</p><p>  int intRow = sf.tabInfo.getSelectedRow();</p><p>  if (intRow == -1) {</p><p>  JOptionPane.showMessageDialog(sf, "請(qǐng)先選擇要?jiǎng)h除的名片!",

126、 "錯(cuò)誤",</p><p>  JOptionPane.ERROR_MESSAGE);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  // String abc=sf.tm.getValueAt(int

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論