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

下載本文檔

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

文檔簡介

1、<p>  基于C/S客戶端程序設(shè)計課程設(shè)計(論文)</p><p>  題目: 圖書館管理系統(tǒng) </p><p>  院(系): 軟件學(xué)院 </p><p>  專業(yè)班級: 計算機(jī)信息管理111班 </p><p>  學(xué) 號:

2、 </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: </p><p>  教師職稱: </p><p>  起止時間: 2013.06.17至2013.06.30 </p><p>  程

3、序設(shè)計專題(報告)任務(wù)及評語</p><p>  院(系):軟件學(xué)院 教研室:軟件教研窒</p><p><b>  目 錄</b></p><p>  第1章 程序設(shè)計目的與要求1</p><p>  1.1 程序設(shè)計目的1</p&

4、gt;<p>  1.2 程序設(shè)計的實驗環(huán)境1</p><p>  1.3 程序設(shè)計的預(yù)備知識1</p><p>  1.4 程序設(shè)計要求1</p><p>  第2章 程序設(shè)計內(nèi)容2</p><p>  2.1程序設(shè)計題目2</p><p>  2.2程序整體設(shè)計說明2</p>

5、<p>  2.3程序部分源代碼及注釋16</p><p>  第3章 程序設(shè)計總結(jié)22</p><p><b>  參考文獻(xiàn)23</b></p><p><b>  程序設(shè)計目的與要求</b></p><p>  1.1 程序設(shè)計目的</p><p>  

6、《基于C/S客戶端程序設(shè)計》是計算機(jī)專業(yè)的必修專業(yè)基礎(chǔ)課程,其實踐性、應(yīng)用性很強(qiáng)。實踐教學(xué)環(huán)節(jié)是必不可少的一個重要環(huán)節(jié)。本課程的程序設(shè)計專題實際是軟件技術(shù)專業(yè)學(xué)生學(xué)習(xí)完《基于C/S客戶端程序設(shè)計》課程后,進(jìn)行的一次全面的綜合訓(xùn)練,C#程序設(shè)計的設(shè)計目的是加深對理論教學(xué)內(nèi)容的理解和掌握,使學(xué)生較系統(tǒng)地掌握程序設(shè)計及其在網(wǎng)絡(luò)開發(fā)中的廣泛應(yīng)用,基本方法及技巧,為學(xué)生綜合運(yùn)用所學(xué)知識,利用軟件工程為基礎(chǔ)進(jìn)行軟件開發(fā)、并在實踐應(yīng)用方面打下一定基礎(chǔ)

7、。</p><p>  1.2 程序設(shè)計的實驗環(huán)境</p><p>  硬件要求能運(yùn)行Windows xp操作系統(tǒng)的微機(jī)系統(tǒng)。C#程序設(shè)計語言及相應(yīng)的集成開發(fā)環(huán)境visual studio.net2003。</p><p>  1.3 程序設(shè)計的預(yù)備知識</p><p>  熟悉c#語言及visual studio.net集成開發(fā)環(huán)境。<

8、;/p><p>  1.4 程序設(shè)計要求</p><p>  按程序設(shè)計指導(dǎo)書提供的課題,要求學(xué)生在自行完成各個操作環(huán)節(jié),并能實現(xiàn)且達(dá)到舉一反三的目的,完成一個項目解決一類問題。要求學(xué)生能夠全面、深入理解和熟練掌握所學(xué)內(nèi)容,并能夠用其分析、設(shè)計和解答類似問題;對此能夠較好地理解和掌握,能夠進(jìn)行簡單分析和判斷;能編寫出具有良好風(fēng)格的程序;掌握c#.net2003的基本技能和面向?qū)ο蟮母拍詈头椒ǎ?/p>

9、了解windows編程。同時培養(yǎng)學(xué)生進(jìn)行分析問題、解決問題的能力;培養(yǎng)學(xué)生進(jìn)行設(shè)計分析、設(shè)計方法、設(shè)計操作與測試、設(shè)計過程的觀察、理解和歸納能力的提高。</p><p><b>  程序設(shè)計內(nèi)容</b></p><p><b>  2.1程序設(shè)計題目</b></p><p><b>  圖書管理系統(tǒng)</b&

