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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1.開發(fā)環(huán)境和相關(guān)技術(shù)介紹</p><p><b>  1.1開發(fā)環(huán)境3</b></p><p>  1.2相關(guān)技術(shù)介紹3</p><p><b>  2.需求分析</b></p>&l

2、t;p>  2.1系統(tǒng)需求和功能3</p><p><b>  2.2數(shù)據(jù)字典4</b></p><p>  2.2.1數(shù)據(jù)結(jié)構(gòu)4</p><p>  2.2.2數(shù)據(jù)項(xiàng)4</p><p>  2.2.3數(shù)據(jù)流5</p><p>  2.3安全性要求5</p><

3、;p>  2.4一致性要求5</p><p>  2.5完整性要求5</p><p><b>  3面向?qū)ο蠓治?lt;/b></p><p>  3.1面向?qū)ο蠓治?</p><p>  3.2系統(tǒng)的結(jié)構(gòu)圖 8</p><p><b>  4.數(shù)據(jù)庫實(shí)施</b>&

4、lt;/p><p>  4.1數(shù)據(jù)庫創(chuàng)建8</p><p>  4.1.1各數(shù)據(jù)表說明8</p><p>  4.1.2數(shù)據(jù)庫創(chuàng)建9</p><p>  4.2數(shù)據(jù)庫備份和恢復(fù)方案10</p><p>  4.2.1應(yīng)用輔助工具進(jìn)行備份和恢復(fù)10</p><p>  4.2.2分離數(shù)據(jù)庫法

5、10</p><p>  4.3用戶界面設(shè)計(jì)和應(yīng)用程序編碼10</p><p>  4.3.1用戶界面設(shè)計(jì)10</p><p>  4.3.2類文件功能描述11</p><p>  4.3.3主要代碼分析11</p><p>  5.系統(tǒng)測試方案和測試報(bào)告</p><p>  5.1

6、測試方案16</p><p>  5.2測試過程16</p><p>  5.2.1登陸測試16</p><p>  5.2.2目錄管理功能測試17</p><p>  5.2.3訂戶管理功能測試20</p><p>  5.2.4訂單管理功能測試21</p><p>  5.2.5

7、統(tǒng)計(jì)查詢測試23</p><p><b>  6.完成情況和總結(jié)</b></p><p>  6.1完成情況24</p><p><b>  6.2總結(jié)24</b></p><p><b>  7.參考文獻(xiàn)</b></p><p>  1.開發(fā)環(huán)境

8、和相關(guān)技術(shù)介紹</p><p><b>  1.1開發(fā)環(huán)境</b></p><p>  系統(tǒng)結(jié)構(gòu):C/S結(jié)構(gòu)</p><p>  數(shù)據(jù)庫系統(tǒng):Microsoft SQL Server 2000 sp3</p><p><b>  宿主語言:JAVA</b></p><p> 

9、 數(shù)據(jù)庫連接方式:JDBC連接方式</p><p>  開發(fā)工具:Eclipse 3.2</p><p><b>  1.2相關(guān)技術(shù)介紹</b></p><p>  Microsoft SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)是微軟公司研制開發(fā)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。該系統(tǒng)支持并擴(kuò)展了SQL語言標(biāo)準(zhǔn),可以運(yùn)用標(biāo)準(zhǔn)SQL語句對數(shù)據(jù)進(jìn)行操作,也

10、可以使用功能強(qiáng)大的GUI工具進(jìn)行靈活的數(shù)據(jù)管理。同時(shí),系統(tǒng)還提供功能完善的API,可以在應(yīng)用程序中調(diào)用這些API來實(shí)現(xiàn)與數(shù)據(jù)庫系統(tǒng)的連接以及相關(guān)數(shù)據(jù)的操作。sp3是該系統(tǒng)的一個(gè)版本號,只有sp3以上的SQL 2000系統(tǒng)才能夠支持純JDBC連接方式。</p><p>  Eclipse:功能強(qiáng)大的應(yīng)用程序開發(fā)工具,主要支持基于Java語言的各種開發(fā)項(xiàng)目。靈活的Plun-in功能,可以根據(jù)具體需要安裝各種插件。&l

