C#課程設計報告 高速公路收費系統(tǒng)

上傳人:痛*** 文檔編號:84844349 上傳時間:2022-05-04 格式:DOC 頁數(shù):46 大小:330.50KB
收藏 版權申訴 舉報 下載
C#課程設計報告 高速公路收費系統(tǒng)_第1頁
第1頁 / 共46頁
C#課程設計報告 高速公路收費系統(tǒng)_第2頁
第2頁 / 共46頁
C#課程設計報告 高速公路收費系統(tǒng)_第3頁
第3頁 / 共46頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C#課程設計報告 高速公路收費系統(tǒng)》由會員分享,可在線閱讀,更多相關《C#課程設計報告 高速公路收費系統(tǒng)(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、. . 優(yōu)選 . - 課程設計報告書 專業(yè):信息管理與信息系統(tǒng) 課程設計名稱:"可視化編程技術課程設計" 題目:高速公路收費系統(tǒng) 班級: 學號: 設計者: 指導教師: 完成時間: 摘要 在現(xiàn)代交通越來越便利的同時,高速公路也發(fā)揮著越來越重要的作用。中國已經(jīng)有4萬多公里的高速公路,在未來還將翻倍。修建高速公路被各地官員拉入地方經(jīng)濟工作日常首要位置,與1950年后的美國相

2、似,越來越密集的高速網(wǎng)正在促使著中國發(fā)生巨大的變化。 高速公路收費系統(tǒng)是高速公路管理的重要組成局部。建立智能化的收費系統(tǒng)是加強高速公路管理的一個重要環(huán)節(jié)。高速公路收費系統(tǒng)解決了高速公路收費業(yè)務中由于采取傳統(tǒng)方法和手段出現(xiàn)的難以處理的問題,并把管理對象轉向信息對象的信息管理系統(tǒng),把高速公路收費系統(tǒng)推向另一個高度。 利用計算機進展高速公路收費系統(tǒng)設計,本文是采用C*作為前臺開發(fā)工具,SQL Server2021 R2作為后臺數(shù)據(jù)庫平臺的基于C/S的三層模式的高速公路收費系統(tǒng)。 關鍵詞:C*;數(shù)據(jù)庫表; -

3、 .word.zl . - 目錄 目錄1 第一章開發(fā)環(huán)境和開發(fā)工具1 1.1C*語言簡介1 1.2 開發(fā)背景1 1.3 開發(fā)環(huán)境2 第二章人事管理信息系統(tǒng)的分析與設計3 2.1 系統(tǒng)需求分析3 2.2 系統(tǒng)總體設計3 2.2.1 系統(tǒng)設計目標3 2.2.2 開發(fā)設計思想4 2.2.3 系統(tǒng)功能模塊設計4 第三章數(shù)據(jù)庫設計6 3.1

4、引入背景6 3.2 數(shù)據(jù)庫需求分析6 3.2.1 數(shù)據(jù)流圖7 3.2.2. 數(shù)據(jù)字典7 3.3 數(shù)據(jù)庫概念構造設計10 3.4 數(shù)據(jù)庫邏輯構造設計14 3.5 數(shù)據(jù)庫物理構造設計15 3.5.1 索引的建立〔主鍵、外鍵〕15 3.5.2 觸發(fā)器16 第四章系統(tǒng)詳細設計與實現(xiàn)17 4.1 實體類庫設計與實現(xiàn)17 4.2 數(shù)據(jù)訪問層類庫設計與實現(xiàn)22 4.3 業(yè)務邏輯層類庫設計與實現(xiàn)32 4.4 界面設計及實現(xiàn)37 4.4.1 登陸界面及代碼37 4.4.2 主界面及代碼38 結論50 心得體會51 參考文獻52 -

5、 .word.zl . - 第一章 開發(fā)環(huán)境和開發(fā)工具 1.1 C*語言簡介 C*是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C*是微軟公司研究員Anders Hejlsberg的最新成果。C*看起來與Java有著驚

6、人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C*與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM〔組件對象模型〕是直接集成的,而且它是微軟公司 .NET windows網(wǎng)絡框架的主角。 C*是一種平安的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向對象的編程語言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性〔例如沒有宏以及不允許多重繼承〕。C*綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。 C*是一