10、gt;</p><p>  隨著信息時代以及計算機(jī)科技產(chǎn)業(yè)的飛速發(fā)展,生活水平和教學(xué)管理軟硬件要求變得越來越高,特別是計算機(jī)網(wǎng)絡(luò)技術(shù)以及數(shù)據(jù)庫技術(shù)的發(fā)展使人們工作生活方式發(fā)生了巨大的改變。舊的管理方法越來越不適應(yīng)現(xiàn)在社會的發(fā)展需要,為了體現(xiàn)現(xiàn)代化氣息,提高工作效率,我們需要一系列的輔助軟件。</p><p>  我所設(shè)計的圖書館管理系統(tǒng)靈感源自校圖書館館管理系統(tǒng),遼寧工業(yè)大學(xué)圖書館管理系統(tǒng)

11、包括了學(xué)生進(jìn)入讀卡識別身份,自主查找所需書籍,借書登記,還書登記,借書限定日期等一些功能,實現(xiàn)了圖書館管理的系統(tǒng)化、自動化,功能很強(qiáng)大、設(shè)計很復(fù)雜,同樣,設(shè)計時的步驟、資源、開發(fā)能力等要求都比較高。我根據(jù)這樣的一個,完整,自動化,我設(shè)計了一個類似的圖書館管理系統(tǒng)。</p><p>  在各學(xué)校的圖書館管理中,要統(tǒng)計閱讀者的個人信息、借還圖書情況、借還時間延誤,會員登記,喜愛讀物,讀物分類等信息,在科技不發(fā)達(dá)的以前

12、總是單靠人力來進(jìn)行登記,這樣既容易出差錯又耗費(fèi)時間。每到讀者多的時候進(jìn)行登記,又要對其他還書的人進(jìn)行登記,讀者查找書籍時還要翻看以前的記錄進(jìn)行查找,對還書延期的讀者還要進(jìn)行懲罰措施,以及最后的會員匯總等,這時,由于平時對讀者信息的記錄規(guī)范不統(tǒng)一,導(dǎo)致讀者身份記錄出錯,還書日期記錄出錯等諸多毛病,同時可能也因信息保存不善而造成信息的丟失、被篡改等問題,統(tǒng)計工作變得耗時耗力,在這種狀況下,我們需要一個圖書管理系統(tǒng)來輔助日常的圖書管理問題,并

13、規(guī)范記錄各項信息,由此,我所設(shè)計的圖書館管理系統(tǒng)就誕生了。</p><p>  我的圖書館管理系統(tǒng)可以將信息規(guī)范統(tǒng)計在數(shù)據(jù)庫中,通過連接數(shù)據(jù)庫將信息顯示到系統(tǒng)窗體中,并分類,在使用的過程中可以很簡單的在相應(yīng)類別的信息中找到所尋找的資料,省時、省力。</p><p>  2.2程序整體設(shè)計說明</p><p>  2.2.1程序設(shè)計內(nèi)容</p><

14、p>  開發(fā)一個信息系統(tǒng)時,首先要對信息系統(tǒng)的需求進(jìn)行分析,需求分析要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。</p><p>  獲得當(dāng)前系統(tǒng)的處理流程,在此首先假設(shè)當(dāng)前系統(tǒng)是手工處理系統(tǒng)。手工處理流程大致是這樣的。讀者將要借的書和借閱證交給工作人員,工作人員將每本書附帶的描述書信息的卡和讀者借閱證一起放在一個小格欄,并在借閱證和每本

15、書上貼的借閱信息。這樣借書過程就完成了。還書時讀者將要還的圖書交給工作人員,工作人員圖書信息找到相應(yīng)的書卡和借閱證,并填寫相應(yīng)的還書信息。</p><p>  建立目標(biāo)系統(tǒng)的邏輯模型。分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,明確目標(biāo)系統(tǒng)到底要“做什么”,從而從當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型。在對上述流程進(jìn)行分析后,我們對新的圖書處理流程進(jìn)行整理,圖書館借還書過程   借書過程:讀者從架上選到所需圖書后,將

16、圖書和借書卡交管理人員,管理人員用碼閱讀器將圖書和借書卡上的讀者條碼2碼讀入處理系統(tǒng)。系統(tǒng)根據(jù)讀者條碼從讀者文件和借閱文件中找到相應(yīng)記錄;根據(jù)圖書上的條碼從圖書文件中找到相應(yīng)記錄,讀者如果有如下列情況之一將不予辦理借書手續(xù)。</p><p>  1)讀者所借閱圖書已超過該讀者容許的最多借書數(shù)目。</p><p>  2)該讀者記錄中有止借標(biāo)志。</p><p>  

