數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告-車站售票管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告-車站售票管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告-車站售票管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告-車站售票管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告-車站售票管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 吉林工程技術(shù)師范學(xué)院課程設(shè)計(jì)報(bào)告 設(shè)計(jì)名稱: 車站售票信息管理系統(tǒng) 姓 名: 孟祥麗 學(xué) 號(hào): 23號(hào) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): C1042 院 系: 信息工程學(xué)院 指導(dǎo)教師: 劉國成、楊宇晶、郭天嬌 2010年12月16日專心-專注-專業(yè)一、概述1、項(xiàng)目背景:隨著市場(chǎng)經(jīng)濟(jì)的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動(dòng)頻繁,數(shù)量不斷加大,車站信息量迅猛增長(zhǎng),車站售票管理系統(tǒng)在人們的日常生活中發(fā)揮著越來越重要的作用。本系統(tǒng)實(shí)現(xiàn)了線路信息,汽車信息,票務(wù)信息的查詢和管理,滿足人們的需求。2、編寫目的:掌握數(shù)據(jù)庫設(shè)計(jì)原理及相關(guān)軟件的使

2、用。實(shí)現(xiàn)方便、快速售票;是用戶準(zhǔn)確了解售票情況,提供多種查詢和統(tǒng)計(jì)功能;實(shí)現(xiàn)系統(tǒng)的安全性設(shè)置,使系統(tǒng)本身具有一定的維護(hù)功能。3、軟件定義:車站售票管理系統(tǒng),主要用于車站日常的票務(wù)處理。4、開發(fā)環(huán)境:Visual Studio2008,SQL SERVER2000二、需求分析 功能模塊圖1,員工管理模塊:?jiǎn)T工有兩種身份,售票員和系統(tǒng)管理員。系統(tǒng)管理員可以進(jìn)行系統(tǒng)用戶的添加,密碼的修改操作,汽車,線路,車票信息的更新等,售票員可以查詢以上信息和購買車票等。2,線路信息管理模塊:系統(tǒng)管理員可以在線路信息管理模塊對(duì)車站線路信息進(jìn)行管理。管理員首先建立線路信息數(shù)據(jù)庫,輸入原始的線路信息,當(dāng)有新的線路需要

3、添加或者需要對(duì)已有的線路信息進(jìn)行修改,刪除的時(shí)候,管理員就可以進(jìn)行相應(yīng)的操作。管理員也可以通過本模塊查詢到所有需要查詢的線路的詳細(xì)信息。3,汽車信息管理模塊:系統(tǒng)管理員可以在汽車信息管理模塊實(shí)現(xiàn)對(duì)汽車信息的管理。管理員首先應(yīng)該建立汽車信息數(shù)據(jù)庫,輸入原始的數(shù)據(jù)信息,當(dāng)有新的汽車信息的時(shí)候或者管理員需要修改某個(gè)汽車的相關(guān)信息以及想要?jiǎng)h除某個(gè)汽車信息的時(shí)候,就可以完成相應(yīng)的操作。管理員也可以在整個(gè)數(shù)據(jù)庫中查詢相關(guān)汽車信息。4,車票信息管理模塊:系統(tǒng)管理員可以在車票管理模塊實(shí)現(xiàn)對(duì)車票信息的管理。管理員根據(jù)相應(yīng)的汽車信息和線路信息來設(shè)置相應(yīng)的車票詳細(xì)信息。管理員還可以對(duì)某條線路的車票信息進(jìn)行修改,刪除

4、和查詢操作。5,車票訂購信息模塊 用戶可以通過查詢時(shí)間,線路和汽車信息,來確定自己要買什么時(shí)間,什么路線,什么型號(hào)的汽車的車票,并形成表單。 程序分為登陸界面,主界面,線路信息管理界面,汽車信息管理界面,車票信息管理界面,票務(wù)信息管理界面,員工管理界面這幾個(gè)主體界面。使用時(shí)應(yīng)先知道管理員或員工帳號(hào)和密碼,登陸進(jìn)入系統(tǒng)主菜單界面,里面包括線路信息,汽車信息,車票信息,票務(wù)信息,幫助,退出程序菜單選項(xiàng)。三、系統(tǒng)設(shè)計(jì) (一)數(shù)據(jù)流圖: 頂層數(shù)據(jù)流圖 1層車票數(shù)據(jù)流圖(二)數(shù)據(jù)字典:1, 數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義說明數(shù)據(jù)類型長(zhǎng)度與其他數(shù)據(jù)項(xiàng)的關(guān)系是否可以為空1Uno用戶編號(hào)整型4User表主鍵不2