11、t;/p><p>  JDBC連接方式:Java與數(shù)據(jù)庫系統(tǒng)的一種連接方式,Java程序使用JDBC API與數(shù)據(jù)庫進(jìn)行通信,并用它操作數(shù)據(jù)庫中的數(shù)據(jù)。JDBC API使Java程序與具體數(shù)據(jù)庫系統(tǒng)獨(dú)立開來,保證了Java程序高度的可移植性。</p><p><b>  2.需求分析</b></p><p>  2.1系統(tǒng)需求和功能</p&g

12、t;<p>  設(shè)計(jì)一個(gè)報(bào)刊訂閱應(yīng)用系統(tǒng),使系統(tǒng)滿足以下功能和需求:</p><p><b>  1)</b></p><p>  a一個(gè)訂戶可訂多種報(bào)刊;一種報(bào)刊可被多個(gè)用戶訂閱;訂單只能訂閱現(xiàn)有報(bào)刊目錄內(nèi)容;</p><p>  b投遞時(shí),必須根據(jù)訂單的情況進(jìn)行投遞,不得超出訂單的訂閱品種、數(shù)量;</p><

13、;p>  2)、系統(tǒng)功能包括:</p><p>  a訂戶管理:訂戶添加、修改、刪除;</p><p>  b 目錄管理:目錄添加、修改、刪除;</p><p>  c訂單管理:完成訂戶訂閱數(shù)據(jù)的管理(包括添加、修改、刪除);</p><p>  d 訂單查詢:按訂戶或者訂單號查詢訂單詳細(xì)情況;</p>

14、<p>  e統(tǒng)計(jì)查詢:按報(bào)刊目錄統(tǒng)計(jì)各類報(bào)刊的訂閱數(shù)量及金額;</p><p>  f表單生成:根據(jù)統(tǒng)計(jì)查詢結(jié)果導(dǎo)出統(tǒng)計(jì)信息到文件(.xl</p><p><b>  2.2數(shù)據(jù)字典</b></p><p><b>  2.2.1數(shù)據(jù)結(jié)構(gòu)</b></p><p>  管理員用戶=管理員

15、帳戶+管理員密碼</p><p>  訂戶=訂戶編號+訂戶名+聯(lián)系電話+聯(lián)系地址</p><p>  目錄=目錄編號+目錄名+單價(jià)+批注信息</p><p>  訂單=訂單號+訂戶編號+下訂日期</p><p>  訂單細(xì)節(jié)=訂單號+目錄編號+訂閱數(shù)量+訂閱期數(shù)+單價(jià)+總價(jià)</p><p> ?。ㄗⅲ簽楸WC訂單確定后價(jià)

16、格不隨目錄單價(jià)變動,訂單細(xì)節(jié)中應(yīng)該有獨(dú)立的單價(jià)來記錄下訂時(shí)目錄的單價(jià))</p><p><b>  2.2.2數(shù)據(jù)項(xiàng)</b></p><p>  表2.1 數(shù)據(jù)項(xiàng)表</p><p><b>  2.2.3數(shù)據(jù)流</b></p><p>  表2.2 數(shù)據(jù)流表</p><p&

17、gt;<b>  2.3安全性要求</b></p><p>  訪問數(shù)據(jù)庫時(shí)需要輸入登陸帳號和密碼。在數(shù)據(jù)庫內(nèi)設(shè)有管理員表,登陸系統(tǒng)時(shí)會要求輸入管理員帳號和密碼。登陸模塊根據(jù)輸入帳號和密碼查管理員表,查到匹配記錄則允許其登陸系統(tǒng)。管理員帳號和密碼可以在系統(tǒng)中添加和修改。</p><p><b>  2.4一致性要求</b></p>

18、<p>  在管理系統(tǒng)相關(guān)的表之間,有較強(qiáng)的關(guān)聯(lián)性。為了實(shí)現(xiàn)一致性的需求,各個(gè)表之間均建立起了相應(yīng)的一致性約束。</p><p><b>  2.5完整性要求</b></p><p>  根據(jù)報(bào)刊訂閱管理系統(tǒng)的要求,為保持?jǐn)?shù)據(jù)的完整性,采用了數(shù)據(jù)庫的事務(wù)機(jī)制,防止出現(xiàn)操作故障引起的數(shù)據(jù)不一致。</p><p><b>  3