7、種面向對象的語言,它使得程序員可以快速地編寫各種基于MICROSOFT .NET平臺的應用程序,MICROSOFT .NET提供了一系列的工具和效勞來最大程度地開發(fā)利用計算與通訊領域。 1.2 開發(fā)背景 二十年來,收費公路在中國從無到有,彌補了傳統(tǒng)公共交通的缺乏,滿足了人們快捷、平安、舒適的交通需要,為中國經(jīng)濟的蓬勃開展做出了巨大奉獻。正確提醒收費公路在公共效勞方面的標準和限度,處理費用的各種數(shù)據(jù),對中國公路建立事業(yè)安康開展有重要意義。 如今,高速公路的飛速開展,高速公路的行路暢通,正因為這樣,高速公路在各種交通運輸渠道中占據(jù)了主要的地位,這就造成了高速公路收費管理出現(xiàn)了一些問題,不但增

8、加了運營的強度,也增加了高速公路收費工作人員的工作壓力。所以,這對現(xiàn)有的收費管理和收費人員提出更多的要求:提高收費效率、降低收費過失,提高收費站管理效勞水平。而以手工為主的傳統(tǒng)收費方式已經(jīng)不能滿足當前收費的實際需要。 在當今信息化的社會里,作為高新技術之一的C*可視化編程技術和數(shù)據(jù)庫應用技術已成為高速公路信息資源利用和高速公路建立及其現(xiàn)代化管理不可缺少的重要工具,高速公路收費系統(tǒng)便是基于C*和數(shù)據(jù)庫所產(chǎn)生的,相較于傳統(tǒng)手工的收費方式它的效率高、過失少,能使管理人員隨時查閱數(shù)據(jù)信息。并能對各種違規(guī)行為進展一定的制止,對于各種各樣的逃票行為提供證據(jù)。高速公路收費系統(tǒng)能夠滿足我國對于高速公路所提出

9、的大多數(shù)要求。 1.3 開發(fā)環(huán)境 本文所采用的開發(fā)環(huán)境主要是基于數(shù)據(jù)庫系統(tǒng)的SQL Server 2021R2和基于面向對象程序設計的C*。SQL Server 2021 R2在Microsoft的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù),可以將構造化、半構造化和非構造化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中。它可以對數(shù)據(jù)進展查詢、搜索、同步、報告和分析之類的操作引進了一系列新功能幫助各種規(guī)模的業(yè)務從信息中獲取更多價值。經(jīng)過改進的SQL Server 2021 R2增強了開發(fā)能力,提高了可管理性,強化了商業(yè)智能及數(shù)據(jù)倉庫。 本系統(tǒng)是利用SQL Server 2021R2創(chuàng)立高速收費站上的收費站信息表、

10、職工信息表、收費查詢表、道路表、進出站信息表、車輛信息表、車輛流動表、收費卡信息表、收費標準表以及用C*連接數(shù)據(jù)庫用的登錄系統(tǒng)表。利用C*和數(shù)據(jù)庫建立連接之后,利用C*中的控件按鈕以及一些程序代碼實現(xiàn)一些特定的功能,例如員工信息查詢、員工信息編輯、車輛信息查詢、收費標準查詢、收費情況查詢等,極提高了高速公路收費管理的效率。 第二章 人事管理信息系統(tǒng)的分析與設計 隨著計算機技術的飛速開展,計算機在各種收費和管理應用的普及,利用計算機實現(xiàn)高速公路收費的管理勢在必行。當前高速公路收費系統(tǒng)正在從C/S構造向B/S構造轉移,但是由于平安性等方面的因素,C/S構造的高速公路收費系統(tǒng)仍然占據(jù)收費系統(tǒng)

11、的主流。本文所論述的系統(tǒng)也是C/S構造的高速公路收費系統(tǒng)。 高速公路收費系統(tǒng)是適應現(xiàn)代化制度要求,推動高速公路收費走向科學化、規(guī)化的必要條件。 2.1 系統(tǒng)需求分析 在現(xiàn)代運輸?shù)蔫F路、公路、水運、航運和管理五種方式中,目前我國公路運輸約占全國客、貨運輸總量的一半以上。近年來,我國高速公路的開展很快,高速公路總里程躍居世界第二位,從而大大改善了公路路網(wǎng)構造,緩解了交通旅游業(yè)的開展,推動沿線產(chǎn)業(yè)構造調整,加快了中小城鎮(zhèn)的發(fā)。 隨著高速公路的建立,收費站數(shù)目的不斷增加,對現(xiàn)有的收費管理和收費人員提出了新的要求:提高收費效率、降低收費過失,提高收費站管理效勞水平。高速公路收費系統(tǒng)提供了一種理想

