數據庫課程設計(長途客車管理系統)_第1頁
數據庫課程設計(長途客車管理系統)_第2頁
數據庫課程設計(長途客車管理系統)_第3頁
數據庫課程設計(長途客車管理系統)_第4頁
數據庫課程設計(長途客車管理系統)_第5頁
免費預覽已結束,剩余17頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫原理課程設計題 目 網上訂票系統院 系 專業 學生姓名學號指導教師二0 一六年十二月十八日目 錄1. 需求分析:21.1 課題背景:21.2 目的和意義:31.3 可行性分析: 31.4 需求分析的成果: 31.4.1: 功能結構圖: 31.4.2: 流程圖: 41.4.3: 數據流圖: 51.4.4: 數據字典: 62. 軟件總體設計: 83. 軟件詳細設計: 93.1 車票查詢模塊: 93.1.1: 查詢車票信息: 93.1.2: 查詢客戶信息: 93.1.3: 查詢客戶訂票信息: 93.1.4: 查詢客戶退票信息: 93.1.5: 查詢票存系統記錄信息: 93.2 車票信息管理模塊

2、: 93.2.1: 添加車票信息: 93.2.2: 刪除車票信息: 103.2.3: 修改車票信息: 104. 數據庫設計: 104.1 概念模型設計: 104.1.1: 實體屬性圖: 104.1.2: E-R 圖 124.1.3: 聯系: 124.1.4: 完整性約束: 134.2 邏輯結構設計: 134.2.1: E-R 圖向關系模式的轉換為: 134.2.2: 數據表設計: 134.3 物理結構設計: 154.3.1: 存儲方式: 154.3.2: 檢索方式: 165. 系統編碼與設計: 166. 總結: 181、需求分析:1.1 課題背景:隨著 Internet 的迅速發展和用戶數量的

3、急劇增加,互聯網對于企業和事業單位的運營和發展日益重要,并且網上交易也逐漸被人們認可,并成為未來交易的發展方向。隨著現在旅游業發展的日益壯大一個便于人們操作的網上售票系統應當被開發。網上售票系統是道路旅游服務信息系統的一個重要組成成分,為旅客提供優質便捷的服務。 為了提高道路客運的售票效率,豐富道路客運的營銷手段,車站售票總站及其下屬代收點可以通過公用的互聯網資源,實現網上的售票。1.2 目的和意義:隨著旅游業的逐漸成熟發達,鐵路客運量大幅度的提高,各大省市的客車都顯著的增加,這些都對客車票務管理系統提出了更高的要求,所以要不斷的完善更新客車票務管理系統,提高列車售票系統的工作效率。通過人工的

4、方式難以實現以最快的速度選擇自己想乘坐的哪一趟客車。因此產生了一種可行性的方案是基于客戶端服務器的體系結構,服務器為數據庫系統, 存儲所有必要的信息。客戶端通過連接到服務的應用程序從而快速、準確地完成相應的工作,通過網上訂票,可以達到高效、便捷的購票。網上售票系統的實施,將會在一定程度上影響道路的客運關系,增強市場競爭能力,減少勞動強度,方便廣大旅客購票,有一定的社會和經濟效益。1.3 可行性分析:根據客運售票的實際情況,對其所開展的業務簡單介紹如下:( 1):查詢。為對車次信息的查詢和對已訂車票的用戶的車票信息進行查詢。其中車票信息包括:車票編號、車次、出發站、目的站、座位類型、座位號、車票

5、價格、發車時間、到達時間、類型、購買的用戶姓名。并且車票的信息職工查看,不予以用戶修改。( 2):售票。客戶通過查詢系統,進入到查詢頁面,根據用戶的需求找到相應的車次,用戶輸入客戶信息確定后售票。其中客戶信息包括:身份證號、姓名、用戶名、聯系電話、銀行卡類型、銀行卡、籍貫、類型。( 3):退票。客戶通過查詢系統進入查詢頁面,輸入自己的身份證號找到自己的購票信息,通過退票模塊可進行退票。其中退票信息包括:退票編號、車票編號、退票時間、退票數量、退票手續費。( 4):帳戶管理。分為售票人員帳戶和客戶。兩個不同的主體分別在兩個不同的界面上操作, 并且他們的權限也不相同。售票人員可以對車票的信息進行操