19、面向?qū)ο蠓治?lt;/b></p><p>  3.1 面向?qū)ο蠓治?lt;/p><p>  設(shè)計(jì)報(bào)刊訂閱系統(tǒng),主要的目的是使得用戶在訂閱是能跟回家的方便快捷同時(shí)也使得報(bào)刊提供商能更加有效的管理企業(yè)的銷售狀況。同時(shí)面向?qū)ο蠓治鍪沟萌藛T關(guān)注理解系統(tǒng)需要建立的內(nèi)容,從而產(chǎn)生一個(gè)準(zhǔn)確的完整的一致的和可驗(yàn)證的系統(tǒng)模型。</p><p>  管理員表(Administrat

20、or):用于存放管理員的數(shù)據(jù)記錄,包括數(shù)據(jù)項(xiàng):管理員名、密碼。</p><p>  部門表(Department):用來存放部門的相關(guān)記錄,包括數(shù)據(jù)項(xiàng):部門號,部門名。</p><p>  用戶表(Consumer):用于存放注冊用戶的記錄,包括數(shù)據(jù)項(xiàng):用戶賬號、密碼、真實(shí)姓名、身份證號、聯(lián)系電話,聯(lián)系地址,部門號(和部門表有關(guān))等。</p><p>  報(bào)刊信息表

21、(magazine):用于存放報(bào)刊記錄,包括數(shù)據(jù)項(xiàng):報(bào)刊代號、報(bào)刊名稱、出版報(bào)社、出版周期、季度報(bào)價(jià)、內(nèi)容介紹、分類編號(和報(bào)刊類別表有關(guān))等。</p><p>  訂單表(subscribe):用于存放用戶下達(dá)的訂閱報(bào)刊的基本信息,包括數(shù)據(jù)項(xiàng):訂單編號用戶編號(用戶表的主碼)、報(bào)刊代號(報(bào)刊信息表的主碼)、訂閱份數(shù)、訂閱月數(shù)等。</p><p>  用例圖:由上面的分析需能夠確定系統(tǒng)用例

22、圖:</p><p>  類圖:在根據(jù)已定義的對象類及其聯(lián)系,以及對象類的多重性、角色、導(dǎo)航等性質(zhì),可以畫出對象類圖 ,使用對象圖的目的是分析系統(tǒng)的瞬間狀態(tài),以便進(jìn)一步了解系統(tǒng)的結(jié)構(gòu)和行為。分析對象模型:</p><p>  也同時(shí)可以確定所有實(shí)體之間的E-R圖:</p><p>  圖3.1 報(bào)刊訂閱管理系統(tǒng)E-R圖</p><p>&

23、lt;b>  3.2系統(tǒng)結(jié)構(gòu)圖</b></p><p>  圖4.1 系統(tǒng)結(jié)構(gòu)圖</p><p><b>  4.數(shù)據(jù)庫實(shí)施</b></p><p><b>  4.1數(shù)據(jù)庫創(chuàng)建</b></p><p>  4.1.1各數(shù)據(jù)表說明</p><p>  表