12、的解決上述問題的方案,能適應新的收費管理要求。 在當今信息化的社會里,如何運用計算機技術、運用好有限的資金,加快速度、高質量地建立高等級公路收費系統(tǒng),是擺在廣闊科技工作者面前一個有待解決的課題。今為解決這一些問題特別寫了高速公路收費系統(tǒng),利用計算機的存取功能及其計算機數(shù)據(jù)庫的功能來實現(xiàn)對數(shù)據(jù)的有效、高速管理。 2.2 系統(tǒng)總體設計 2.2.1 系統(tǒng)設計目標 本文研究開發(fā)的高速公路收費系統(tǒng)用于支持高速公路的收費管理工作,有如下三個方面的目標: ●支持收費站實現(xiàn)規(guī)化的管理。 ●支持收費人員高效率完成車輛收費和信息查詢的日常業(yè)務,包括車輛的道路信息、車輛信息、增加收費的具體信息和收費詳情

13、查看等。 ●支持收費站進展勞動人事管理及其相關方面的科學決策,如領導根據(jù)現(xiàn)有的員工情況增加或減少員工人數(shù)、修改員工信息等。 開發(fā)設計思想 基于以上系統(tǒng)設計目標,本文在開發(fā)高速公路收費系統(tǒng)時遵循了以下開發(fā)設計思想: ●采用現(xiàn)有的軟硬件環(huán)境及先進的系統(tǒng)開發(fā)方案,從而到達充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應用效果的目的。 ●盡量到達操作過程中的直觀、方便、實用、平安等要求。 ●系統(tǒng)采用C/S體系構造,Clinet(客戶端)負責提供表達邏輯、顯示用戶界面信息、訪問數(shù)據(jù)庫效勞器;Server(效勞器端)那么用于提供數(shù)據(jù)效勞。 ●系統(tǒng)采用三層架構的設計思想,即界面層〔User Inte

14、rface layer〕、業(yè)務邏輯層〔Business Logic Layer〕、數(shù)據(jù)訪問層〔Data access layer〕。界面層:主要對用戶的請求承受,以及數(shù)據(jù)的返回,為客戶端提供應用程序的訪問。業(yè)務邏輯層:是系統(tǒng)架構中表達核心價值的局部,主要負責對數(shù)據(jù)層的操作。數(shù)據(jù)訪問層:主要是對數(shù)據(jù)的操作,具體為業(yè)務邏輯層或表示層提供數(shù)據(jù)效勞。 ●系統(tǒng)采用模塊化程序設計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術維護人員補充、維護。 ●系統(tǒng)應具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進展數(shù)據(jù)的添加、刪除、修改、備份等操作。 系統(tǒng)功能模塊設計 本系統(tǒng)分為四個模塊:系統(tǒng)模塊、職工信

15、息管理、收費站信息管理、車輛信息管理。 本系統(tǒng)的具體功能模塊圖如圖3-1所示: 高速公路收費系統(tǒng) 系統(tǒng)設置 職工信息 收費站信息 車輛信息 修改密碼 退出 員工信息查詢及修改 領導信息查詢 收費站信息查詢及更新 車輛信息查詢及添加 收費信息查詢及添加 各站距離情況查詢及更新 添加用戶 收費標準的查詢及更新 收費卡信息的查詢及添加 圖3-1系統(tǒng)功能模塊圖 第三章 數(shù)據(jù)庫設計 3.1 引入背景 高速公路收費系統(tǒng)是一個數(shù)據(jù)庫應用系統(tǒng),有關車輛和收費的所有信息都保存在數(shù)據(jù)庫中。數(shù)據(jù)庫構造設計是高速公路收費系統(tǒng)數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程中一個非常重要的環(huán)節(jié),

16、設計的好壞將直接對所開發(fā)的高速公路收費系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。好的數(shù)據(jù)庫構造設計會減少數(shù)據(jù)庫的存儲量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應速度,簡化基于此數(shù)據(jù)庫的應用程序的實現(xiàn)等等。數(shù)據(jù)庫構造設計主要就是要設計好數(shù)據(jù)庫中各個表的構造,包括信息保存在哪些表格中、各個表的構造如何以及各個表之間的關系。數(shù)據(jù)庫的存在能夠完善地管理各種數(shù)據(jù)庫對象,具有強大的數(shù)據(jù)組織、用戶管理、平安檢查等功能;可以方便地生成各種數(shù)據(jù)對象,利用存儲的數(shù)據(jù)建立窗體和報表,可視性較好。由于數(shù)據(jù)庫設計的重要性,人們提出了許多數(shù)據(jù)庫構造設計的技術。 3.2 數(shù)據(jù)庫需求分析 數(shù)據(jù)庫需求分析是數(shù)據(jù)庫構造設計