17、3)該讀者還有已超過歸還日期而仍未歸還的圖書。</p><p><b>  4)該圖暫停外借。</b></p><p>  若讀者符合所有借書條件時,予以借出。系統(tǒng)在借閱文件中增加一條記錄,記入讀者碼、圖書條碼、借閱日期等內(nèi)容。</p><p>  歸還圖書過程:還書時讀者只要將書交給管理人員,管理員將書上的圖書條碼讀入系統(tǒng),系統(tǒng)從借閱文件上找

18、到相應(yīng)記錄,填上還書日期后寫入借閱歷史文件,并從借閱文件上刪去相應(yīng)記錄,同時系統(tǒng)對借還書日期進(jìn)行計算并判斷是否超期,若不超期則結(jié)束過程,若超期則計算出超期天數(shù)、罰款數(shù)、并打印罰款通知書,記入罰款文件。在讀者記錄上作止借標(biāo)記。當(dāng)讀者交來罰款收據(jù)后,系統(tǒng)根據(jù)讀者條碼查罰款文件,將相應(yīng)記錄寫入罰款歷史文件,并從罰款文件只刪除該記錄,同時去掉讀者文件中的止借標(biāo)記。</p><p>  我設(shè)計的系統(tǒng)是圖書館管理系統(tǒng),圖書館

19、借閱系統(tǒng)的總目標(biāo)是:在計算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫和先進(jìn)的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的圖書借閱系統(tǒng),系統(tǒng)實現(xiàn)后,方便讀者快速的查找,借閱圖書,還可以提前預(yù)約圖書。也方便了管理員對圖書的管理。大大提高了圖書館的利用率,降低了在借閱圖書時發(fā)生的錯誤率。</p><p>  圖書館管理系統(tǒng)流程圖如下圖所示,讀者通過登錄模塊驗證,若驗證成功便可以

20、進(jìn)入系統(tǒng)操作系統(tǒng)內(nèi)部信息:</p><p><b>  圖書管管理功能圖:</b></p><p>  2.2.2程序中所用類說明</p><p>  本系統(tǒng)的主要操作都需要與數(shù)據(jù)庫發(fā)生交互,為了提高代碼的重用性和規(guī)范性,把與數(shù)據(jù)庫交互的功能單獨(dú)放在一個類中,在該類中實現(xiàn)數(shù)據(jù)庫的增加、刪除、修改、查詢等通用功能。</p><

21、p>  1)定義數(shù)據(jù)庫連接字符串,代碼如下: </p><p>  Private static string ConnectString = "Data Source= (local)\\sqlexpress;DataBase=BookManage.mdf"; </p><p>  (2)創(chuàng)建Connection對象,代碼如下: SqlConnection co

22、n = new SqlConnection(ConnectString); </p><p>  (3)打開連接,代碼如下: con.Open(); </p><p>  (4)關(guān)閉連接,代碼如下: con.Close();</p><p>  操作數(shù)據(jù)庫中的數(shù)據(jù):</p><p>  using System; using System.C

23、ollections.Generic; </p><p>  using System.Linq; </p><p>  using System.Text; </p><p>  using System.Data;</p><p>  using System.Data.SqlClient; </p><p>  

24、namespace BookManage { class DataAccess </p><p>  { private static string ConnectString = @"Data Source =A20\SQLEXPRESS;</p><p>  AttachDbFilename=F:\BookManage\data\BookManage.mdf;I

25、ntegrated Security=False";//數(shù)據(jù)庫連接字符串 </p><p>  /// <summary> </p><p>  /// 根據(jù)表名獲取數(shù)據(jù)集的表 </p><p>  /// </summary> </p><p>  /// &

26、lt;param name="table"></param> </p><p>  /// <returns></returns> public static DataTable GetDataSetByTableName(string table) </p><p><b>  {<

27、/b></p><p>  using (SqlConnection con = new SqlConnection(ConnectString))//創(chuàng)建數(shù)據(jù)庫連接對象 </p><p><b>  { </b></p><p>  string sql = "select * from " +

28、 table + "";//查詢sql語句 try {SqlDataAdapter adapter = new SqlDataAdapter(sql, con);//創(chuàng)建適配器對象 DataSet ds = new DataSet();//創(chuàng)建數(shù)據(jù)集對象 adapter.Fill(ds, "tab

29、le");//填充數(shù)據(jù)集 return ds.Tables[0];//返回數(shù)據(jù)表</p><p><b>  } </b></p><p>  catch (SqlException ex) </p><p><b>  { </b></p>

30、;<p>  throw new Exception(ex.Message);</p><p><b>  }}} </b></p><p>  public static DataSet GetDataSetBySql(string sql) </p><p><b>  {</b><

31、;/p><p>  using (SqlConnection con = new SqlConnection(ConnectString))//創(chuàng)建數(shù)據(jù)庫連接對象 </p><p><b>  { </b></p><p>  SqlDataAdapter adapter = new SqlDataAdapter(sql,co

32、n);//創(chuàng)建適配器對象 </p><p>  DataSet ds = new DataSet();//創(chuàng)建數(shù)據(jù)集對象 try { adapter.Fill(ds);//填充數(shù)據(jù)集 </p><p>  return ds;//返回數(shù)據(jù)集</p><p>  }