24、4.1 數(shù)據(jù)表描述表</p><p>  4.1.2數(shù)據(jù)庫創(chuàng)建</p><p>  在Microsoft SQL Server 2000的企業(yè)管理器中完成數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)建</p><p>  CREATE TABLE [dbo].[Customer] (</p><p>  [Cid] [varchar] (10) COLLATE C

25、hinese_PRC_CI_AS NOT NULL ,</p><p>  [Cname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,</p><p>  [Phone] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,</p><p>  [Address] [var

26、char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  CREATE TABLE [dbo].[Login] (</p><p>  [UName] [varchar] (

27、20) COLLATE Chinese_PRC_CI_AS NOT NULL ,</p><p>  [UPassword] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p>&l

28、t;p>  CREATE TABLE [dbo].[Diretory] (</p><p>  [Did] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,</p><p>  [Dname] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,</p><p> 

29、 [UnitPrice] [float] NOT NULL ,</p><p>  [Ifo] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  CREATE TAB

30、LE [dbo].[Order] (</p><p>  [Ono] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,</p><p>  [Cid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,</p><p>  [Odate] [datetime]

31、NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  CREATE TABLE [dbo].[OrderDetail] (</p><p>  [Ono] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NUL

32、L ,</p><p>  [Did] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,</p><p>  [Quantity] [int] NOT NULL ,</p><p>  [QiShu] [int] NOT NULL ,</p><p>  [UnitPrice] [floa

33、t] NOT NULL ,</p><p>  [Total] [float] NULL </p><p>  ) ON [PRIMARY]</p><p><b>  GO</b></p><p>  4.2數(shù)據(jù)庫備份和恢復(fù)方案</p><p>  4.2.1應(yīng)用輔助工具進(jìn)行備份和恢復(fù)</

34、p><p>  應(yīng)用數(shù)據(jù)庫輔助工具(如sqlbackuptools…)進(jìn)行備份,選擇所需要備份的數(shù)據(jù)庫和目標(biāo)地址即可進(jìn)行數(shù)據(jù)備份,恢復(fù)數(shù)據(jù)庫只需要指定備份文件和需要恢復(fù)的數(shù)據(jù)庫即可進(jìn)行數(shù)據(jù)恢復(fù)。</p><p>  4.2.2分離數(shù)據(jù)庫法</p><p>  在企業(yè)管理器中右擊需要備份的數(shù)據(jù)庫,選擇“所有任務(wù)”,“分離數(shù)據(jù)庫”,執(zhí)行分析操作,拷貝數(shù)據(jù)庫MDF文件和LDF

35、文件。</p><p>  恢復(fù)方案:在企業(yè)管理器的控制臺樹中選擇“數(shù)據(jù)庫”節(jié)點(diǎn),右擊,“所有任務(wù)”,“附加數(shù)據(jù)庫”,找到待恢復(fù)數(shù)據(jù)庫的MDF文件,確定。</p><p>  4.3用戶界面設(shè)計(jì)和應(yīng)用程序編碼</p><p>  4.3.1用戶界面設(shè)計(jì)</p><p>  本系統(tǒng)的用戶界面用Java Swing編寫,主要由1個(gè)主界面Newsp

36、aper.java和10個(gè)輔助對話框組成。主界面集合系統(tǒng)主要基本功能按鍵,輔助對話框負(fù)責(zé)采集用戶輸入信息和做基本的信息處理。</p><p><b>  用戶界面</b></p><p>  4.3.2類文件功能描述</p><p>  表4 類文件描述表</p><p>  4.3.3主要代碼分析</p>

37、;<p>  //-----------------------------------------------------------------------------</p><p>  //所屬類:Utilities</p><p>  //功能:取得應(yīng)用程序與數(shù)據(jù)庫系統(tǒng)的連接</p><p>  public static void getC

38、onnection() throws Exception {</p><p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")</p><p>  .newInstance();//加載驅(qū)動程序</p><p>  String url = "jdbc:mic

39、rosoft:sqlserver://localhost:1433;DatabaseName=Newspaper";</p><p>  String user = "sa";</p><p>  String password = "";</p><p>  conn = DriverManager.getConn

40、ection(url, user, password);//取得連接</p><p>  stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,</p><p>  ResultSet.CONCUR_UPDATABLE);//創(chuàng)建語句</p><p>  conn2 = DriverManager.g

41、etConnection(url, user, password);</p><p>  stmt2 = conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,</p><p>  ResultSet.CONCUR_UPDATABLE);</p><p><b>  }</b></p&

42、gt;<p>  //-----------------------------------------------------------------------------</p><p>  //所屬類:Utilities</p><p>  //功能:完成查詢結(jié)果的表格顯示</p><p>  public static void displa

43、yResultSet(JTable table, ResultSet rs)</p><p>  throws SQLException {</p><p>  rs.beforeFirst();// 指針移到結(jié)果集第一條記錄前面</p><p>  boolean moreRecords = rs.next();</p><p>  if

44、(!moreRecords) {// 如果沒有記錄,則提示一條消息</p><p>  JOptionPane.showMessageDialog(table, "無相關(guān)記錄", "Check your input!",</p><p>  JOptionPane.ERROR_MESSAGE);</p><p><b&g

45、t;  return;</b></p><p><b>  }</b></p><p>  Vector columnHeads = new Vector();// 用于存儲表格字段</p><p>  Vector rows = new Vector();// 用于存儲記錄行</p><p>  try {

46、// 獲取字段的名稱</p><p>  ResultSetMetaData rsmd = rs.getMetaData();</p><p>  for (int i = 1; i <= rsmd.getColumnCount(); ++i)</p><p>  columnHeads.addElement(rsmd.getColumnName(i));&l

47、t;/p><p>  do {// 獲取記錄集</p><p>  rows.addElement(getNextRow(rs, rsmd));</p><p>  } while (rs.next());</p><p>  // 建立相應(yīng)的TableModel,并將TableModel應(yīng)用到table中顯示出來</p><

48、p>  DefaultTableModel model = new DefaultTableModel(rows, columnHeads);</p><p>  table.setModel(model);</p><p><b>  return;</b></p><p>  } catch (SQLException sqlex)

49、{</p><p>  sqlex.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //-------------------------------------------------------------

50、----------------//所屬類:Utilities</p><p>  //功能:被displayResultSet(JTable table, ResultSet rs)調(diào)用, 返回一個(gè)記錄行</p><p>  private static Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)</p>

51、<p>  throws SQLException {</p><p>  Vector<String> currentRow = new Vector<String>();</p><p>  for (int i = 1; i <= rsmd.getColumnCount(); ++i)</p><p>  current

52、Row.addElement(rs.getString(i));</p><p>  return currentRow; // 返回一條記錄</p><p><b>  }</b></p><p>  //---------------------------------------------------------------------

53、--------</p><p>  //所屬類:Utilities</p><p>  //功能:創(chuàng)建空白EXCEL文件,并將統(tǒng)計(jì)查詢結(jié)果導(dǎo)出到該EXCEL文件</p><p>  //說明:使用到org.apache的POI包,表示感謝</p><p>  public static boolean outPut(ResultSet rs

54、, File file) {</p><p>  if (rs == null)</p><p>  return false;</p><p><b>  try {</b></p><p>  HSSFWorkbook wb = new HSSFWorkbook();</p><p>  HS

55、SFSheet sheet = wb.createSheet("first sheet");</p><p>  sheet.setDefaultColumnWidth((short) 20);</p><p>  ResultSetMetaData metadata = rs.getMetaData();</p><p>  int colum

56、nCount = metadata.getColumnCount();// 獲取屬性列數(shù)</p><p>  HSSFRow row = sheet.createRow((short) 0);</p><p>  for (int i = 1; i <= columnCount; i++) {// 填寫表格列名</p><p>  row.createCell

57、((short) (i - 1)).setCellValue(</p><p>  metadata.getColumnName(i));</p><p><b>  }</b></p><p><b>  // 按行填寫記錄</b></p><p>  rs.beforeFirst();</

58、p><p>  short counter = 1;</p><p>  while (rs.next()) {</p><p>  row = sheet.createRow(counter++);</p><p>  for (int i = 1; i <= columnCount; i++) {</p><p>

59、;  row.createCell((short) (i - 1)).setCellValue(</p><p>  String.valueOf(rs.getObject(i)));</p><p><b>  }</b></p><p><b>  }</b></p><p>  FileOut

60、putStream fileOut = new FileOutputStream(file);</p><p>  wb.write(fileOut);// 結(jié)果輸出到文件</p><p>  fileOut.close();// 關(guān)閉輸出流</p><p>  } catch (Exception exc) {</p><p>  exc.

61、printStackTrace();</p><p><b>  }</b></p><p>  return true;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //-------------

62、----------------------------------------------------------------</p><p>  //所屬類:Newspaper</p><p><b>  //功能:統(tǒng)計(jì)查詢</b></p><p>  final JMenuItem menuItem_9 = new JMenuItem()

63、;</p><p>  menuItem_9.addActionListener(new ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String sql = "SELECT Diretory.Did AS 刊物編號,Dname AS

64、 刊物名稱,"</p><p>  + "SUM(Quantity*QiShu) AS 總訂閱數(shù),SUM(Total) AS 總金額"</p><p>  + " FROM Diretory LEFT JOIN OrderDetail ON (OrderDetail.Did=Diretory.Did) "</p><p&

65、gt;  + " GROUP BY Diretory.Did,Diretory.Dname "</p><p>  + " ORDER BY SUM(Total) DESC";</p><p><b>  try {</b></p><p>  Utilities.rs = Utilities.stmt.

66、executeQuery(sql);// 執(zhí)行統(tǒng)計(jì)查詢</p><p>  Utilities.displayResultSet(table, Utilities.rs);//顯示查詢結(jié)果</p><p>  } catch (SQLException exc) {</p><p>  exc.printStackTrace();</p><p&

67、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  });</b></p><p>  //-----------------------------------------------------------------------------//所屬類

68、:UserCreateDlg</p><p>  //功能:創(chuàng)建新用戶</p><p>  final JButton button = new JButton();</p><p>  button.addActionListener(new ActionListener() {</p><p>  public void actionPe

69、rformed(ActionEvent e) {</p><p>  if (textField_1.getText().trim().length() != 0</p><p>  && textField_2.getText().trim().length() != 0</p><p>  && textField_3.getTe

70、xt().trim().length() != 0) {</p><p>  String sql = "INSERT INTO Customer(Cid,Cname,Phone,Address) "</p><p>  + "VALUES('"</p><p>  + textField.getText().trim

71、()</p><p><b>  + "','"</b></p><p>  + textField_1.getText().trim()</p><p><b>  + "','"</b></p><p>  + textFi

72、eld_2.getText().trim()</p><p><b>  + "','"</b></p><p>  + textField_3.getText().trim() + "')";</p><p><b>  try {</b></p>

73、;<p>  Utilities.stmt.executeUpdate(sql);// 執(zhí)行數(shù)據(jù)行插入</p><p>  JOptionPane.showMessageDialog(dialog, "用戶:"</p><p>  + textField_1.getText() + "添加成功\nID:"</p><

74、p>  + textField.getText(), "Success !",</p><p>  JOptionPane.INFORMATION_MESSAGE);</p><p>  dispose();</p><p>  } catch (SQLException exc) {</p><p>  exc.p

75、rintStackTrace();</p><p><b>  }</b></p><p><b>  } else {</b></p><p>  JOptionPane.showMessageDialog(dialog, "信息不全,無法添加",</p><p>  &quo

76、t;Check your input !", JOptionPane.ERROR_MESSAGE);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  });</b></p><p>  //---------

77、--------------------------------------------------------------------//所屬類:UserModifyDlg</p><p>  //功能:用戶信息更新修改</p><p>  button_2 = new JButton();</p><p>  button_2.setEnabled(false)

78、;</p><p>  button_2.addActionListener(new ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if (textField_1.getText().trim().length() != 0</p>

79、<p>  && textField_2.getText().trim().length() != 0</p><p>  && textField_3.getText().trim().length() != 0) {</p><p><b>  try {</b></p><p>  Utilit

80、ies.rs.updateString("Cname", textField_1</p><p>  .getText().trim());</p><p>  Utilities.rs.updateString("Phone", textField_2</p><p>  .getText().trim());</p&

81、gt;<p>  Utilities.rs.updateString("Address", textField_3</p><p>  .getText().trim());</p><p>  Utilities.rs.updateRow();// 更新數(shù)據(jù)行</p><p>  JOptionPane.showMessageDi

82、alog(dialog, "更新成功!",</p><p>  "Success !", JOptionPane.INFORMATION_MESSAGE);</p><p>  dispose();</p><p>  } catch (SQLException exc) {</p><p><b

83、>  }</b></p><p><b>  } else {</b></p><p>  JOptionPane.showMessageDialog(dialog, "信息不全,無法修改",</p><p>  "Check your input !", JOptionPane.ERR

84、OR_MESSAGE);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  });</b></p><p>  //----------------------------------------------------

85、-------------------------//所屬類:BookingDlg</p><p>  //功能:讀取訂單數(shù)據(jù),向系統(tǒng)添加訂單</p><p>  button_1 = new JButton();</p><p>  button_1.addActionListener(new ActionListener() {</p><p

86、>  public void actionPerformed(ActionEvent e) {</p><p><b>  try {</b></p><p>  String sql = "SELECT UnitPrice FROM Diretory WHERE Did='"</p><p>  + comb

87、oBox.getSelectedItem() + "'";</p><p>  Utilities.rs = Utilities.stmt.executeQuery(sql);</p><p>  // 查詢當(dāng)前選擇目錄刊物的單價(jià)</p><p>  if (Utilities.rs.next()) {</p><p&

88、gt;  unitPrice = Utilities.rs.getFloat("UnitPrice");</p><p>  quantity = Integer.parseInt(textField_1.getText());</p><p>  qishu = Integer.parseInt(textField_2.getText());</p>&

89、lt;p>  total = unitPrice * quantity * qishu;</p><p>  sum += total;</p><p>  sql = "INSERT INTO OrderDetail (ONo, Did, Quantity, QiShu, UnitPrice, total)"</p><p>  + &q

90、uot;VALUES('"</p><p>  + label_2.getText()</p><p><b>  + "','"</b></p><p>  + comboBox.getSelectedItem()</p><p><b>  + &quo

91、t;',"</b></p><p>  + quantity</p><p><b>  + ","</b></p><p><b>  + qishu</b></p><p><b>  + ","</b>

92、</p><p>  + unitPrice</p><p><b>  + ","</b></p><p><b>  + total</b></p><p><b>  + ")";</b></p><p> 

93、 sqls.add(sql);// 寄存訂單細(xì)節(jié)插入語句</p><p>  comboBox.removeItem(comboBox.getSelectedItem());</p><p>  // 將已選擇目錄從下拉選擇框中移除(一個(gè)訂單不能有兩個(gè)目錄相同的訂單項(xiàng))</p><p><b>  }</b></p><p&

94、gt;  } catch (SQLException exc) {</p><p>  exc.printStackTrace();</p><p>  } catch (NumberFormatException exc) {</p><p>  JOptionPane.showMessageDialog(dialog, "錯(cuò)誤數(shù)字輸入",&l

95、t;/p><p>  "Check again !", JOptionPane.ERROR_MESSAGE);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  });</b></p>&l

96、t;p>  button_1.setEnabled(false);</p><p>  button_1.setText("添加訂單項(xiàng)");</p><p>  panel_1.add(button_1);</p><p>  button_2 = new JButton();</p><p>  button_2.

97、addActionListener(new ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if (sqls.size() > 1) {</p><p>  // 容器第一個(gè)空間放插入Order的sql語句,其它空間放插入OrderDetai

98、l的sql語句</p><p>  // sqls.size()==1表示只有一張空訂單,不予插入</p><p>  int ans = JOptionPane.showConfirmDialog(dialog, "一共需要支付訂金:"</p><p>  + sum + "元\nContinue?", "We n

99、eed your money",</p><p>  JOptionPane.YES_NO_CANCEL_OPTION);</p><p>  if (ans == JOptionPane.YES_OPTION) {</p><p><b>  try {</b></p><p>  for (int i =

100、0; i < sqls.size(); i++) {</p><p>  // 順序取出sql語句,完成訂單添加插入</p><p>  Utilities.stmt.executeUpdate(sqls.get(i));</p><p>  // 執(zhí)行插入更新語句</p><p><b>  }</b></

101、p><p>  dispose();</p><p>  JOptionPane</p><p>  .showMessageDialog(dialog, "訂單添加成功!",</p><p>  "Success!",</p><p>  JOptionPane.INFORMATI

102、ON_MESSAGE);</p><p>  } catch (SQLException exc) {</p><p>  exc.printStackTrace();</p><p><b>  }</b></p><p>  } else if (ans == JOptionPane.NO_OPTION) {<

103、/p><p>  dispose();</p><p><b>  }</b></p><p><b>  } else {</b></p><p>  JOptionPane.showMessageDialog(dialog,</p><p>  "訂單為空,不能提交

104、,請選擇需要訂閱的期刊", "Check again !",</p><p>  JOptionPane.ERROR_MESSAGE);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  });<

105、/b></p><p>  button_2.setEnabled(false);</p><p>  button_2.setText("提交訂單");</p><p>  panel_1.add(button_2);</p><p>  5.系統(tǒng)測試方案和測試報(bào)告</p><p><

106、b>  5.1測試方案</b></p><p>  由于系統(tǒng)規(guī)模較小,所以沒有安排單獨(dú)的白盒測試,而是相應(yīng)地將這部分測試歸并到系統(tǒng)編碼過程中。整個(gè)測試過程基于自頂向下測試的組裝模塊的方法,先對主模塊進(jìn)行基本測試,然后在按深度優(yōu)先策略逐一將子模塊組裝到主模塊上進(jìn)行測試,最后再對系統(tǒng)進(jìn)行全面的整體測試。</p><p><b>  5.2測試過程</b>

107、</p><p> ?。ò缀袦y試過程略(參考代碼),以下是系統(tǒng)黑盒測試過程:)</p><p><b>  5.2.1登陸測試</b></p><p>  雙擊可執(zhí)行文件Newspaper.jar打開應(yīng)用系統(tǒng),可見登陸界面:</p><p><b>  系統(tǒng)界面</b></p><

108、;p>  輸入錯(cuò)誤用戶名和密碼,用戶無法登陸:</p><p><b>  登陸錯(cuò)誤提示信息</b></p><p>  輸入正確用戶名和密碼,用戶正常登陸。</p><p> ?。ㄏ到y(tǒng)自帶用戶名和密碼有(admin,admin),(santino,santino),(ddt,ddt)…)</p><p>  5.

109、2.2目錄管理功能測試</p><p>  添加目錄:選擇“添加目錄”,填寫目錄信息,“確定”</p><p><b>  添加目錄</b></p><p><b>  結(jié)果</b></p><p>  修改目錄:“目錄管理”,“修改目錄”,輸入待修改目錄ID,鎖定目錄,修改目錄,“更新”。<

110、/p><p><b>  修改目錄</b></p><p><b>  結(jié)果</b></p><p>  刪除目錄:“目錄管理”,“修改目錄”,輸入待修改目錄ID,鎖定目錄,“刪除”</p><p><b>  刪除目錄</b></p><p><b&

111、gt;  結(jié)果</b></p><p>  5.2.3訂戶管理功能測試</p><p><b>  添加訂戶</b></p><p><b>  添加訂戶</b></p><p><b>  結(jié)果</b></p><p><b> 

112、 修改訂戶:</b></p><p>  刪除訂戶:(參考“目錄管理”,操作基本類似,略)</p><p>  5.2.4訂單管理功能測試</p><p>  添加訂單:點(diǎn)擊“添加訂單”按鈕,填入有效用戶ID,檢測用戶,輸入目錄ID和訂閱數(shù)量、期數(shù),點(diǎn)擊“添加訂單項(xiàng)”為訂單添加訂單項(xiàng),點(diǎn)擊“提交訂單”可以向系統(tǒng)提交訂單。</p><p

113、><b>  添加訂單</b></p><p>  訂單管理:“訂單管理”,“訂單查詢”,輸入用戶ID</p><p><b>  查詢訂單</b></p><p><b>  查詢結(jié)果</b></p><p>  選中訂單項(xiàng),“訂單管理”,“打開訂單”</p>

114、;<p><b>  訂單詳細(xì)內(nèi)容</b></p><p>  選擇具體訂單項(xiàng)可進(jìn)行相應(yīng)修改操作:</p><p><b>  訂單項(xiàng)修改</b></p><p>  5.2.5統(tǒng)計(jì)查詢測試</p><p>  統(tǒng)計(jì)查詢:“數(shù)據(jù)統(tǒng)計(jì)”</p><p><b

115、>  統(tǒng)計(jì)查詢</b></p><p><b>  導(dǎo)出查詢數(shù)據(jù)</b></p><p>  選擇“數(shù)據(jù)統(tǒng)計(jì)”“結(jié)果導(dǎo)出”選擇路徑“保存”</p><p>  圖26 結(jié)果導(dǎo)出</p><p><b>  結(jié)果演示</b></p><p><b&g

116、t;  6.完成情況和總結(jié)</b></p><p><b>  6.1完成情況</b></p><p>  本系統(tǒng)完成了任務(wù)書中要求的所有內(nèi)容,包括:a訂戶管理:訂戶添加、修改、刪除;b 目錄管理:目錄添加、修改、刪除;c訂單管理:完成訂戶訂閱數(shù)據(jù)的管理(包括添加、修改、刪除);d 訂單查詢:按訂戶或者訂單號查詢訂單詳細(xì)情況;e統(tǒng)計(jì)查詢

117、:按報(bào)刊目錄統(tǒng)計(jì)各類報(bào)刊的訂閱數(shù)量及金額;另外,系統(tǒng)還具有表單生成功能,能將統(tǒng)計(jì)查詢結(jié)果導(dǎo)出到Excel文件中實(shí)現(xiàn)持久保存。</p><p><b>  6.2總結(jié)</b></p><p>  通過完成本次課程設(shè)計(jì),我對數(shù)據(jù)庫這門課程有了更加深刻的理解。在對系統(tǒng)數(shù)據(jù)庫的分析、設(shè)計(jì)中,碰到很多概念上很模糊的問題,通過查閱相關(guān)資料,問題得到了解決,設(shè)計(jì)工作也順利進(jìn)行。另外

118、,通過運(yùn)用JDBC數(shù)據(jù)庫連接技術(shù),我對java數(shù)據(jù)庫編程技術(shù)也有了一定的了解和認(rèn)識,希望通過以后的學(xué)習(xí)繼續(xù)加深這方面知識的掌握。同時(shí)對基本的軟件設(shè)計(jì)流程有了一定的了解。</p><p><b>  7.參考文獻(xiàn)</b></p><p>  [1] 馬皓.JAVA語言程序設(shè)計(jì).北京:清華大學(xué)出版社,2006 </p><p>  [2] 孫

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論