17、的第一個階段,也是非常重要的一個階段。在這個階段主要工作是收集根本數(shù)據(jù)以及數(shù)據(jù)處理的流程,為以后進一步設計一打下根底。需求分析主要解決兩個問題:: . ● 容要求。調查應用系統(tǒng)用戶所需要操作的數(shù)據(jù),決定在數(shù)據(jù)庫中存儲什么數(shù)據(jù)。 ●處理要求。調查應用系統(tǒng)用戶要求對數(shù)據(jù)庫進展什么樣的處理,理清數(shù)據(jù)庫中各種數(shù)據(jù)之間的關系。 3.2.1 數(shù)據(jù)流圖 高速公路收費系統(tǒng) 頂層圖: 領導 車子 提供信息 查看 進 入 員工 收費標準 一層圖: 收費卡 提供信息 查詢、 修改 出站處理 得

18、到 交還、讀卡 進站處理 提供信息 查看 員工 員工 提供收費信息 權限距離情況 權限 信息 登錄 各站距離情況改動 進入數(shù)據(jù) 讀取信息 員工信息 3.2.2.數(shù)據(jù)字典 數(shù)據(jù)字典是對系統(tǒng)中數(shù)據(jù)的詳細描述,是各類數(shù)據(jù)構造和屬性的清單。它與數(shù)據(jù)流圖互為注釋。包括五個局部:數(shù)據(jù)項、數(shù)據(jù)構造、數(shù)據(jù)流、數(shù)據(jù)

19、存儲和處理過程。 數(shù)據(jù)項: 車輛信息: 屬性 別名 類型 長度 取值圍 含義說明 車輛類別 車型號 char 6 主鍵 not null 用于識別車輛的類型,用于收費計算 車牌號 車牌編號 char 8 唯一 唯一標識一輛汽車的關鍵域 職工信息: 屬性 別名 類型 長度 取值圍 含義說明 職工編號 工作號 char 8 主鍵 唯一 用于唯一標識一位職工信息的關鍵域 職工 char 10 not null 用于識別不同的員工 性別 char 2 男或女 標識職工的性別 年

20、齡 nchar 2 18~50 表示每位職工生存的年限 職位 char 4 領導或員工 用于標識職工的不同分工 系統(tǒng)登錄: 屬性 別名 類型 長度 取值圍 含義說明 職位 角色類別 char 4 領導或員工 用于標識登錄后的不同權限 職工編號 用戶名 char 8 主鍵 唯一 唯一標識一位職工的關鍵域 密碼 登錄密碼 char 6 not null 用戶登錄所需要的通行證 收費站信息: 屬性 別名 類型 長度 取值圍 含義說明 收費站號 進出站編號 char 6 主鍵 唯一 唯一標識一座收費站

21、的關鍵域 收費站名 varchar 30 not null 標識收費站的存在信息 地址 varchar 50 not null 標識收費站的位置信息 聯(lián)系方式 char 8 not null 收費站的聯(lián)系信息 車輛收費標準: 屬性 別名 類型 長度 取值圍 含義說明 車輛類別 車型號 char 6 not null 用于標識車輛的類別 收費單價 real not null 標識每類車每公里所收單價 備注 varchar 50 not null 對于所填容進展解釋 收費卡信息: 屬性 別名

22、 類型 長度 取值圍 含義說明 收費卡號 char 10 主鍵 唯一 標識唯一收費卡的 進站編號 收費站號 char 6 not null 登上高速公路的起始收費站 進站時間 Date time 8 not null 標識車輛進入起始收費站的時間 車輛類別 車型號 char 6 not null 車輛的類型,用于收費計算 收費查詢: 屬性 別名 類型 長度 取值圍 含義說明 收費ID 進出站ID char 12 唯一 進入收費站的通道位置及收費次序 車輛類別 車型號 char 6 not null

23、 標識車輛的類型,用于收費計算 道路編號 道路ID char 2 01~99 表示兩個收費站間的道路 應收費用 收費數(shù)目 float 6 not null 應收費用=收費單價*行駛路程 收費人 職工編號 char 8 唯一 用于唯一標識一位職工信息的關鍵域 各站距離情況: 屬性 別名 類型 長度 取值圍 含義說明 道路編號 道路ID char 2 01~~99 標識兩個收費站間的不同道路 進站編號 收費站號 char 6 取值唯一 唯一標識進入高速的收費站 出站編號 收費站號 char 6 取值唯一 唯一標識

