欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)分解

      時(shí)間:2019-05-14 03:27:05下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)分解》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)分解》。

      第一篇:用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)分解

      用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)

      Srl2011009(學(xué)號(hào))石二遼(姓名)

      指導(dǎo)教師 徐哲鑫

      【摘 要】筆者采用Visual Basic 6.0 為開發(fā)工具,設(shè)計(jì)一款具備友好的圖形用戶界面、簡(jiǎn)便操作的圖書管理系統(tǒng)。充分利用計(jì)算機(jī)功能實(shí)現(xiàn)讀者管理、書籍管理、借還書籍管理等信息的自動(dòng)化控制,將使圖書管理員從繁雜、重復(fù)的勞作中解放出來(lái)。

      【關(guān)鍵詞】圖書;面向?qū)ο?;軟件工?/p>

      1概述

      1.1開發(fā)背景

      用計(jì)算機(jī)管理圖書館里一切信息是一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前圖書管理都是由圖書管理人員手工記帳的方式來(lái)操作的.現(xiàn)在一般的圖書館都是采用計(jì)算機(jī)作為工具,使用實(shí)用的圖書管理程序來(lái)幫助圖書館管理員進(jìn)行更有效的圖書管理。

      1.2圖書管理系統(tǒng)產(chǎn)生的背景

      圖書管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。

      [1]而對(duì)于前端應(yīng)用程序則要求應(yīng)用程序具備功能完備、友好的圖形用戶界面、便捷使用等特點(diǎn)。

      1.3 系統(tǒng)功能要求的分析

      開發(fā)本系統(tǒng)的總體任務(wù)是實(shí)現(xiàn)圖書管理系統(tǒng)的系統(tǒng)化和自動(dòng)化,幫助圖書管理員更好更高效地完成圖書管理工作,本系統(tǒng)要完成的功能主要有: 書籍管理部分:圖書類別管理和圖書信息管理。其中,書籍類別管理包括添加書籍類別、修改書籍類別、刪除書籍類別等;書籍信息管理包括書籍信息的添加、修改、查詢、刪除等。

      讀者管理部分:讀者類別管理和讀者信息管理,讀者類別管理包括讀者類別添加、修改、刪除等;讀者信息包括讀者添加讀者信息、修改讀者信息、查詢讀者信息、刪除讀者信息等。

      借閱管理部分:借書信息管理和還書信息管理,借書信息管理、還書信息管理均包括其信息的添加、修改、查詢等。

      系統(tǒng)管理部分:添加管理員,修改密碼,退出系統(tǒng)。

      2開發(fā)環(huán)境及實(shí)現(xiàn)技術(shù)介紹

      2.1開發(fā)軟件介紹

      由于我的工作單位是一所中心小學(xué),有大量的書籍,讀者有學(xué)生、老師,于是本人想設(shè)計(jì)一款實(shí)用的圖書管理系統(tǒng),方便學(xué)校圖書管理員工作,增強(qiáng)圖書借閱力度,良好地管理書籍及其借閱信息。

      2.2模塊設(shè)計(jì)[2]

      書籍管理部分實(shí)現(xiàn)對(duì)書籍類別、書籍信息的添加、修改、刪除等操作。讀者管理部分實(shí)現(xiàn)對(duì)讀者類別、讀者信息的添加、修改、刪除等操作。借閱管理部分實(shí)現(xiàn)對(duì)借書信息、還書信息的添加、修改、查詢等操作。

      系統(tǒng)管理部分實(shí)現(xiàn)超級(jí)用戶對(duì)普通用戶的用戶名和密碼對(duì)注冊(cè)、修改等操作。

      2.3程序預(yù)覽

      運(yùn)行本系統(tǒng)程序,首先出現(xiàn)登錄界面(圖2),輸入正確用戶名及密碼后進(jìn)入主窗體(圖3),主窗體上的主菜單欄有:書籍管理、讀者管理、借閱管理、系統(tǒng)設(shè)置及幫助。

      圖2

      圖3

      2.3.1書籍管理功能

      “書籍管理”菜單下有兩個(gè)一級(jí)菜單:“書籍信息管理”和“書籍類別管理”。具體操作如下: 1.“書籍類別管理”下有三個(gè)子菜單:“新增”、“修改”、“刪除”。單擊“新增”菜單,打開“新增書籍類別”窗體(圖4)。單擊“修改”或“刪除”,都會(huì)打開“書籍類別信息管理”窗體(圖5)。

      圖4 圖5 2.“書籍信息管理”下有四個(gè)子菜單:“新增圖書”、“修改書籍信息”、“刪除書籍信息”、“查詢書籍信息”。單擊“新增圖書”菜單,打開“新增書籍”窗體(圖6)。單擊“修改”或“刪除”,都會(huì)打開“書籍信息管理”窗體(圖7)。單擊“查詢書籍信息”菜單,打開“查詢圖書”窗體(圖8)

      圖6

      圖7

      圖8 2.3.2讀者管理功能

      “讀者管理”菜單下有兩個(gè)一級(jí)菜單:“讀者類別管理”和“讀者信息管理”。1.“讀者類別管理”下有3個(gè)子菜單:“添加讀者類別”、“修改讀者類別”、“刪除讀者類別”。單擊“添加讀者類別”菜單,打開“添加讀者類別”窗體(圖9);單擊“修改讀者類別”和“刪除讀者類別”菜單,都會(huì)打開“讀者類別管理”窗體(圖10)。

      圖9 圖10

      2.“讀者信息管理”菜單下有4個(gè)子菜單:“添加讀者信息”、“修改讀者信息”、“刪除讀者信息”和“查詢讀者信息”。單擊“添加讀者信息”菜單,打開“添加讀者信息”窗體(圖11),單擊“修改讀者信息”和“刪除讀者信息”菜單,都會(huì)打開“讀者信息管理”窗體(圖12),單擊“查詢讀者信息”菜單,打開“查詢讀者信息”窗體(圖13)。

      圖11

      圖12 圖13

      2.3.3圖書借閱管理功能

      “借閱管理”菜單下有2個(gè)一級(jí)菜單:“借書管理”和“還書管理”。

      1.“借書管理”菜單下有2個(gè)子菜單:“添加借書信息”和“查詢借書信息”。單擊“添加借書信息”先打開的是“查詢圖書”窗體(圖8),找到需要借閱的圖書后,單擊“借這本書按鈕”,打開“借書”窗體(圖14);單擊“查詢借書信息”菜單,打開“查詢借書信息”窗體(圖15)。

      圖14 圖15

      2.單擊“還書管理”,打開“還書”窗體(圖16)。

      圖16 2.3.4系統(tǒng)管理功能

      “系統(tǒng)管理”菜單下有3個(gè)子菜單,分別是“添加管理員”、“修改密鑰”和“退出系統(tǒng)”。單擊“添加管理員”子菜單,打開“添加管理員”窗體(圖17),單擊“修改密鑰”子菜單,打開“修改密碼”窗體(圖18),單擊“退出系統(tǒng)”,備份數(shù)據(jù)并退出本系統(tǒng)。

      圖17 圖18

      2.3.5幫助菜單

      單擊“幫助”菜單,打開系統(tǒng)信息窗體(圖1),點(diǎn)擊系統(tǒng)信息窗體任何一處,關(guān)閉該信息窗體,返回主窗體。

      圖1 2.4數(shù)據(jù)庫(kù)設(shè)計(jì)

      數(shù)據(jù)庫(kù)名為sj.mdb,在庫(kù)中設(shè)計(jì)六張表,它們分別為dzlb(讀者類別表)、dzxx(讀者信息表)、jyxx(借閱信息表)、sjxx(書籍信息表)、sjlb(書籍類別表)、sys(系統(tǒng)管理表)。

      2.4.1讀者類別表,表名為dzlb,字段名稱有讀者類別名稱、讀者借書數(shù)量、借書期限及有限期限,設(shè)置“讀者類別名稱”為主鍵,是必填字段,不允許空值。

      2.4.2讀者信息表: 設(shè)置“讀者編號(hào)”為主鍵,“讀者編號(hào)”、“讀者姓名”為必填字段,不允許空值。

      2.4.3 借閱信息表:

      2.4.4書籍信息表: 設(shè)置“圖書編號(hào)”為主鍵,“圖書編號(hào)”、“書籍名稱”為必填字段,不允許空值。

      2.4.5圖書類別表:

      2.4.6系統(tǒng)管理表:

      2.4.7數(shù)據(jù)庫(kù)連接方式選擇

      Visual basic6.0連接數(shù)據(jù)庫(kù)的主要方式有以下幾種方式:一是用data控件進(jìn)行數(shù)據(jù)庫(kù)鏈接,二是利用adodc(ADO Data Control)進(jìn)行數(shù)據(jù)庫(kù)鏈接。三是:利用DataEnvironment進(jìn)行數(shù)據(jù)庫(kù)鏈接,四是利用ADO(ActiveX Data Objects)進(jìn)行編程。

      [3]利用DAO對(duì)數(shù)據(jù)庫(kù)進(jìn)行操縱: 在visual basic 中提供了兩種與jet數(shù)據(jù)引擎接口的方法:data控件與數(shù)據(jù)訪問(wèn)對(duì)象(DAO)DAO是database object的英文縮寫,要訪問(wèn)數(shù)據(jù)庫(kù)一方面數(shù)據(jù)庫(kù)要提供訪問(wèn)接口,另一方面要在編程環(huán)境中有對(duì)數(shù)據(jù)庫(kù)的支持.DAO模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的對(duì)象類的集合.他們提供了管理關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)所需要的全部操作屬性和方法,這其中包括建立數(shù)據(jù)庫(kù),定義表,字段和建立表間關(guān)系,定位和查詢數(shù)據(jù)庫(kù)等.[4] 關(guān)系數(shù)據(jù)庫(kù)介紹: 關(guān)系數(shù)據(jù)庫(kù)是目前各類數(shù)據(jù)庫(kù)中最重要、最流行的數(shù)據(jù)庫(kù),他應(yīng)用數(shù)學(xué)方法來(lái)處理數(shù)據(jù)庫(kù)數(shù)據(jù),是目前使用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng)。20世紀(jì)70年代以后開發(fā)的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品幾乎都是基于關(guān)系的。在數(shù)據(jù)庫(kù)發(fā)展的歷史上,最重要的成就就是關(guān)系模型。

      關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)與非關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別是:關(guān)系系統(tǒng)只有“表“這一種數(shù)據(jù)結(jié)構(gòu);而非關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)還有其他數(shù)據(jù)結(jié)構(gòu),對(duì)這些數(shù)據(jù)結(jié)構(gòu)有其他的操作。

      結(jié)構(gòu)化查詢語(yǔ)言SQL(Structured Query Language)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語(yǔ)言,其功能包括查詢、操縱、定義和控制四個(gè)方面,是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。目前已成為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。

      Microsoft Access介紹: 使用 Microsoft Access,可以在單一的數(shù)據(jù)庫(kù)文件中管理所有的信息。在這個(gè)文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨(dú)立的存儲(chǔ)空間中,這些空間稱作表;可以使用聯(lián)機(jī)窗體來(lái)查看、添加及更新表中的數(shù)據(jù);使用查詢來(lái)查找并檢索所要的數(shù)據(jù);也可以使用報(bào)表以特定的版面布置來(lái)分析及打印數(shù)據(jù)。

      如果要保存數(shù)據(jù),請(qǐng)為每一種類型的信息創(chuàng)建一個(gè)表。如果要從查詢、窗體或報(bào)表中的多個(gè)表中將數(shù)據(jù)合并在一起,就要定義各個(gè)表之間的關(guān)系。

      如果要搜索并檢索符合指定條件的數(shù)據(jù),包括來(lái)自多個(gè)表中的數(shù)據(jù),就要?jiǎng)?chuàng)建查詢。查詢的同時(shí)也可以更新或刪除多條記錄,并對(duì)數(shù)據(jù)執(zhí)行內(nèi)嵌或自定義的計(jì)算。

      如果要簡(jiǎn)單地直接在某個(gè)表中查看、輸入及更改數(shù)據(jù),請(qǐng)創(chuàng)建一個(gè)窗體。在打開一個(gè)窗體時(shí),Microsoft Access 將從一個(gè)或多個(gè)表中檢索數(shù)據(jù),并使用用戶在“窗體向?qū)А边x擇的版面布局或所創(chuàng)建的版面布局,將窗體顯示在屏幕上。

      如果要分析數(shù)據(jù)或?qū)?shù)據(jù)以特定的方式打印出來(lái),請(qǐng)創(chuàng)建一個(gè)報(bào)表。例如,可以打印一份將數(shù)據(jù)分組并計(jì)算數(shù)據(jù)總和的報(bào)表,也可以打印另一份帶有各種數(shù)據(jù)格式的打印郵件標(biāo)簽的報(bào)表。

      2.5系統(tǒng)代碼[5]

      2.5.1主界面代碼: 2.5.1.1添加管理員菜單

      Private Sub addadmin_Click()addadminf.Show End Sub 2.5.1.2添加讀者類別菜單 Private Sub adddzlb_Click()Adddzlbf.Show End Sub 2.5.1.3添加讀者信息菜單

      Private Sub adddzxxf_Click()Adddzxxf.Show End Sub 2.5.1.4添加還書信息菜單 Private Sub addhs_Click()hsf.Show End Sub 2.5.1.5添加借書信息菜單 Private Sub addjs_Click()Jsf.Show End Sub 2.5.1.6添加圖書類別菜單 Private Sub addlb_Click()addtslb.Show End Sub 2.5.1.7查詢讀者信息菜單 Private Sub cxdzxx_Click()cxdzxxf.Show End Sub 2.5.1.8查詢借書信息菜單 Private Sub cxjs_Click()cxjsxxf.Show End Sub 2.5.1.9查詢書籍信息菜單 Private Sub cxsj_Click()cxsjf.Show End Sub 2.5.1.10刪除讀者類別菜單 Private Sub Deldzlb_Click()dzlbxxf.Show End Sub 2.5.1.11刪除讀者信息菜單 Private Sub Deldzxx_Click()dzxxglf.Show End Sub 2.5.1.12刪除書籍類別菜單 Private Sub dellb_Click()sjlbxxf.Show End Sub 2.5.1.13幫助菜單

      Private Sub hlep_Click()frmSplash.Show End Sub 2.5.1.14退出系統(tǒng)菜單

      Private Sub Unload_Click()end End Sub 2.5.1.15修改讀者類別菜單 Private Sub Xgdzlb_Click()dzlbxxf.Show End Sub 2.5.1.16修改讀者信息菜單 Private Sub xgdzxx_Click()dzxxglf.Show End Sub 2.5.1.17修改書籍類別菜單 Private Sub xglb_Click()sjlbxxf.Show End Sub 2.5.1.18修改用戶密碼菜單 Private Sub xgmm_Click()xgmmf.Show End Sub 2.5.1.19修改書籍信息菜單 Private Sub xgts_Click()sjxxf.Show End Sub 2.5.1.20新增圖書信息菜單 Private Sub xzts_Click()addtsf.Show End Sub 2.5.2添加圖書類別

      添加圖書類別代碼: Private Sub Command1_Click()Dim Sq1 As String Dim rs_add As New ADODB.Recordset Sql = “select * from sjlb where 類別名稱='” & Text1.Text & “'” rs_add.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Trim(Text1.Text)= “" Then MsgBox ”圖書類別不能為空“, vbOKOnly + vbExclamation, ”注意“ Text1.SetFocus Exit Sub End If If Trim(Text2.Text)= ”“ Then MsgBox ”圖書編號(hào)不能為空“, vbOKOnly + vbExclamation, ”注意“ Text2.SetFocus Exit Sub End If

      If rs_add.EOF = True Then rs_add.AddNew rs_add.Fields(0)= Trim(Text2.Text)rs_add.Fields(1)= Trim(Text1.Text)rs_add.Update MsgBox ”成功地添加 “ & Text1.Text & ” 這一圖書類別“, vbOKOnly, ”恭喜“ rs_add.Close Else MsgBox ” “ & Text1.Text & ” 這一圖書類別已存在“, vbOKOnly + vbExclamation, ”圖書類別不能重復(fù)“ rs_add.Close End If Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ End Sub Private Sub Command2_Click()Unload Me End Sub 2.5.3修改圖書類別: 修改圖書類別代碼: Option Explicit Dim Myjl As New ADODB.Recordset Private Sub Form_Load()Dim Sq1 As String On Error GoTo loaderror Sq1 = ”select * from sjlb “ Myjl.CursorLocation = adUseClient Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic Cmdcancel.Enabled = False Cmdupdate.Enabled = False Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Myjl Exit Sub loaderror: MsgBox Err.Description End Sub Private Sub Cmdadd_Click()Dg.AllowAddNew = True Dg.AllowUpdate = True Cmdadd.Enabled = False Cmdupdate.Enabled = True End Sub Private Sub Cmdadd_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Cmdadd.Caption = ”點(diǎn)擊此處也可以添加“ Cmdadd.Width = 3000 End Sub Private Sub Cmdcancel_Click()Myjl.CancelUpdate Dg.Refresh Dg.AllowAddNew = False Dg.AllowUpdate = False Cmdxg.Enabled = True Cmddel.Enabled = True Cmdcancel.Enabled = False Cmdupdate.Enabled = False End Sub

      Private Sub Cmddel_Click()Dim Srl As String On Error GoTo delerror Srl = MsgBox(”確定要?jiǎng)h除嗎?“, vbYesNo)If Srl = vbYes Then Dg.AllowDelete = True Myjl.Delete Myjl.Update Dg.Refresh Else Exit Sub End If delerror: MsgBox Err.Description End Sub Private Sub Cmdupdate_Click()If Not IsNull(Dg.Bookmark)Then Myjl.Update Cmddel.Enabled = True Cmdxg.Enabled = True Cmdcancel.Enabled = False Cmdupdate.Enabled = False Dg.AllowUpdate = False MsgBox ”修改成功“, vbOKOnly + vbExclamation, ”恭喜成功“ End If Cmdadd.Width = 1550 Cmdadd.Caption = ”高級(jí)“ Cmdadd.Enabled = True End Sub Private Sub Cmdxg_Click()Dim Srl As String On Error GoTo xg Cmddel.Enabled = False Cmdxg.Enabled = False Cmdupdate.Enabled = True Cmdcancel.Enabled = True Dg.AllowUpdate = True xg: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub Private Sub Form_Unload(Cancel As Integer)Set Dg.DataSource = Nothing Myjl.Close End Sub 2.5.4添加讀者類別界面: Private Sub Command1_Click()Dim Srl As String Dim Mybook As New ADODB.Recordset If Trim(Text1.Text)= ”“ Then MsgBox ”讀者類別名稱不能為空“, vbOKOnly + vbExclamation, ”注意“ Text1.SetFocus Exit Sub End If If Trim(Text2.Text)= ”“ Then MsgBox ”借書數(shù)量不能為空“, vbOKOnly + vbExclamation, ”注意“ Text2.SetFocus Exit Sub End If If Trim(Text3.Text)= ”“ Then MsgBox ”借書期限不能為空“, vbOKOnly + vbExclamation, ”注意“ Text3.SetFocus Exit Sub End If If Trim(Text4.Text)= ”“ Then MsgBox ”有效期限不能為空“, vbOKOnly + vbExclamation, ”注意“ Text4.SetFocus Exit Sub End If On Error GoTo Cw Srl = ”select * from dzlb where 讀者類別名稱='“ & Text1.Text & ”'“ Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic If Mybook.EOF Then Mybook.AddNew Mybook.Fields(0)= Trim(Text1.Text)Mybook.Fields(1)= Trim(Text2.Text)Mybook.Fields(2)= Trim(Text3.Text)Mybook.Fields(3)= Trim(Text4.Text)Mybook.Update MsgBox ” 您已經(jīng)成功添加“ & Text1.Text & ”這一讀者類別 “, vbOKOnly + vbExclamation, ”添加成功!“ Mybook.Close Else MsgBox ”讀者類別名稱為“ & Text1.Text & ” 重復(fù)“, vbOKOnly + vbExclamation, ”注意重復(fù)“ Text1.SetFocus Text1.Text = ”“ Mybook.Close Exit Sub End If Cw: MsgBox Err.Description End Sub Private Sub Command2_Click()Unload Me

      End Sub

      Private Sub Form_Load()Dim Sq1 As String '定義一個(gè)字符串變量

      Dim Myjl As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量 End Sub

      2.5.5查詢讀者信息代碼: Private Sub Form_Load()Dim Sq1 As String '定義一個(gè)字符串變量

      Dim Myjl As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量 Sq1 = ”select * from dzlb“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic Do While Not Myjl.EOF Combo1.AddItem Myjl.Fields(0)Myjl.MoveNext Loop Combo1.ListIndex = 0 Myjl.Close End Sub

      Private Sub Command1_Click()Dim Srl As String '定義一個(gè)字符串變量 Dim Mybook As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量 If Check1.Value = vbChecked Then Srl = ”讀者編號(hào)='“ & Trim(Text1.Text & ”“)& ”'“ End If

      If Check2.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”讀者姓名='“ & Trim(Text2.Text & ”“)& ”'“ Else Srl = Srl & ”and 讀者編號(hào)='“ & Trim(Text2.Text & ”“)& ”'“ End If End If

      If Check3.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”讀者類別='“ & Trim(Combo1.Text & ”“)& ”'“ Else Srl = Srl & ”and 讀者類別='“ & Trim(Combo1.Text & ”“)& ”'“ End If End If

      If Srl = ”“ Then MsgBox ”請(qǐng)選擇一種查詢依據(jù)“, vbOKOnly + vbExclamation, ”查詢方式“ Exit Sub End If

      Srl = ”select * from dzxx where “ & Srl Mybook.CursorLocation = adUseClient Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Mybook End Sub

      Private Sub Command2_Click()Unload Me End Sub

      2.5.6圖書借閱管理模塊代碼: 2.5.6.1查詢書籍窗體代碼

      Private Sub Form_Load()’窗體加載時(shí)就書籍類別加載到列表框中。Dim Sq1 As String '定義一個(gè)字符串變量

      Dim Myjl As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量 Sq1 = ”select * from sjlb“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic Do While Not Myjl.EOF Combo1.AddItem Myjl.Fields(1)Myjl.MoveNext Loop Combo1.ListIndex = 0 Myjl.Close End Sub

      Private Sub Command1_Click()’查詢命令按鈕代碼 Dim Srl As String '定義一個(gè)字符串變量

      Dim Mybook As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量

      If Check1.Value = vbChecked Then Srl = ”書籍名稱='“ & Trim(Text1.Text & ”“)& ”'“ End If

      If Check2.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”圖書編號(hào)='“ & Trim(Text2.Text & ”“)& ”'“ Else Srl = Srl & ”and 圖書編號(hào)='“ & Trim(Text2.Text & ”“)& ”'“ End If End If If Check3.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”作者='“ & Trim(Text3.Text & ”“)& ”'“ Else Srl = Srl & ”and 作者='“ & Trim(Text3.Text & ”“)& ”'“ End If End If

      If Check4.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”出版社='“ & Trim(Text4.Text & ”“)& ”'“ Else Srl = Srl & ”and 出版社='“ & Trim(Text4.Text & ”“)& ”'“ End If End If

      If Check5.Value = vbChecked Then If Trim(Srl)= ”“ Then Srl = ”類別='“ & Trim(Combo1.Text & ”“)& ”'“ Else Srl = Srl & ”and 類別='“ & Trim(Combo1.Text & ”“)& ”'“ End If End If

      If Srl = ”“ Then MsgBox ”請(qǐng)選擇一種查詢依據(jù)“, vbOKOnly + vbExclamation, ”查詢方式“ Exit Sub End If

      Srl = ”select * from sjxx where “ & Srl Mybook.CursorLocation = adUseClient Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Mybook End Sub

      為了獲取表格某一單元格值,為DataGrid控件DG添加如下代碼:

      Private Sub Dg_RowColChange(LastRow As Variant, ByVal LastCol As Integer)On Error GoTo Cw Pand = Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm = Dg.Columns(0).CellValue(Dg.Bookmark)’ Pand 和Bookunm是公共模塊中定義的一個(gè)公共變量,Bookunm用來(lái)記錄表格中某一書籍的圖書編號(hào),便于在借書窗體中再次調(diào)用。Exit Sub Cw: MsgBox Err.Description End Sub

      Private Sub Command2_Click()Unload Me End Sub

      Private Sub Command3_Click()’這是“借這本書”命令按鈕,如果條件滿足,就進(jìn)入借書窗體了。If Trim(Bookunm)= ”“ Then MsgBox ”請(qǐng)選擇要借閱的書籍“, vbOKOnly + vbExclamation, ”選擇書籍“ Exit Sub End If If Trim(Pand)= ”是“ Then MsgBox ”此書已經(jīng)被借出,請(qǐng)選擇其它書籍“, vbOKOnly + vbExclamation, ”選擇書籍“ Exit Sub End If Unload Me Jsf.Show End Sub

      2.5.6.2借書窗體代碼 Option Explicit Dim Lb As String '該讀者類別

      Dim Qx As String '該讀者可借書的期限 Dim Yjsl As String '該讀者已借書的數(shù)量 Dim Maxm As String '該讀者借書量的限制

      ‘由在查詢書籍的窗體滿足了可以借書的條件進(jìn)入此借書窗體,根據(jù)此書的圖書編號(hào),在本窗體加載時(shí)就加載了書籍的信息和讀者列表。Private Sub Form_Load()Dim Mybook As New ADODB.Recordset Dim Mydz As New ADODB.Recordset Dim Srl As String Dim Sql As String Srl = ”select * from sjxx where 圖書編號(hào)='“ & Bookunm & ”'“ Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimistic Label8.Caption = Mybook.Fields(0)Label9.Caption = Mybook.Fields(1)Label10.Caption = Mybook.Fields(2)Label11.Caption = Mybook.Fields(3)Label12.Caption = Mybook.Fields(4)Label13.Caption = Mybook.Fields(5)Label14.Caption = Mybook.Fields(6)Sql = ”select * from dzxx “ Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0)Combo2.AddItem Mydz.Fields(1)Mydz.MoveNext Loop Combo1.ListIndex = 0 Else MsgBox ”請(qǐng)先登記讀者“, vbOKOnly + vbExclamation, ”注意“ Exit Sub End If

      Mybook.Close Mydz.Close

      End Sub ‘由于讀者編號(hào)與讀者姓名是一一對(duì)應(yīng)的,必須對(duì)用來(lái)加載這兩個(gè)信息的兩個(gè)列表框編寫如下代碼: Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndex End Sub Private Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndex End Sub

      Private Sub Command1_Click()’這是借書的“確定”按鈕 Dim Myjl As New ADODB.Recordset Dim Sql As String

      Sql = ”select * from dzxx where 讀者編號(hào)='“ & Combo1.Text & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Lb = Myjl.Fields(3)Yjsl = Myjl.Fields(8)Myjl.Close

      Sql = ”select * from dzlb where 讀者類別名稱='“ & Lb & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Qx = Myjl.Fields(2)Maxm = Myjl.Fields(1)Myjl.Close

      If Yjsl >= Maxm Then MsgBox ”該讀者借書數(shù)額已滿!“, vbOKOnly + vbExclamation Exit Sub End If

      ‘以上條件滿足了,就將新借書信息添加到借閱信息數(shù)據(jù)庫(kù)中,代碼如下: Sql = ”select * from jyxx“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Myjl.AddNew Myjl.Fields(1)= Combo1.Text Myjl.Fields(2)= Combo2.Text Myjl.Fields(3)= Label8.Caption Myjl.Fields(4)= Label9.Caption Myjl.Fields(5)= Date Myjl.Fields(6)= DateAdd(”Ww“, Qx, Date)Myjl.Update Myjl.Close ‘同時(shí),將此書在書籍信息(sjxx)表中的“是否被借出”設(shè)置為“是”。Sql = ”select * from sjxx where 圖書編號(hào)='“ & Bookunm & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Myjl.Fields(7)= ”是“ Myjl.Update Myjl.Close

      ‘同時(shí)將該讀者已借書數(shù)量上加1。

      Sql = ”select * from dzxx where 讀者編號(hào)='“ & Combo1.Text & ”'“ Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Myjl.Fields(8)= Myjl.Fields(8)+ 1 Myjl.Update Myjl.Close

      MsgBox ”《“ & Label9.Caption & ”》 這本書成功地借給了讀者姓名為 “ & Combo2.Text & ” 的讀者!“, vbOKOnly + vbExclamation, ”借閱成功“ Unload Me End Sub

      Private Sub Command2_Click()Unload Me End Sub

      2.5.6.3查詢借書窗體代碼

      Private Sub Command1_Click()Dim Sql As String '定義一個(gè)字符串變量

      Dim Myjl As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量

      If Option1.Value = True Then Sql = ”select * from sjxx where 是否被借出='是'“ End If

      If Option2.Value = True Then Sql = ”select * from sjxx where 是否被借出='否'“ End If

      If Option3.Value = True Then Sql = ”select * from jyxx where 讀者姓名='“ & dzxm.Text & ”'“ End If

      Myjl.CursorLocation = adUseClient Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False Set Dg.DataSource = Myjl End Sub

      Private Sub Command2_Click()Unload Me

      End Sub

      Private Sub Option3_Click()dzxm.Visible = True End Sub

      2.5.6.4還書窗體代碼 Private Sub Form_Load()Dim mybook As New ADODB.Recordset Dim Mydz As New ADODB.Recordset Dim Srl As String Dim Sql As String Sql = ”select * from dzxx “ Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0)Combo2.AddItem Mydz.Fields(1)Mydz.MoveNext Loop End If Mydz.Close Sql = ”select * from jyxx “ mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If Not mybook.EOF Then Do While Not mybook.EOF Combo3.AddItem mybook.Fields(3)Combo4.AddItem mybook.Fields(4)mybook.MoveNext Loop End If mybook.Close End Sub

      Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndex End Sub Private Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndex End Sub

      Private Sub Combo3_Click()Combo4.ListIndex = Combo3.ListIndex End Sub Private Sub Combo4_Click()Combo3.ListIndex = Combo4.ListIndex End Sub

      Private Sub Command1_Click()Dim Mydz As New ADODB.Recordset Dim Sql As String findform = True Sql = ”select * from jyxx where 讀者姓名='“ & Combo2.Text & ”' “ Mydz.CursorLocation = adUseClient Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimistic

      Set Dg.DataSource = Mydz Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False End Sub

      Private Sub Command2_Click()Dim mybook As New ADODB.Recordset Dim Sql As String findform = False Sql = ”select * from jyxx where 書籍編號(hào)='“ & Combo3.Text & ”' “ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic Set Dg.DataSource = mybook Dg.AllowAddNew = False Dg.AllowDelete = False Dg.AllowUpdate = False End Sub

      Private Sub Command3_Click()Dim Book As String Dim Dz As String Dim Sql As String Dim W As String Dim mybook As New ADODB.Recordset On Error GoTo Cw Book = Dg.Columns(3).CellValue(Dg.Bookmark)Dz = Dg.Columns(1).CellValue(Dg.Bookmark)W = MsgBox(”確定要還這本書嗎?“, vbYesNo, ”“)If W = vbYes Then Sql = ”select * from jyxx where 書籍編號(hào)='“ & Book & ”' “ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic mybook.Delete mybook.Update mybook.Close

      Sql = ”select * from sjxx where 圖書編號(hào)='“ & Book & ”'“ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic mybook.Fields(7)= ”否“ mybook.Update mybook.Close Sql = ”select * from dzxx where 讀者編號(hào)='“ & Dz & ”' “ mybook.CursorLocation = adUseClient mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimistic mybook.Fields(8)= mybook.Fields(8)-1 mybook.Update mybook.Close

      If findform = True Then Command1_Click Else Command2_Click End If MsgBox ”還書成功!“, vbOKOnly + vbExclamation, ”“ Dg.AllowDelete = False Else Exit Sub End If Cw: MsgBox Err.Description End Sub

      Private Sub Command4_Click()Unload Me End Sub

      2.5.7系統(tǒng)管理

      2.5.7.1登錄界面代碼 Option Explicit Dim cnt As Integer’用來(lái)記錄點(diǎn)擊“確定”的次數(shù)

      Private Sub Form_Load()’

      Dim ConnectionString As String ConnectionString = ”provider=Microsoft.Jet.oledb.4.0;data source=sj.mdb“ Sjk.Open ConnectionString’ Sjk是公用模塊中定義的一個(gè)公共變量。cnt = 0 End Sub

      Private Sub Cmdcancel_Click()End End Sub

      Private Sub cmdOK_Click()Dim Sql As String Dim rs_add As New ADODB.Recordset If Trim(Text1.Text)= ”“ Then MsgBox ”用戶名不能為空“, vbOKOnly + vbExclamation, ”注意“ Exit Sub Text1.SetFocus Else Sql = ”select * from sys where Uname='“ & Text1.Text & ”'“ rs_add.Open Sql, Sjk, adOpenKeyset, adLockPessimistic If rs_add.EOF = True Then MsgBox ”沒(méi) “ & Text1.Text & ” 有這個(gè)用戶“, vbOKOnly + vbExclamation, ”“ Text1.SetFocus Else If Trim(rs_add.Fields(1))= Trim(Text2.Text)Then 'Unema = Text1.Text 'Uid = rs_add.Fields(2)rs_add.Close Mf.Show Unload Me Else

      MsgBox ”密碼不正確“, vbOKOnly + vbExclamation, ”注意“ Text2.SetFocus Text2.Text = ”“ End If End If End If cnt = cnt + 1 If cnt = 3 Then Unload Me

      End If End Sub

      Private Sub cmdOK_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)cmdOK.Caption = ”確定登錄“ ‘只為增強(qiáng)動(dòng)畫效果,移動(dòng)鼠標(biāo)到cmdok按鈕上時(shí),顯示的文字由原來(lái)的“確定”變?yōu)椤按_定登錄” End Sub

      2.5.7.2添加用戶界面代碼 Private Sub Form_Load()Dim Sjk As ADODB.Connection Dim Sj As ADODB.Recordset Combo1.AddItem ”管理員“ Combo1.AddItem ”來(lái)賓用戶“ Set Sjk = New ADODB.Connection Set Sj = New ADODB.Recordset Sjk.ConnectionString = ”DSN=cn;UID=;PWD=;“ Sjk.ConnectionTimeout = 30 Sjk.Open If Sjk.State = adStateOpen Then _ MsgBox ”數(shù)據(jù)庫(kù)加載成功,歡迎進(jìn)入“添加管理員”界面!“ Sjk.Close End Sub

      Private Sub Command1_Click()Dim Sq1 As String '定義一個(gè)字符串變量

      Dim Myjl As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量 If Trim(Text1.Text)= ”“ Then '首先檢查用戶名是否為空 MsgBox ”用戶名不能空“, vbOKOnly + vbExclamation, ”注意!“ Text1.SetFocus Exit Sub Else Sq1 = ”select * from sys“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic While(Myjl.EOF = False)If Trim(Myjl.Fields(0))= Trim(Text1.Text)Then MsgBox ” “ & Text1.Text & ” 這個(gè)用戶名已存在“, vbOKOnly + vbExclamation, ”注意!“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Combo1.Text = ”“ Exit Sub Else Myjl.MoveNext End If Wend If Trim(Text2.Text)<> Trim(Text3.Text)Then MsgBox ”兩次輸入的密碼不一致,請(qǐng)重新設(shè)置 “, vbOKOnly + vbExclamation, ”注意!“ Text2.SetFocus Text2.Text = ”“ Text3.Text = ”“ Exit Sub Else Myjl.AddNew Myjl.Fields(0)= Text1.Text Myjl.Fields(1)= Text2.Text Myjl.Update Myjl.Close MsgBox ” 您已經(jīng)成功添加“ & Text1.Text & ” 這個(gè)用戶“, vbOKOnly + vbExclamation, ”注冊(cè)成功!“ End If End If End Sub

      Private Sub Command2_Click()Unload Me End Sub

      2.5.7.3修改用戶界面密碼代碼 Private Sub Command1_Click()Dim Sq1 As String '定義一個(gè)字符串變量

      Dim Myjl As New ADODB.Recordset '定義一個(gè)Recordset對(duì)象變量

      If Trim(Text1.Text)<> Trim(Text2.Text)Then MsgBox ”兩次輸入的密碼不一致,請(qǐng)重新設(shè)置 “, vbOKOnly + vbExclamation, ”注意!“ Text1.SetFocus Text1.Text = ”“ Text2.Text = ”“ Exit Sub Else Sq1 = ”select * from sys where Uname='“ & Text3.Text & ”'“ Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimistic If Myjl.EOF = True Then MsgBox ”沒(méi)有“ & Text3.Text & ” 這個(gè)用戶“, vbOKOnly + vbExclamation, ”“ Text3.SetFocus Else Myjl.Fields(1)= Text1.Text Myjl.Update Myjl.Close MsgBox ” 密碼修改成功“, vbOKOnly + vbExclamation, ”成功!" Unload Me End If End If End Sub

      Private Sub Command2_Click()Unload Me End Sub

      后記:經(jīng)過(guò)指導(dǎo)教師徐哲鑫老師的指點(diǎn),本人已經(jīng)竭盡全力對(duì)本系統(tǒng)進(jìn)行具體設(shè)計(jì),現(xiàn)已趨向完善,在此感謝老師的教導(dǎo)。

      參考文獻(xiàn)

      [1] 譚浩強(qiáng),薛淑斌,袁玫.Visual Basic程序設(shè)計(jì).北京清華大學(xué)學(xué)研大廈:北京清華大學(xué)出版社.2004 [2] 林陳雷,郭安源,葛曉東.Visual Basic教育信息系統(tǒng)開發(fā)實(shí)例導(dǎo)航.人民郵電出版社.2006 [3] 張小勤.一種改進(jìn)的數(shù)據(jù)庫(kù)連接的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流).2006年05期 [4] 田君.數(shù)字圖書館管理平臺(tái)系統(tǒng)的研究[D].天津工業(yè)大學(xué).2004年

      [5] 陳志泊.數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用教程.北京市崇文區(qū)夕照寺街14號(hào).人民郵電出版社.2011,72-1128

      第二篇:VB圖書管理系統(tǒng)

      圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      目錄

      一、序言······················································································································4

      二、需求分析說(shuō)明書 ····································································································4 2.1系統(tǒng)介紹..................................................................................................................................................4 2.2系統(tǒng)面向的用戶群體..............................................................................................................................4 2.3系統(tǒng)的功能性需求..................................................................................................................................4 2.4系統(tǒng)的非功能性需求..............................................................................................................................5 2.4.1用戶界面需求...................................................................................................................................5 2.4.2軟硬件環(huán)境需求...............................................................................................................................5 2.4.3軟件質(zhì)量需求...................................................................................................................................5

      三、可行性分析報(bào)告 ····································································································5 3.1技術(shù)可行性..............................................................................................................................................5 3.2人員可能性..............................................................................................................................................5 3.3時(shí)間、設(shè)備可能性..................................................................................................................................5 3.4系統(tǒng)工作量..............................................................................................................................................5 3.5代碼工作量..............................................................................................................................................5 3.6文檔要求..................................................................................................................................................5

      四、開發(fā)環(huán)境與項(xiàng)目規(guī)劃 ·····························································································5 4.1開發(fā)環(huán)境..................................................................................................................................................5 4.2項(xiàng)目規(guī)劃與管理......................................................................................................................................5 4.2.1開發(fā)人員安排...................................................................................................................................5 4.2.2開發(fā)進(jìn)度安排...................................................................................................................................6

      五、軟件界面設(shè)計(jì)標(biāo)準(zhǔn)與規(guī)范 ······················································································6 5.1編寫目的..................................................................................................................................................6 5.2界面設(shè)計(jì)思想..........................................................................................................................................6 5.3界面設(shè)計(jì)原則..........................................................................................................................................6 5.4界面設(shè)計(jì)樣式..........................................................................................................................................6 5.5常見提示信息樣式..................................................................................................................................6 5.6常見錯(cuò)誤信息樣式..................................................................................................................................7 5.7其他界面約定..........................................................................................................................................7

      六、軟件編碼設(shè)計(jì)標(biāo)準(zhǔn)與規(guī)范 ······················································································7 6.1對(duì)象命名約定..........................................................................................................................................7 6.2常量和變量命名約定..............................................................................................................................8 6.3結(jié)構(gòu)化編碼約定......................................................................................................................................8 6.4數(shù)據(jù)源的約定..........................................................................................................................................9 6.5數(shù)據(jù)庫(kù)訪問(wèn)約定......................................................................................................................................9 6.6其他約定..................................................................................................................................................9

      七、數(shù)據(jù)庫(kù)分析與設(shè)計(jì)·································································································10 7.1數(shù)據(jù)庫(kù)環(huán)境說(shuō)明.......................................................................................................................................10 7.2數(shù)據(jù)庫(kù)命名標(biāo)準(zhǔn)與規(guī)范...........................................................................................................................10 7.3數(shù)據(jù)庫(kù)邏輯設(shè)計(jì).......................................................................................................................................10 7.4數(shù)據(jù)庫(kù)物理設(shè)計(jì).......................................................................................................................................10 7.4.1表、視圖匯總...................................................................................................................................10 7.4.2各表、視圖設(shè)計(jì)詳解.......................................................................................................................11

      八、軟件體系結(jié)構(gòu)設(shè)計(jì)說(shuō)明書 ······················································································15 8.1系統(tǒng)概述..................................................................................................................................................15 8.2設(shè)計(jì)約束..................................................................................................................................................15 8.3設(shè)計(jì)策略..................................................................................................................................................15 8.4系統(tǒng)概要設(shè)計(jì)說(shuō)明書..............................................................................................................................16 8.4.1圖例說(shuō)明...........................................................................................................................................16 8.4.2系統(tǒng)總體結(jié)構(gòu)圖...............................................................................................................................16 8.5系統(tǒng)詳細(xì)設(shè)計(jì)說(shuō)明書..............................................................................................................................17 8.5.1系統(tǒng)模塊匯總...................................................................................................................................17 8.5.2系統(tǒng)核心模塊詳解...........................................................................................................................18 8.5.3系統(tǒng)模塊詳解...................................................................................................................................28

      九、用戶界面設(shè)計(jì)報(bào)告·································································································42 9.1界面設(shè)計(jì)規(guī)范..........................................................................................................................................42 9.2系統(tǒng)窗體匯總..........................................................................................................................................42 9.3主界面設(shè)計(jì)..............................................................................................................................................43 9.4子界面設(shè)計(jì)..............................................................................................................................................43 9.5界面資源設(shè)計(jì)..........................................................................................................................................44

      十、軟件測(cè)試分析報(bào)告·································································································44 10.1測(cè)試范圍與主要內(nèi)容............................................................................................................................44 10.2測(cè)試方法................................................................................................................................................44 10.3測(cè)試報(bào)告................................................................................................................................................44 10.4改進(jìn)建議與措施....................................................................................................................................45

      十一、軟件使用說(shuō)明書·································································································45 11.1軟件概述.................................................................................................................................................45 11.2使用說(shuō)明.................................................................................................................................................45 11.2.1系統(tǒng)登陸..........................................................................................................................................45 11.2.2系統(tǒng)退出..........................................................................................................................................46 11.2.3圖書類別管理..................................................................................................................................46 11.2.4圖書信息管理..................................................................................................................................48 11.2.5查詢圖書信息..................................................................................................................................48 11.2.6讀者類別管理..................................................................................................................................49 11.2.7讀者信息管理..................................................................................................................................49 11.2.8查詢讀者信息..................................................................................................................................50 11.2.9借書管理..........................................................................................................................................50 11.2.10還書管理........................................................................................................................................50 參考資料······················································································································51

      一、序言

      圖書管理系統(tǒng)的設(shè)計(jì)與推出是多方面原因促成的,比如學(xué)校的圖書管理,日常管理工作 1 都是人工操作,歷史數(shù)據(jù)很難保存和利用。而其他的小型圖書館大多如此。針對(duì)這種狀況,我計(jì)劃開發(fā)一個(gè)面向小型圖書館的圖書管理系統(tǒng),實(shí)現(xiàn)對(duì)人員、物流的全面管理,以幫助這些圖書館早日實(shí)現(xiàn)書店管理信息化。

      為了系統(tǒng)的順利開發(fā)和維護(hù),特編制如下技術(shù)文檔:

      想要全部 請(qǐng)加QQ:76536415 專業(yè)設(shè)計(jì) 畢業(yè)論文

      第三篇:vb圖書管理系統(tǒng)源代碼

      Borbook:

      Public sqltxt As String Public rno As String

      '保存讀者借書證號(hào) Public bno As String

      '保存讀者圖書編號(hào) Public xm As String

      '保存讀者姓名 Public dw As String

      '保存讀者單位 Public rs As ADODB.Recordset

      Private Sub Comm1_Click()

      rno = Trim(Text1(0).Text)

      If rno = “" Then

      MsgBox ”借書證號(hào)不能為空,請(qǐng)輸入“, vbOKOnly, ”信息提示“

      Comm2.Enabled = False

      Else

      sqltxt = ”select * from reader where 借書證號(hào)='“ + rno + ”'“

      Set rs = exesql(sqltxt)

      If rs.RecordCount = 0 Then

      MsgBox ”該讀者未登記,不能借書“, vbOKOnly, ”信息提示“

      Comm2.Enabled = False

      Else

      Text2(0).Text = rs.Fields(”姓名“)

      Text2(1).Text = str(rs.Fields(”借書總數(shù)“))

      Text2(2).Text = str(rs.Fields(”借書總數(shù)“)rs.Fields(”已借書數(shù)“))

      End If

      End If

      End If End Sub

      Private Sub retCom_Click()

      Unload Me End Sub

      Private Sub Form_Load()

      Comm2.Enabled = False End Sub

      Edbook:

      Private Sub DataGrid1_Click()

      End Sub

      Private Sub Form_Load()

      '說(shuō)明:為什么使用recs,而不直接使用adodc1.recordset.recordcount?在調(diào)用edbook1窗體添加一個(gè)記錄(確定)后,再

      '返回到本表單,若不在Form_Activate()事件過(guò)程中調(diào)用adodc1.refresh進(jìn)行刷新,adodc1.recordset.recordcount值

      '仍未增1,這樣調(diào)用encomm過(guò)程時(shí)出錯(cuò);若在Form_Activate()事件過(guò)程中調(diào)用adodc1.refresh進(jìn)行刷新,'adodc1.recordset.recordcount值增1了,調(diào)用encomm過(guò)程時(shí)也正確,但返回本窗體時(shí),當(dāng)前行總是第一行,顯然也不行,'因?yàn)橛脩粼谔砑踊蛐薷暮笙M赿atagrid1中顯示當(dāng)前操作的那條記錄.recs = Adodc1.Recordset.RecordCount End Sub

      Private Sub Form_Activate()

      DataGrid1.SetFocus

      Call encomm End Sub

      Private Sub Comm1_Click()

      flag = 1

      edbook1.Show vbModal End Sub

      Private Sub Comm2_Click()

      flag = 2

      edbook1.Show vbModal End Sub

      Private Sub Comm3_Click()

      If MsgBox(”真的要?jiǎng)h除[“ + Trim(Adodc1.Recordset.Fields(”書名“))+ ”]嗎?“, vbYesNo, ”信息提示“)= vbYes Then

      Adodc1.Recordset.Delete

      recs = recs1

      Call encomm

      End If End Sub

      Private Sub Comm4_Click()

      Unload Me End Sub

      Private Sub encomm()

      If recs = 0 Then

      Comm2.Enabled = False

      Comm3.Enabled = False

      Else

      Comm2.Enabled = True

      Comm3.Enabled = True

      End If End Sub

      Edlev1:

      Dim cond As String

      Private Sub Form_Load()

      If flag = 2 Then

      Text1(0).Text = edlev.Adodc1.Recordset.Fields(”級(jí)別“)

      Text1(1).Text = edlev.Adodc1.Recordset.Fields(”過(guò)期罰款“)

      Text1(2).Text = edlev.Adodc1.Recordset.Fields(”借書總數(shù)“)

      Text1(3).Text = edlev.Adodc1.Recordset.Fields(”借書天數(shù)“)

      End If End Sub

      Private Sub Comm1_Click()

      If Trim(Text1(0).Text)= ”“ Or Trim(Text1(1).Text)= ”“ Or Trim(Text1(2).Text)= ”“ Or _

      Trim(Text1(3).Text)= ”“ Then

      MsgBox ”數(shù)據(jù)項(xiàng)不全,請(qǐng)重新設(shè)置“, vbOKOnly, ”信息提示“

      Text1(0).SetFocus

      Exit Sub

      End If

      If flag = 1 Then '添加操作

      If edlev.Adodc1.Recordset.RecordCount > 0 Then '原記錄個(gè)數(shù)大于0

      cond = ”級(jí)別='“ + Trim(Text1(0).Text)+ ”'“

      edlev.Adodc1.Recordset.MoveFirst

      '每次從頭開始查找

      edlev.Adodc1.Recordset.Find(cond)

      If Not edlev.Adodc1.Recordset.EOF()Then

      MsgBox ”存在完全相同的記錄“, vbOKOnly, ”信息提示“

      Text1(0).SetFocus

      Exit Sub

      End If

      End If

      edlev.Adodc1.Recordset.AddNew

      edlev.Adodc1.Recordset.Fields(”級(jí)別“)= Trim(Text1(0).Text)

      edlev.Adodc1.Recordset.Fields(”過(guò)期罰款“)= Val(Trim(Text1(1).Text))

      edlev.Adodc1.Recordset.Fields(”借書總數(shù)“)= Val(Trim(Text1(2).Text))

      edlev.Adodc1.Recordset.Fields(”借書天數(shù)“)= Val(Trim(Text1(3).Text))

      edlev.Adodc1.Recordset.Update

      recs = recs + 1

      Else

      '修改操作

      n = edlev.Adodc1.Recordset.AbsolutePosition

      cond = ”級(jí)別='“ + Trim(Text1(0).Text)+ ”'“

      edlev.Adodc1.Recordset.MoveFirst '每次從頭開始查找

      edlev.Adodc1.Recordset.Find(cond)

      If Not edlev.Adodc1.Recordset.EOF()And edlev.Adodc1.Recordset.AbsolutePosition <> n Then

      MsgBox ”存在完全相同的記錄“, vbOKOnly, ”信息提示“

      edlev.Adodc1.Recordset.MoveFirst

      '這兩個(gè)語(yǔ)句恢復(fù)原記錄位置

      edlev.Adodc1.Recordset.Move(n1)

      edlev.Adodc1.Recordset.Fields(”級(jí)別“)= Trim(Text1(0).Text)

      edlev.Adodc1.Recordset.Fields(”過(guò)期罰款“)= Val(Trim(Text1(1).Text))

      edlev.Adodc1.Recordset.Fields(”借書總數(shù)“)= Val(Trim(Text1(2).Text))

      edlev.Adodc1.Recordset.Fields(”借書天數(shù)“)= Val(Trim(Text1(3).Text))

      edlev.Adodc1.Recordset.Update

      End If

      Unload Me End Sub

      Private Sub Comm2_Click()

      Unload Me End Sub

      Edreader:

      Private Sub DataGrid1_Click()

      End Sub

      Private Sub Form_Load()

      recs = Adodc1.Recordset.RecordCount End Sub

      Private Sub Form_Activate()

      DataGrid1.SetFocus

      Call encomm End Sub

      Private Sub Comm1_Click()

      flag = 1

      edreader1.Show vbModal End Sub

      Private Sub Comm2_Click()

      flag = 2

      edreader1.Show vbModal End Sub

      Private Sub Comm3_Click()

      If MsgBox(”真的要?jiǎng)h除[“ + Trim(Adodc1.Recordset.Fields(”姓名“))+ ”]嗎?“, vbYesNo, ”信息提示“)= vbYes Then

      Adodc1.Recordset.Delete

      recs = recs1

      Call encomm

      End If End Sub Private Sub Comm4_Click()

      Adodc1.Recordset.UpdateBatch

      Adodc1.Recordset.Close

      Unload Me End Sub Private Sub encomm()

      If recs = 0 Then

      Comm2.Enabled = False

      Comm3.Enabled = False

      Else

      Comm2.Enabled = True

      Comm3.Enabled = True

      End If End Sub

      Edrec1:

      Dim cond As String

      Private Sub Form_Load()

      Label1.Caption = cap

      If flag = 1 Then

      Text1.Text = ”“

      Else

      Text1.Text = edrec.Adodc1.Recordset.Fields(”fn“)

      End If End Sub

      Private Sub Comm1_Click()

      If Trim(Text1.Text)= ”“ Then

      MsgBox ”數(shù)據(jù)項(xiàng)不能為空,請(qǐng)重新設(shè)置“, vbOKOnly, ”信息提示“

      Text1.SetFocus

      Exit Sub

      End If

      If flag = 1 Then '添加操作

      If edrec.Adodc1.Recordset.RecordCount > 0 Then '原記錄個(gè)數(shù)大于0

      cond = ”fn='“ + Trim(Text1.Text)+ ”'“

      edrec.Adodc1.Recordset.MoveFirst

      '每次從頭開始查找

      edrec.Adodc1.Recordset.Find(cond)

      If Not edrec.Adodc1.Recordset.EOF()Then

      MsgBox ”存在完全相同的記錄“, vbOKOnly, ”信息提示“

      Text1.SetFocus

      Exit Sub

      End If

      End If

      edrec.Adodc1.Recordset.AddNew

      edrec.Adodc1.Recordset.Fields(”fn“)= Trim(Text1.Text)

      edrec.Adodc1.Recordset.Update

      recs = recs + 1

      Else

      '修改操作

      n = edrec.Adodc1.Recordset.AbsolutePosition

      cond = ”fn='“ + Trim(Text1.Text)+ ”'“

      edrec.Adodc1.Recordset.MoveFirst '每次從頭開始查找

      edrec.Adodc1.Recordset.Find(cond)

      If Not edrec.Adodc1.Recordset.EOF()And edrec.Adodc1.Recordset.AbsolutePosition <> n Then

      MsgBox ”存在完全相同的記錄“, vbOKOnly, ”信息提示“

      edrec.Adodc1.Recordset.MoveFirst

      '這兩個(gè)語(yǔ)句恢復(fù)原記錄位置

      edrec.Adodc1.Recordset.Move(n1)

      edrec.Adodc1.Recordset.Fields(”fn“)= Trim(Text1.Text)

      edrec.Adodc1.Recordset.Update

      End If

      Unload Me End Sub

      Private Sub Comm2_Click()

      Unload Me End Sub

      Menu:

      Private Sub MDIForm_Load()

      If Not userlevel = ”系統(tǒng)管理員“ Then

      menu21.Enabled = False

      menu31.Enabled = False

      menu41.Enabled = False

      menu42.Enabled = False

      End If End Sub

      Private Sub menu11_Click()

      borbook.Show vbModal End Sub

      Private Sub menu12_Click()

      retbook.Show vbModal End Sub

      Private Sub menu13_Click()

      End End Sub

      Private Sub menu21_Click()

      edbook.Show vbModal End Sub

      Private Sub menu22_Click()

      qubook.Show vbModal End Sub

      Private Sub menu31_Click()

      edreader.Show vbModal End Sub

      Private Sub menu32_Click()

      qureader.Show vbModal End Sub

      Private Sub menu41_Click()

      setuser.Show vbModal End Sub

      Private Sub menu42_Click()

      If MsgBox(”本功能要清除系統(tǒng)中所有數(shù)據(jù),真的初始化嗎?“, vbYesNo, ”確認(rèn)初始化操作“)

      = vbYes Then

      Call deldata(”book“)Call deldata(”reader“)Call deldata(”borrow“)Call deldata(”rlevel“)

      Call deldata(”depart“)

      Call deldata(”press“)

      Call deldata(”oper“)

      MsgBox ”系統(tǒng)初始化完畢,下次只能以1234/1234(用戶名/口令)進(jìn)入本系統(tǒng)“, vbOKOnly, ”信息提示“

      End If End Sub

      Pass:

      Public n As Integer

      Private Sub Command1_Click()

      Dim mrc As ADODB.Recordset

      txtsql = ”select * from oper where 用戶名='“ & _

      Trim$(Text1(0).Text)& ”'“ & ” And 口令 = '“ & Trim$(Text1(1).Text)+ ”'“

      Set mrc = exesql(txtsql)

      If mrc.RecordCount = 0 Then '未找到用戶記錄

      n = n + 1

      If n < 3 Then

      MsgBox ”沒(méi)有這個(gè)用戶,繼續(xù)登錄“, vbOKOnly + vbExclamation, ”信息提示“

      Text1(0).Text = ”“

      Text1(1).Text = ”“

      Text1(0).SetFocus

      Else

      MsgBox ”已登錄失敗三次,退出系統(tǒng)“, vbOKOnly + vbExclamation, ”信息提示“

      mrc.Close

      Unload Me

      End If

      Else

      '找到合法用戶記錄

      userlevel = Trim(mrc.Fields(”級(jí)別“))

      mrc.Close

      Unload Me

      menu.Show '調(diào)用menu窗體

      End If End Sub

      Private Sub Command2_Click()

      Unload Me End Sub

      Private Sub Form_Load()

      n = 0

      'n保存登錄的次數(shù) End Sub

      Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

      Call endata(KeyAscii)End Sub

      Qubook:

      Private Sub Comm1_Click()

      Dim sqltxt As String

      If Adodc1.Recordset.Fields(”借否“)= ”借“ Then

      no = Trim(Adodc1.Recordset.Fields(”圖書編號(hào)“))

      sqltxt = ”select * from borrow where 圖書編號(hào)='“ + no + ”'“

      Set rs = exesql(sqltxt)

      If rs.RecordCount = 0 Then

      MsgBox ”該圖書沒(méi)有借書記錄“, vbOKOnly, ”信息提示“

      Else

      MsgBox ”圖書編號(hào):“ + no + Chr(10)+ Chr(13)+ _

      ”書

      名:“ + Trim(rs.Fields(”書名“))+ Chr(10)+ Chr(13)+ _

      ”借 書 人:“ + Trim(rs.Fields(”姓名“))+ Chr(10)+ Chr(13)+ _

      ”單

      位:“ + Trim(rs.Fields(”單位“))+ Chr(10)+ Chr(13)+ _

      ”借書日期:“ + Format(rs.Fields(”借書日期“), ”yyyy.mm.dd“), vbOKOnly, ”查找結(jié)果“

      End If

      rs.Close

      Else

      MsgBox ”該書沒(méi)有外借,不能顯示借書人“, vbOKOnly, ”信息提示“

      End If End Sub

      Private Sub Comm2_Click()

      Unload Me End Sub

      Private Sub Form_Activate()

      Adodc1.Refresh

      DataGrid1.Refresh

      DataGrid1.SetFocus

      Call encomm End Sub

      Private Sub selcmd1_Click()'設(shè)置條件確定

      Dim str As String

      str = ”“

      '條件表達(dá)式

      If Trim(Text1(0).Text)<> ”“ Then

      If str = ”“ Then

      str = ”圖書編號(hào)='“ + Trim(Text1(0).Text)+ ”'“

      Else

      str = str + ” and 圖書編號(hào)='“ + Trim(Text1(0).Text)+ ”'“

      End If

      End If

      If Trim(Text1(1).Text)<> ”“ Then

      If str = ”“ Then

      str = ”書名='“ + Trim(Text1(1).Text)+ ”'“

      Else

      str = str + ” and 書名='“ + Trim(Text1(1).Text)+ ”'“

      End If

      End If

      If Trim(Text1(2).Text)<> ”“ Then

      If str = ”“ Then

      str = ”作者='“ + Trim(Text1(2).Text)+ ”'“

      Else

      str = str + ” and 作者='“ + Trim(Text1(2).Text)+ ”'“

      End If

      End If

      If Trim(Text1(3).Text)<> ”“ Then

      If str = ”“ Then

      str = ”出版社='“ + Trim(Text1(3).Text)+ ”'“

      Else

      str = str + ” and 出版社='“ + Trim(Text1(3).Text)+ ”'“

      End If

      End If

      If Trim(Text1(4).Text)<> ”“ Then

      If str = ”“ Then

      str = ”借否='“ + Trim(Text1(4).Text)+ ”'“

      Else

      str = str + ” and 借否='“ + Trim(Text1(4).Text)+ ”'“

      End If

      End If

      If Trim(Text1(5).Text)<> ”“ Then

      If str = ”“ Then

      str = ”定價(jià)=“ + Trim(Text1(5).Text)

      Else

      str = str + ” and 定價(jià)=“ + Trim(Text1(5).Text)

      End If

      End If

      If str <> ”“ Then

      Adodc1.RecordSource = ”select * from book where “ + str

      Adodc1.Refresh

      Else

      Adodc1.RecordSource = ”select * from book“

      Adodc1.Refresh

      End If

      If Adodc1.Recordset.RecordCount = 0 Then

      MsgBox ”沒(méi)有任何滿足條件的記錄“, vbOKOnly, ”信息提示“

      End If

      Call encomm End Sub

      Private Sub selcmd2_Click()'設(shè)置條件重置

      Text1(0).Text = ”“

      Text1(1).Text = ”“

      Text1(2).Text = ”“

      Text1(3).Text = ”“

      Text1(4).Text = ”“

      Text1(5).Text = ”“ End Sub

      Private Sub encomm()'自定義子過(guò)程:判斷Adodc1中是否存在記錄

      If Adodc1.Recordset.RecordCount = 0 Then

      Comm1.Enabled = False

      Else

      Comm1.Enabled = True

      End If End Sub

      Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

      Call endata(KeyAscii)End Sub

      Qureader:

      Private Sub Comm1_Click()

      Dim strn As String

      Dim sqltxt As String

      no = Trim(Adodc1.Recordset.Fields(”借書證號(hào)“))

      sqltxt = ”select * from borrow where 借書證號(hào)='“ + no + ”'“

      Set rs = exesql(sqltxt)

      If rs.RecordCount = 0 Then

      MsgBox ”該讀者沒(méi)有借任何圖書“, vbOKOnly, ”信息提示“

      Else

      rs.MoveFirst

      strn = ”書

      名(借書日期)“ + Chr(10)+ Chr(13)

      Do While Not rs.EOF()

      strn = strn & Trim(rs.Fields(”書名“))& ”(“ & Format(rs.Fields(”借書日期“), ”yyyy.mm.dd“)& ”)“ + Chr(10)+ Chr(13)

      rs.MoveNext

      Loop

      MsgBox strn, vbOKOnly, ”列所借圖書清單“

      rs.Close

      End If End Sub

      Private Sub Comm2_Click()

      Unload Me End Sub

      Private Sub Form_Activate()

      Adodc1.Refresh

      DataGrid1.Refresh

      DataGrid1.SetFocus

      Call encomm End Sub

      Private Sub selcmd1_Click()'設(shè)置條件確定

      Dim str As String

      str = ”“

      '條件表達(dá)式

      If Trim(Text1(0).Text)<> ”“ Then

      If str = ”“ Then

      str = ”借書證號(hào)='“ + Trim(Text1(0).Text)+ ”'“

      Else

      str = str + ” and 借書證號(hào)='“ + Trim(Text1(0).Text)+ ”'“

      End If

      End If

      If Trim(Text1(1).Text)<> ”“ Then

      If str = ”“ Then

      str = ”姓名='“ + Trim(Text1(1).Text)+ ”'“

      Else

      str = str + ” and 姓名='“ + Trim(Text1(1).Text)+ ”'“

      End If

      End If

      If Trim(Text1(2).Text)<> ”“ Then

      If str = ”“ Then

      str = ”單位='“ + Trim(Text1(2).Text)+ ”'“

      Else

      str = str + ” and 單位='“ + Trim(Text1(2).Text)+ ”'“

      End If

      End If

      If Trim(Text1(3).Text)<> ”“ Then

      If str = ”“ Then

      str = ”級(jí)別='“ + Trim(Text1(3).Text)+ ”'“

      Else

      str = str + ” and 級(jí)別='“ + Trim(Text1(3).Text)+ ”'“

      End If

      End If

      If Trim(Text1(4).Text)<> ”“ Then

      If str = ”“ Then

      str = ”性別='“ + Trim(Text1(4).Text)+ ”'“

      Else

      str = str + ” and 性別='“ + Trim(Text1(4).Text)+ ”'“

      End If

      End If

      If str <> ”“ Then

      Adodc1.RecordSource = ”select * from reader where “ + str

      Adodc1.Refresh

      Else

      Adodc1.RecordSource = ”select * from reader“

      Adodc1.Refresh

      End If

      If Adodc1.Recordset.RecordCount = 0 Then

      MsgBox ”沒(méi)有任何滿足條件的記錄“, vbOKOnly, ”信息提示“

      End If

      Call encomm End Sub

      Private Sub selcmd2_Click()'設(shè)置條件重置

      Text1(0).Text = ”“

      Text1(1).Text = ”“

      Text1(2).Text = ”“

      Text1(3).Text = ”“

      Text1(4).Text = ”“ End Sub

      Private Sub encomm()'自定義子過(guò)程:判斷Adodc1中是否存在記錄

      If Adodc1.Recordset.RecordCount = 0 Then

      Comm1.Enabled = False

      Else

      Comm1.Enabled = True

      End If End Sub

      Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

      Call endata(KeyAscii)End Sub

      Retbook:

      Public rno As String Public bno As String

      Private Sub Comm1_Click()

      bno = Trim(Text1.Text)

      If bno <> ”“ Then

      Dim sqltxt As String

      sqltxt = ”select * from borrow where 圖書編號(hào)='“ + bno + ”'“

      Set brs = exesql(sqltxt)

      If brs.RecordCount = 0 Then

      MsgBox ”該書不是從本圖書館所借的,不能歸還!“, vbOKOnly, ”信息提示“

      Else

      If Trim(brs.Fields(”借書證號(hào)“))<> rno Then

      If rno <> ”“ Then

      '另一讀者還書,自動(dòng)列出上一個(gè)還書人的罰款單

      dstr = ”罰款單“ + Chr(10)+ Chr(13)

      dstr = dstr & ”姓名:“ & Trim(Text2(1).Text)+ ”(“ + rno + ”)罰款總額:“ & str(Text2(4).Text)& ”元“

      MsgBox dstr, vbOKOnly, ”列罰款單“

      End If

      rno = Trim(brs.Fields(”借書證號(hào)“))

      sqltxt = ”select * from book where 圖書編號(hào)='“ + bno + ”'“ '處理圖書記錄

      Set bs = exesql(sqltxt)

      bs.Fields(”借否“)= ”否“

      bs.Update

      sqltxt = ”select * from reader where 借書證號(hào)='“ + rno + ”'“ '處理讀者記錄

      Set rs = exesql(sqltxt)

      rs.Fields(”已借書數(shù)“)= rs.Fields(”已借書數(shù)“)rs.Fields(”已借書數(shù)“)

      If(Datebrs.Fields(”借書日期“)1

      rs.Update

      If(Datebrs.Fields(”借書日期“)1

      Call encomm

      End If End Sub

      Private Sub Comm4_Click()

      Unload Me End Sub

      Private Sub encomm()

      If recs = 0 Then

      Comm2.Enabled = False

      Comm3.Enabled = False

      Else

      Comm2.Enabled = True

      Comm3.Enabled = True

      End If End Sub

      Setuser1:

      Dim cond As String

      Private Sub Form_KeyPress(KeyAscii As Integer)

      If KeyAscii = 13 Then

      SendKeys ”{TAB}“

      End If End Sub

      Private Sub Form_Load()

      If flag = 2 Then

      Text1(0).Text = setuser.Adodc1.Recordset.Fields(”用戶名“)

      Text1(1).Text = setuser.Adodc1.Recordset.Fields(”口令“)

      Combo1.Text = setuser.Adodc1.Recordset.Fields(”級(jí)別“)

      End If End Sub

      Private Sub Comm1_Click()

      If Trim(Text1(0).Text)= ”“ Or Trim(Text1(1).Text)= ”“ Or Trim(Combo1.Text)= ”“ Then

      MsgBox ”數(shù)據(jù)項(xiàng)不全,請(qǐng)重新設(shè)置“, vbOKOnly, ”信息提示“

      Text1(0).SetFocus

      Exit Sub

      End If

      If flag = 1 Then '添加操作

      If setuser.Adodc1.Recordset.RecordCount > 0 Then '原記錄個(gè)數(shù)大于0

      cond = ”級(jí)別='“ + Trim(Text1(0).Text)+ ”'“

      setuser.Adodc1.Recordset.MoveFirst

      '每次從頭開始查找

      setuser.Adodc1.Recordset.Find(cond)

      If Not setuser.Adodc1.Recordset.EOF()Then

      MsgBox ”存在完全相同的記錄“, vbOKOnly, ”信息提示“

      Text1(0).SetFocus

      Exit Sub

      End If

      End If

      setuser.Adodc1.Recordset.AddNew

      setuser.Adodc1.Recordset.Fields(”用戶名“)= Trim(Text1(0).Text)

      setuser.Adodc1.Recordset.Fields(”口令“)= Val(Trim(Text1(1).Text))

      setuser.Adodc1.Recordset.Fields(”級(jí)別“)= Trim(Combo1.Text)

      setuser.Adodc1.Recordset.Update

      recs = recs + 1

      Else

      '修改操作

      n = setuser.Adodc1.Recordset.AbsolutePosition

      cond = ”級(jí)別='“ + Trim(Text1(0).Text)+ ”'“

      setuser.Adodc1.Recordset.MoveFirst '每次從頭開始查找

      setuser.Adodc1.Recordset.Find(cond)

      If Not setuser.Adodc1.Recordset.EOF()And setuser.Adodc1.Recordset.AbsolutePosition <> n Then

      MsgBox ”存在完全相同的記錄“, vbOKOnly, ”信息提示“

      setuser.Adodc1.Recordset.MoveFirst

      '這兩個(gè)語(yǔ)句恢復(fù)原記錄位置

      setuser.Adodc1.Recordset.Move(n1)

      setuser.Adodc1.Recordset.Fields(”用戶名“)= Trim(Text1(0).Text)

      setuser.Adodc1.Recordset.Fields(”口令“)= Val(Trim(Text1(1).Text))

      setuser.Adodc1.Recordset.Fields(”級(jí)別“)= Trim(Combo1.Text)

      setuser.Adodc1.Recordset.Update

      End If

      Unload Me End Sub

      Private Sub Comm2_Click()

      Unload Me End Sub

      Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

      Call endata(KeyAscii)End Sub

      模塊:

      Public userlevel As String '保存用戶級(jí)別

      Public flag As Integer

      '用作記錄操作標(biāo)記

      Public tna As String

      '保存表名:用于調(diào)用edrec1窗體 Public cap As String

      '保存標(biāo)題名:用于調(diào)用edrec1窗體 Public recs As Integer

      '保存記錄集中記錄個(gè)數(shù)

      Sub main()

      pass.Show vbModal End Sub

      Public Function exesql(ByVal sql As String)As ADODB.Recordset

      sql = Trim$(sql)

      Set conn = New ADODB.Connection

      Set rst = New ADODB.Recordset

      conn.ConnectionString = ”DSN=Library;UID=sa;PWD=;“

      conn.Open

      Set rst.ActiveConnection = conn

      rst.LockType = adLockOptimistic

      rst.CursorType = adOpenKeyset

      rst.Open sql

      Set exesql = rst

      Set rst = Nothing

      Set conn = Nothing End Function

      Public Sub deldata(ByVal tn As String)刪除指定表中所有記錄,對(duì)于oper表添加一個(gè)系統(tǒng)用戶

      Dim sql As String

      sql = ”delete “ & Trim$(tn)

      Set conn = New ADODB.Connection

      conn.ConnectionString = ”DSN=Library;UID=sa;PWD=;“

      conn.Open

      conn.Execute sql

      If Trim(tn)= ”oper“ Then

      sql = ”insert oper values('1234','1234','系統(tǒng)管理員')“

      conn.Execute sql

      End If

      conn.Close End Sub Public Sub endata(Keyasc As Integer)

      If Keyasc = 13 Then

      SendKeys ”{TAB}" '將回車鍵轉(zhuǎn)換成Tab鍵

      End If End Sub

      第四篇:用C++編寫的圖書管理系統(tǒng)

      C++實(shí)現(xiàn)圖書管理系統(tǒng) 一:功能:

      1.需要有個(gè)系統(tǒng)管理員和普通讀者;

      2.對(duì)圖書庫(kù)存圖書的創(chuàng)建,添加,刪除,修改,查詢;

      3.對(duì)讀者借閱信息的創(chuàng)建,添加,刪除,修改,查詢; 4:普通讀者只有查詢上述兩個(gè)文件的權(quán)利;

      5:管理員可對(duì)普通讀者的創(chuàng)建,添加,修改,刪除; 6:管理員擁有上述全部權(quán)利;

      7:要與文件流進(jìn)行關(guān)聯(lián),如:創(chuàng)建,添加,讀取,刪除,查詢;

      第五篇:用c語(yǔ)言編寫一個(gè)成績(jī)管理系統(tǒng)

      程序說(shuō)明:有N個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包含學(xué)號(hào)(不重復(fù))、姓名、三門課的成績(jī)及平均成績(jī),試設(shè)計(jì)一學(xué)生成績(jī)管理系統(tǒng),使之能提供以下功能:(1)主菜單 學(xué)生成績(jī)管理系統(tǒng)

      1、成績(jī)錄入

      2、成績(jī)查詢

      3、成績(jī)統(tǒng)計(jì)

      4、退出(2)各菜單項(xiàng)功能 ① 成績(jī)錄入:輸入學(xué)生的學(xué)號(hào)、姓名及三門課的成績(jī); ② 成績(jī)查詢:(至少一種查詢方式)。v 按學(xué)號(hào)查詢學(xué)生記錄。v 查詢不及格學(xué)生的記錄。③成績(jī)統(tǒng)計(jì): v 計(jì)算學(xué)生的平均分; v 根據(jù)學(xué)生的平均分高低,對(duì)學(xué)生的數(shù)據(jù)進(jìn)行排序后輸出; v 對(duì)學(xué)生單科成績(jī)排序,輸出學(xué)生姓名與該科成績(jī); ④退出系統(tǒng):退出整個(gè)系統(tǒng)(即主菜單)。(3)結(jié)構(gòu)體數(shù)組: #define N 30 struct student {int num;/* 定義學(xué)號(hào)*/

      char name[20];/* 定義姓名*/

      float score[3];/* 定義存貯三門課成績(jī)的數(shù)組*/

      float average;/* 定義平均成績(jī)*/

      };struct student stu[N];/* 定義結(jié)構(gòu)體數(shù)組,存貯多個(gè)學(xué)生的記錄*/

      .#include

      #include

      #include

      struct student

      { int num;char name[20];

      float score[4];

      float average;

      }

      stu[10000];

      long t,max;

      bool unpass[1000];

      FILE *fstu=fopen(“stud.dat”,“at+”);

      int init()

      {

      int no,i;

      float s[4],ave;

      char nam[20];

      while(!feof(fstu))

      {

      fscanf(fstu,“%d”,&no);

      fscanf(fstu,“%s”,nam);

      fscanf(fstu,“%f%f%f%f”,&s[1],&s[2],&s[3],&ave);

      if(no>max)

      max=no;

      stu[no].num=no;

      strcpy(stu[no].name,nam);

      unpass[no]=false;f

      or(i=1;i<=3;i++)

      {

      stu[no].score[i]=s[i];

      if(s[i]<60)

      unpass[no]=true;

      }

      stu[no].average=ave;

      }

      }

      int stuinsert()

      {

      int no,i;

      float s[3],sum;

      char nam[20],cha;

      loop:printf(“請(qǐng)輸入學(xué)生的學(xué)號(hào)、姓名及三門課的成績(jī) n”);

      scanf(“%d”,&no);scanf(“%s”,nam);

      scanf(“%f%f%f/n”,&s[1],&s[2],&s[3]);

      if(no>max)

      max=no;

      stu[no].num=no;

      sum=0.0;

      strcpy(stu[no].name,nam);

      unpass[no]=false;

      for(i=1;i<=3;i++)

      {

      stu[no].score[i]=s[i];

      sum=sum+s[i];

      if(s[i]<60)

      unpass[no]=true;

      }

      stu[no].average=sum/3.0;

      fprintf(fstu,“n”);

      fprintf(fstu,“%d %s %f %f %f %fn”,stu[no].num,stu[no].name,stu[no].score[1],stu[no].score[2],stu[no].score[3],stu[no].average);

      }

      int find(int x)

      {

      long i,no;

      switch(x)

      {

      case 1:printf(“請(qǐng)輸入學(xué)號(hào):”);

      scanf(“%d”,&no);

      printf(“%d %s %f %f %f %fn”,stu[no].num,stu[no].name,stu[no].score[1], stu[no].score[2],stu[no].score[3],stu[no].average);

      break;

      case 2:for(i=1;i<=max;i++)if(unpass[i])printf(“%d %s %f %f %f %fn”,stu[i].num,stu[i].name,stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].average);

      break;

      }

      }

      int sort(int x)

      {

      extern int headprint(int x);

      student so[1000];

      int i,j,k,n;

      switch(x)

      {

      case 1:for(i=1;i<=max;i++)if(stu[i].num==i)printf(“%d %s %fn”,i,stu[i].name,stu[i].average);

      break;

      case 2:n=0;

      for(i=1;i<=max;i++)

      {

      j=1;if(stu[i].num==i)

      while((so[j].average>stu[i].average)&&(j<=n))

      j++;n++;

      for(k=n;k>=j;k--)so[k]=so[k-1];so[j]=stu[i];

      }

      for(i=1;i<=n;i++)

      printf(“%d %s %f %f %f %fn”,so[i].num,so[i].name,so[i].score[1],so[i].score[2],so[i].score[3],so[i].average);break;case 3:headprint(4);

      }

      }

      int othersort(int x)

      {

      extern int headprint(int x);

      student so[1000];

      int i,j,k,n,q;q=0;

      switch(x)

      {

      case 1:if(q==0)q=1;

      case 2:if(q==0)q=2;

      case 3:if(q==0)q=3;

      n=0;

      for(i=1;i<=max;i++)

      {

      j=1;

      if(stu[i].num==i)

      while((so[j].score[q]>stu[i].score[q])&&(j<=n))

      j++;

      n++;

      for(k=n;k>=j;k--)

      so[k]=so[k-1];

      so[j]=stu[i];

      }

      for(i=1;i<=n;i++)

      printf(“%d %s %fn”,so[i].num,so[i].name,so[i].score[q]);

      break;

      }

      }

      int select(int x)

      {

      extern int headprint(int x);

      int p;

      switch(x)

      {

      case 1:scanf(“%d”,&p);

      switch(p)

      {

      case 1:stuinsert();

      break;

      case 2:headprint(2);

      break;

      case 3:headprint(3);

      break;

      case 4:t=0;

      break;

      }

      break;

      case 2:scanf(“%d”,&p);

      find(p);

      break;

      case 3:scanf(“%d”,&p);

      sort(p);

      break;

      case 4:scanf(“%d”,&p);

      othersort(p);

      break;

      }

      }

      int headprint(int x)

      {

      switch(x)

      { case 1:printf(“學(xué)生成績(jī)管理系統(tǒng)n”);

      printf(“

      1、成績(jī)錄入n”);printf(“

      2、成績(jī)查詢n”);

      printf(“

      3、成績(jī)統(tǒng)計(jì)n”);

      printf(“

      4、退出n”);

      select(x);

      break;

      case 2:printf(“

      1、按學(xué)號(hào)查詢學(xué)生記錄n”);

      printf(“

      2、查詢不及格學(xué)生的記錄n”);

      select(x);

      break;

      case 3:printf(“

      1、計(jì)算學(xué)生的平均分n”);

      printf(“

      2、根據(jù)學(xué)生的平均分高低,對(duì)學(xué)生的數(shù)據(jù)進(jìn)行排序后輸出n”);

      5printf(“

      3、對(duì)學(xué)生單科成績(jī)排序,輸出學(xué)生姓名與該科成績(jī)n”);select(x);

      break;

      case 4:printf(“

      1、第一科n”);printf(“

      2、第二科n”);printf(“

      3、第三科n”);select(x);break;;

      }

      }

      int main()

      { max=0;t=1;

      init();

      loop:headprint(1);

      if(t!=0)

      goto loop;

      }

      下載用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)分解word格式文檔
      下載用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)分解.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        VB 圖書管理系統(tǒng) 畢業(yè)設(shè)計(jì) 外文翻譯

        學(xué)院畢業(yè)設(shè)計(jì)(論文)譯文專用紙 第 1 頁(yè) 現(xiàn)在送(畢業(yè)設(shè)計(jì)論文、文獻(xiàn)綜述、外文翻譯、開題報(bào)告、答辯PPT) 都可以直接下載 源程序因?yàn)闊o(wú)法上傳百度,需要者去空間留言 學(xué)院畢業(yè)......

        圖書管理系統(tǒng)用例圖

        圖書管理系統(tǒng) UML建模與設(shè)計(jì)模式 實(shí)驗(yàn)報(bào)告 計(jì)算機(jī)與信息工程學(xué)院 一、實(shí)驗(yàn)?zāi)康?在熟悉用例概念與應(yīng)用的基礎(chǔ)上,掌握用例模型的建立,包括: 1.掌握用例圖的建立。 2.掌握用例描述文......

        圖書管理系統(tǒng)大全

        圖書管理系統(tǒng)源代碼#include #include class Book{ // 書籍基類 protected: char Title[40]; // 書名 long Code; // 條碼 int Type; // 0表示書,1表示雜志 public: Book......

        圖書管理系統(tǒng)

        目錄 第一章 緒論 ..................................................................................................................................... 1 第二章......

        圖書管理系統(tǒng)

        圖書管理系統(tǒng) 背景:當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代,在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。......

        圖書管理系統(tǒng)

        七個(gè)文件 1. book.txt存放書籍2.borrower.txt存放借閱信息3.chenwen.txt 存放開始信息 4. mima.txt存放密碼 5.qianyan.txt前言 6.student.txt存放學(xué)生信息7. yuyue.txt......

        圖書管理系統(tǒng)

        經(jīng)過(guò)大學(xué)四年理論課程的學(xué)習(xí),以及校內(nèi)校外的實(shí)踐,極大的豐富了自身的理論基礎(chǔ),并且也具備了一些處理簡(jiǎn)單問(wèn)題的能力,但即將踏上社會(huì)的我深知這還遠(yuǎn)遠(yuǎn)不夠,因此我利用了畢業(yè)設(shè)計(jì)的......

        計(jì)算機(jī)圖書管理系統(tǒng)畢業(yè)論文(VB開發(fā),適用于院系)

        致謝 在本次畢業(yè)設(shè)計(jì)中,我從指導(dǎo)老師身上學(xué)到了很多東西。她認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。她無(wú)論在理論上還是在實(shí)踐中,都給與我很大的......