33、 </p><p>  catch (SqlException ex) </p><p><b>  {</b></p><p>  throw new Exception(ex.Message)</p><p>  } } </p><p&

34、gt;  public static SqlDataReader GetDataReaderByID(int id) </p><p><b>  {</b></p><p>  using (SqlConnection con = new SqlConnection(ConnectString))</p><p>  {stri

35、ng sql = "select * from bookinfo where bookid=" + id;//sql語句 try </p><p><b>  {</b></p><p>  SqlCommand comm = new SqlCommand(sql, con);//創(chuàng)建Comm

36、and對象 con.Open();//打開連接 </p><p>  SqlDataReader reader = comm.ExecuteReader();//創(chuàng)建DataReader對象 reader.Read();//讀取數(shù)據(jù) </p><p>  return rea

37、der;//返回DataReader} </p><p>  catch (SqlException ex) </p><p><b>  {</b></p><p>  throw new Exception(ex.Message); </p><p><b>  }

38、} </b></p><p>  public static bool UpdateDataTable(string sql) </p><p><b>  {</b></p><p>  using (SqlConnection con = new SqlConnection(ConnectString))

39、 { try </p><p><b>  {</b></p><p>  con.Open();//打開連接 </p><p>  SqlCommand comm = new SqlCommand(sql, con);//創(chuàng)建Command對象

40、 if (comm.ExecuteNonQuery() > 0) //執(zhí)行更新 </p><p>  {return true;} </p><p>  else </p><p><b>  {</b></p><p>

41、  return false;</p><p>  }} </p><p>  catch (SqlException ex) </p><p>  {throw new Exception(ex.Message);</p><p>  }}} </p><

42、p>  public static void UpdateDataSet(DataSet ds,string sql) </p><p><b>  {</b></p><p>  using (SqlConnection con = new SqlConnection(ConnectString)) {</p>

43、<p>  try {</p><p>  SqlDataAdapter adapter = new SqlDataAdapter(sql, con);//創(chuàng)建適配器 SqlCommandBuilder builder = new SqlCommandBuilder(adapter);//根據(jù)適配器自動生成表單 </p><p>

44、  adapter.Update(ds, "table");//更新數(shù)據(jù)庫} </p><p>  catch (SqlException ex) </p><p><b>  {</b></p><p>  throw new Exception(ex.Message);</p>

45、<p><b>  }}}}}</b></p><p>  public:可以由任何代碼訪問。</p><p>  private:只能由類中的代碼訪問。</p><p>  internal:成員只能由定義它的項目訪問。</p><p>  protected:成員可以由類或派生類成員中的代碼訪問。</

46、p><p>  其中internal和protected可以同時使用。</p><p>  字段、方法和屬性都可以用關(guān)鍵字static定義,這表明它們是類的靜態(tài)成員,而不是對象實例的成員。</p><p>  字段可以使用關(guān)鍵字readonly,表示該字段只能在執(zhí)行構(gòu)造函數(shù)的時候賦值。</p><p>  靜態(tài)字段、方法、屬性只能通過類名訪問,不

47、能通過對象名訪問</p><p>  在方法定義中可以使用以下關(guān)鍵字:</p><p>  virtual:該方法可以重寫。</p><p>  abstract:該方法必須重寫。</p><p>  override:方法重寫了一個基類方法。</p><p>  extern:方法定義放在其他地方。</p>

