




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 課程設(shè)計(jì)說明書 課程名稱:數(shù)據(jù)庫課程設(shè)計(jì) 題 目: 火車站售票系統(tǒng) 院 系: 理學(xué)院 專業(yè)班級(jí): 信計(jì) 11-2 學(xué) 號(hào): 2011304968 學(xué)生姓名: 鄭麗麗 指導(dǎo)教師: 柳文濤 2014年 月 日 安徽理工大學(xué)課程設(shè)計(jì)(論文)任務(wù)書 理學(xué)院 院系 信計(jì) 教研室學(xué) 號(hào)2011304968學(xué)生姓名鄭麗麗專業(yè)(班級(jí))信計(jì)11-2 設(shè)計(jì)題目 火車站售票系統(tǒng)設(shè)計(jì)技術(shù)參數(shù)·jdk1.6·開發(fā)工具:Eclipse ·DBMS:MYSQL5.5,Navicat8設(shè)計(jì)要求 開發(fā)一個(gè)具有一定使用價(jià)值的員工管理系統(tǒng),系統(tǒng)具備查詢、修改、添加、刪除等功能。后臺(tái)數(shù)據(jù)庫基于MySq
2、l5.0建立的。工作量 報(bào)告頁數(shù)不少于15頁,參考文獻(xiàn)數(shù)目不得少于5個(gè)工作計(jì)劃 1月5日熟練使用Myeclipse10.0,MySQL5.5,Navicat 8 1月6日建立數(shù)據(jù)庫和表及關(guān)系表,模塊設(shè)計(jì) 1月7日學(xué)習(xí)界面的開發(fā) 1月8日學(xué)習(xí)數(shù)據(jù)庫的連接和用戶登錄的實(shí)現(xiàn) 1月9日至1月10日學(xué)會(huì)數(shù)據(jù)的添加,修改,刪除和查詢功能,編寫代碼,調(diào)試運(yùn)行 1月11日至1月15日文檔寫作包括需求分析,數(shù)據(jù)字典與模塊設(shè)計(jì) 1月16提交課程設(shè)計(jì)參考資料 1 陳軼,姚曉昆.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)M.北京:清華大學(xué)出版社,2006.2 楊昭編.二級(jí)Java語言程序設(shè)計(jì)教程M.北京:中國(guó)水利水電出版社,2006.
3、3 趙文靖.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo)M.北京:清華大學(xué)出版社,2006.4 趙毅主.跨平臺(tái)程序設(shè)計(jì)語言JavaM.西安:西安電子科技大學(xué)出版社,2006.5 王路群.Java高級(jí)程序設(shè)計(jì)M.北京:中國(guó)水利水電出版社,2006.6 雍俊.Java程序設(shè)計(jì)習(xí)題集M.北京:清華大學(xué)出版社,2006.7 朱福喜.Java語言習(xí)題與解析M.北京:清華大學(xué)出版社,2006.8 吳其慶.Java程序設(shè)計(jì)實(shí)例教程M.北京:冶金工業(yè)出版社,2006指導(dǎo)教師簽字 教研室主任簽字 年 月 日 學(xué)生姓名: 鄭麗麗 學(xué)號(hào): 2011304968 專業(yè)班級(jí): 信計(jì)11-2 課程設(shè)計(jì)題目: 火車站售票系統(tǒng) 指導(dǎo)教師評(píng)
4、語: 成績(jī): 指導(dǎo)教師: 年 月 日安徽理工大學(xué)課程設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定表目 錄摘要I第1章 緒論1.1 項(xiàng)目背景11.2 編寫目的11.3 開發(fā)環(huán)境11.3.1 硬件環(huán)境11.3.2 軟件環(huán)境1第2章 系統(tǒng)功能介紹32.1 系統(tǒng)功能總框圖32.2 模塊功能介紹32.2.1 系統(tǒng)登錄32.2.2 管理員登錄42.2.3 普通用戶登錄42.3組內(nèi)任務(wù)分工5第3章 數(shù)據(jù)庫設(shè)計(jì)53.1 數(shù)據(jù)庫需求分析53.2 數(shù)據(jù)流圖53.3 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)63.4 數(shù)據(jù)庫表的設(shè)計(jì)8第4章 系統(tǒng)功能實(shí)現(xiàn)104.1普通用戶登錄104.1.1 查詢104.1.2 售票17結(jié)論22參考文獻(xiàn)23摘要:隨著Interne
5、t和Intranet技術(shù)的發(fā)展,人們對(duì)網(wǎng)絡(luò)信息的需求越來越大,對(duì)網(wǎng)絡(luò)數(shù)據(jù)庫的交互和查詢速度等性能的要求也越來越高。未來火車站的發(fā)展趨勢(shì)是完全自動(dòng)化的售票信息查詢,網(wǎng)絡(luò)訂票,智能化訂票,而且隨著計(jì)算機(jī)的普及,信息處理量的逐漸擴(kuò)大,手工處理方式已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足人們管理活動(dòng)的需要,各種工作都逐漸由手工轉(zhuǎn)為自動(dòng)化,將使許多復(fù)雜、繁瑣、且需要很多人力的工作變得簡(jiǎn)單?;疖囌臼燮惫芾硎潜鞠到y(tǒng)的根本任務(wù),通過實(shí)現(xiàn)票務(wù)信息的計(jì)算機(jī)管理,以提高工作效率。實(shí)現(xiàn)計(jì)算機(jī)管理的最佳技術(shù)就是數(shù)據(jù)庫技術(shù)。我們可以利用數(shù)據(jù)庫將整個(gè)火車站的票務(wù)情況存入計(jì)算機(jī),再配置上功能豐富的用戶接口,以滿足用戶需求。 基于這樣的背景并考慮到一
6、定的實(shí)際意義及于我們將實(shí)踐與理論結(jié)合起來,我們組在這次課設(shè)中選擇了“火車售票管理系統(tǒng)”。在這次課設(shè)中我們使用Java技術(shù)來開發(fā)該火車票管理系統(tǒng)。因而在本報(bào)告中介紹了系統(tǒng)的開發(fā)環(huán)境以及開發(fā)工具,對(duì)Java在系統(tǒng)上的應(yīng)用設(shè)計(jì)思想做了一個(gè)全面的敘述,對(duì)于系統(tǒng)中數(shù)據(jù)庫中的數(shù)據(jù)表之間的具體關(guān)聯(lián)等方面也做出了詳細(xì)說明,并且具體講述了系統(tǒng)各個(gè)功能模塊的設(shè)計(jì)以及實(shí)現(xiàn)過程。關(guān)鍵詞: 火車售票管理系統(tǒng) Java技術(shù) 網(wǎng)絡(luò)數(shù)據(jù)庫Summary:With the development of Internet and Intranet technology, people demand more and more i
7、nformation on the network , such as query speed of interaction and performance of the network databases are increasingly high requirements . Future trends railway station is fully automated ticketing information inquiries, booking network , intelligent ticketing , and with the gradual expansion of t
8、he popularity of information-processing capacity of the computer , manual processing methods have been far from meeting the needs of people management activities various work gradually by hand into automation will enable many complex , cumbersome, and requires a lot of human work easier. Train ticke
9、t management is the fundamental task of the system, by implementing computer management ticketing information to improve work efficiency. Computer technology to achieve optimal management is database technology. We can use the database to the entire train ticket is stored in the computer , and then
10、configure the feature-rich user interface to meet user needs. Based on this background and taking into account certain practical significance and in our practice and theory will combine a lesson for us in this group , select the " train ticket management system ." In this lesson we set up
11、to develop the use of Java technology in the ticket management system. Thus in the present report describes the system development environment as well as development tools for Java applications on the system 's design philosophy has made a comprehensive narrative, related to the specific aspects
12、 of the system data in the database tables , also made a details, and in particular about the design of the system and the various functional modules implementation process .Keywords :train ticketing Java technology network database management systemI1 緒論1.1項(xiàng)目背景 信息社會(huì)的高科技,商品經(jīng)濟(jì)的高效益,使計(jì)算機(jī)的應(yīng)用普及到經(jīng)濟(jì)和社會(huì)生活的各
13、個(gè)領(lǐng)域。計(jì)算機(jī)與人類的關(guān)系愈來愈密切,計(jì)算機(jī)操作為人們帶了越來越多的便利。為了適應(yīng)現(xiàn)代社會(huì)人們高度強(qiáng)烈的時(shí)間觀念,火車票管理系統(tǒng)將會(huì)為人們帶來極大的方便。在火車大力普及的今天,一個(gè)火車站售票信息管理系統(tǒng)應(yīng)達(dá)到的目標(biāo)是提供及時(shí)、廣泛的信息服務(wù),加快信息檢索的效率,實(shí)況靈活的查詢,減輕管理人員制作報(bào)表和統(tǒng)計(jì)分析的負(fù)擔(dān),且系統(tǒng)規(guī)模不太大但又要保證支持日常工作的要求,以便系統(tǒng)應(yīng)易于擴(kuò)充,方便日后統(tǒng)一聯(lián)網(wǎng)與管理,提高管理水平。根據(jù)以上的設(shè)計(jì)目標(biāo)和要求,本設(shè)計(jì)用Java編程語言結(jié)合微軟的Access數(shù)據(jù)庫進(jìn)行開發(fā),主要完成查詢、售票、及對(duì)票務(wù)和用戶進(jìn)行管理等功能。其實(shí)火車售票系統(tǒng)用計(jì)算機(jī)管理火車站票務(wù)信息
14、的一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前售票業(yè)務(wù)都是由工作人員人工完成的、查詢方式來操作的。現(xiàn)在一般的車站售票業(yè)務(wù)都采用計(jì)算機(jī)智能化管理,采用計(jì)算機(jī)作為工具的實(shí)用的計(jì)算機(jī)訂單管理程序來幫助前臺(tái)管理員進(jìn)行更有效的車票業(yè)務(wù)查詢,出售管理工作。火車售票管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS):其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。 經(jīng)過分析:我們使用Java編程語言開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡(jiǎn)潔操縱數(shù)據(jù)庫的智能化對(duì)
15、象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后對(duì)初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成用戶滿意的可行系統(tǒng)。1.2編寫目的電腦的漸漸普及,以及互聯(lián)網(wǎng)所容納的信息量大、內(nèi)容豐富、信息及時(shí)、準(zhǔn)確,更有相關(guān)信息的全面介紹與比較。為了人們?cè)诨疖囌举?gòu)買車票以及售票員對(duì)車票的、管理、查詢以及相應(yīng)的操作變的簡(jiǎn)單,開發(fā)這樣一個(gè)火車票管理系統(tǒng)成為很有必要的事情。1.3 開發(fā)環(huán)境1.3.1 硬件環(huán)境PC機(jī)。1.3.2 軟件環(huán)境 操作系統(tǒng):Windows XP 開發(fā)工具:EclipseEclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),0但是目前亦有人通過插件使其作為C+、P
16、ython、PHP等其他語言的開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持,使得Eclipse擁有較佳的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse采用的技術(shù)是IBM公司開發(fā)的(SWT),這是一種基于Java的窗口組件,類似Java本身提供的AWT和Swing窗口組件;不過IBM聲稱SWT比其他Java窗口組件更有效率。Eclipse的用戶界面還使用了GUI中間層JFace,從而簡(jiǎn)化了基于SWT的應(yīng)用程序的構(gòu)建。Eclipse的設(shè)計(jì)思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclip
17、se基本內(nèi)核包括:圖形API (SWT/Jface), Java開發(fā)環(huán)境插件(JDT),插件開發(fā)環(huán)境(PDE)等。 數(shù)據(jù)庫:Microsoft Access2003Access 是微軟公司推出的基于Windows的桌面關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),是Office系列應(yīng)用軟件之一。它提供了表、查詢、窗體、報(bào)表、頁、宏、模塊7種用來建立數(shù)據(jù)庫系統(tǒng)的對(duì)象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、界面設(shè)計(jì)、報(bào)表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。 Access是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其主要特點(diǎn)如下:
18、 1) 存儲(chǔ)方式單一 Access管理的對(duì)象有表、查詢、窗體、報(bào)表、頁、宏和模塊,以上對(duì)象都存放在后綴為(.mdb)的數(shù)據(jù)庫文件種,便于用戶的操作和管理。 2) 面向?qū)ο?Access是一個(gè)面向?qū)ο蟮拈_發(fā)工具,利用面向?qū)ο蟮姆绞綄?shù)據(jù)庫系統(tǒng)中的各種功能對(duì)象化,將數(shù)據(jù)庫管理的各種功能封裝在各類對(duì)象中。它將一個(gè)應(yīng)用系統(tǒng)當(dāng)作是由一系列對(duì)象組成的,對(duì)每個(gè)對(duì)象它都定義一組方法和屬性,以定義該對(duì)象的行為和外國(guó),用戶還可以按需要給對(duì)象擴(kuò)展方法和屬性。通過對(duì)象的方法、屬性完成數(shù)據(jù)庫的操作和管理,極大地簡(jiǎn)化了用戶的開發(fā)工作。同時(shí),這種基于面向?qū)ο蟮拈_發(fā)方式,使得開發(fā)應(yīng)用程序更為簡(jiǎn)便。 3)界面友好、易操作 Ac
19、cess是一個(gè)可視化工具,是風(fēng)格與Windows完全一樣,用戶想要生成對(duì)象并應(yīng)用,只要使用鼠標(biāo)進(jìn)行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報(bào)表設(shè)計(jì)器以及數(shù)據(jù)庫向?qū)?、表向?qū)А⒉樵兿驅(qū)?、窗體向?qū)?、?bào)表向?qū)У裙ぞ?,使得操作?jiǎn)便,容易使用和掌握。 4)集成環(huán)境、處理多種數(shù)據(jù)信息 Access基于Windows操作系統(tǒng)下的集成開發(fā)環(huán)境,該環(huán)境集成了各種向?qū)Ш蜕善鞴ぞ撸瑯O大地提高了開發(fā)人員的工作效率,使得建立數(shù)據(jù)庫、創(chuàng)建表、設(shè)計(jì)用戶界面、設(shè)計(jì)數(shù)據(jù)查詢、報(bào)表打印等可以方便有序地進(jìn)行。 5) Access支持ODBC(開發(fā)數(shù)據(jù)庫互連,Open Data Base Connectivity)
20、,利用Access強(qiáng)大的DDE(動(dòng)態(tài)數(shù)據(jù)交換)和OLE(對(duì)象的聯(lián)接和嵌入)特性,可以在一個(gè)數(shù)據(jù)表中嵌入圖、聲音、Excel表格、Word文檔,還可以建立動(dòng)態(tài)的數(shù)據(jù)庫報(bào)表和窗體等。Access還可以將程序應(yīng)用于網(wǎng)絡(luò),并與網(wǎng)絡(luò)上的動(dòng)態(tài)數(shù)據(jù)相聯(lián)接。利用數(shù)據(jù)庫訪問頁對(duì)象生成HTML文件,輕松構(gòu)建Internet/Intranet的應(yīng)用。第2章 系統(tǒng)功能介紹2.1 系統(tǒng)功能總框圖系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成。根據(jù)系統(tǒng)分析確定的邏輯模型,確定新系統(tǒng)的物理模型,即計(jì)算機(jī)化信息系統(tǒng)應(yīng)用軟件的總體結(jié)構(gòu)和數(shù)據(jù)庫設(shè)計(jì),并提出系統(tǒng)配置方案,繼而對(duì)物理模型進(jìn)行詳細(xì)的設(shè)計(jì)。主要內(nèi)容有:代碼設(shè)計(jì),用戶界面
21、設(shè)計(jì),處理過程設(shè)計(jì),編寫系統(tǒng)設(shè)計(jì)說明書。系統(tǒng)設(shè)計(jì)是以系統(tǒng)分析為基礎(chǔ),而系統(tǒng)設(shè)計(jì)又是系統(tǒng)實(shí)施的基礎(chǔ),系統(tǒng)設(shè)計(jì)的主要任務(wù)是代碼設(shè)計(jì)、物理設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、功能結(jié)構(gòu)圖設(shè)計(jì)。本火車票管理系統(tǒng)功能包括用戶登錄、用戶信息管理、火車票信息管理、火車票信息查詢等如圖2.1所示。圖2.1 系統(tǒng)功能圖2.2 模塊功能介紹2.2.1 系統(tǒng)登錄火車票管理系統(tǒng)可以分為2種登錄方式登錄系統(tǒng),分別為管理員、普通用戶??紤]到數(shù)據(jù)庫中數(shù)據(jù)的安全性和用戶的權(quán)益,該系統(tǒng)采用“用戶標(biāo)識(shí)”和“口令”相結(jié)合的數(shù)據(jù)庫安全技術(shù),并通過自動(dòng)認(rèn)證用戶的“權(quán)限”來判斷用戶應(yīng)該登陸到的界面。其中管理員使用密碼登錄可以直接登錄到管理系統(tǒng),進(jìn)行火車票信
22、息和用戶信息進(jìn)行管理;普通用戶使用密碼登錄到用戶界面,可以在對(duì)火車票查詢的基礎(chǔ)上對(duì)乘客所要求買的車票信息進(jìn)行查詢和填寫以及火車票記錄的打印等操作。2.2.2 管理員登錄管理員是該火車售票系統(tǒng)數(shù)據(jù)的直接管理者,他對(duì)該系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)享有所有的權(quán)限。針對(duì)這一點(diǎn),管理員管理界面包含了“用戶管理”、“票務(wù)管理”以及“系統(tǒng)幫助”三個(gè)選項(xiàng)。(1)用戶管理用戶管理界面是管理員才能進(jìn)入的界面,在該窗口中,管理員可以對(duì)使用該系統(tǒng)的用戶進(jìn)行管理,具體包括“查找用戶”、“增加用戶”、“刪除用戶”、“修改用戶”等功能,并將各個(gè)子功能的結(jié)果顯示在窗口左邊的顯示區(qū)域內(nèi),初次登陸此界面時(shí)顯示區(qū)域內(nèi)的信息是所有用戶的信息。
23、通過該模塊的功能,管理員可以很方便的對(duì)使用該系統(tǒng)的用戶進(jìn)行管理。(2)票務(wù)管理顧名思義“票務(wù)管理”就是對(duì)火車票進(jìn)行的管理,在此模塊中我們可以進(jìn)行“所有票數(shù)”、“賣出票數(shù)”等的預(yù)覽。運(yùn)行界面如圖2.2所示。圖2.2“票務(wù)管理”窗口2.2.3 普通用戶登錄在這個(gè)功能模塊里普通用戶即售票員可以進(jìn)行火車及或火車票的信息進(jìn)行查詢及售票。查詢子功能中可以“按車次查詢”,也可以“按車站查詢”;在售票子功能中選擇好車票相關(guān)信息后并核對(duì)確認(rèn)好乘客需要次車票后可以可預(yù)覽車票信息;如果乘客需要數(shù)據(jù)單,則可以點(diǎn)擊“打印”來打印數(shù)據(jù)單。查詢:“查詢”功能中的“按車次查詢”和“按車站查詢”思想相差無幾,這里我們重點(diǎn)說明“
24、按車次查詢”。如現(xiàn)在乘客詢問“T1”的火車具體信息及車票信息或者是購(gòu)買“T1”的車票,售票員便在“火車票”窗口選擇“按車次查詢”,然后在“車次”一欄中輸入“T1”以及選擇好日期以后點(diǎn)擊“查詢”便會(huì)出發(fā)相應(yīng)的查詢事件即將“車次”和“日期”傳遞給查詢語句后將數(shù)據(jù)庫中各個(gè)表中的相關(guān)信息查詢出來顯示在“火車票”窗口相應(yīng)的地方,具體包括始發(fā)站、終點(diǎn)站、發(fā)車時(shí)間、剩余票數(shù)、單價(jià)等信息。售票:在用戶選定了需要的票之后,點(diǎn)擊確定按鈕之后,會(huì)彈出電子票窗口。在購(gòu)票成功之后,需要對(duì)數(shù)據(jù)庫進(jìn)行更新操作,這就是售票系統(tǒng)的主要功能。2.3 組內(nèi)任務(wù)分工表2.1 組內(nèi)任務(wù)分工姓名任務(wù)分工成績(jī)鄭麗麗 葛巧巧數(shù)據(jù)庫連接與數(shù)據(jù)
25、交互、用戶管理(增加、查找、修改、刪除)鄭麗麗數(shù)據(jù)庫設(shè)計(jì)、系統(tǒng)功能實(shí)現(xiàn)(普通用戶登錄)葛巧巧數(shù)據(jù)庫設(shè)計(jì)、系統(tǒng)功能實(shí)現(xiàn)(登錄和管理員系統(tǒng))第3章 數(shù)據(jù)庫設(shè)計(jì)火車票管理系統(tǒng)是一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng),各類數(shù)據(jù)的所有信息都是保存在數(shù)據(jù)庫中。在數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)進(jìn)程中,數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)是一個(gè)非常重要的問題。我們這里所說的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)是指數(shù)據(jù)庫中各個(gè)表結(jié)構(gòu)的設(shè)計(jì),包括信息保存在哪個(gè)表格中,各個(gè)表的結(jié)構(gòu)如何以及各個(gè)表之間的關(guān)系如何等。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響,好的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)會(huì)減少數(shù)據(jù)庫的存儲(chǔ)量,數(shù)據(jù)庫的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡(jiǎn)化基于數(shù)據(jù)庫的
26、應(yīng)用程序的實(shí)現(xiàn)等。由數(shù)據(jù)庫設(shè)計(jì)的重要性,人們提出了許多數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的技術(shù)。但是這些設(shè)計(jì)方法和設(shè)計(jì)者的工作經(jīng)驗(yàn)有很大關(guān)系。因此要從根本上解決所有數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的問題,就需要多實(shí)踐,在實(shí)踐中積累經(jīng)驗(yàn)和教訓(xùn),最終成為數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的專家。3.1 數(shù)據(jù)庫需求分析數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的一個(gè)非常重要的階段就是數(shù)據(jù)庫需求分析階段。在這個(gè)階段主要是收集基本數(shù)據(jù)以及數(shù)據(jù)處理流程,為以后進(jìn)一步設(shè)計(jì)打下基礎(chǔ)。需求分析主要解決兩個(gè)問題:內(nèi)容要求:調(diào)查應(yīng)用系統(tǒng)用戶所操作的數(shù)據(jù),決定的數(shù)據(jù)庫中存儲(chǔ)什么數(shù)據(jù)。處理要求:調(diào)查應(yīng)用系統(tǒng)用戶要求對(duì)數(shù)據(jù)進(jìn)行什么樣的處理,理數(shù)據(jù)庫中的各種數(shù)據(jù)之間的關(guān)系如何。解決這兩個(gè)問題的時(shí)候,程序設(shè)計(jì)
27、人員需要向應(yīng)用系統(tǒng)的用戶做詳細(xì)調(diào)查,保證信息收集的完整性,否則有可能后面所做的所有工作都白白浪費(fèi)?,F(xiàn)在軟件開發(fā)過程中最常用的需求分析技術(shù)是快速原型法,其實(shí)質(zhì)就是快速建立展示目標(biāo)產(chǎn)品主要功能的軟件,在開發(fā)過程中根據(jù)用戶反饋對(duì)模型不斷修改、完善。因此其最重要的一方面體現(xiàn)在“快速”上,要盡可能快地建立原型。第二個(gè)方面是所構(gòu)造的原型必須可以改變,可以根據(jù)用戶反饋不斷更改、完善。在開發(fā)本系統(tǒng)過程中,基本遵循快速原型法原則,經(jīng)過初步調(diào)研后,先建立應(yīng)用程序框架,然后根據(jù)與用戶的交流,在原型的基礎(chǔ)上不斷修改、完善,直到最后交付使用。這種方法最大的優(yōu)點(diǎn)是開發(fā)周期短、見效快、實(shí)用性強(qiáng)。在此系統(tǒng)中用戶中的管理員需求
28、對(duì)火車和火車票進(jìn)行保存、更新,對(duì)普通用戶進(jìn)行增加、刪除、查詢、修改;普通則要求對(duì)火車票的相關(guān)信息進(jìn)行查詢、打印,將火車票準(zhǔn)確及時(shí)的賣出給乘客。這就需要數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入與輸出,實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便用戶訪問系統(tǒng)中的數(shù)據(jù),它與文件系統(tǒng)的重要區(qū)別是數(shù)據(jù)的充分共享,交叉訪問,與應(yīng)用程序的高度獨(dú)立性。3.2 數(shù)據(jù)流圖結(jié)構(gòu)化方法使用數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的變化過程。數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信息的流向,并表示了系統(tǒng)的邏輯處理的功能,是一種功能模型?;疖嚻惫芾硐到y(tǒng)的數(shù)據(jù)流圖如下圖3.1所示。圖3.1數(shù)
29、據(jù)流圖3.3 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)這一階段是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足需求的各種實(shí)體,以及它們之間的關(guān)系,且為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。這個(gè)階段不用考慮所采用得數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、機(jī)器類型等問題。這個(gè)階段可用的工具很多。用得最多的是E-R圖(Entity-Relation,實(shí)體-關(guān)系圖),另外還有許多計(jì)算機(jī)輔助工具(Computer Aided Software, CASE)可以幫助進(jìn)行設(shè)計(jì)。本系統(tǒng)都是采用E-R圖的方法進(jìn)行數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)的,現(xiàn)在先對(duì)E-R圖的方法進(jìn)行一下簡(jiǎn)單的介紹。E-R圖是描述數(shù)據(jù)實(shí)體及其關(guān)系的一種直觀的描述工具。這種圖中有: 實(shí)體。用方框表示,方框內(nèi)為實(shí)
30、體名稱。在火車售票系統(tǒng)中的實(shí)體有用戶、車票。 實(shí)體的各種屬性。用橢圓表示,橢圓內(nèi)為屬性名稱。使用線段將其和相應(yīng)的實(shí)體連接起來。概括起來,該系統(tǒng)中各實(shí)體的屬性如下:1) 用戶(用戶名,用戶號(hào)、用戶密碼、用戶權(quán)限);2) 車票(車票號(hào),車票類型,票價(jià));3) 火車(火車號(hào),車型,始發(fā)時(shí)間,始發(fā)站,終點(diǎn)站,途經(jīng)站,運(yùn)行時(shí)間,全程行程);4) 車站(車站號(hào),車站名);5) 車廂(車廂號(hào),類型,總票數(shù),剩余票數(shù));6) 實(shí)體之間的聯(lián)系。用菱形表示,菱形內(nèi)部為聯(lián)系的名稱。圖3.2 總E-R圖3.4 數(shù)據(jù)庫表的設(shè)計(jì)在做出數(shù)據(jù)庫的具體表之前,我們需要有相應(yīng)的概念結(jié)構(gòu)。概念結(jié)構(gòu)是獨(dú)立于實(shí)際數(shù)據(jù)模型的,必須將其轉(zhuǎn)
31、化為邏輯結(jié)構(gòu)后才能進(jìn)行數(shù)據(jù)庫應(yīng)用設(shè)計(jì)。也就是要將上面的數(shù)據(jù)庫概念轉(zhuǎn)化為Access數(shù)據(jù)庫所支持的實(shí)際數(shù)據(jù)模型。在上面的實(shí)體與實(shí)體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫中的表格,以及各個(gè)表格之間的關(guān)系。具體關(guān)系模式如下: 用戶信息(用戶ID,登錄名,用戶密碼,用戶權(quán)限);車票(票號(hào),車票類型,票價(jià));車站信息(車站號(hào),車站名);車廂信息(車廂編號(hào),火車編號(hào),類型,座位總數(shù),剩余數(shù)量);火車信息(火車號(hào),車型,始發(fā)時(shí)間,始發(fā)站,終點(diǎn)站,途經(jīng)站,運(yùn)行時(shí)間,全程行程);管理/賣票(票號(hào),火車號(hào));“火車票管理系統(tǒng)”的數(shù)據(jù)庫名稱為Trainticket,數(shù)據(jù)庫中包含6張表。下面根據(jù)系統(tǒng)的關(guān)系模式分別給出數(shù)據(jù)表概要
32、說明和主要數(shù)據(jù)表的結(jié)構(gòu),每個(gè)表格表示數(shù)據(jù)庫中的一個(gè)表。按照關(guān)系模式可分為Tickettable表描述車票信息(如表3.3所示)、Salesticket表描述賣票聯(lián)系(如表3.4所示)、Brailway表描述車廂信息(如表3.5所示)、Users表描述用戶信息(如表3.6所示)、Trainstage表描述車站信息(如表3.7所示)、Trainstation 表描述火車信息(如表3.8所示)。 表3.3 Tickettable表字段名稱字段類型約束條件typeno車票號(hào)char(10)主鍵tickettype車票類型char(10)Not nullcharge票價(jià)float(8,2)Not nul
33、l表3.4 Salesticket 表字段名稱字段類型約束條件ticketno車票編號(hào)char(10)主鍵,參照tickettable表trainno火車編號(hào)char(10)主鍵,參照trainstation表表3.5 Brailway表字段名稱字段類型約束條件Trainno火車編號(hào)char(10)主鍵railwayno車廂號(hào)int(10)主鍵railwaytype類型char(10)Not nullseatcount總票數(shù)int(10)unsigned Not nulluseable剩余票數(shù)int(10)unsigned Not null表3.6 Users表字段名稱字段類型約束條件user
34、no用戶號(hào)碼int(10)主鍵username用戶名char(10)Not nulluserpassword用戶密碼char(10)Not nulluserpopedom用戶權(quán)限char(10)Not null 表3.7 Trainstage 表字段名稱字段類型約束條件stagenameindex站號(hào)char(10)主鍵stagename站名varchar(50)Not null表3.8 Trainstation表字段名稱字段類型約束條件trainno火車編號(hào)char(10)主鍵traintype車型char(10)Not nullStartstage始發(fā)站varchar(45)Not nul
35、l,參照表trainstageArrivestage終點(diǎn)站varchar(45)Not null,參照表trainstageChangetrain途經(jīng)站varchar(45)Not null,參照表trainstagearrivetime到達(dá)時(shí)間char(10)Not nullexittime運(yùn)行時(shí)間char(10)Not nullrunmileage全程行程int(10Not null第4章 系統(tǒng)功能實(shí)現(xiàn)4.1 普通用戶登錄4.1.1 查詢 查詢主要包括按車次查詢和按車站查詢。當(dāng)我們輸入車次“T1”時(shí),會(huì)產(chǎn)生一個(gè)查詢結(jié)果。如圖4.1所示。圖4.1 查詢“T1”相關(guān)信息為了更好的仿真,我們還增
36、加了“按車站查詢”的功能的模塊?!鞍窜嚧尾樵儭?、“按車站查詢”的模塊代碼如下:public void actionPerformed(ActionEvent e) if(e.getSource()=_jb1)/ 判斷是否點(diǎn)擊按鈕 _jt1.setText(""); _jt2.setText(""); _jt3.setText(""); _jt4.setText(""); String trainno = _jt5.getText().trim(); if(_cb0.getState()=true) /判斷第一個(gè)單選
37、是否為真 if(conn.gettrainno(trainno)!=null) for(int m = 0;m<100;m+) for(int n = 0;n<8;n+) _t.setValueAt("",m,n); useable = conn.getuseable(trainno); startstage = conn.getsalestage(trainno); arrivestage = conn.getarrivestage(trainno); saletime = conn.getsaletime(trainno,""); exi
38、ttime = conn.getexittime(trainno); railwaytype = conn.getrailwaytype(trainno); runmileage = conn.getrunmileage(trainno); starttime = conn.getstarttime(trainno); ticketprice = Float.parseFloat(conn.getticketprice(trainno); _jt1.setText(trainno); _jt2.setText(startstage); _jt3.setText(arrivestage); _j
39、t4.setText(useable); _jb3.setEnabled(true); _t.setValueAt(trainno,0,0); _t.setValueAt(railwaytype,0,1); _t.setValueAt(startstage,0,2); _t.setValueAt(arrivestage,0,3); _t.setValueAt(starttime,0,4); _t.setValueAt(saletime,0,5); _t.setValueAt(exittime+"小時(shí)",0,6); _t.setValueAt(runmileage+"
40、;公里",0,7); _jl26.setText("單價(jià):"+ticketprice); else JOptionPane.showMessageDialog(this,"對(duì)不起,沒有該信息!"); else v = conn._getAllStage(_ch2.getSelectedItem(),_ch3.getSelectedItem(); Enumeration eee = v.elements(); if(!eee.hasMoreElements() JOptionPane.showMessageDialog(this,"對(duì)不
41、起,沒有該記錄!"); else for(int m = 0;m<100;m+) for(int n = 0;n<8;n+) _t.setValueAt("",m,n); for(int i = 0;eee.hasMoreElements();i+) stt = (SaleTrainTicket) eee.nextElement(); _t.setValueAt(stt.getTtrainno(),i,0); _t.setValueAt(conn.getrailwaytype(stt.getTtrainno(),i,1); _t.setValueAt(
42、stt.getStartstage(),i,2); _t.setValueAt(stt.getArrivestage(),i,3); _t.setValueAt(stt.getStarttime(),i,4); _t.setValueAt(stt.getSaletime(),i,5); _t.setValueAt(conn.getexittime(stt.getTtrainno()+"小時(shí)",i,6); _t.setValueAt(conn.getrunmileage(stt.getTtrainno()+"公里",i,7); _jb3.setEnable
43、d(true); if(e.getSource()=_jb2) if(_cb1.getState()=true) if(!_t.getValueAt(_t.getSelectedRow(),0).equals("") Object _useable = _t.getValueAt(_t.getSelectedRow(),0); Object _startstage = _t.getValueAt(_t.getSelectedRow(),2); Object _arrivestage = _t.getValueAt(_t.getSelectedRow(),3); String
44、 _useable = (String)_useable; String _startstage = (String)_startstage; String _arrivestage = (String)_arrivestage; String _ticketprice = (String)_useable; _jt1.setText(_useable); _jt2.setText(_startstage); _jt3.setText(_arrivestage); _jt4.setText(conn.getuseable(_useable); ticketprice = Float.parse
45、Float(conn.getticketprice(_ticketprice); _jl26.setText("單價(jià):"+ticketprice); _jl26.setForeground(Color.red); else if(!_t.getValueAt(_t.getSelectedRow(),0).equals("") String _ticketprice = (String)_t.getValueAt(_t.getSelectedRow(),0); ticketprice = Float.parseFloat(conn.getticketpri
46、ce(_ticketprice); _jl26.setText("單價(jià):"+ticketprice); else JOptionPane.showMessageDialog(this,"你選擇的是空值!"); if(_cb0.getState()=true) _jt1.setText(""); _jt2.setText(""); _jt3.setText(""); _jt4.setText(""); Object _useable = _t.getValueAt(_t.get
47、SelectedRow(),0); Object _startstage = _t.getValueAt(_t.getSelectedRow(),2); Object _arrivestage = _t.getValueAt(_t.getSelectedRow(),3); String _useable = (String)_useable; String _startstage = (String)_startstage; String _arrivestage = (String)_arrivestage; String _ticketprice = (String)_useable; _
48、jt1.setText(_useable); _jt2.setText(_startstage); _jt3.setText(_arrivestage); _jt4.setText(conn.getuseable(_useable); if(_ch5.getSelectedItem().equals("全票") ticketprice = ticketprice*1; else ticketprice = ticketprice/2; _jl26.setText("單價(jià):"+ticketprice); _jl26.setForeground(Color.
49、red); else if(!_t.getValueAt(_t.getSelectedRow(),0).equals("") String _ticketprice = (String)_t.getValueAt(_t.getSelectedRow(),0); ticketprice = Float.parseFloat(conn.getticketprice(_ticketprice); _jl26.setText("單價(jià):"+ticketprice); _jl26.setForeground(Color.red); else JOptionPane.showMessageDialog(this,"你選擇的是空值!"); if(e.getSource()=_jb3) if(_t.getSelectedRow()=-1)/取行 else if(_t.getValueAt(_t.getSelectedRow(),0).equals("") JOptionPane.showMessageDialog(this,"你選擇的行是空的!"); else String trainno = _jt5.getText()
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高端住宅無償入住及維護(hù)保養(yǎng)合同
- 二零二五年度貸款購(gòu)車專項(xiàng)基金管理委托協(xié)議
- 二零二五年度教育機(jī)構(gòu)入股分紅管理合同
- 二零二五年度勞動(dòng)仲裁調(diào)解協(xié)議書范本:社會(huì)福利機(jī)構(gòu)勞動(dòng)者權(quán)益維護(hù)協(xié)議
- 2025年度私人簡(jiǎn)易用工合同(家庭清潔與綠化維護(hù))
- 二零二五年度車輛掛靠運(yùn)輸合同糾紛解決協(xié)議
- 成都設(shè)計(jì)咨詢集團(tuán)有限公司2025年社會(huì)公開招聘(19人)筆試參考題庫附帶答案詳解
- 2025陜西中華郡文化旅游景區(qū)招聘(47人)筆試參考題庫附帶答案詳解
- 鐵路局業(yè)務(wù)知識(shí)培訓(xùn)課件
- 2025湖北鄂州華容區(qū)城市建設(shè)投資有限公司招聘綜合筆試參考題庫附帶答案詳解
- 2024年內(nèi)蒙古化工職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 城市智慧交通管理系統(tǒng)
- 青少年人工智能技術(shù)水平測(cè)試一級(jí)04
- 社區(qū)消防網(wǎng)格員培訓(xùn)課件
- 心肌病中醫(yī)護(hù)理查房課件
- 前列腺炎的護(hù)理課件
- 外墻防水膠驗(yàn)報(bào)告模板
- 國(guó)外藥典介紹
- 第三章新時(shí)代大學(xué)生勞動(dòng)價(jià)值觀
- 藏在名著里的數(shù)學(xué)1
- MMPI14個(gè)量表得分題目號(hào)碼
評(píng)論
0/150
提交評(píng)論