24、出高速公路的收費站 距離 real 8 not null 兩個收費站間不同道路的長度 道路通行 可否通行 char 2 是或否 該路是否可以通行 數(shù)據(jù)構造: 數(shù)據(jù)構造名 含義說明 車輛信息 定義了一輛車的相關信息 職工信息 定義了一位職工的相關信息 系統(tǒng)登錄 定義了登錄高速公路收費系統(tǒng)的用戶和密碼 收費站信息 介紹了一座收費站的相關信息 車輛收費標準 介紹了我國及我省規(guī)定的高速公路收費標準 收費卡信息 定義了進站所獲通行卡的相關信息 車輛收費信息 定義了一輛車的具體收費情況 各站距離情況 不同收費站間的不同道路及距離 數(shù)據(jù)流:

25、 數(shù)據(jù)流名稱 輸入 輸出 員工信息查詢 職工編號、密碼 員工信息 員工信息更新 更新的員工信息 員工信息 收費卡信息更新 車輛提供收費卡 收費卡信息 收費標準信息查詢 收費標準信息 進站處理 各站距離情況查詢 各站距離信息提供 進站處理 收費信息查詢 進站處理 收費信息 數(shù)據(jù)存儲 數(shù)據(jù)存儲名 輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 存取方式 員工信息 更新的員工信息 員工信息 存到指定位置 收費卡 更新的收費卡信息 收費卡信息 存到指定位置 收費標準 收費標準信息 存到指定位置 各站距離 各站距離信息 存到指定位置 收費信

26、息 收費信息 存到指定位置 處理過程: 處理過程名 處理過程 輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 根本信息查詢 輸入關鍵屬性 信息查詢 根本信息 根本信息修改 根據(jù)所需進展修改 信息修改 根本信息 根本信息添加 輸入新的信息 信息添加 根本信息 根本信息刪除 根據(jù)所需進展刪減 信息刪除 根本信息 3.3 數(shù)據(jù)庫概念構造設計 概念構造是對現(xiàn)實世界的一種抽象,就是對實際的人、物、事和概念進展進展人為處理,它抽取人民關心的共同特性,忽略非本質的細節(jié),并把這些特性用各種概念準確地加以描述,這些概念組成了某種模型。概念構造設計就是根據(jù)需求分析得到的結果對現(xiàn)實世界

27、進展抽象,設計各個局部E-R模型。 n 局部E-R圖 1) 車輛的E-R圖 車輛 車牌號 車輛類別 年齡 性別 2) 職工的E-R圖 職工編號 職工姓名 職工 職位 3) 收費站的E-R圖 聯(lián)系方式 地址 收費站名 收費站號 收費站 4) 收費卡的E-R圖 進站編號 進站時間 車輛類別 收費卡號 收費卡 備注 5) 車輛收費標準E-R圖 收費標準 收費單價 車輛類型 6) 各站距離情況E-R圖 進站編號 出站編號 道路通行 道路編號 各站距離情況 距離 性別 7) 員工

28、管理局部的E-R圖 年齡 領導 職工姓名 職工編號 1 管理 年齡 性別 n 職工編號 員工 職工姓名 領導 8) 收費站與職工的實體聯(lián)系圖 1 管理 n 員工 系統(tǒng)登錄 nn 收費查詢 收費站

29、11 9) 收費站功能的實體聯(lián)系圖 收費站 1 顯示 n1 1 顯示 顯示 n 收費 n 收費卡 1 11 收、還 收費標準 各站距離情況 m 車輛 1 n 全局E-R圖 1 n n

30、 n 1 1 1

31、 n 1 n 1 1 n

32、 1 1 m 1 1

33、 1 m 職工編號 職工姓名 領導 職工編號 職工姓名 性別 年齡 管理 年齡 性別 車輛類別 員工 職位 道路編號 收費ID 收費查詢 密碼 系統(tǒng)登錄 收費人 收費時間 應收費用 職工編號 收費站 收費站號 地址 進站時間 收費站名 聯(lián)系方式 道路編號

34、顯示 顯示 顯示 出站編號 收費卡號 車輛類型 收費 距離 收費卡 進站編號 各站距離情況 車輛類別 收、交 進站編號 道路通行 車輛類別 收費標準 車牌號 收費單價 備注 車輛 3.4 數(shù)據(jù)庫邏輯構造設計 概念構造是獨立于實際數(shù)據(jù)模型的信息構造,必須將其轉化為邏輯構造后才能進展數(shù)據(jù)庫應用的設計。也就是要將概念上的構造轉化為BP數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)庫。數(shù)據(jù)庫邏輯構造管設計的任務是將概念模型轉換成特定DBMS所支持的數(shù)據(jù)模型的過程。 一般的邏輯構造分為三步: i. 初始關系模式設計; ii