48、;<p><b>  2.2.3程序窗體</b></p><p>  本系統(tǒng)通過C#和SQL Server2000的連接使用主要實現(xiàn)的是對圖書的管理及讀者的管理,包括讀者管理、圖書管理、流通管理等模塊的設(shè)置。其中讀者管理又包含讀者類別設(shè)置和讀者檔案管理兩個子模塊。兩個子模塊都能實現(xiàn)對系統(tǒng)記錄的增加、刪除和修改等功能。圖書管理包括圖書類別設(shè)置、圖書檔案管理兩個子模塊。流通管理包括

49、圖書的征訂、圖書借閱、圖書歸還、逾期清單和圖書歸還等子模塊。每個模塊都能實現(xiàn)增加、刪除和修改的功能。1.界面設(shè)計</p><p>  讀者管理模塊設(shè)計主要包括讀者類別設(shè)置、讀者檔案管理兩個子模塊。</p><p>  讀者類別設(shè)置窗體主要實現(xiàn)的功能有首記錄、上一記錄、下一記錄、尾記錄、新增、修改、刪除、提交、取消和退出。當(dāng)選中任意一條記錄時,窗體下面顯示選中的信息。</p>

50、<p>  添加一個搜索的Button按鈕,在讀者類型的Text控件中輸入任意符合條件的文字,下面則顯示出相應(yīng)的信息。</p><p>  登陸界面如下圖所示:</p><p>  圖2-2讀者類別設(shè)置</p><p><b>  2.代碼設(shè)計</b></p><p>  因為讀者的身份不同,所以將讀者的身份分

51、為本科生、教師、研究生和讀者。本系統(tǒng)還可以實現(xiàn)增加、刪除和修改等功能。主要代碼如下:</p><p>  Private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)</p><p><b>  {</b></p>

52、<p>  if (e.Button.ToolTipText == "首記錄")</p><p><b>  {</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); //取消原選中的行</p><p>  cmOrders.Position = 0;&

53、lt;/p><p>  this.dataGrid1.Select(cmOrders.Position); //選中當(dāng)前行</p><p>  this.dataGrid1.CurrentRowIndex = cmOrders.Position; //移動表頭指示圖標(biāo)</p><p><b>  return;</b></p><

54、;p><b>  }</b></p><p>  if (e.Button.ToolTipText == "上一記錄")</p><p><b>  {</b></p><p>  if (cmOrders.Position >= 0)</p><p><b&g

55、t;  {</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); </p><p>  cmOrders.Position--;</p><p>  this.dataGrid1.Select(cmOrders.Position); </p><p>  th

56、is.dataGrid1.CurrentRowIndex = cmOrders.Position; </p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (e.Button

57、.ToolTipText == "下一記錄")</p><p><b>  {</b></p><p>  if (cmOrders.Position <= cmOrders.Count-1)</p><p><b>  {</b></p><p>  this.dataG

58、rid1.UnSelect(cmOrders.Position); </p><p>  cmOrders.Position++;</p><p>  this.dataGrid1.Select(cmOrders.Position); </p><p>  this.dataGrid1.CurrentRowIndex = cmOrders.Positio

59、n; </p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (e.Button.ToolTipText == "尾記錄")</p><

60、;p><b>  {</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); </p><p>  cmOrders.Position = cmOrders.Count-1;</p><p>  this.dataGrid1.Select(cmOrders.Position);

61、 </p><p>  this.dataGrid1.CurrentRowIndex = cmOrders.Position; </p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(e.Button.ToolTipText=

62、="新增")</p><p><b>  {</b></p><p>  cmOrders.AddNew();//設(shè)置默認(rèn)值</p><p>  SetDefaultValue();</p><p>  SetModifyMode(true);</p><p>  cmb1.T

63、ext="";</p><p><b>  }</b></p><p>  if(e.Button.ToolTipText=="修改")</p><p><b>  {</b></p><p>  SetModifyMode(true);</p>

64、<p><b>  }</b></p><p>  if(e.Button.ToolTipText=="刪除")</p><p><b>  {</b></p><p>  DialogResult result=MessageBox.Show("確認(rèn)刪除?","

65、;刪除數(shù)據(jù)",MessageBoxButtons.OKCancel);</p><p>  if(result==DialogResult.OK)</p><p>  if(cmOrders.Count>0)//立即從數(shù)據(jù)集中刪除</p><p><b>  {</b></p><p>  cmOrder

66、s.RemoveAt(cmOrders.Position);</p><p>  da1.Update(dataSet11);</p><p><b>  }</b></p><p><b>  else</b></p><p>  MessageBox.Show("表中為空,已無可刪除數(shù)

67、據(jù)","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);</p><p><b>  }</b></p><p>  if(e.Button.ToolTipText=="提交")</p><p><b>  {</b></

68、p><p>  if(txt4.Text.Trim()=="")//檢查字段</p><p><b>  {</b></p><p>  MessageBox.Show("請輸入圖書編號","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

69、</p><p><b>  return;</b></p><p><b>  }</b></p><p>  cmOrders.EndCurrentEdit();</p><p>  if(dataSet11.GetChanges()!=null)</p><p><

70、;b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  da1.Update(dataSet11);</p><p>  SetModifyMode(false);</p><p><

71、;b>  }</b></p><p>  catch(Exception express)</p><p><b>  {</b></p><p>  MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Er

72、ror);</p><p>  dataSet11.RejectChanges();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b> 

73、 }</b></p><p>  if (e.Button.ToolTipText == "取消")</p><p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p>

74、<p>  cmOrders.CancelCurrentEdit(); //取消編輯</p><p>  SetModifyMode(false);</p><p><b>  }</b></p><p>  catch(Exception express</p><p><b>  {</

75、b></p><p>  MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);</p><p><b>  }</b></p><p><b>  return;</b></p&