6、作,而用戶只能查看自己的訂票信息和車次信息,并進行購買或者進行退票。1.4 需求分析的成果:1.4.1: 功能結構圖:網上訂票售票系統1.4.2: 流程圖:(1):訂票業務流程圖票務信息月膀,寡/、步寫I提文彘(客戶j 票單信息/II填寫提交遞交 ''票據 車票 訂票單紀印一J譬L售票單提交、員/星現 .(2):退票業務流程圖I J .-J1.4.3:數據流圖:分為頂層和下一層數據流圖。頂層數據流圖:錯誤信息退票申請單-弓-王開出票據退票單服勞 器填寫客戶 )訂票、運器年由灣訂票、退票訂況iKM票存系統下一層數據流圖-訂票:52 記錄葉牙表S1票存系繚下一層數據流圖-退票:1.

7、4.4:數據字典:數據字典包括數據流、數據元素、數據存儲、處理。 數據元素:w三郎ir瑤樂壬街P1.101票存系猊退票單由清P2J客戶退票處理退票退票單退票出錯S2記錄詳細表退票異常反饋異常信息K1票存系統編號 varchar(10)K7姓名 nvarchar(10)K13購票類型nchar(3),K19退票時間datetimeK25目的站 nvarchar(5)K31車票類型nchar(3)K2票存系統地址 nvarchar(10)K8聯系電話char(11)K14訂票單號varchar(10)K20退票數量smallintK26座位類型nchar(2)K32記錄日期dateK3票務人員編號

8、 varchar(10)K9用戶名nvarchar(5)K15訂票時間datetimeK21手續費 smallmoney,K27座位號 smallintK33記錄時間timeK4票務人員工 作地點nvarchar(10)K10銀行卡類型ncha4)K16乘車日期datetimeK22車票編號varchar(10)K28車票價格smallmoneyK34出入賬金額smallint,K5票務人員姓名 nvarchar(10)K11銀行卡號char(19)K17訂票數量smallintK23車次varchar(8)K29發車時間datetimeK35出入賬類型nchar(5),K6身份證號char(

9、18)K12 籍 貫nchar(4)K18退票單號varchar(10)K24出發站 nvarchar(5)K30到站時間datetimeK36記錄數量smallint數據流:數據流 名稱簡述數據流 來源數據流 去向數據流組成訂票單客戶網 上訂購 車票的 單據客戶服務器K6+K7+K8+K9+K10+K11+K12+K13+K14+K15+K16+K17+K22+K23+K26+K27+K28+K29+K30+K31售票單火車票 的票據服務器客戶K6+K7+K8+K9+K10+K11+K12+K13+K14+K17+K22+K2 3+K28+K32+K33+K34+K35退票申 請單客戶向 服

10、務器 申請退 票的單 據客戶處理模 塊K4+K5+K6+K7+K8+K9+K10+K11+K12+K13+K18+K19+ K20+K21+K22+K23+K24+K25+K28+K32+K33+K34+K3 5+K36未通過 單服務器 不同意 客戶退 票申請 的單據處理模 塊服務器K6+K7+K8+K9+K10+K11+K12+K13+K14+K15+K17+28+K32+K33+K34+K35+K36拒絕申 請單服務器 拒絕退 票的單 據服務器客戶K6+K7+K8+K9+K10+K11+K12+K13+K14+K15+K17+28+K32+K33+K34通過單服務器處理模票存系K1+K2+