35、. 關系模式規(guī)化; iii. 模式的評價與改進; 本系統(tǒng)所對應的關系模式: 車輛信息〔車牌號,車輛類別〕 職工信息〔職工編號,職工,性別,年齡,職位〕 登錄系統(tǒng)〔職工編號,職工,職位〕 收費查詢〔收費ID,車輛類別,道路編號,應收費用,收費人〕 收費站信息〔收費站號,收費站名,地址,聯(lián)系方式〕 收費卡信息〔收費卡號,進站編號,進站時間,車輛類別〕 各站間距〔道路編號,進站編號,出站編號,距離,道路通行〕 收費標準〔車輛類別,收費單價,備注〕 〔陰影加粗局部為主鍵〕 根據(jù)式定義,對各關系模式進展判斷,均符合第三式。 3.5 數(shù)據(jù)庫物理構造設計 物理構造設計是對于給定的

36、邏輯數(shù)據(jù)模型,選取了一個最適合應用環(huán)境的物理構造的過程。它的任務是為了有效地實現(xiàn)邏輯模式,確定所采取的存儲策略。分為確定物理構造和評價物理構造兩局部。 確定物理構造的步驟: a) 存儲記錄構造的設計; b) 訪問方法的設計; c) 數(shù)據(jù)存放位置的設計; d) 系統(tǒng)配置的設計; 3.5.1索引的建立〔主鍵、外鍵〕 索引是一種可以加快檢索的數(shù)據(jù)庫構造,它包含從表或視圖的一列或多列生成的鍵,以及映射到指定數(shù)據(jù)存儲位置的指針。通過創(chuàng)立設計良好的索引,可以顯著提高數(shù)據(jù)庫查詢和應用程序的性能。雖然索引有大量優(yōu)點,但一個表中的大量索引會影響插入、刪除、更新數(shù)據(jù)的性能,增加索引調整的本錢,降低系

37、統(tǒng)的響應速度。索引主要分為:聚集索引、非聚集索引、唯一索引、視圖索引、全文索引和XML索引。其中唯一索引中,創(chuàng)立PRIMARY KEY或UNIQUE約束時,自動生產(chǎn)唯一索引。 表名 主鍵 外鍵 車輛信息 車牌號 車輛類別 職工信息 職工編號 無 登錄系統(tǒng) 職工編號 無 收費查詢 收費ID 車輛類別、道路編號、收費人 收費站信息 收費站號 無 收費卡信息 收費卡號 車輛類別 各站間距 道路編號 無 收費標準 車輛類別 無 觸發(fā)器 觸發(fā)器屬于一種特殊的存儲過程,可以在其中包含復雜的SQL語句。觸發(fā)器與存儲過程的區(qū)別在于觸發(fā)器能夠自動執(zhí)行并且

38、不含參數(shù)。通常在觸發(fā)器中編寫一段自動執(zhí)行的程序,用于保證數(shù)據(jù)操作的完整性,從而擴展了對默認值、約束和規(guī)那么的完整性檢查。具有 a) 自動執(zhí)行 b) 實現(xiàn)比約束更為復雜的完整性要求 c) 根據(jù)表數(shù)據(jù)修改前后的狀態(tài),根據(jù)差異采取相應措施 d) 防止惡意的或錯誤的INSERT、UPDATE和DELETE操作等等優(yōu)點。 本系統(tǒng)使用了如下觸發(fā)器: 1. 實現(xiàn)在收費標準表中更新車輛類別的信息,收費卡信息表、車輛信息表、收費查詢表中的相對應的信息會自動更新; 2. 保證向車輛信息表中插入信息時,假設車輛類別不符合收費標準中的要求,拒絕插入; 3. 實現(xiàn)在職工信息表中刪除某一職工時,在登錄系統(tǒng)

39、表中的相關信息也被刪除; 4. 保證在登錄系統(tǒng)中添加新記錄時,新職工的信息必須存在于職工信息表中; 5. 實現(xiàn)在各站間距表中修改道路編號時,收費查詢表中相對應的信息會自動修改; 第四章 系統(tǒng)詳細設計與實現(xiàn) 4.1實體類庫設計與實現(xiàn) 實體類庫是是輔助數(shù)據(jù)庫的映射,可以理解為傳遞數(shù)據(jù)的載體,主要用于數(shù)據(jù)的存儲。它貫穿于整個架構,負擔著在各層次及模塊間傳遞數(shù)據(jù)的職責 本系統(tǒng)一共建立了8個類庫,分別為Login 、Staffinformation、Tollgate、Space 、Shoufeibiaozhun、Carinformation 、Cardinformation、Shoufeiq