76、gt;<p><b>  }</b></p><p>  if(e.Button.ToolTipText=="退出")</p><p><b>  {</b></p><p>  this.Close();</p><p><b>  }</b>

77、;</p><p>  2.2.2 圖書檔案管理模塊設(shè)計</p><p>  圖書檔案管理主要實現(xiàn)的功能有首記錄的查詢、上一條記錄的查詢、下一記錄的查詢、未記錄的查詢、新增記錄的實現(xiàn)、修改和刪除、提交、取消和退出等功能。</p><p>  首先加入是個Button按鈕。并設(shè)置text分別為首記錄、上衣記錄、下一記錄、尾記錄、新增、修改、刪除、提交、取消和退出。再加

78、入一個搜索按鈕,加入Label控件、Text控件和List控件。</p><p>  運(yùn)行時的窗體如下圖:</p><p>  圖2-3讀者檔案管理</p><p>  實現(xiàn)的主要代碼如下所示:</p><p>  private void ReaderClassfy_Load(object sender, System.EventArgs

79、e)</p><p><b>  {</b></p><p>  da1.SelectCommand.Parameters[0].Value="%%";</p><p>  da1.Fill(dataSet11);//為數(shù)據(jù)集添加數(shù)據(jù)項瀏覽控制</p><p>  cmOrders=(Currency

80、Manager) BindingContext[dataSet11,"讀者類型"];</p><p><b>  }</b></p><p>  //--------------根據(jù)輸入查詢數(shù)據(jù)--------------</p><p>  private void btnSearch_Click(object sende

81、r, System.EventArgs e)</p><p><b>  {</b></p><p>  da1.SelectCommand.Parameters[0].Value="%%";</p><p>  if(txt1.Text.Trim()!="")</p><p>&

82、lt;b>  {</b></p><p>  da1.SelectCommand.Parameters[0].Value="%"+txt1.Text.Trim()+"%";</p><p>  }//清空數(shù)據(jù)表,并根據(jù)新設(shè)置的查詢參數(shù)重新填充</p><p>  dataSet11.讀者類型.Clear();

83、</p><p>  da1.Fill(dataSet11);</p><p><b>  }</b></p><p>  private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)</p>

84、<p><b>  {</b></p><p>  if (e.Button.ToolTipText == "首記錄")</p><p><b>  {</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); //取消原選中的行&l

85、t;/p><p>  cmOrders.Position = 0;</p><p>  this.dataGrid1.Select(cmOrders.Position); //選中當(dāng)前行</p><p>  this.dataGrid1.CurrentRowIndex = cmOrders.Position; //移動表頭指示圖標(biāo)</p><p>

86、;<b>  return;</b></p><p><b>  }</b></p><p>  if (e.Button.ToolTipText == "上一記錄")</p><p><b>  {</b></p><p>  if (cmOrders.P

87、osition >= 0)</p><p><b>  {</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); </p><p>  cmOrders.Position--;</p><p>  this.dataGrid1.Select(cmOrde

88、rs.Position); </p><p>  this.dataGrid1.CurrentRowIndex = cmOrders.Position; </p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }&