5、UserName姓名nvarchar20不3Password密碼nvarchar20不4UserIdentiey身份nvarchar20不5Cno汽車編號(hào)整型4Coach表主鍵不6Coachnumber車牌號(hào)nvarchar20不7Ctype汽車型號(hào)nvarchar208Ctime購買時(shí)間datetime89Cnum座位數(shù)量整型4不10Ctv有無電視char1011Ccondition有無空調(diào)char1012Coachholder負(fù)責(zé)人nvarchar20不13Lno線路編號(hào)整型4Line表主鍵不14Ldepart起始城市nvarchar20不15Larrival到達(dá)城市nvarchar20不

6、16Ltime路程時(shí)間datetime817Tno車票編號(hào)整型4Ticket表主鍵不18Price車票價(jià)格整型4不19SoldTicket已賣票數(shù)整型4不20LastTicket剩余票數(shù)整型4不21Tdate出發(fā)日期datetime8不22Ttime出發(fā)時(shí)間datetime8不23Ptime購買時(shí)間datetime824Seat座位號(hào)整型4不25ReserveORBuy預(yù)定或購買char10不26Cityno站點(diǎn)編號(hào)整型4City表主鍵不27CityName站點(diǎn)名稱nvarchar20不2, 數(shù)據(jù)結(jié)構(gòu)編號(hào)數(shù)據(jù)結(jié)構(gòu)名屬 性1員工員工編號(hào),姓名,密碼,身份2汽車汽車編號(hào),汽車型號(hào),車牌號(hào),購買時(shí)間

7、,座位數(shù)量,有無電視,有無空調(diào),負(fù)責(zé)人3線路線路編號(hào),起始城市,到達(dá)城市,路程時(shí)間4車票車票編號(hào),線路編號(hào),汽車編號(hào),車票價(jià)格,已賣票數(shù),剩余票數(shù),出發(fā)日期,出發(fā)時(shí)間5購票車票編號(hào),購買日期,預(yù)定或購買,座位號(hào)6站點(diǎn)站點(diǎn)編號(hào),站點(diǎn)名稱3, 數(shù)據(jù)流編號(hào)數(shù)據(jù)流名輸 入輸 出1變更汽車信息變更信息汽車記錄2查詢汽車信息汽車編號(hào)/汽車型號(hào)/車牌號(hào)/有無電視/有無空調(diào)/負(fù)責(zé)人汽車記錄3變更站點(diǎn)信息變更信息站點(diǎn)記錄4變更線路信息變更信息線路記錄5查詢線路信息線路編號(hào)/起始城市,到達(dá)城市線路記錄6變更車票信息變更信息車票記錄7查詢車票信息車票編號(hào)/起始城市,到達(dá)城市/汽車型號(hào)/出發(fā)日期,出發(fā)時(shí)間車票記錄8預(yù)

8、定車票車票編號(hào),購買日期,預(yù)定或購買預(yù)訂記錄9購買車票車票編號(hào),購買日期,預(yù)定或購買購買記錄10查詢購買情況車票編號(hào)/起始城市,到達(dá)城市/汽車型號(hào)購買記錄11更改用戶變更信息用戶記錄12員工信息用戶輸入電腦的用戶名、密碼系統(tǒng)主菜單4, 數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)名輸入數(shù)據(jù)流輸出數(shù)據(jù)流說 明 部 分用戶信息變更用戶信息查詢用戶信息汽車信息變更汽車信息查詢汽車信息線路信息變更線路信息查詢線路信息車票信息變更車票信息查詢車票信息預(yù)定車票信息車票信息預(yù)訂記錄購買車票信息車票信息購買記錄5、 處理過程處理過程名輸入數(shù)據(jù)流輸出數(shù)據(jù)流處理操作查詢已知汽車/線路/車票信息所需信息購買/預(yù)定車票信息+購票時(shí)間+座位號(hào)無更