40、uery。 Login類:用于提供職工的登錄信息,包括職工編號、密碼和用戶類別。用戶類別的不同使不同的職工擁有不同的權限,主要分為領導和員工。 publicclassTollgate { privatestring _gateID; publicstring GateID { get { return _gateID; } set { _gateID = value; } } ……//對屬性進展定義 public Tollgate()//定義無參的構造函數(shù) { } public Tollgate(

41、string gateID, string gatename, string address, string phone) { _gateID = gateID; _gatename = gatename; _address = address; _phone = phone; } } Staffinformation類:提供職工的具體信息,用于增加、刪除、和查詢,其中包括職工編號、職工、性別、年齡和職位。領導擁有增加、刪除職工信息的權限,員工擁有查詢

42、職工信息的權限。 publicclassStaffinformation { privatestring _staffID; publicstring StaffID { get { return _staffID; } set { _staffID = value; } } …… public Staffinformation()//定義無參的構造函數(shù) { } public Staffinformation(string staffID, string name, string sex, st

43、ring age, string post) { _staffID = staffID; _name = name; _sex = sex; _age = age; _post = post; } } Tollgate類:提供各個收費站的信息,用于增加和查詢,其中包括收費站編號、收費站名、收費站的地址和聯(lián)系方式。領導擁有增加收費站信息的權限,員工擁有查詢的權限。 publicclassTollgate {

44、 privatestring _gateID; publicstring GateID { get { return _gateID; } set { _gateID = value; } } …… public Tollgate()//定義無參的構造函數(shù) { } public Tollgate(string gateID, string gatename, string address, string phone) { _gateID = gateID;

45、 _gatename = gatename; _address = address; _phone = phone; } } Space類:提供各個收費站之間的道路、距離信息,用于增加、修改和查詢。其中包括道路編號、起始收費站的編號、終止收費站的編號、兩車站間的距離和道路通行情況。領導擁有增加和修改的權限,員工擁有查詢的權限。 publicclassSpace { privatestring _roadID; publicstring RoadID { get

46、 { return _roadID; } set { _roadID = value; } } …… public Space()//定義無參的構造函數(shù) { } public Space(string roadID, string jinzhanID, string chuzhanID, Single distance, string wayleave) { _roadID = roadID; _jinzhanID = jinzhanID;

47、 _chuzhanID = chuzhanID; _distance = distance; _wayleave = wayleave; } } Shoufeibiaozhun類:提供該車站的收費標準,一般為國家標準收費標準。其中包括車輛類型、單價和被子。領導具有查詢和根據(jù)國家收費標準進展修改的權限,員工具有查詢的權限。 publicclassShoufeibiaozhun { privatestring _cartype; publicstring Cartype { g

48、et { return _cartype; } set { _cartype = value; } } …… public Shoufeibiaozhun()//定義無參的構造函數(shù) { } public Shoufeibiaozhun(string cartype, Single unitprice, string remark) { _cartype = cartype; _unitprice = unitprice; _remark

49、 = remark; } } Carinformation類:提供過路車輛的信息,用于增加和查詢。其中包括車牌號和車輛類別。領導對于該表沒有權限,員工具有增加和查詢的權限。 publicclassCarinformation { privatestring _carID; publicstring CarID { get { return _carID; } set { _carID = value; } } …… public Carinformation()//定義無參的構造函數(shù) {

50、 } public Carinformation(string carID, string cartype) { _carID = carID; _cartype = cartype; } } Cardinformation類:提供車輛所拿收費卡的信息,用于增加和查詢。其中包括收費卡編號、所進高速公路的收費站編號、進高速公路的時間和車輛類型。領導對于該表沒有權限,員工擁有增加和查詢的權限。 publicclassCardinformation { privat

51、estring _cardID; publicstring CardID { get { return _cardID; } set { _cardID = value; } } …… public Cardinformation()//定義無參的構造函數(shù) { } public Cardinformation(string cardID, string jinzhanID, DateTime jinzhantime, string cartype) { _cardI

52、D = cardID; _jinzhanID = jinzhanID; _jinzhantime = jinzhantime; _cartype = cartype; } } Shoufeiquery類:提供車輛的具體收費信息,用于增加和查詢。其中包括收費編號、車輛類型、所走高速的道路編號、應收費用和收費的員工。領導對于該表沒有權限,員工擁有增加和查詢的權限。 publicclassShoufeiquery { privatestring _shoufeiID; pub

53、licstring ShoufeiID { get { return _shoufeiID; } set { _shoufeiID = value; } } …… public Shoufeiquery()//定義無參的構造函數(shù) { } public Shoufeiquery(string shoufeiID,string cartype,string roadID,string cost,string name) { _shoufeiID = shoufeiID;

54、 _cartype = cartype; _roadID = roadID; _cost = cost; _name = name; } } 4.2數(shù)據(jù)訪問層類庫設計與實現(xiàn) 數(shù)據(jù)訪問層有時候也稱為是持久層,是所做事務直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、查找等。主要是對原始數(shù)據(jù)〔數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式〕的操作層,是對數(shù)據(jù)的操作,具體為業(yè)務邏輯層或表示層提供數(shù)據(jù)效勞。 本系統(tǒng)中一共建立了9個數(shù)據(jù)訪問層的類庫,分別為:Dabase、LoginServer、Staffinfo