89、lt;/b></p><p>  if (e.Button.ToolTipText == "下一記錄")</p><p><b>  {</b></p><p>  if (cmOrders.Position <= cmOrders.Count-1)</p><p><b>  

90、{</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); </p><p>  cmOrders.Position++;</p><p>  this.dataGrid1.Select(cmOrders.Position); </p><p>  this.

91、dataGrid1.CurrentRowIndex = cmOrders.Position; </p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (e.Button.To

92、olTipText == "尾記錄")</p><p><b>  {</b></p><p>  this.dataGrid1.UnSelect(cmOrders.Position); </p><p>  cmOrders.Position = cmOrders.Count-1;</p><p>

93、  this.dataGrid1.Select(cmOrders.Position); </p><p>  this.dataGrid1.CurrentRowIndex = cmOrders.Position; </p><p><b>  return;</b></p><p><b>  }</b><

94、;/p><p>  if(e.Button.ToolTipText=="新增")</p><p><b>  {</b></p><p>  cmOrders.AddNew();//設(shè)置默認(rèn)值</p><p>  txt3.Text="1";</p><p> 

95、 txt4.Text="1";</p><p>  txt5.Text="1";</p><p>  SetModifyMode(true);</p><p><b>  }</b></p><p>  if(e.Button.ToolTipText=="修改"

96、)</p><p><b>  {</b></p><p>  SetModifyMode(true);</p><p><b>  }</b></p><p>  if(e.Button.ToolTipText=="刪除")</p><p><b&

97、gt;  {</b></p><p>  DialogResult result=MessageBox.Show("確認(rèn)刪除?","刪除數(shù)據(jù)",MessageBoxButtons.OKCancel);</p><p>  if(result==DialogResult.OK)</p><p>  if(cmOrde

98、rs.Count>0)//立即從數(shù)據(jù)集中刪除</p><p><b>  {</b></p><p>  cmOrders.RemoveAt(cmOrders.Position);</p><p>  da1.Update(dataSet11);</p><p><b>  }</b><

99、/p><p><b>  else</b></p><p>  MessageBox.Show("表中為空,已無可刪除數(shù)據(jù)","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);</p><p><b>  }</b></p>&

100、lt;p>  if(e.Button.ToolTipText=="提交")</p><p><b>  {</b></p><p>  if(txt2.Text.Trim()=="")//檢查非空字段</p><p><b>  {</b></p><p&g

101、t;  MessageBox.Show("類型名稱不能為空","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  cmOrde

102、rs.EndCurrentEdit();</p><p>  if(dataSet11.GetChanges()!=null)</p><p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p>&l

103、t;p>  da1.Update(dataSet11);</p><p>  SetModifyMode(false);</p><p><b>  }</b></p><p>  catch(Exception express)</p><p><b>  {</b></p>

104、<p>  MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);</p><p>  dataSet11.RejectChanges();</p><p><b>  }</b></p><p><

105、;b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (e.Button.ToolTipText == "取消")</p><p><b>  {</b>

106、</p><p><b>  Try</b></p><p><b>  {</b></p><p>  cmOrders.CancelCurrentEdit(); //取消編輯</p><p>  SetModifyMode(false);</p><p><b&g

107、t;  }</b></p><p>  catch(Exception express)</p><p><b>  {</b></p><p>  MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error)

108、;</p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(e.Button.ToolTipText=="退出")</p><p>

109、<b>  {</b></p><p>  this.Close();</p><p><b>  }</b></p><p>  2.2.4程序運(yùn)行效果及存在的問題</p><p>  1.(1)通過運(yùn)行結(jié)果的分析,得到對軟件質(zhì)量的評價;</p><p>  (2)分析系統(tǒng)

110、存在的缺陷,為今后修復(fù)做好準(zhǔn)備。</p><p>  2.運(yùn)行對象:圖書館管理系統(tǒng)。</p><p>  3.運(yùn)行步驟:對登陸模塊測試;對圖書館信息模塊測試;對讀者上網(wǎng)模塊測試;測試結(jié)束;測試成功。</p><p><b>  4.發(fā)現(xiàn)問題:</b></p><p> ?。?)登錄模塊缺少密碼輸入三次退出程序的設(shè)計;&l

111、t;/p><p> ?。?)在開始設(shè)計登錄模塊的時候已經(jīng)準(zhǔn)備好設(shè)計密碼輸入錯誤3次退出程序的部分了,但考慮到使用者可以重復(fù)打開登陸界面,那么所設(shè)計的3次退出程序就沒有意義了。我在研究如何綁定使用者的IP來控制錯誤輸入密碼的次數(shù);</p><p> ?。?)圖書館管理系統(tǒng)在運(yùn)行時反映有些慢,這個問題我會研究下去的,目前還沒有解決辦法;</p><p> ?。?)用戶在安裝