11、K6+K7+K8+K9+K10+K11+K12+K13+K14+K15+同意客 戶退票 申請的 單據塊統K17+28+K32+K33+K34退票單服務器 開出的 退票單服務器客戶K3+K4+K5+K6+K7+K8+K9+K10+K11+K12+K13+K18+K19+K20+K21+K24+K25+K28+K32+K33+K34+K36處理:處理邏輯編 號處理邏輯名 稱簡述輸入處理輸出P1.1餞蕈 1=1服務器向客 戶售票訂票單開出售票單 并登記售票單P1.2退票服務器向客 戶提供退票 單退票單開出退票單 并修改記錄退票單P2.1退票處理服務器審理 客戶的退票 單退票申請單處理看是否 同意用戶

12、的 退票單異常退票單: 拒絕退票 退票單:允許 退票,并修改 記錄P2.2退票異常服務器不允許用戶退票異常退票單拒絕用戶退 票申請異常退票單數據存儲:S1:票存系統存儲。用戶訂票與退票的來給系統的票存記錄增加或刪除信息。S2:記錄信息存儲。記錄用戶訂票與退票的詳細記錄信息。2 .軟件總體設計:本系統一共分為三個模塊,每個模塊的邏輯設計都是緊密相連的。并且模塊的設計是根據上 幾個階段的分析所得,符合系統的設計要求。于是根據上述的分析,可考慮將系統的模塊分 為車票查詢、車票信息管理,模塊設計如圖所示:客戶信息備戶訂票信息客戶追蒙信息3 .軟件詳細設計:對模塊總體設計中的模塊拆分,指明具體采用了哪種

13、算法,運用什么樣的數據結構。根據總體設計的模塊設計圖可以設計如下的算法:3.1 車票查詢模塊:3.1.1: 查詢車票信息:用戶通過輸入出發站、目的站、 出發日期來從數據庫中進行檢索。利用 JAVA 語言, 在其中定義三個String 類型的變量str0,str1,str2 , 分別存儲這三個信息,通過執行 Statement生成的對象 stmt,令 sql_1="select * from 車票_1 where出發站like "+str0+" and 目的站 like "+str1+" and 發車時間>"+str2; 執行 s

14、tmt.executeQuery(sql_1),將返回 ResultSet 結果集,然后再將結果打印即可。其中提供給用戶的不僅存在查詢結果,還擁有提供給用戶購買車票的相關提示,當用戶購買車票后,則更新票存系統的記錄。3.1.2: 查詢客戶信息:用戶通過用戶身份證號碼或者通過用戶名查詢當前用戶的基本信息。通過身份證號碼查詢,可以定義一個變量 str存儲身份證號碼信息,然后令sql_1="select * from客戶 _1 where 身份證號like "+str; 執行 stmt.executeQuery(sql_1), 將返回 ResultSet 結果集, 然后再將結果打

15、印即可。通過用戶名查看信息與其類似,僅需將 sql_1 中的 “身份證號”改為“用戶名”即可。3.1.3: 查詢客戶訂票信息:用戶通過用戶身份證號碼或者通過用戶名查詢當前用戶的基本信息。通過身份證號碼查詢,可以定義一個變量 str存儲身份證號碼信息, 然后令sql_1="select * from 訂票_1 where身份證號 like "+str; 執行 stmt.executeQuery(sql_1), 將返回 ResultSet 結果集, 然后再將結果打印即可。通過用戶名查看信息與其類似,僅需將sql_1 中的“身份證號”改為“用戶名”即可。在查詢界面上,用戶可以直接

16、退票,但是在票購買的三天內不予以退票,過了三天后則可以退票。退票成功的話,則將票存系統中有關該車票的記錄刪除。3.1.4: 查詢客戶退票信息:用戶通過用戶身份證號碼或者通過用戶名查詢當前用戶的基本信息。只能通過用戶名查詢,可以定義一個變量str存儲用戶名信息,然后令 sql_1="select * from退票_1 where用戶名like "+str; 執行 stmt.executeQuery(sql_1), 將返回 ResultSet 結果集,然后再將結果打印即可。3.1.5: 查詢票存系統記錄信息:用戶通過輸入車票編號或票存系統編號查詢當前具體的記錄信息。通過票存系統