55、rmationServer、TollgateServer、SpaceServer、ShoufeibiaozhunServer、CarinformationServer 、CardinformationServer、ShoufeiqueryServer。 鑒于大局部類庫實現(xiàn)的功能與代碼都類似,在這里只貼局部類庫的代碼。 Dabase類:主要是提供數(shù)據(jù)庫的以及在數(shù)據(jù)庫中執(zhí)行增、刪、改、查的代碼。 publicclassDabase { privatestaticstring _connStr = "Data Source=.;Initial Catalog=Road;Integr

56、ated Security=True"; privatestaticSqlConnection sqlcon = null; privatestaticvoid CreateConnection() { if (sqlcon == null) { sqlcon = newSqlConnection(_connStr); sqlcon.Open(); } elseif (sqlcon.State == ConnectionState.Closed ||

57、 sqlcon.State == ConnectionState.Broken) { sqlcon.Close(); sqlcon.Open(); } } //執(zhí)行Insert/update/delete,不帶參數(shù) publicstaticint ExecuteNoQuery(string strsql) { int i; try { CreateConnection();

58、 SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); i = sqlcmd.ExecuteNonQuery(); sqlcon.Close(); return i; } catch { return -1; } } //執(zhí)行Insert/update/delete,帶參數(shù) publicstaticint ExecuteNoQuery(string strsql, para

59、msSqlParameter[] param) { int i; try { CreateConnection(); SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); //sqlcmd.Parameters.Add(param); foreach (SqlParameter par in param) //遍歷數(shù)組將參數(shù)對象添加到操作命令中 { sqlcmd.Parameter

60、s.Add(par); } i = sqlcmd.ExecuteNonQuery(); return i; } catch { return -1; } } //執(zhí)行SELECT命令,得到數(shù)據(jù)表 publicstaticDataTable GetTable(string strsql) { try { CreateConnection();

61、SqlDataAdapter sda = newSqlDataAdapter(strsql, sqlcon); DataSet ds = newDataSet(); sda.Fill(ds, "temp"); sqlcon.Close(); return ds.Tables["temp"]; } catch { returnnull; } } publicstaticDataTable GetTable(string st

62、rsql, paramsSqlParameter[] param) { try { CreateConnection(); SqlDataAdapter sda = newSqlDataAdapter(strsql, sqlcon); foreach (SqlParameter par in param) //遍歷數(shù)組將參數(shù)對象添加到操作命令中 { sda.SelectCommand.Parameters.Add(param);

63、 } DataSet ds = newDataSet(); sda.Fill(ds, "temp"); sqlcon.Close(); return ds.Tables["temp"]; } catch { returnnull; } } publicstaticSqlDataReader GetReader(string strsql) { try

64、 { CreateConnection(); SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); SqlDataReader sdr = sqlcmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } catch { returnnull; } } publicstaticSqlDataReader GetReader(strin

65、g strsql, paramsSqlParameter[] param) { try { CreateConnection(); SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); foreach (SqlParameter par in param) //遍歷數(shù)組將參數(shù)對象添加到操作命令中 { sqlcmd.Parameters.Add(par);

66、 } SqlDataReader sdr = sqlcmd.ExecuteReader(); return sdr; } catch { returnnull; } } // 執(zhí)行統(tǒng)計等命令 publicstaticint num(string strsql) { int i; try { CreateConnection(); SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); i = (int)sqlcmd.ExecuteScalar(); return i; } catch { return 0; } } // 執(zhí)行統(tǒng)計等命令 publicstaticint num(string strsql, par

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!