112、的時候電腦里沒有本程序所需的Microsoft office辦公工具或版本不同導(dǎo)致安裝不成功??梢試L試在圖書館管理程序安裝之前將本程序所需的Microsoft office辦公工具安裝上。</p><p>  (5)有些控件代碼并未找全,我會在未來的日子里完善。</p><p>  2.3程序部分源代碼及注釋</p><p>  實現(xiàn)用戶讀者添加功能:</p&

113、gt;<p>  public partial class RegisterForm : Form</p><p><b>  {</b></p><p>  public RegisterForm()</p><p><b>  {</b></p><p>  InitializeC

114、omponent();</p><p><b>  }</b></p><p>  private void regbtn_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (this.usernametxt.Tex

115、t == string.Empty)</p><p><b>  {</b></p><p>  MessageBox.Show("請輸入用戶姓名!", "提示!");</p><p><b>  return;</b></p><p><b>  

116、}</b></p><p>  if(this.sextxt.Text== string.Empty)</p><p><b>  {</b></p><p>  MessageBox.Show("請輸入用戶性別!", "提示!");</p><p><b>

117、  return;</b></p><p><b>  }</b></p><p>  if (this.partcob.Text == string.Empty)</p><p><b>  {</b></p><p>  MessageBox.Show("請輸入用戶所在部門

118、!", "提示!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (this.telphonetxt.Text == string.Empty)</p><p><b>  {<

119、/b></p><p>  MessageBox.Show("請輸入用戶移動電話!", "提示!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if (this.phonetxt.T

120、ext == string.Empty)</p><p><b>  {</b></p><p>  MessageBox.Show("請輸入用戶固定電話!", "提示!");</p><p><b>  return;</b></p><p><b&g

121、t;  }</b></p><p>  string pat1 = @"^[0-9]{8,11}$";</p><p>  bool m1 = Program.match(this.telphonetxt.Text, pat1);</p><p>  bool m2 = Program.match(this.phonetxt.Text

122、, pat1);</p><p><b>  if (!m1)</b></p><p><b>  {</b></p><p>  MessageBox.Show("電話號碼為8到11位的正整數(shù)!","提示!");</p><p><b>  ret

123、urn;</b></p><p><b>  }</b></p><p><b>  if (!m2)</b></p><p><b>  {</b></p><p>  MessageBox.Show("電話號碼為8到11位的正整數(shù)!", &q

124、uot;提示!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  string sq = string.Empty;</p><p>  sq += "select * from tb_user";&l

125、t;/p><p>  sq += " where uname='"+this.usernametxt.Text+"' and upart='"+this.partcob.Text+"' and utelphone='"+this.telphonetxt.Text+"'";</p>

126、<p>  DataTable d = DBHelp.ExeOleCommand(sq);</p><p>  bool b = false;</p><p>  while (d.Rows.Count == 0)</p><p><b>  {</b></p><p><b>  b = tru

127、e;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if (b)</b></p><p><b>  {</b></p><p>  str

128、ing sql = string.Empty;</p><p>  sql += "insert into tb_user(uacc,upsw,uname,usex,upart,utelphone,uphone,udate,uright)";</p><p>  sql += " values('" + this.useracctxt.Tex

129、t + "','" + this.pswtxt.Text + "','" + this.usernametxt.Text + "','" + this.sextxt.Text + "','" + this.partcob.Text + "','" + this

130、.telphonetxt.Text + "','" + this.phonetxt.Text + "','" + DateTime.Now.ToString() + "','" + this.rightbox.Text + "')";</p><p>  DataTable dt

131、 = DBHelp.ExeOleCommand(sql);</p><p>  MessageBox.Show("新用戶添加成功!", "恭喜!");</p><p>  this.Hide();</p><p><b>  }</b></p><p><b>  els

132、e</b></p><p><b>  {</b></p><p>  MessageBox.Show("該用戶已存在!","提示!");</p><p>  this.usernametxt.Text = "";</p><p>  this.te

133、lphonetxt.Text = "";</p><p>  this.phonetxt.Text = "";</p><p><b>  }</b></p><p><b>  }</b></p><p>  private void cancelbtn_C

溫馨提示

  • 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

提交評論