9、新變更信息再次查詢信息用戶權(quán)限認(rèn)證用戶名,密碼,身份系統(tǒng)主菜單用戶登錄(三)E-R圖(四)關(guān)系模型:1,User員工表(員工編號(hào)Uno,姓名UserName,密碼Password,身份UserIdentiey)2,Coach汽車信息表(汽車編號(hào)Cno,汽車型號(hào)Ctype,車牌號(hào)Coachnumber,購買時(shí)間Ctime,座位數(shù)量Cnum,有無電視Ctv,有無空調(diào)Ccondition,負(fù)責(zé)人Coachholder)3,Line線路信息表(線路編號(hào)Lno,起始城市Ldepart,到達(dá)城市Larrival,路程時(shí)間Ltime)4,Ticket車票信息表(車票編號(hào)Tno,線路編號(hào)Lno,汽車編號(hào)Cno

10、,車票價(jià)格Price,已賣票數(shù)SoldTicket,剩余票數(shù)LastTicket,出發(fā)日期Tdate,出發(fā)時(shí)間Ttime)5,Purchase車票購買表(車票編號(hào)Tno,購買日期Ptime,預(yù)定或購買ReserveORBuy,座位號(hào)Seat)6,City站點(diǎn)表(站點(diǎn)編號(hào)Cityno,站點(diǎn)名稱CityName)四、系統(tǒng)實(shí)現(xiàn)(一)數(shù)據(jù)庫設(shè)計(jì):1,City站點(diǎn)表: 2,Userinfo員工表: 3,Ticket車票信息表: 4,Coach汽車信息表: 5,Purchase車票購買表: 6,Line線路表 : (二)主要界面及代碼1,登錄界面: 登錄操作代碼:(1)SqlHelper helper =

