C#課程設(shè)計報告 高速公路收費系統(tǒng)
《C#課程設(shè)計報告 高速公路收費系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《C#課程設(shè)計報告 高速公路收費系統(tǒng)(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、. . 優(yōu)選 . - 課程設(shè)計報告書 專業(yè):信息管理與信息系統(tǒng) 課程設(shè)計名稱:"可視化編程技術(shù)課程設(shè)計" 題目:高速公路收費系統(tǒng) 班級: 學(xué)號: 設(shè)計者: 指導(dǎo)教師: 完成時間: 摘要 在現(xiàn)代交通越來越便利的同時,高速公路也發(fā)揮著越來越重要的作用。中國已經(jīng)有4萬多公里的高速公路,在未來還將翻倍。修建高速公路被各地官員拉入地方經(jīng)濟工作日常首要位置,與1950年后的美國相
2、似,越來越密集的高速網(wǎng)正在促使著中國發(fā)生巨大的變化。 高速公路收費系統(tǒng)是高速公路管理的重要組成局部。建立智能化的收費系統(tǒng)是加強高速公路管理的一個重要環(huán)節(jié)。高速公路收費系統(tǒng)解決了高速公路收費業(yè)務(wù)中由于采取傳統(tǒng)方法和手段出現(xiàn)的難以處理的問題,并把管理對象轉(zhuǎn)向信息對象的信息管理系統(tǒng),把高速公路收費系統(tǒng)推向另一個高度。 利用計算機進展高速公路收費系統(tǒng)設(shè)計,本文是采用C*作為前臺開發(fā)工具,SQL Server2021 R2作為后臺數(shù)據(jù)庫平臺的基于C/S的三層模式的高速公路收費系統(tǒng)。 關(guān)鍵詞: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)的分析與設(shè)計3 2.1 系統(tǒng)需求分析3 2.2 系統(tǒng)總體設(shè)計3 2.2.1 系統(tǒng)設(shè)計目標(biāo)3 2.2.2 開發(fā)設(shè)計思想4 2.2.3 系統(tǒng)功能模塊設(shè)計4 第三章數(shù)據(jù)庫設(shè)計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ù)庫概念構(gòu)造設(shè)計10 3.4 數(shù)據(jù)庫邏輯構(gòu)造設(shè)計14 3.5 數(shù)據(jù)庫物理構(gòu)造設(shè)計15 3.5.1 索引的建立〔主鍵、外鍵〕15 3.5.2 觸發(fā)器16 第四章系統(tǒng)詳細設(shè)計與實現(xiàn)17 4.1 實體類庫設(shè)計與實現(xiàn)17 4.2 數(shù)據(jù)訪問層類庫設(shè)計與實現(xiàn)22 4.3 業(yè)務(wù)邏輯層類庫設(shè)計與實現(xiàn)32 4.4 界面設(shè)計及實現(xiàn)37 4.4.1 登陸界面及代碼37 4.4.2 主界面及代碼38 結(jié)論50 心得體會51 參考文獻52 -
5、 .word.zl . - 第一章 開發(fā)環(huán)境和開發(fā)工具 1.1 C*語言簡介 C*是微軟公司發(fā)布的一種面向?qū)ο蟮?、運行于.NET Framework之上的高級程序設(shè)計語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C*是微軟公司研究員Anders Hejlsberg的最新成果。C*看起來與Java有著驚
6、人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C*與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM〔組件對象模型〕是直接集成的,而且它是微軟公司 .NET windows網(wǎng)絡(luò)框架的主角。 C*是一種平安的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強大功能的同時去掉了一些它們的復(fù)雜特性〔例如沒有宏以及不允許多重繼承〕。C*綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。 C*是一
7、種面向?qū)ο蟮恼Z言,它使得程序員可以快速地編寫各種基于MICROSOFT .NET平臺的應(yīng)用程序,MICROSOFT .NET提供了一系列的工具和效勞來最大程度地開發(fā)利用計算與通訊領(lǐng)域。 1.2 開發(fā)背景 二十年來,收費公路在中國從無到有,彌補了傳統(tǒng)公共交通的缺乏,滿足了人們快捷、平安、舒適的交通需要,為中國經(jīng)濟的蓬勃開展做出了巨大奉獻。正確提醒收費公路在公共效勞方面的標(biāo)準和限度,處理費用的各種數(shù)據(jù),對中國公路建立事業(yè)安康開展有重要意義。 如今,高速公路的飛速開展,高速公路的行路暢通,正因為這樣,高速公路在各種交通運輸渠道中占據(jù)了主要的地位,這就造成了高速公路收費管理出現(xiàn)了一些問題,不但增
8、加了運營的強度,也增加了高速公路收費工作人員的工作壓力。所以,這對現(xiàn)有的收費管理和收費人員提出更多的要求:提高收費效率、降低收費過失,提高收費站管理效勞水平。而以手工為主的傳統(tǒng)收費方式已經(jīng)不能滿足當(dāng)前收費的實際需要。 在當(dāng)今信息化的社會里,作為高新技術(shù)之一的C*可視化編程技術(shù)和數(shù)據(jù)庫應(yīng)用技術(shù)已成為高速公路信息資源利用和高速公路建立及其現(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和基于面向?qū)ο蟪绦蛟O(shè)計的C*。SQL Server 2021 R2在Microsoft的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù),可以將構(gòu)造化、半構(gòu)造化和非構(gòu)造化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中。它可以對數(shù)據(jù)進展查詢、搜索、同步、報告和分析之類的操作引進了一系列新功能幫助各種規(guī)模的業(yè)務(wù)從信息中獲取更多價值。經(jīng)過改進的SQL Server 2021 R2增強了開發(fā)能力,提高了可管理性,強化了商業(yè)智能及數(shù)據(jù)倉庫。 本系統(tǒng)是利用SQL Server 2021R2創(chuàng)立高速收費站上的收費站信息表、
10、職工信息表、收費查詢表、道路表、進出站信息表、車輛信息表、車輛流動表、收費卡信息表、收費標(biāo)準表以及用C*連接數(shù)據(jù)庫用的登錄系統(tǒng)表。利用C*和數(shù)據(jù)庫建立連接之后,利用C*中的控件按鈕以及一些程序代碼實現(xiàn)一些特定的功能,例如員工信息查詢、員工信息編輯、車輛信息查詢、收費標(biāo)準查詢、收費情況查詢等,極提高了高速公路收費管理的效率。 第二章 人事管理信息系統(tǒng)的分析與設(shè)計 隨著計算機技術(shù)的飛速開展,計算機在各種收費和管理應(yīng)用的普及,利用計算機實現(xiàn)高速公路收費的管理勢在必行。當(dāng)前高速公路收費系統(tǒng)正在從C/S構(gòu)造向B/S構(gòu)造轉(zhuǎn)移,但是由于平安性等方面的因素,C/S構(gòu)造的高速公路收費系統(tǒng)仍然占據(jù)收費系統(tǒng)
11、的主流。本文所論述的系統(tǒng)也是C/S構(gòu)造的高速公路收費系統(tǒng)。 高速公路收費系統(tǒng)是適應(yīng)現(xiàn)代化制度要求,推動高速公路收費走向科學(xué)化、規(guī)化的必要條件。 2.1 系統(tǒng)需求分析 在現(xiàn)代運輸?shù)蔫F路、公路、水運、航運和管理五種方式中,目前我國公路運輸約占全國客、貨運輸總量的一半以上。近年來,我國高速公路的開展很快,高速公路總里程躍居世界第二位,從而大大改善了公路路網(wǎng)構(gòu)造,緩解了交通旅游業(yè)的開展,推動沿線產(chǎn)業(yè)構(gòu)造調(diào)整,加快了中小城鎮(zhèn)的發(fā)。 隨著高速公路的建立,收費站數(shù)目的不斷增加,對現(xiàn)有的收費管理和收費人員提出了新的要求:提高收費效率、降低收費過失,提高收費站管理效勞水平。高速公路收費系統(tǒng)提供了一種理想
12、的解決上述問題的方案,能適應(yīng)新的收費管理要求。 在當(dāng)今信息化的社會里,如何運用計算機技術(shù)、運用好有限的資金,加快速度、高質(zhì)量地建立高等級公路收費系統(tǒng),是擺在廣闊科技工作者面前一個有待解決的課題。今為解決這一些問題特別寫了高速公路收費系統(tǒng),利用計算機的存取功能及其計算機數(shù)據(jù)庫的功能來實現(xiàn)對數(shù)據(jù)的有效、高速管理。 2.2 系統(tǒng)總體設(shè)計 2.2.1 系統(tǒng)設(shè)計目標(biāo) 本文研究開發(fā)的高速公路收費系統(tǒng)用于支持高速公路的收費管理工作,有如下三個方面的目標(biāo): ●支持收費站實現(xiàn)規(guī)化的管理。 ●支持收費人員高效率完成車輛收費和信息查詢的日常業(yè)務(wù),包括車輛的道路信息、車輛信息、增加收費的具體信息和收費詳情
13、查看等。 ●支持收費站進展勞動人事管理及其相關(guān)方面的科學(xué)決策,如領(lǐng)導(dǎo)根據(jù)現(xiàn)有的員工情況增加或減少員工人數(shù)、修改員工信息等。 開發(fā)設(shè)計思想 基于以上系統(tǒng)設(shè)計目標(biāo),本文在開發(fā)高速公路收費系統(tǒng)時遵循了以下開發(fā)設(shè)計思想: ●采用現(xiàn)有的軟硬件環(huán)境及先進的系統(tǒng)開發(fā)方案,從而到達充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。 ●盡量到達操作過程中的直觀、方便、實用、平安等要求。 ●系統(tǒng)采用C/S體系構(gòu)造,Clinet(客戶端)負責(zé)提供表達邏輯、顯示用戶界面信息、訪問數(shù)據(jù)庫效勞器;Server(效勞器端)那么用于提供數(shù)據(jù)效勞。 ●系統(tǒng)采用三層架構(gòu)的設(shè)計思想,即界面層〔User Inte
14、rface layer〕、業(yè)務(wù)邏輯層〔Business Logic Layer〕、數(shù)據(jù)訪問層〔Data access layer〕。界面層:主要對用戶的請求承受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問。業(yè)務(wù)邏輯層:是系統(tǒng)架構(gòu)中表達核心價值的局部,主要負責(zé)對數(shù)據(jù)層的操作。數(shù)據(jù)訪問層:主要是對數(shù)據(jù)的操作,具體為業(yè)務(wù)邏輯層或表示層提供數(shù)據(jù)效勞。 ●系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護人員補充、維護。 ●系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進展數(shù)據(jù)的添加、刪除、修改、備份等操作。 系統(tǒng)功能模塊設(shè)計 本系統(tǒng)分為四個模塊:系統(tǒng)模塊、職工信
15、息管理、收費站信息管理、車輛信息管理。 本系統(tǒng)的具體功能模塊圖如圖3-1所示: 高速公路收費系統(tǒng) 系統(tǒng)設(shè)置 職工信息 收費站信息 車輛信息 修改密碼 退出 員工信息查詢及修改 領(lǐng)導(dǎo)信息查詢 收費站信息查詢及更新 車輛信息查詢及添加 收費信息查詢及添加 各站距離情況查詢及更新 添加用戶 收費標(biāo)準的查詢及更新 收費卡信息的查詢及添加 圖3-1系統(tǒng)功能模塊圖 第三章 數(shù)據(jù)庫設(shè)計 3.1 引入背景 高速公路收費系統(tǒng)是一個數(shù)據(jù)庫應(yīng)用系統(tǒng),有關(guān)車輛和收費的所有信息都保存在數(shù)據(jù)庫中。數(shù)據(jù)庫構(gòu)造設(shè)計是高速公路收費系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)過程中一個非常重要的環(huán)節(jié),
16、設(shè)計的好壞將直接對所開發(fā)的高速公路收費系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。好的數(shù)據(jù)庫構(gòu)造設(shè)計會減少數(shù)據(jù)庫的存儲量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡化基于此數(shù)據(jù)庫的應(yīng)用程序的實現(xiàn)等等。數(shù)據(jù)庫構(gòu)造設(shè)計主要就是要設(shè)計好數(shù)據(jù)庫中各個表的構(gòu)造,包括信息保存在哪些表格中、各個表的構(gòu)造如何以及各個表之間的關(guān)系。數(shù)據(jù)庫的存在能夠完善地管理各種數(shù)據(jù)庫對象,具有強大的數(shù)據(jù)組織、用戶管理、平安檢查等功能;可以方便地生成各種數(shù)據(jù)對象,利用存儲的數(shù)據(jù)建立窗體和報表,可視性較好。由于數(shù)據(jù)庫設(shè)計的重要性,人們提出了許多數(shù)據(jù)庫構(gòu)造設(shè)計的技術(shù)。 3.2 數(shù)據(jù)庫需求分析 數(shù)據(jù)庫需求分析是數(shù)據(jù)庫構(gòu)造設(shè)計
17、的第一個階段,也是非常重要的一個階段。在這個階段主要工作是收集根本數(shù)據(jù)以及數(shù)據(jù)處理的流程,為以后進一步設(shè)計一打下根底。需求分析主要解決兩個問題:: . ● 容要求。調(diào)查應(yīng)用系統(tǒng)用戶所需要操作的數(shù)據(jù),決定在數(shù)據(jù)庫中存儲什么數(shù)據(jù)。 ●處理要求。調(diào)查應(yīng)用系統(tǒng)用戶要求對數(shù)據(jù)庫進展什么樣的處理,理清數(shù)據(jù)庫中各種數(shù)據(jù)之間的關(guān)系。 3.2.1 數(shù)據(jù)流圖 高速公路收費系統(tǒng) 頂層圖: 領(lǐng)導(dǎo) 車子 提供信息 查看 進 入 員工 收費標(biāo)準 一層圖: 收費卡 提供信息 查詢、 修改 出站處理 得
18、到 交還、讀卡 進站處理 提供信息 查看 員工 員工 提供收費信息 權(quán)限距離情況 權(quán)限 信息 登錄 各站距離情況改動 進入數(shù)據(jù) 讀取信息 員工信息 3.2.2.數(shù)據(jù)字典 數(shù)據(jù)字典是對系統(tǒng)中數(shù)據(jù)的詳細描述,是各類數(shù)據(jù)構(gòu)造和屬性的清單。它與數(shù)據(jù)流圖互為注釋。包括五個局部:數(shù)據(jù)項、數(shù)據(jù)構(gòu)造、數(shù)據(jù)流、數(shù)據(jù)
19、存儲和處理過程。 數(shù)據(jù)項: 車輛信息: 屬性 別名 類型 長度 取值圍 含義說明 車輛類別 車型號 char 6 主鍵 not null 用于識別車輛的類型,用于收費計算 車牌號 車牌編號 char 8 唯一 唯一標(biāo)識一輛汽車的關(guān)鍵域 職工信息: 屬性 別名 類型 長度 取值圍 含義說明 職工編號 工作號 char 8 主鍵 唯一 用于唯一標(biāo)識一位職工信息的關(guān)鍵域 職工 char 10 not null 用于識別不同的員工 性別 char 2 男或女 標(biāo)識職工的性別 年
20、齡 nchar 2 18~50 表示每位職工生存的年限 職位 char 4 領(lǐng)導(dǎo)或員工 用于標(biāo)識職工的不同分工 系統(tǒng)登錄: 屬性 別名 類型 長度 取值圍 含義說明 職位 角色類別 char 4 領(lǐng)導(dǎo)或員工 用于標(biāo)識登錄后的不同權(quán)限 職工編號 用戶名 char 8 主鍵 唯一 唯一標(biāo)識一位職工的關(guān)鍵域 密碼 登錄密碼 char 6 not null 用戶登錄所需要的通行證 收費站信息: 屬性 別名 類型 長度 取值圍 含義說明 收費站號 進出站編號 char 6 主鍵 唯一 唯一標(biāo)識一座收費站
21、的關(guān)鍵域 收費站名 varchar 30 not null 標(biāo)識收費站的存在信息 地址 varchar 50 not null 標(biāo)識收費站的位置信息 聯(lián)系方式 char 8 not null 收費站的聯(lián)系信息 車輛收費標(biāo)準: 屬性 別名 類型 長度 取值圍 含義說明 車輛類別 車型號 char 6 not null 用于標(biāo)識車輛的類別 收費單價 real not null 標(biāo)識每類車每公里所收單價 備注 varchar 50 not null 對于所填容進展解釋 收費卡信息: 屬性 別名
22、 類型 長度 取值圍 含義說明 收費卡號 char 10 主鍵 唯一 標(biāo)識唯一收費卡的 進站編號 收費站號 char 6 not null 登上高速公路的起始收費站 進站時間 Date time 8 not null 標(biāo)識車輛進入起始收費站的時間 車輛類別 車型號 char 6 not null 車輛的類型,用于收費計算 收費查詢: 屬性 別名 類型 長度 取值圍 含義說明 收費ID 進出站ID char 12 唯一 進入收費站的通道位置及收費次序 車輛類別 車型號 char 6 not null
23、 標(biāo)識車輛的類型,用于收費計算 道路編號 道路ID char 2 01~99 表示兩個收費站間的道路 應(yīng)收費用 收費數(shù)目 float 6 not null 應(yīng)收費用=收費單價*行駛路程 收費人 職工編號 char 8 唯一 用于唯一標(biāo)識一位職工信息的關(guān)鍵域 各站距離情況: 屬性 別名 類型 長度 取值圍 含義說明 道路編號 道路ID char 2 01~~99 標(biāo)識兩個收費站間的不同道路 進站編號 收費站號 char 6 取值唯一 唯一標(biāo)識進入高速的收費站 出站編號 收費站號 char 6 取值唯一 唯一標(biāo)識
24、出高速公路的收費站 距離 real 8 not null 兩個收費站間不同道路的長度 道路通行 可否通行 char 2 是或否 該路是否可以通行 數(shù)據(jù)構(gòu)造: 數(shù)據(jù)構(gòu)造名 含義說明 車輛信息 定義了一輛車的相關(guān)信息 職工信息 定義了一位職工的相關(guān)信息 系統(tǒng)登錄 定義了登錄高速公路收費系統(tǒng)的用戶和密碼 收費站信息 介紹了一座收費站的相關(guān)信息 車輛收費標(biāo)準 介紹了我國及我省規(guī)定的高速公路收費標(biāo)準 收費卡信息 定義了進站所獲通行卡的相關(guān)信息 車輛收費信息 定義了一輛車的具體收費情況 各站距離情況 不同收費站間的不同道路及距離 數(shù)據(jù)流:
25、 數(shù)據(jù)流名稱 輸入 輸出 員工信息查詢 職工編號、密碼 員工信息 員工信息更新 更新的員工信息 員工信息 收費卡信息更新 車輛提供收費卡 收費卡信息 收費標(biāo)準信息查詢 收費標(biāo)準信息 進站處理 各站距離情況查詢 各站距離信息提供 進站處理 收費信息查詢 進站處理 收費信息 數(shù)據(jù)存儲 數(shù)據(jù)存儲名 輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 存取方式 員工信息 更新的員工信息 員工信息 存到指定位置 收費卡 更新的收費卡信息 收費卡信息 存到指定位置 收費標(biāo)準 收費標(biāo)準信息 存到指定位置 各站距離 各站距離信息 存到指定位置 收費信
26、息 收費信息 存到指定位置 處理過程: 處理過程名 處理過程 輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 根本信息查詢 輸入關(guān)鍵屬性 信息查詢 根本信息 根本信息修改 根據(jù)所需進展修改 信息修改 根本信息 根本信息添加 輸入新的信息 信息添加 根本信息 根本信息刪除 根據(jù)所需進展刪減 信息刪除 根本信息 3.3 數(shù)據(jù)庫概念構(gòu)造設(shè)計 概念構(gòu)造是對現(xiàn)實世界的一種抽象,就是對實際的人、物、事和概念進展進展人為處理,它抽取人民關(guān)心的共同特性,忽略非本質(zhì)的細節(jié),并把這些特性用各種概念準確地加以描述,這些概念組成了某種模型。概念構(gòu)造設(shè)計就是根據(jù)需求分析得到的結(jié)果對現(xiàn)實世界
27、進展抽象,設(shè)計各個局部E-R模型。 n 局部E-R圖 1) 車輛的E-R圖 車輛 車牌號 車輛類別 年齡 性別 2) 職工的E-R圖 職工編號 職工姓名 職工 職位 3) 收費站的E-R圖 聯(lián)系方式 地址 收費站名 收費站號 收費站 4) 收費卡的E-R圖 進站編號 進站時間 車輛類別 收費卡號 收費卡 備注 5) 車輛收費標(biāo)準E-R圖 收費標(biāo)準 收費單價 車輛類型 6) 各站距離情況E-R圖 進站編號 出站編號 道路通行 道路編號 各站距離情況 距離 性別 7) 員工
28、管理局部的E-R圖 年齡 領(lǐng)導(dǎo) 職工姓名 職工編號 1 管理 年齡 性別 n 職工編號 員工 職工姓名 領(lǐng)導(dǎo) 8) 收費站與職工的實體聯(lián)系圖 1 管理 n 員工 系統(tǒng)登錄 nn 收費查詢 收費站
29、11 9) 收費站功能的實體聯(lián)系圖 收費站 1 顯示 n1 1 顯示 顯示 n 收費 n 收費卡 1 11 收、還 收費標(biāo)準 各站距離情況 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 職工編號 職工姓名 領(lǐng)導(dǎo) 職工編號 職工姓名 性別 年齡 管理 年齡 性別 車輛類別 員工 職位 道路編號 收費ID 收費查詢 密碼 系統(tǒng)登錄 收費人 收費時間 應(yīng)收費用 職工編號 收費站 收費站號 地址 進站時間 收費站名 聯(lián)系方式 道路編號
34、顯示 顯示 顯示 出站編號 收費卡號 車輛類型 收費 距離 收費卡 進站編號 各站距離情況 車輛類別 收、交 進站編號 道路通行 車輛類別 收費標(biāo)準 車牌號 收費單價 備注 車輛 3.4 數(shù)據(jù)庫邏輯構(gòu)造設(shè)計 概念構(gòu)造是獨立于實際數(shù)據(jù)模型的信息構(gòu)造,必須將其轉(zhuǎn)化為邏輯構(gòu)造后才能進展數(shù)據(jù)庫應(yīng)用的設(shè)計。也就是要將概念上的構(gòu)造轉(zhuǎn)化為BP數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)庫。數(shù)據(jù)庫邏輯構(gòu)造管設(shè)計的任務(wù)是將概念模型轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型的過程。 一般的邏輯構(gòu)造分為三步: i. 初始關(guān)系模式設(shè)計; ii
35、. 關(guān)系模式規(guī)化; iii. 模式的評價與改進; 本系統(tǒng)所對應(yīng)的關(guān)系模式: 車輛信息〔車牌號,車輛類別〕 職工信息〔職工編號,職工,性別,年齡,職位〕 登錄系統(tǒng)〔職工編號,職工,職位〕 收費查詢〔收費ID,車輛類別,道路編號,應(yīng)收費用,收費人〕 收費站信息〔收費站號,收費站名,地址,聯(lián)系方式〕 收費卡信息〔收費卡號,進站編號,進站時間,車輛類別〕 各站間距〔道路編號,進站編號,出站編號,距離,道路通行〕 收費標(biāo)準〔車輛類別,收費單價,備注〕 〔陰影加粗局部為主鍵〕 根據(jù)式定義,對各關(guān)系模式進展判斷,均符合第三式。 3.5 數(shù)據(jù)庫物理構(gòu)造設(shè)計 物理構(gòu)造設(shè)計是對于給定的
36、邏輯數(shù)據(jù)模型,選取了一個最適合應(yīng)用環(huán)境的物理構(gòu)造的過程。它的任務(wù)是為了有效地實現(xiàn)邏輯模式,確定所采取的存儲策略。分為確定物理構(gòu)造和評價物理構(gòu)造兩局部。 確定物理構(gòu)造的步驟: a) 存儲記錄構(gòu)造的設(shè)計; b) 訪問方法的設(shè)計; c) 數(shù)據(jù)存放位置的設(shè)計; d) 系統(tǒng)配置的設(shè)計; 3.5.1索引的建立〔主鍵、外鍵〕 索引是一種可以加快檢索的數(shù)據(jù)庫構(gòu)造,它包含從表或視圖的一列或多列生成的鍵,以及映射到指定數(shù)據(jù)存儲位置的指針。通過創(chuàng)立設(shè)計良好的索引,可以顯著提高數(shù)據(jù)庫查詢和應(yīng)用程序的性能。雖然索引有大量優(yōu)點,但一個表中的大量索引會影響插入、刪除、更新數(shù)據(jù)的性能,增加索引調(diào)整的本錢,降低系
37、統(tǒng)的響應(yīng)速度。索引主要分為:聚集索引、非聚集索引、唯一索引、視圖索引、全文索引和XML索引。其中唯一索引中,創(chuàng)立PRIMARY KEY或UNIQUE約束時,自動生產(chǎn)唯一索引。 表名 主鍵 外鍵 車輛信息 車牌號 車輛類別 職工信息 職工編號 無 登錄系統(tǒng) 職工編號 無 收費查詢 收費ID 車輛類別、道路編號、收費人 收費站信息 收費站號 無 收費卡信息 收費卡號 車輛類別 各站間距 道路編號 無 收費標(biāo)準 車輛類別 無 觸發(fā)器 觸發(fā)器屬于一種特殊的存儲過程,可以在其中包含復(fù)雜的SQL語句。觸發(fā)器與存儲過程的區(qū)別在于觸發(fā)器能夠自動執(zhí)行并且
38、不含參數(shù)。通常在觸發(fā)器中編寫一段自動執(zhí)行的程序,用于保證數(shù)據(jù)操作的完整性,從而擴展了對默認值、約束和規(guī)那么的完整性檢查。具有 a) 自動執(zhí)行 b) 實現(xiàn)比約束更為復(fù)雜的完整性要求 c) 根據(jù)表數(shù)據(jù)修改前后的狀態(tài),根據(jù)差異采取相應(yīng)措施 d) 防止惡意的或錯誤的INSERT、UPDATE和DELETE操作等等優(yōu)點。 本系統(tǒng)使用了如下觸發(fā)器: 1. 實現(xiàn)在收費標(biāo)準表中更新車輛類別的信息,收費卡信息表、車輛信息表、收費查詢表中的相對應(yīng)的信息會自動更新; 2. 保證向車輛信息表中插入信息時,假設(shè)車輛類別不符合收費標(biāo)準中的要求,拒絕插入; 3. 實現(xiàn)在職工信息表中刪除某一職工時,在登錄系統(tǒng)
39、表中的相關(guān)信息也被刪除; 4. 保證在登錄系統(tǒng)中添加新記錄時,新職工的信息必須存在于職工信息表中; 5. 實現(xiàn)在各站間距表中修改道路編號時,收費查詢表中相對應(yīng)的信息會自動修改; 第四章 系統(tǒng)詳細設(shè)計與實現(xiàn) 4.1實體類庫設(shè)計與實現(xiàn) 實體類庫是是輔助數(shù)據(jù)庫的映射,可以理解為傳遞數(shù)據(jù)的載體,主要用于數(shù)據(jù)的存儲。它貫穿于整個架構(gòu),負擔(dān)著在各層次及模塊間傳遞數(shù)據(jù)的職責(zé) 本系統(tǒng)一共建立了8個類庫,分別為Login 、Staffinformation、Tollgate、Space 、Shoufeibiaozhun、Carinformation 、Cardinformation、Shoufeiq
40、uery。 Login類:用于提供職工的登錄信息,包括職工編號、密碼和用戶類別。用戶類別的不同使不同的職工擁有不同的權(quán)限,主要分為領(lǐng)導(dǎo)和員工。 publicclassTollgate { privatestring _gateID; publicstring GateID { get { return _gateID; } set { _gateID = value; } } ……//對屬性進展定義 public Tollgate()//定義無參的構(gòu)造函數(shù) { } public Tollgate(
41、string gateID, string gatename, string address, string phone) { _gateID = gateID; _gatename = gatename; _address = address; _phone = phone; } } Staffinformation類:提供職工的具體信息,用于增加、刪除、和查詢,其中包括職工編號、職工、性別、年齡和職位。領(lǐng)導(dǎo)擁有增加、刪除職工信息的權(quán)限,員工擁有查詢
42、職工信息的權(quán)限。 publicclassStaffinformation { privatestring _staffID; publicstring StaffID { get { return _staffID; } set { _staffID = value; } } …… public Staffinformation()//定義無參的構(gòu)造函數(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)系方式。領(lǐng)導(dǎo)擁有增加收費站信息的權(quán)限,員工擁有查詢的權(quán)限。 publicclassTollgate {
44、 privatestring _gateID; publicstring GateID { get { return _gateID; } set { _gateID = value; } } …… public Tollgate()//定義無參的構(gòu)造函數(shù) { } public Tollgate(string gateID, string gatename, string address, string phone) { _gateID = gateID;
45、 _gatename = gatename; _address = address; _phone = phone; } } Space類:提供各個收費站之間的道路、距離信息,用于增加、修改和查詢。其中包括道路編號、起始收費站的編號、終止收費站的編號、兩車站間的距離和道路通行情況。領(lǐng)導(dǎo)擁有增加和修改的權(quán)限,員工擁有查詢的權(quán)限。 publicclassSpace { privatestring _roadID; publicstring RoadID { get
46、 { return _roadID; } set { _roadID = value; } } …… public Space()//定義無參的構(gòu)造函數(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類:提供該車站的收費標(biāo)準,一般為國家標(biāo)準收費標(biāo)準。其中包括車輛類型、單價和被子。領(lǐng)導(dǎo)具有查詢和根據(jù)國家收費標(biāo)準進展修改的權(quán)限,員工具有查詢的權(quán)限。 publicclassShoufeibiaozhun { privatestring _cartype; publicstring Cartype { g
48、et { return _cartype; } set { _cartype = value; } } …… public Shoufeibiaozhun()//定義無參的構(gòu)造函數(shù) { } public Shoufeibiaozhun(string cartype, Single unitprice, string remark) { _cartype = cartype; _unitprice = unitprice; _remark
49、 = remark; } } Carinformation類:提供過路車輛的信息,用于增加和查詢。其中包括車牌號和車輛類別。領(lǐng)導(dǎo)對于該表沒有權(quán)限,員工具有增加和查詢的權(quán)限。 publicclassCarinformation { privatestring _carID; publicstring CarID { get { return _carID; } set { _carID = value; } } …… public Carinformation()//定義無參的構(gòu)造函數(shù) {
50、 } public Carinformation(string carID, string cartype) { _carID = carID; _cartype = cartype; } } Cardinformation類:提供車輛所拿收費卡的信息,用于增加和查詢。其中包括收費卡編號、所進高速公路的收費站編號、進高速公路的時間和車輛類型。領(lǐng)導(dǎo)對于該表沒有權(quán)限,員工擁有增加和查詢的權(quán)限。 publicclassCardinformation { privat
51、estring _cardID; publicstring CardID { get { return _cardID; } set { _cardID = value; } } …… public Cardinformation()//定義無參的構(gòu)造函數(shù) { } public Cardinformation(string cardID, string jinzhanID, DateTime jinzhantime, string cartype) { _cardI
52、D = cardID; _jinzhanID = jinzhanID; _jinzhantime = jinzhantime; _cartype = cartype; } } Shoufeiquery類:提供車輛的具體收費信息,用于增加和查詢。其中包括收費編號、車輛類型、所走高速的道路編號、應(yīng)收費用和收費的員工。領(lǐng)導(dǎo)對于該表沒有權(quán)限,員工擁有增加和查詢的權(quán)限。 publicclassShoufeiquery { privatestring _shoufeiID; pub
53、licstring ShoufeiID { get { return _shoufeiID; } set { _shoufeiID = value; } } …… public Shoufeiquery()//定義無參的構(gòu)造函數(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ù)訪問層類庫設(shè)計與實現(xiàn) 數(shù)據(jù)訪問層有時候也稱為是持久層,是所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、查找等。主要是對原始數(shù)據(jù)〔數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式〕的操作層,是對數(shù)據(jù)的操作,具體為業(yè)務(wù)邏輯層或表示層提供數(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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案