17、編號查詢,可以定義一個變量str 存儲票存系統編號信息,然后令sql_1="select * from 票存系統_1where 票存系統編號like "+str; 執行 stmt.executeQuery(sql_1), 將返回 ResultSet 結果集,然后再將結果打印即可。3.2 車票信息管理模塊:3.2.1: 添加車票信息:售票員通過輸入新的車次信息到數據庫中,利用 JAVA語言解決,可進行如下考慮。首先定 義一個String類的對象數組str14,其中將要輸入的數據全部保留,然后定義一個String類對象 sql_1 ,令 sql_1="insert i

18、nto 車票 values("+sql0+sql1+sql2+sql3+sql4+sql5+sql6+sql7+" "+sql8+sql9+" "+sql10+sql11+sql12+sql13+")"再定義一個 Statement對象 stmt 用來裝載即將執行的數據庫語句,然后執行stmt.executeUpdate(sql_1)語句即可將插入操作同步到 數據庫中。3.2.2: 刪除車票信息:售票人員通過輸入車票的編號來進行刪除當前的車票。令sql_1="delete from車票where車票編號like &

19、quot;+str;再定義一個Statement對象stmt用來裝載即將執行的數據庫語句 ,然后執 行stmt.executeUpdate(sql_1)語句即可將刪除操作同步到數據庫中。3.2.3: 修改車票信息:售票人員通過輸入車票的編號來指明進行修改當前的車票。定義一個String對象str記錄售票人員輸入車票的編號, 在定義一個stl指明用戶相對具體的哪一個字段進行修改,再定義一個str2存放修改子段的新值。令 sql_1="update車票 set "+str1+"="+str2+" where車票編 號="+str;再定義一