11、 new SqlHelper(); SqlDataReader rdr;(2)if (string.IsNullOrEmpty(name) | string.IsNullOrEmpty(password) | string.IsNullOrEmpty(identity) MessageBox.Show("姓名,密碼,身份框均不能為空!"); rdr = helper.ExecuteReader("dbo.SelectUserinfo", CommandType.StoredProcedure); while (rdr.Read() if (rdr&quo

12、t;UserName".ToString() = name && rdr"Password".ToString() = password && rdr"UserIdentity".ToString() = identity) this.Hide(); string iden = rdr"UserIdentity".ToString(); MainForm main = new MainForm(iden); main.ShowDialog(); rdr.Close(); return; Mes

13、sageBox.Show("錯(cuò)誤的姓名或密碼或與身份不匹配,請(qǐng)重新輸入!"); rdr.Close();(3)存儲(chǔ)過程: ALTER PROCEDURE dbo.SelectUserinfo /* ( parameter1 int = 5, parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN select * from Userinfo END2,系統(tǒng)主界面3,員工管理界面:修改/刪除操作代碼:(1) try SqlCommandBuilder scb = new SqlCommandBuilder(s

14、d); sd.Update(ds, "a"); ds.AcceptChanges(); MessageBox.Show("修改成功!"); catch (Exception ex) MessageBox.Show(ex.Message.ToString(); (2) try SqlCommandBuilder scb = new SqlCommandBuilder(sd); int a = dataGridView1.CurrentRow.Index; ds.Tables0.Rowsa.Delete(); sd.Update(ds, "a&qu

15、ot;); ds.AcceptChanges(); MessageBox.Show("刪除成功!"); catch (Exception ex) MessageBox.Show(ex.Message.ToString(); 4,汽車信息管理界面:添加操作代碼: (1)DAL.CoachDAO coach = new Coach.DAL.CoachDAO(); SqlHelper helper = new SqlHelper(); (2) if (string.IsNullOrEmpty(coachnumber) | string.IsNullOrEmpty(seatnumb

16、er1) | string.IsNullOrEmpty(coachholder) MessageBox.Show("車牌號(hào),座位數(shù)量,負(fù)責(zé)人均不能為空!"); else if (coach.Add(coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder) MessageBox.Show("添加成功!"); else MessageBox.Show("添加失??!"); (3)實(shí)體類CoachDAO.cs中: public bool Add(string

17、coachtype,string coachnumber,DateTime date2, int seatnumber,string ishavetv,string ishavecon,string coachholder) bool flag = false; DataTable dt = new DataTable(); string cmdText = "dbo.AddCoach" SqlParameter paras = new SqlParameter new SqlParameter("coachtype",coachtype), new S

18、qlParameter("coachnumber",coachnumber), new SqlParameter("date2",date2), new SqlParameter("seatnumber",seatnumber), new SqlParameter("ishavetv",ishavetv), new SqlParameter("ishavecon",ishavecon), new SqlParameter("coachholder",coachholder)

19、; int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res > 0) flag = true; return flag; (4)存儲(chǔ)過程: ALTER PROCEDURE dbo.AddCoachcoachtype nvarchar(20),coachnumber nvarchar(20),date2 datetime,seatnumber int,ishavetv char(10),ishavecon char(10),coachholder nvarchar(20)/

20、*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINinsert into Coach (Ctype,Coachnumber,Ctime,Cnum,Ctv,Ccondition,Coachholder) values (coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder)END5,線路信息管理界面:搜索操作代碼:(1) SqlHelper helper = new SqlHelper(); SqlConne

21、ction conn = new SqlConnection("Data Source=(local);Initial Catalog=Coach;Integrated Security=True"); SqlDataAdapter sd; /定義一個(gè)數(shù)據(jù)適配器 DataSet ds; /定義一個(gè)數(shù)據(jù)集(2) string str1 = "select Lno as 編號(hào),Ldepart as 起始城市,Larrival as 到達(dá)城市,convert(varchar(10),Ltime,108) as 路程時(shí)間 from Line where Lno =&quo

22、t; + lineid + "" dataBind(str1);(3) private void dataBind(string str) try sd = new SqlDataAdapter(str, conn); ds = new DataSet(); sd.Fill(ds, "a"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "a" catch (Exception ex) MessageBox.Show(ex.Message); 6,車票信息管理界面

23、:7,車票信息管理中,選擇汽車和路線界面:8,票務(wù)管理界面 : 查詢操作代碼:(1) DAL.PurchaseDAO purchase = new Coach.DAL.PurchaseDAO();SqlHelper helper = new SqlHelper();(2) dataGridView1.DataSource = purchase.Select1(departcity,arrivalcity,date2);(3) 實(shí)體類PurchaseDAO.cs中: public DataTable Select1(string departcity, string arrivalcity, D

24、ateTime date2) DataTable dt = new DataTable(); string cmdText = "dbo.SelectPurchase" SqlParameter paras = new SqlParameter new SqlParameter("departcity",departcity), new SqlParameter("arrivalcity",arrivalcity), new SqlParameter("date2",date2) ; dt = helper.Exe

25、cuteQuery(cmdText, paras, CommandType.StoredProcedure); return dt; (4) 存儲(chǔ)過程 ALTER PROCEDURE dbo.SelectPurchasedepartcity nvarchar(20),arrivalcity nvarchar(20),date2 datetime/*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINselect Ldepart as 起始城市,Larrival as 到達(dá)城市,convert(v

26、archar(10),Tdate,120) as 出發(fā)日期,convert(varchar(10),Ttime,108) as 出發(fā)時(shí)間,Ctype as 車型,Coachnumber as 車牌號(hào),Ctv as 有無電視,Ccondition as 有無空調(diào),Price as 票價(jià),Cnum as 總票數(shù),LastTicket as 剩余票數(shù)from Coach,Line,Ticket where Coach.Cno = Ticket.Cno and Line.Lno = Ticket.Lno and Ldepart = departcity and Larrival = arrivalci

27、ty and Tdate = date2END預(yù)訂/購買操作代碼:(1)tno = purchase.Yuding(depart, arrival, coachnum);(2)實(shí)體類PurchaseDAO.cs中 public int Yuding(string depart, string arrival, string coachnum) int tno; DataTable dt = new DataTable(); string cmdText = "dbo.SelectTno" SqlParameter paras = new SqlParameter new S

28、qlParameter("depart",depart), new SqlParameter("arrival",arrival), new SqlParameter("coachnum",coachnum) ; dt = helper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure); tno = Convert.ToInt32(dt.Rows0"Tno"); return tno; (3) if (purchase.UpdateTicket(tn

29、o) && purchase.AddG(tno, datetime2, seat) MessageBox.Show("購買成功!您購買的票為:n" + depart + "-" + arrival + "n" + "出發(fā)時(shí)間:" + date + "_" + time + "n" + "車牌號(hào):" + coachnum + "n" + "座位號(hào):" + seat); else MessageBox.S

30、how("購買失??!");(4)public bool UpdateTicket(int tno) bool flag = false; string cmdText = "dbo.UpdateTicket" SqlParameter paras = new SqlParameter new SqlParameter("tno",tno) ; int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res > 0) fl

31、ag = true; return flag; (5)public bool AddG(int tno, DateTime datetime2, string seat) bool flag = false; string cmdText = "dbo.AddPurchaseYG" SqlParameter paras = new SqlParameter new SqlParameter("tno",tno), new SqlParameter("datetime2",datetime2), new SqlParameter(&qu

32、ot;seat",seat) ; int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res > 0) flag = true; return flag; (6)存儲(chǔ)過程ALTER PROCEDURE dbo.UpdateTickettno int/*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINupdate Ticket set SoldTicket = So

33、ldTicket+1,LastTicket = LastTicket-1 where Tno = tno END(7)ALTER PROCEDURE dbo.AddPurchasetno int,datetime1 datetime,seat nvarchar(20)/*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINinsert into Purchase(Tno,Ptime,ReserveORBuy,Seat) values (tno,datetime1,'預(yù)訂',sea

34、t)END9,站點(diǎn)管理界面 10,購買成功界面 數(shù)據(jù)庫連接類代碼: / <summary> / SqlCE數(shù)據(jù)庫保持連接類 / </summary> public class SqlHelper public SqlConnection sqlconn = null; private SqlCommand cmd = null; private SqlDataReader sdr = null; / <summary> / 構(gòu)造函數(shù) / </summary> public SqlHelper() string connStr = "Da

35、ta Source=(local);Initial Catalog=Coach;Integrated Security=True" sqlconn = new SqlConnection(connStr); private SqlConnection GetConn() if (sqlconn.State = ConnectionState.Closed) sqlconn.Open(); return sqlconn; / <summary> / 構(gòu)造函數(shù) / </summary> / <param name="fSqlceConnString

36、">數(shù)據(jù)庫連接字符串</param> public SqlHelper(String fSqlceConnString) string connStr = "Data Source=(local);Initial Catalog=Coach;Integrated Security=True" sqlconn = new SqlConnection(connStr); this.sqlconn = new SqlConnection(fSqlceConnString); if (sqlconn.State = ConnectionState.Clo

37、sed) sqlconn.Open(); / <summary> / 執(zhí)行不返回結(jié)果的SQL語句。比如:Insert,Delete,Update / </summary> / <param name="cmdText">要執(zhí)行的SQL語句</param> / <returns>返回影響記錄的條數(shù)</returns> public int ExecuteNonQuery(String cmdText) SqlCommand cmd = this.sqlconn.CreateCommand(); cmd.C

38、ommandText = cmdText; cmd.CommandType = CommandType.Text; return (cmd.ExecuteNonQuery(); / <summary> / 執(zhí)行帶參數(shù)的增刪改SQL語句或存儲(chǔ)過程 / </summary> / <param name="cmdText">增刪改SQL語句或存儲(chǔ)過程</param> / <param name="ct">命令類型</param> / <returns></returns&

39、gt; public int ExecuteNonQuery(string cmdText, SqlParameter paras, CommandType ct) int res; using (cmd = new SqlCommand(cmdText, GetConn() cmd.CommandType = ct; cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery(); return res; / <summary> / 執(zhí)行返回SqlCeDataReader結(jié)果集的SQL語句。比如:Select / </

40、summary> / <param name="cmdText">要執(zhí)行的SQL語句</param> / <returns>返回的SqlCeDataReader</returns> public SqlDataReader ExecuteReader(string cmdText, CommandType ct) SqlDataReader reader; try cmd = new SqlCommand(cmdText, GetConn(); cmd.CommandType = ct; reader = cmd.Exe

41、cuteReader(CommandBehavior.CloseConnection); catch (Exception e2) throw new Exception(e2.Message.ToString(); return reader; / <summary> / 執(zhí)行帶參數(shù)的查詢SQL語句或存儲(chǔ)過程 / </summary> / <param name="cmdText">查詢SQL語句或存儲(chǔ)過程</param> / <param name="paras">參數(shù)集合</param&g

溫馨提示

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

評(píng)論

0/150

提交評(píng)論