版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 宜賓職業(yè)技術學院</b></p><p><b> 畢業(yè)設計</b></p><p> 自行車租售系統的設計與實現</p><p> 系 部: 電子信息與控制工程系 </p><p> 專業(yè)名稱: 通信技術
2、 </p><p> 班 級: 通信11101 </p><p> 學生姓名: 向本坤 </p><p> 學 號: 201111764 </p><p> 指導教師: 屈珣
3、 </p><p> 2013 年 10 月 08日</p><p> 自行車租售系統的設計與實現</p><p><b> 摘 要</b></p><p> 隨著科技的迅速發(fā)展,各種管理系統已應用到社會的各個領域。各個大小企業(yè)無論規(guī)模如何,都充分意識到傳統的手工管理模式已經逐漸不能適應
4、時代的發(fā)展,為了更好的發(fā)展,紛紛開發(fā)適合自己的管理系統。</p><p> 通過自行車租車行管理系統這個平臺,可以實現租車行管理的信息化、網絡化、系統化、規(guī)范化,使工作人員從繁雜的數據查詢和統計中解脫出來,減少工作量。系統的主要功能包括:車輛類型管理、租車費用管理、車輛管理、客戶租車管理、售車管理、租車查詢等。</p><p> 本系統前臺主要使用C++作為開發(fā)語言,后臺使用SqlSe
5、rver作為數據庫管理系統,開發(fā)環(huán)境是VC6.0,基于vc的自行車租售系統。</p><p> 關鍵詞:租車行,C++,SQLSERVER2000</p><p><b> 目 錄</b></p><p><b> 1章 前 言4</b></p><p><b> 1.1課題
6、背景4</b></p><p> 1.1.1目前我國自行車租售系統的現狀4</p><p> 1.1.2自行車租售系統建設的好處5</p><p> 1.1.3開發(fā)管理信息系統的幾點建議5</p><p> 1.2相關技術介紹5</p><p> 1.2.1結構化生命周期法簡介5<
7、;/p><p> 1.2.2開發(fā)技術——快速原型法簡介7</p><p> 1.2.3、ADO的背景知識7</p><p> 1.2.4本系統開發(fā)方法的選擇7</p><p><b> 2 系統分析8</b></p><p> 2.1可行性研究8</p><p
8、> 2.1.1經濟可行性8</p><p> 2.1.2技術可行性8</p><p> 2.1.3操作可行性9</p><p> 2.2、系統的詳細調查9</p><p> 2.2.1系統詳細設計原理9</p><p> 2.2.2自行車租售系統的設計原理和應用10</p>
9、<p> 3 系統需求分析11</p><p> 3.1 任務概述11</p><p> 3.2 需求分析11</p><p> 3.3 功能分析11</p><p> 3.4性能分析11</p><p> 3.5安全管理分析12</p><p><b&
10、gt; 4 系統設計13</b></p><p> 4.1 概要設計13</p><p> 4.2詳細設計13</p><p> 4.2.1 開發(fā)環(huán)境13</p><p> 4.2.2 系統功能圖13</p><p> 4.2.3數據庫表結構設計14</p><p
11、> 4.3數據庫的詳細設計15</p><p> 4.3.1 數據流圖16</p><p> 4.3.2在本系統中使用ADO的過程及詳解添加ADO數據源17</p><p> 5 程序的詳細設計19</p><p> 5.1程序設計19</p><p> 5.2程序流程19</p&g
12、t;<p> 5.2.1 連接數據庫21</p><p> 5.2.2 登陸系統22</p><p> 5.2.3 主界面24</p><p> 5.3 模塊設計30</p><p> 5.3.1 系統管理模塊30</p><p> 5.3.2 租車信息管理模塊32</p&g
13、t;<p> 5.3.3 車輛信息模塊36</p><p> 5.3.3 事故信息管理模塊37</p><p> 5.3.4 售車信息管理模塊38</p><p> 第6章 結論41</p><p> 6.1 關鍵技術41</p><p> 6.2 軟件測試41</p>
14、;<p><b> 6.3 總結41</b></p><p><b> 謝 辭42</b></p><p><b> 參考文獻43</b></p><p> 自行車租售系統的設計與實現</p><p><b> 1 前 言</b
15、></p><p><b> 1.1課題背景</b></p><p> 計算機網絡技術的發(fā)展,給信息時代的人們帶來了很大的方便。如今在Internet上,隨處都可以看到種類繁多的信息管理系統,比如,企業(yè)辦公化自動管理系統,電子商務系統,企業(yè)教務管理系統等等。隨著信息技術的日益發(fā)展已深入到社會的各個角落,各個大的企業(yè),都充分意識到傳統的手工管理模式已經逐漸不能
16、適應時代的發(fā)展,為了更好的發(fā)展,紛紛開發(fā)適合自己的管理系統。不管大企業(yè)。各種類型的小企業(yè)也是如此,自行車租車行的老板也深深意思到這一點,以前管理大多為手工管理,效率低、易出錯、手續(xù)繁瑣,而且耗費大量的人力,物力,財力。他們希望有一個適合自己的管理系統,能夠實現車輛管理,客戶管理,租車還車管理,租車查詢等功能。通過此系統,店老板可以對自行車租車行的各項情況實行電腦化管理,這樣可以提高工作效率,也使得自行車租車行管理所需的各項信息能方便快速
17、進行錄入,查詢,刪除和更新,對相應關鍵數據也能夠方便的統計結果。 </p><p> 1.1.1目前我國自行車租售系統的現狀</p><p> 由于種種原因,我國的信息資源建設水平遠遠落后于信息基礎設施的建設的水平。長期以來,我國信息資源的開發(fā)管理未能與信息資源的增長同步進行。我國有豐富的原始信息資源,但在此基礎上再生的二次信息系統和數據庫產業(yè)的規(guī)模和市場占有率、使用率相當低,大量的有
18、價值的信息未能進一步加工成商品使其增值。我國的計算機應用要比西方國家落后十幾年,管理信息系統的開發(fā)應用是從1973年開始的,83年以后才開始了大量的實際的開發(fā)和研究工作。因此,信息資源的開發(fā)和利用已被確立為國民經濟信息的核心內容,信息數字化,傳輸的網絡化是縮小發(fā)展中國家與發(fā)達國家差距的捷徑,值世界信息化浪潮正以不可阻擋之勢席卷全球時,我國要迎頭趕上,就必須利用現有的信息基礎設施,重點開發(fā)和推廣應用于各類科技經濟等數據庫和網絡資源服務系統
19、,以便取得巨大的社會效益和經濟效益。</p><p> 由于管理在社會大生產中占用重要地位,其計算機化在發(fā)達國家已達到95%以上,而我國在全國范圍內推廣計算機在管理中的應用,是在80年代初開始的。起步雖晚,但發(fā)展快。特別是微型計算機的出現和普及,為信息處理提供了物美價廉的手段,對于推動我國管理信息處理現代化起到了重要作用。</p><p> 1.1.2自行車租售系統建設的好處</
20、p><p> 長久以來,自行車租車行的管理工作大多數都采用的是傳統的手工方式來記錄相關信息,這種管理方式存在很多缺點,比如說,客戶管理,車輛信息的錄入,查詢,更新,分析都要完全依賴管理人員的手工記錄和人工分析。對于小規(guī)模自行車租車行來說還勉強可以接受,但對于規(guī)模大一點的自行車租車行來說,人工記錄是相當麻煩的。為滿足企業(yè)發(fā)展需求,決定采用各種編程語言VC++6.0開發(fā)了基于C/S架構的自行車租車行管理系統,自行車租車
21、行管理系統是涉及信息科學、數據計算和計算機技術的復雜的人機交互系統。通過這些系統,可以對自行車租車行和管理進行智能化管理,有效地記錄并查詢各種車輛信息以及租賃等情況,為自行車租車行的管理提供了諸多方便。</p><p> 1.1.3開發(fā)管理信息系統的幾點建議</p><p> 在項目的開始是需求調研,并且走訪了一些小型的自行車租車行,經過一系列的調查與談話中發(fā)現,現行的自行車租車行管理
22、工作還是存在著很多不足之處,手工記錄的方式不易保存,容易丟失,同樣也不利于數據的查詢和統計分析。根據自行車租車行實體店的實際情況及調查結果,發(fā)現實現自行車租車行管理的網絡化、信息化是十分有必要的,因此設計了本套自行車租車行管理系統。</p><p><b> 1.2相關技術介紹</b></p><p> 1.2.1結構化生命周期法簡介</p><
23、;p> 結構化生命周期法是一種傳統的管理信息系統開發(fā)方法,其基本思想是把整個系統開發(fā)過程分成若干個階段,每個階段進行若干活動,每項活動應用一系列標準、規(guī)范、方法和技術,完成一個或多個任務,形成符合給定規(guī)范的產品。</p><p> 采用結構化生命周期法來開發(fā)管理信息系統時,應遵循的主要原則:</p><p> ?。?)用戶參與的原則</p><p> (
24、2)“先邏輯后物理”的原則</p><p> (3)“自頂向下”的原則</p><p> ?。?)工作成果描述(主要指文檔)標準化的原則</p><p> 其具體開發(fā)步驟可分為以下四步:</p><p><b> a系統規(guī)劃</b></p><p><b> b系統開發(fā)</
25、b></p><p><b> c系統的運行及維護</b></p><p><b> d系統評價 </b></p><p> 其中系統開發(fā)又分為以下四個步驟:</p><p><b> (a)系統分析</b></p><p><b&g
26、t; .系統初步調查</b></p><p><b> .系統可行性研究</b></p><p> .現行系統的詳細調查</p><p> .新系統邏輯方案的提出</p><p><b> (b)系統設計</b></p><p><b> .
27、系統總體結構設計</b></p><p><b> 系統總體功能設計</b></p><p> .系統總體物理結構設計</p><p><b> 系統詳細設計</b></p><p><b> 數據庫設計</b></p><p>&l
28、t;b> .代碼設計</b></p><p><b> .輸入輸出設計</b></p><p><b> (c)系統實施</b></p><p><b> .程序設計</b></p><p><b> 系統測試</b></
29、p><p> 1.2.2開發(fā)技術——快速原型法簡介</p><p> 快速原型法是80年代發(fā)展起來的,旨在縮短開發(fā)周期,提高開發(fā)效率和用戶對系統的滿意程度。其基本思想是在系統開發(fā)的初期,盡快構造出系統的原型,使用戶能及早地運行這個系統原型,通過使用它、熟悉它,受到啟發(fā)并取得經驗,然后對系統的目標和功能提出更精確、具體的要求,研制人員據此逐漸修改和完善原型,使它滿足用戶的需求,最后完成系統的
30、開發(fā)。該方法大大提高了系統開發(fā)效率,彌補了結構化生命周期法來開發(fā)的時間長的缺陷。</p><p> 通常采用原型法需要以下四個階段:</p><p> ?。?)、明確用戶的基本要求</p><p> ?。?)、研制系統的原型</p><p> ?。?)、使用、評價系統原型</p><p> (4)、修改和完善原型&
31、lt;/p><p> 1.2.3、ADO的背景知識</p><p> Microsoft ActiveX Data Objects (ADO) 使得客戶端應用程序能夠通過任何 OLE.DB 提供者來訪問和操作數據庫服務器中的數據。 </p><p> ADO 使您能夠編寫應用程序以通過 OLE.DB 提供者訪問和操作數據庫服務器中的數據。ADO 最主要的優(yōu)點是易于
32、使用、速度快、內存支出少和磁盤遺跡小。ADO 支持建立客戶端/服務器和基于 Web 的應用程序的關鍵功能。 </p><p> ADO 的另一個功能是“遠程數據訪問”(RDS),能夠通過一個來回的傳輸將數據從服務器移動到客戶端應用程序或 Web 頁中,然后在客戶端對數據進行操作,最后將更新數據返回服務器。RDS 先前發(fā)布的版本是 Microsoft Remote Data Service 1.5。RDS 已與
33、ADO 編程模塊合并以簡化客戶端數據的遠程調用。</p><p> 1.2.4本系統開發(fā)方法的選擇</p><p> 基于以上開發(fā)方法的優(yōu)劣和本系統的實際情況,本系統總體上采用結構化生命周期法進行系統規(guī)則、系統分析和系統設計,但在系統實施階段采用原型法。</p><p><b> 2 系統分析</b></p><p&
34、gt; 系統分析,就是在管理信息系統開發(fā)的生命周期中系統分析階段的各項活動和方法。它的主要目標是在系統規(guī)劃所定的某個開發(fā)項目范圍內明確系統開發(fā)的目標和用戶的信息需求,提出系統的邏輯方案。系統“邏輯分析在整個系統開發(fā)過程中,是要解決“做什么”的問題,把要解決哪些問題、要滿足用戶哪些具體的信息需求調查、分析清楚,從邏輯上或從功能需求上提出系統的方案,即模型”。</p><p><b> 2.1可行性研究
35、</b></p><p> 2.1.1經濟可行性</p><p> 目前有許多自行車信息的管理,還是完全采用純人工方式完成業(yè)務,對數據進行綜合分析等,因此耗用工時較多,且效率低下。而當采用計算機進行集中管理時,不但可以節(jié)省大量的人力物力,而且效率要比手工高得多,還可以讓人力資源得到充分的利用。由此可見,開發(fā)此系統在經濟上的是完全可行的。</p><p&g
36、t; 2.1.2技術可行性</p><p><b> 開發(fā)軟件可行性</b></p><p> 從目前市場上數據庫開發(fā)、管理軟件來看,對于比較簡單的中小型數據庫,微軟公司的Microsoft SQLServer2000是實際應用中較為成功是一種解決方案。它是數據庫的優(yōu)秀軟件,是面向對象的可視化編程,同時它提高了多庫操作命令和函數,具有很強的數據處理能力。包括數
37、據存儲、分類、匯總、檢索等。</p><p> 同時應用Visual C++ 6.0的技術開發(fā)管理信息系統,可以得心應手,事半功倍,它為用戶提供了Windows所一貫堅持的非常友好、操作簡單的用戶界面、完善而強大的數據操作功能,通過Visual C++ 6.0與SQL語句的結合對數據庫進行更為復雜的操作。</p><p> 結合本項目實際,經系統分析,可以設計出符合實際需求、易于理解、
38、易于操作、易于維護的數據庫和操作系統。對于Visual C++ 6.0 來說,對數量較少的表和其間關系進行比較簡單的操作正是其擅長的功能,無論是查詢、統計,都能順利完成。因此,開發(fā)實施本系統,從軟件的角度看,是可行的。</p><p><b> 開發(fā)的硬件的可行性</b></p><p> 開發(fā)本系統所使用的軟件對于計算機硬件有一定的要求,Visual C++ 6
39、.0 對計算機的內存、外存(主要是硬盤的容量)都有要求,這樣才能是系統正常運行,基本要求是:</p><p> ?。?)設計環(huán)境為Microsoft Windows 95或更高版本;</p><p> (2)應用程序要求8MBRAM。</p><p> 從目前市場上流行是硬件水平來看,這種要求水平對企業(yè)而言,是完全可以達到的。所以在硬件方面,本系統也是可行的。&
40、lt;/p><p> 2.1.3操作可行性</p><p> Windows 友好的用戶界面和本系統良好的安全設置,可以使其內部員工在系統實施人員的指導幫助下很快掌握系統的使用方法。</p><p> 2.2、系統的詳細調查</p><p> 2.2.1系統詳細設計原理</p><p> 系統的詳細調查目標是在可
41、行性分析的基礎上進一步對原有系統進行全面、深入的調查和分析,弄清原有管理信息系統的運行狀況,發(fā)現其薄弱環(huán)節(jié),找出要解決問題的實質,確保新系統比原系統更加有效、可靠。具體內容包括:管理業(yè)務狀況的調查分析、數據流程的調查分析。</p><p> 系統調查可以通過發(fā)表征求意見、座談、訪問參觀、參加業(yè)務實踐等方法,自上而下的逐步細化了解。 </p><p> 通過對人員的需求調查得知,以前的車
42、輛的管理辦法,工作繁瑣,工作量大,效率低。因而,建立一套管理信息系統勢在必行。根據需求不同大體上可分為如下幾個方面: (1) 系統要求:可以實現連接數據庫、工作人員登陸、權限的限制等基本操作。 (2) 車輛檔案管理的要求:可以實現車輛信息的添加、修改、刪除、查詢操作。 (3) 租車信息管理的要求: 可以實現租車信息的添加、修改、刪除、查詢操作。 (4) 售車管理的要求: 可以實現車輛出售信息的添加、修改、刪除、查詢操
43、作。 (5) 車損管理的要求: 可以實現車損信息的添加、修改、刪除、查詢操作。</p><p> ?。?)對數據的安全性、完整性的要求:要保證每個記錄必須完整,不能被他人非法竊去。 本系統的邏輯模型主要是以系統的數據流程圖和數據字典為主要描述工具,以信息系統中應有的數據流程和數據結構來描述系統。</p><p> 2.2.2自行車租售系統的設計原理和應用</p>
44、<p> 為了讓系統能更好更快的進行,我們制訂了如下的設計思想和應用性能:</p><p> 系統應符合畢業(yè)設計課題管理的規(guī)定,滿足日常管理的工作需要,并達到操作過程中的直觀, 方便,實用,安全等要求;</p><p> 系統采用模塊化程序設計方法,既便于系統功能的各種組合和修改,又便于為參與開發(fā)的技術維護員進行維護,補充;</p><p> 系統
45、應具備數據庫維護功能,及時根據用戶需求進行數據的添加,刪除,修改,等操作。</p><p> 系統應具備分布式,要能滿足訪問遠程數據庫。</p><p> 系統應能基本上滿足本企業(yè)的內部管理功能,并且在使用管理信息中,實現最大化的信息收集和處理,分析功能。</p><p> 系統要保證安全性,對不同用戶要做到權限的不同。</p><p>
46、;<b> 3 系統需求分析</b></p><p><b> 3.1 任務概述</b></p><p> 建立一個數據庫,用來存儲基本信息,車輛檔案信息和租車信息數據,售車信息,事故信息等。將這些數據登記入數據庫。本項目的任務是能對數據庫中的數據進行一系列的操作管理。</p><p><b> 3.2
47、 需求分析</b></p><p> 此系統可有效應用于車輛管理單位,方便對車輛管理,可以有效提高工作效率和減輕勞動強度;提高信息處理速度和準確性;為業(yè)務、管理提供更方便的服務項目。</p><p><b> 3.3 功能分析</b></p><p> 管理信息系統主要功能是準備和提供統一格式的信息,使各種統計工作簡化,使信息
48、成本最低;及時全面地提供不同要求的、不同細度的信息,以期分析解釋現象最快,及時產生正確的控制;全面系統地保存大量的信息,并能很快地實現查詢、修改、刪除等功能,為決策提出信息支持。自行車租售系統包括三個模塊:系統管理、車輛檔案管理、租車信息管理、售車信息管理、事故管理。</p><p> 系統管理:主要功能為實現系統初始化、數據庫連接參數的設置、系統用戶登陸等操作。</p><p> 測
49、試管理的要求:可以實現對測試條目的添加、修改、刪除、瀏覽操作。 查詢管理的要求: 可以按指定要求進行查詢。 </p><p><b> 3.4性能分析</b></p><p> 本系統結構設計合理,功能齊全,信息指標豐富、規(guī)范;采用模塊化設計、結構合理、 操作簡單,具有友好的人機界面和靈活的系統可維護性;有優(yōu)越的數據共享性,可以使用戶 充分的利用歷史數
50、據, 減少數據的重復錄入和工作量; 方便快捷有效的完成賓館管理系統的 各項工作,錄入數據合法性的校驗程度高,數據查詢速度快;有廣泛的網絡選擇性,可以形 成客戶端/服務器結構的數據庫系統。主要表現在以下幾點:</p><p> 全面構建數字化辦公環(huán)境,實現無紙化辦公。 </p><p> 具有良好的可移植性,可針對不同的用戶需求定制系統部分功能。</p><p>
51、 系統權限與安全的合理分配,可根據需要自行設置。 </p><p> 用戶界面友好,美觀, 易于操作。</p><p><b> 3.5安全管理分析</b></p><p> 安全管理造成數據庫系統不安全的因素很多,有系統本身的原因,也有人為的失誤或故意的未經授權的竊取、破壞。安全管理已成為設計數據庫系統的重要組成部分。數據庫系統的核心
52、是數據庫管理系統(DBMS),開發(fā)具有高安全性的DBMS是一項十分緊迫的任務。多用戶系統的工作流程都是從用戶登陸模塊開始,對用戶的身份進行認證。身份認證可以分為以下兩個過程: </p><p> A、認證用戶是否為有效的系統用戶;</p><p> B、確認用戶的類型。 本系統有二類用戶進行操作,分別是管理員、操作員,管理員可以設置操作員及本身的權限,并可增刪用戶,操作員可以修改自己的
53、登陸口令。 第一個過程決定用戶能否進入系統。 第二個過程根據用戶的類型決定用戶的操作權限從 而決定用戶的工作界面。所以本系統安全和保密工作應該是可以保證的。 </p><p><b> 4 系統設計</b></p><p><b> 4.1 概要設計</b></p><p> 本次畢業(yè)設計的內容就是設計出自行車租售
54、系統,在此基礎上實現系統模型各個子系統的基本功能。此系統用Microsoft SQL Server2000建立一個SQL Server2000數據庫,用Visual C++來實現對其中數據的一系列操作,包括添加、查看、修改、錄入、刪除、查詢等等,通過Visual C++編程實現其中的優(yōu)化處理模塊。</p><p> 在使用界面上,用戶通過點擊按鈕選擇相應的要進行的操作,系統經過對用戶輸入的有效判斷,如果輸入有
55、效,根據輸入的消息進行相應的處理,最后把處理結果顯示到用戶界面。</p><p><b> 4.2詳細設計</b></p><p> 4.2.1 開發(fā)環(huán)境</p><p> 本系統的開發(fā)開發(fā)環(huán)境是Windows Server 2003,Visual C++ 6.0,MS SQL Server 2003.</p><p&
56、gt; 4.2.2 系統功能圖</p><p> 在系統功能需求分析的基礎上,結合Visual C++程序編制的特點,得到下圖所示的系統功能模塊圖。</p><p> 圖4-1 系統功能圖</p><p> 4.2.3數據庫表結構設計</p><p> 表4.1AccInfo表字段信息說明</p><p>
57、 表4.1CarInfo表字段信息說明</p><p> 表4.1CarJCInfo表字段信息說明</p><p> 表4.1DriverInfo表字段信息說明</p><p> 表4.1PassInfo表字段信息說明</p><p> 4.3數據庫的詳細設計</p><p> 啟動SQL2000后,屏幕出
58、現“Microsoft SQL Server 2000”對話框,在對話框中選擇不同的選項按鈕,可新建或打開數據庫。在此選擇“建立數據庫”,新建一個空的數據庫,名字保存為CarMgr。在已有的數據庫中創(chuàng)建空表主要有三種方法:將數據直接輸入到空白的數據表中,當保存新的數據時,SQL Server 2000將分析數據并且自動為每一字段指定適當的數據類型及格式。使用“設計”視圖從無到有指定表的全部細節(jié)。使用表向導來選擇表的字段,這些字段可以從各
59、樣預先定義好的表中選擇。此系統的數據庫使用“設計”視圖從無到有創(chuàng)建。</p><p> 再次數據庫中需要創(chuàng)建兩個表,分別存放用戶信息表、工作人員信息表、繳費信息表、費率信息表等。以創(chuàng)建用戶信息表為例,步驟如下:</p><p> ?。?)右擊“表”圖標,選擇新建表,將顯示一個空數據表的設計視圖。</p><p> ?。?)按照下圖所示定義表中的每一個字段。在“字段
60、名稱”列中分別輸入;在“數據類型”列中選擇各字段的數據類型,當光標移動到“數據類型”列時,光標所在的格中將出現下拉按鈕,單擊按鈕將彈出下拉列表,其中列出了所有的數據類型(如圖所示),單擊選定所需要的數據類型;“說明”列用于輸入對字段的說明,可有可無。</p><p> ?。?)保存表。保存時輸入表的名稱“UserInfo”。</p><p> ?。?)當我們需要將該表設置為主鍵時,該字段左
61、邊的灰色字段選擇器上出現一個鑰匙圖案,表明主關鍵字已經被選取。</p><p> 此時用戶信息表就創(chuàng)建好了,同樣可以創(chuàng)建其他類型表。</p><p> 4.3.1 數據流圖</p><p> 下面用我們用數據流圖(DFD, Data Flow Diagram),也就是從數據傳遞和加工的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程。如下圖所示: &l
62、t;/p><p> 4.3.2在本系統中使用ADO的過程及詳解添加ADO數據源</p><p> 本系統采用ADO來訪問SQL數據庫,這里充分應用了C++類封裝的功能,根據本系統應用的范圍,將訪問數據庫的功能函數封裝在一個類CMyDatabase。</p><p> 正如前所述,ADO是訪問數據庫的一個方法,它提供了不同的接口。ADO庫包含三個基本接口:_Conn
63、ectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。 _ConnectionPtr接口返回一個記錄集或一個空指針。通常使用它來創(chuàng)建一個數據連接或執(zhí)行一條不返回任何結果的SQL語句,如一個存儲過程。使用_ConnectionPtr接口返回一個記錄集不是一個好的使用方法。對于要返回記錄的操作通常用_RecordserPtr來實現。而用_ConnectionPtr操作時要想得到記錄條數得遍歷所有記錄,而
64、用_RecordserPtr時不需要。 _CommandPtr接口返回一個記錄集。它提供了一種簡單的方法來執(zhí)行返回記錄集的存儲過程和SQL語句。在使用_CommandPtr接口時,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用連接串。如果你只執(zhí)行一次或幾次數據訪問操作,后者是比較好的選擇。但如果你要頻繁訪問數據庫,并要返回很多記錄集,那么,你應該使用全局_ConnectionPtr
65、接口創(chuàng)建一個數據連接,</p><p> 根據這些,我們將數據庫的各種操作封裝到CMyDatabase類里。</p><p> 5 程序的詳細設計</p><p><b> 5.1程序設計</b></p><p> 該系統采用對話框和屬性頁的形式作為主界面,支持異地遠程數據庫的讀取。系統運行時,用戶首先要連接到
66、遠程數據庫,連接成功后,狀態(tài)欄會有相應的提示,之后在整個系統的運行過程中,系統與數據庫始終保持這一個連接,并通過這一個連接來進行各種SQL語句操作。整個系統中,主界面CManageSysDlg 類有一個對象m_db,這個就是與數據庫保存連接的數據庫對象。</p><p><b> 5.2程序流程</b></p><p><b> 圖5-1 流程圖<
67、/b></p><p> 5.2.1 連接數據庫</p><p> 圖5-2 數據庫配置圖</p><p> 首先要對數據庫進行連接配置,輸入SQL數據庫地址,數據庫名稱,用戶名和密碼,連接成功于否都會在系統的左下角有提示。</p><p> 5.2.2 登陸系統</p><p><b> 圖
68、5-3 用戶登陸</b></p><p> 如果與數據庫連接成功后,會在系統左下角提示,然后進行用戶的登陸系統,輸入用戶名字和密碼登陸系統。主要代碼:</p><p> void CLoginDlg::OnLogin() </p><p><b> {</b></p><p> // TODO: A
69、dd your control notification handler code here</p><p> ASSERT(m_pManagementSysDlg!=NULL);</p><p> UpdateData(TRUE);</p><p> CCommon::Trim(m_sIP); //清除變量空白符</p><p>
70、CCommon::Trim(m_sDbName);</p><p> CCommon::Trim(m_sUser);</p><p> CCommon::Trim(m_sPass);</p><p> if(m_sIP.GetLength() == 0</p><p> ||m_sDbName.GetLength() == 0<
71、/p><p> ||m_sUser.GetLength() == 0</p><p> ||m_sPass.GetLength() == 0)</p><p> {//必須輸入完整的信息,否則返回</p><p> AfxMessageBox(_T("請輸入完整的信息"));</p><p>&
72、lt;b> return ;</b></p><p><b> }</b></p><p> CString szLog;</p><p><b> //開始嘗試連接</b></p><p> CMyDatabase * pDB = m_pManagementSysDlg
73、->GetDBPointer();</p><p> if(pDB->Open(m_sIP,m_sDbName,m_sUser,m_sPass))</p><p> {//login success 登陸成功</p><p> m_pManagementSysDlg->SetDBServerIP(m_sIP); //保存數據庫IP</
74、p><p> m_pManagementSysDlg->SetDBName(m_sDbName); //保存數據庫名字</p><p> m_pManagementSysDlg->SetDBUser(m_sUser); //保存用戶名</p><p> m_pManagementSysDlg->SetDBPass(m_sPass); //保存密碼
75、</p><p> m_pManagementSysDlg->SetDBConnect(TRUE); //登陸成功,改標志位</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
76、<p> m_pManagementSysDlg->SetDBConnect(FALSE); //設置數據庫登陸狀態(tài)</p><p><b> }</b></p><p> CDialog::OnOK();</p><p><b> }</b></p><p> vo
77、id CLoginDlg::SetParent(CManagementSysDlg *pParent)</p><p><b> { //設置父指針</b></p><p> m_pManagementSysDlg = pParent;</p><p><b> }</b></p><p>
78、 5.2.3 主界面</p><p><b> 圖5-4 主界面</b></p><p> 登陸成功后,系統最下方狀態(tài)欄會提示。這時候可以進行用戶權限的不同相應的操作。</p><p><b> 主要代碼:</b></p><p> HCURSOR CManagementSysDlg::O
79、nQueryDragIcon()</p><p><b> {</b></p><p> return (HCURSOR) m_hIcon;</p><p><b> }</b></p><p> void CManagementSysDlg::SetPanel(int nID, CStri
80、ng str)</p><p> {//給狀態(tài)欄的第 nID個格賦值str</p><p> m_Status.SetPaneText(nID,str);</p><p><b> }</b></p><p> CMyDatabase * CManagementSysDlg::GetDBPointer()<
81、/p><p> {//得到數據庫指針</p><p> return &m_sDB;</p><p><b> }</b></p><p> void CManagementSysDlg::SetDBServerIP(CString &str)</p><p> {//設置數
82、據庫IP</p><p> m_sDbIP=str;</p><p><b> }</b></p><p> void CManagementSysDlg::SetDBName(CString &str)</p><p> {//設置數據庫名字</p><p> m_sDbNam
83、e=str;</p><p><b> }</b></p><p> void CManagementSysDlg::SetDBUser(CString &str)</p><p> {//設置數據庫用戶名</p><p> m_sDbUser=str;</p><p><b
84、> }</b></p><p> void CManagementSysDlg::SetDBPass(CString &str)</p><p> {//設置數據庫密碼</p><p> m_sDbPass=str;</p><p><b> }</b></p><
85、p> void CManagementSysDlg::SetDBConnect(BOOL flag)</p><p> {//設數據庫連接狀態(tài)</p><p> m_bConnected = flag;</p><p><b> }</b></p><p> void CManagementSysDlg:
86、:SetLogin(BOOL flag)</p><p><b> {//設登陸狀態(tài)</b></p><p> m_bUserLogined = flag;</p><p><b> }</b></p><p> void CManagementSysDlg::SetUserSN(CStri
87、ng &str)</p><p><b> {//設置用戶名</b></p><p> m_sUserSN = str;</p><p><b> }</b></p><p> void CManagementSysDlg::SetUserAuthor(CString &st
88、r)</p><p><b> {//設置用戶權限</b></p><p> int i = atoi(str); //將字符串轉換為整型</p><p> m_nUserAuthor = i;</p><p><b> }</b></p><p> void CM
89、anagementSysDlg::OnConnecttoolButton() </p><p> {//連接工具條的響應函數</p><p> // TODO: Add your command handler code here</p><p> if(m_bConnected)</p><p><b> {//判斷是否連
90、接</b></p><p> AfxMessageBox(_T("已經與數據庫建立連接,請先斷開"));</p><p><b> return ;</b></p><p><b> }</b></p><p><b> //建立連接</b&g
91、t;</p><p> CLoginDlg LoginDlg;</p><p> LoginDlg.SetParent(this); //設置對話框屬性</p><p> LoginDlg.DoModal();</p><p> if(!m_bConnected)</p><p> {//連接不成功,該BOO
92、L值為FALSE</p><p> SetPanel(0,_T("連接數據庫錯誤!"));</p><p><b> return ;</b></p><p><b> }</b></p><p><b> else</b></p>&
93、lt;p> {//連接成功, *** 開放 登陸退出 ID,并顯示 sheet*** ***</p><p> //開放ID可考慮 全部開放,然后置換其他為FALSE</p><p> SetPanel(0,_T("連接數據庫成功!"));</p><p> //SetMenuState(CONNECT_MENU);</p&g
94、t;<p><b> }</b></p><p><b> }</b></p><p> void CManagementSysDlg::OnDiscontoolButton() </p><p> {//斷開工具條響應函數,同斷開菜單,注釋見上面</p><p> //
95、TODO: Add your command handler code here</p><p> if(!m_bConnected)</p><p><b> {</b></p><p> AfxMessageBox(_T("連接已經斷開"));</p><p><b> retu
96、rn ;</b></p><p><b> }</b></p><p> if(m_bUserLogined)</p><p><b> {</b></p><p> AfxMessageBox(_T("用戶已經登陸系統,請先退出"));</p>
97、<p><b> return ;</b></p><p><b> }</b></p><p> CMyDatabase * pDB = GetDBPointer();</p><p> m_bConnected = FALSE;</p><p> m_bUserLogine
98、d = FALSE;</p><p> SetPanel(0,_T("與數據庫斷開"));</p><p> //SetMenuState(NO_CONNECT_MENU);</p><p> pDB->Close(); //關閉數據庫連接指針</p><p><b> }</
99、b></p><p> void CManagementSysDlg::OnLogintoolButton() </p><p><b> {</b></p><p> if(!m_bConnected)</p><p><b> {//判斷連接與否</b></p>&l
100、t;p> AfxMessageBox(_T("請先與數據庫建立連接"));</p><p><b> return ;</b></p><p><b> }</b></p><p> if(m_bUserLogined)</p><p><b> {//
101、判斷登陸與否</b></p><p> AfxMessageBox(_T("用戶已經登陸"));</p><p><b> return ;</b></p><p><b> }</b></p><p> CMyDatabase * pDB =GetDBPoi
102、nter();</p><p> CUserLoginDlg UserLoginDlg;</p><p> UserLoginDlg.SetParent(this);</p><p> UserLoginDlg.DoModal(); //顯示登陸對話框</p><p> if(!m_bUserLogined)</p>&
103、lt;p><b> {//登陸不成功</b></p><p> SetPanel(1,"User Login Error"); //設置狀態(tài)欄</p><p><b> return ;</b></p><p><b> }</b></p><p&
104、gt;<b> else</b></p><p><b> {</b></p><p> CTime t = CTime::GetCurrentTime();</p><p> CString szTime;</p><p> szTime.Format("%d-%d-%d %d
105、:%d:%d 登陸系統",</p><p> t.GetYear(),t.GetMonth(),t.GetDay(),t.GetHour(),t.GetMinute(),t.GetSecond());</p><p> SetPanel(1,m_sUserSN);</p><p> SetPanel(2,m_sUserName);</p>
106、<p> SetPanel(3,szTime);</p><p><b> //設置屬性頁</b></p><p> m_Sheet.AddPage(&m_CardPage); //</p><p> m_Sheet.AddPage(&m_DriverPage);</p><p>
107、 m_Sheet.AddPage(&m_CarJCPage);</p><p> m_Sheet.AddPage(&m_SGPage);</p><p> m_Sheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT);</p><p> RECT rect;</p>
108、<p> m_Sheet.GetWindowRect(&rect);</p><p> int width = rect.right - rect.left;</p><p> int height = rect.bottom - rect.top;</p><p> m_Sheet.SetWindowPos(NULL, 1, 20,
109、width, height, SWP_NOZORDER | SWP_NOACTIVATE);</p><p> //SetMenuState(LOGIN_MENU);</p><p><b> }</b></p><p><b> }</b></p><p> void CManagem
110、entSysDlg::OnQuittoolButton() </p><p><b> {</b></p><p> // TODO: Add your command handler code here</p><p> CDialog::OnDestroy();</p><p> CDialog::OnCan
111、cel();</p><p><b> }</b></p><p><b> 5.3 模塊設計</b></p><p> 5.3.1 系統管理模塊</p><p> 該模塊是系統進行操作的前提,主要是系統登陸部分。這是用戶登錄時所必須要用到的,登陸之前需要驗證用戶身份的合法性,故而需要用戶輸
112、入程序,輸入用戶名及密碼來進行身份驗證。模塊流程圖如圖5-5所示。</p><p> 圖5-5 系統登陸模塊圖</p><p> 該模塊主要輸入的參數包括:</p><p><b> 輸入項名稱:用戶名</b></p><p><b> 類型:字符串型</b></p><
113、p><b> 輸入方式:手工輸入</b></p><p> 數據來源:系統自帶的數據庫中的信息</p><p><b> 輸入項名稱:密碼</b></p><p><b> 類型:字符串型</b></p><p><b> 輸入方式:手工輸入</
114、b></p><p> 數據來源:系統的數據庫中的信息</p><p> 該模塊主要輸出參數包括:</p><p> 輸出項:用戶名錯誤輸出</p><p><b> 數據類型:字符串型</b></p><p> 輸出以信息對話框的形式輸出</p><p>
115、 輸出內容是用戶名錯誤,請重新輸入</p><p> 輸出項:密碼錯誤輸出</p><p><b> 數據類型:字符串型</b></p><p> 輸出信息也是以信息對話框的形式輸出</p><p> 輸出內容是密碼錯誤,請重新輸入</p><p><b> 輸出項:正確登陸
116、</b></p><p><b> 數據類型:字符串型</b></p><p> 輸出內容是根據用戶權限而得到的用戶界面的輸出</p><p> 5.3.2 租車信息管理模塊</p><p> 該模塊是對租車信息進行管理,包括了對租車信息的添加、修改、刪除等操作。每個租車信息都有一個編號,這個編號在數
117、據庫中是唯一的,是識別用戶的唯一標識。模塊流程圖如圖5-6所示。</p><p> 圖5-6 租車信息管理模塊圖</p><p> 該模塊主要輸入的參數包括:</p><p> 輸入項名稱:租車信息</p><p><b> 類型:字符串型</b></p><p><b> 輸
118、入方式:手工輸入</b></p><p> 該模塊主要輸出參數包括:</p><p> 輸出項:根據處理的結果,返回處理結果提示</p><p><b> 數據類型:字符串型</b></p><p> 輸出以信息對話框的形式輸出</p><p><b> 主要代碼:
119、</b></p><p> void CCarJCPage::OnButton1() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> UpdateData(TR
120、UE);</p><p> CString szCombox,temp0,sql="select * from CarJCInfo where 1=1";</p><p> GetDlgItemText(IDC_COMBO1,szCombox);</p><p> if(m_sKey !="")</p>&
121、lt;p><b> {</b></p><p> if(szCombox =="自行車編號")</p><p><b> {</b></p><p> temp0.Format("and CarSN like ");</p><p><b&
122、gt; }</b></p><p> else if(szCombox =="型號")</p><p><b> {</b></p><p> temp0.Format("and CarStyle like ");</p><p><b> }<
123、;/b></p><p> else if(szCombox =="品牌")</p><p><b> {</b></p><p> temp0.Format("and CarID like ");</p><p><b> }</b></
124、p><p> else if(szCombox =="產地")</p><p><b> {</b></p><p> temp0.Format("and CarName like ");</p><p><b> }</b></p><
125、;p> temp0 += "'%";</p><p> temp0 += m_sKey;</p><p> temp0 += "%'";</p><p> sql += temp0;</p><p><b> }</b></p><
126、;p> CManagementSysDlg * p = (CManagementSysDlg *)(GetParent()->GetParent());</p><p> CMyDatabase * pDB = ((CManagementSysDlg *)p)->GetDBPointer();</p><p> ReadFromDB((void *)p,sql);&
127、lt;/p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> void CCarJCPage::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) </p><p><b> {</b></p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信畢業(yè)設計--自行車租售系統的設計與實現
- 自行車租售管理系統設計與實現--通信畢業(yè)設計
- 自行車租賃網站設計與實現畢業(yè)設計
- 自行車造型畢業(yè)設計
- 畢業(yè)設計---電動自行車調速系統設計
- 電動自行車設計【畢業(yè)設計】
- 畢業(yè)設計--電動自行車調速系統的設計
- 電動自行車調速系統的設計-畢業(yè)設計
- 畢業(yè)設計---電動自行車調速系統的設計
- 自行車測速系統設計與實現
- 多功能自行車設計【畢業(yè)設計】
- 自行車造型畢業(yè)設計論文
- 自行車設計與仿真畢業(yè)設計開題報告
- 【畢業(yè)設計】新型電動自行車的設計
- 自行車租賃管理系統設計與實現
- 自行車設計與仿真畢業(yè)設計開題報告
- 自行車租賃的設計與實現
- 自行車租賃系統的設計與研究——租賃自行車安全鎖設計.pdf
- 自行車租賃網站設計與實現畢業(yè)論文
- 畢業(yè)設計---電動自行車充電器的設計與制作
評論
0/150
提交評論