20、個 Statement對象stmt用來裝載即將執行的數據庫語句,然后執行stmt.executeUpdate(sql_1)語句即可將刪除操作同步到數據庫中。4 .數據庫設計:4.1 概念模型設計:4.1.1: 實體屬性圖:實體1客戶:(如圖4-1).-(姓名)(類型Q用戶名客戶籍貫)IhI電話(據號;(*« , _ 1V*_ _ _ _圖4-1實體二一一訂票單:(如圖4-2所示)實體三一一退票單:(如圖4-3所示)圖4-2圖4-3實體四一一車票:(如圖4-4所示)退票單訂票單圖4-4實體五一一售票人員:(如圖4-5所示)實體六一一票存系統:(如圖4-6所示)售票人員圖4-6圖4-54

21、.1.2:E-R 圖票務人員 編號票務人員姓名訂票單號訂票時間乖車日期銀行卡號姓名訂票數量訂票籍貫聯系電話購票類型車票價格退票單號出發站發車時間1轉換到站時間目的站車票類型退票數量座位類型手續費記錄時間記錄數量出入賬金f票存系統地址票存系統編號票務人員工作地點身份證號用尸名退票時間4.1.3:聯系:票務人員賣票客戶退票銀行卡類車票編號座位號車次轉換記錄出入賬類記錄日期票存系統票務人員與客戶是一對多聯系,客戶與訂票單是對多聯系,客戶與退票單是一對多聯系,訂票單與車票是一對多聯系,退票單與車票是一對多聯系,車票與票存系統是多對多聯系。4.1.4:完整性約束:票存系統表:主鍵:票存系統編號。 售票人

22、員表:主鍵:票務人員編號。客戶表訂單表退票單車票表主鍵主鍵主鍵主鍵記錄表:主鍵身份證號。外鍵訂票單號。外鍵退票單號。外鍵車票編號。外鍵票務人員編號。客戶身份證號。客戶身份證號。訂票單號,退票單號。(車票編號,票存系統編號)O外鍵:車票編號,票存系統編號。4.2 邏輯結構設計:4.2.1: e-r圖向關系模式的轉換為:票存系統(票存系統編號,票存系統地址)售票人員(票務人員編號,票務人員工作地點,票務人員姓名)客戶(身份證號,姓名,聯系電話,用戶名,銀行卡類型,銀行卡號,籍貫,類型,票務 人員編號)訂票單(訂票單號,訂票時間,乘車日期,訂票數量,客戶身份證號)退票單(退票單號,退票時間,退票數量

23、,手續費,客戶身份證號)車票(車票編號,車次,出發站,目的站,座位類型,座位號,車票價格,發車時間,到站時間,類型,訂票單號,退票單號)記錄(車票編號,票存系統編號,記錄日期,記錄時間,出入賬金額,出入賬類型,記錄 數量)4.2.2: 數據表設計:總共設計7張表,如下:(1):create table 票存系統(票存系統編號 varchar(10) primary key,票存系統地址 nvarchar(10) not null)(2):create table 售票人員(票務人員編號 varchar(10) primary key,票務人員工作地點nvarchar(10) not null,

24、票務人員姓名 nvarchar(10)(3):create table 客戶(身份證號 char(18) primary key,姓名 nvarchar(10) not null,聯系電話 char(11) not null unique,用戶名 nvarchar(5) not null unique,銀行卡類型nchar(4) not null,銀行卡號char(19) not null unique,籍貫 nchar(4) not null,購票類型nchar(3),票務人員編號varchar(10),constraint購票類型約束check(購票類型in('普通票',&

25、#39;學生票),constraint 客戶_票務人員foreign key( 票務人員編號) references 售票人員(票務人員編號)(4):create table 訂票單(訂票單號varchar(10) primary key,訂票時間datetime not null,乘車日期datetime not null,訂票數量smallint default(1),客戶身份證號char(18) not null,constraint 訂票單_客戶foreign key( 客戶身份證號) references 客戶 (身份證號)(5):create table 退票單(退票單號varch

26、ar(10) primary key,退票時間datetime not null,退票數量smallint,手續費smallmoney,客戶身份證號char(18) not null,constraint 退票單_客戶foreign key( 客戶身份證號) references 客戶 (身份證號)(6):create table 車票(車票編號varchar(10) primary key,車次 varchar(8) not null,出發站nvarchar(5)not null,目的站nvarchar(5)not null,座位類型nchar(2) not null,座位號smallint

27、 notnull,車票價格smallmoneynot null,發車時間datetime not null,到站時間datetime not null,車票類型nchar(3) not null,訂票單號varchar(10) not null,退票單號varchar(10),check(座位類型in('座型','臥型'),check(車票類型in('普通票',學生票),constraint 車票_訂票foreign key( 訂票單號) references 訂票單(訂票單號),constraint 車票_退票foreign key( 退票單號

28、) references 退票單(退票單號)(7):create table 記錄(車票編號varchar(10),票存系統編號varchar(10),記錄日期date not null,記錄時間time not null,出入賬金額smallint,出入賬類型nchar(5),記錄數量smallint default(0),primary key( 車票編號,票存系統編號),constraint 記錄_車票foreign key( 車票編號) references 車票(車票編號),constraint 記錄_票存系統foreign key( 票存系統編號) references 票存系統(

29、票存系統編號)4.3 物理結構設計:4.3.1: 存儲方式:設計時主要是以表存儲,但是也有一些視圖的存儲以便于查詢數據并且給數據庫的表增加安全性。視圖如下:create view 車票 _1asselect 車票編號,車次 ,出發站 ,目的站,座位類型,座位號,車票價格,發車時間,到站時間,車票類型 , 訂票單號from 車票create view 客戶 _1asselect 身份證號,姓名,聯系電話,用戶名 ,銀行卡類型,銀行卡號,籍貫,購票類型from 客戶create view 退票 _1asselect 退票單號,退票時間,退票數量,手續費,"T". 姓名 as 姓

30、名 ,"T". 用戶名 as 用戶名from 退票單 "S"join 客戶 "T"on "T". 身份證號="S". 客戶身份證號create view 票存系統_1asselect "R". 車票編號,"R". 票存系統編號,"R". 記錄日期,"R". 記錄時間,"R". 出入賬金額,"R". 出入賬類型 ,"R". 記錄數量,"T"

31、. 票存系統地址from 記錄 "R"join 票存系統"T"on "R".票存系統編號="T".票存系統編號create view 訂票 _1asselect "O".訂票單號,"O".訂票時間,"O".乘車日期,"O".訂票數量,"C".身份證號,"C".姓名,"C".用 戶名,"C”.購票類型from訂票單"O"join 客戶 _1 &quo

32、t;C"on "C".身份證號="O".客戶身份證號/*便于用戶查看自己的訂票信息*4.3.2: 檢索方式:為了方便檢索,加速檢索的速度,定義了如下幾個索引來加快查詢的速度。create index 車票 _index on 車票(車票編號);create index記錄_index on記錄(車票編號,票存系統編號);create index 客戶 _index on 客戶(用戶名);create index訂票單_index on訂票單(訂票單號);5 .系統編碼與設計:本系統采用JAVA進行設計,通過JDBC編程,將數據庫與java相連,

33、從而可以直接通 過JAVA操作數據庫,實現一些數據庫的復雜操作。設計的主功能模塊如圖5-1 (格式化代表輸出的結果按格式輸出):public void select orderticketusernameO 通過用戶名查詢訂票信息 “已格式化好匚public void select_orderticketjdnumberQ /通過身份證號碼查詢訂票信息"已格式化好口public void select_ticket()"查詢車次"已格式化好口public void select_refundticketQ ”查詢退票信息/已格式化好口public void sel

34、ectJdentity_usernameO /通過用戶名直詢身份信息 已格工七好口public void selectjdentityJdnumberO 通過可戶身份證號嗎查詢身份信息7/已儕式化纖口public void update_ticketQpublic void delete_ticketQ::public void addjicketonpublic void select_record_sysnumberO "通過票存系統編號查詢記錄“已格式化好口public void select_record_ticnumberQ 通過車票編號查詢紀錄/已格式化好口圖5-1主界面

35、如圖5-2:歡迎來到網絡售票系統,請選擇要進行的操作:L用戶身份登錄2售票員身份登錄圖5-2用戶身份登錄界面如圖5-3:售票員身份界面如圖5-4:就迎來到查詢車次的界面,請輸人您也要查詢的空次信息C場入出發站、目的站、出發日期格丈:XXXX-KX-KX):"百京''北京'。01后-1>1如果要購系.請按教字奧“T到站時間2016 10 03 15:40:00.02016-10-03 2C:IftOO.O聿重類型普通頊學生票車票編號車次出發站目的站座位類型座位號車票除格 280.0000 120.0000發車時間2016-10-03 06:4aOOJO2Q

36、16-10-03 08:40:00.0T100000Q3J143 南京北京北京臥里臥空4832110000007J144 南克購票界面如圖5-6:如果雯畏理.請按數手裝”T車票毋號車次出發站目的站座位類型空位號圖5-5車票階格發車時間到站時間車票類型110000003J145南京北京臥型4828D.OOOO201640-03 06:40:00.02016-10-03 15:40:00.0普通里110000007 J1M 南京北京臥里32120.00002016-10-0308:00,02016 10-03 MIO'OO.O學生票0請輸人您要購奧的車祟漏號,T10000003想確定要購買

37、這強菜嗎? 口代表取消-1代表確定購票虎功!請選擇您要進行的操作:L查詢車次2,查詢身份信息3 .查詢訂票信息4 .查詢退票信息0.回到上個頁面圖5-3查詢車次界面如圖 5-5:請選擇您要進行的操作:L查詢票存系統的記錄信息2 ,添加車票信息3 .修改車票信息4刪除車票信息0.回到上個頁面圖5-4圖5-6查詢客戶信息界面如圖 5-7 :請進玨您要迸行的操1匕L查詢車次工查詢身價信息工查詢訂票喈息4.有商退票信息也回到上個頁面 就迎進入訂里查詢的界面,喏可邊抨輸入盤悌證號或者用戶名進行查詢:L城及身悌證號上紿入用戶名DL回到上千頁面1身份證號碼t'1273218i&23&21&723'用戶名購票戰里

溫馨提示

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

評論

0/150

提交評論