俄羅斯方塊實驗報告_第1頁
俄羅斯方塊實驗報告_第2頁
俄羅斯方塊實驗報告_第3頁
俄羅斯方塊實驗報告_第4頁
俄羅斯方塊實驗報告_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫課程實訓(xùn)報告( 2016- 2017年度第2學(xué)期)題目: 車票銷售管理子系統(tǒng) 專業(yè)軟件工程學(xué)生姓名季新明班級軟件152學(xué)號指導(dǎo)教師陶明 徐靜完成日期2017.7.1目 錄目 錄2車站售票子系統(tǒng)11 課題內(nèi)容和要求11.1課題描述11.2 課題要求12 需求分析12.1 功能需求分析12.2 數(shù)據(jù)需求分析23 系統(tǒng)設(shè)計43.1 功能模塊設(shè)計43.2 數(shù)據(jù)庫概念設(shè)計43.3 數(shù)據(jù)庫邏輯設(shè)計53.4 數(shù)據(jù)庫物理設(shè)計63.5 數(shù)據(jù)庫表間聯(lián)系64系統(tǒng)實現(xiàn)84.1 增加乘客模塊實現(xiàn)84.2 刪除模塊實現(xiàn)84.3 更新模塊實現(xiàn)85 代碼調(diào)試與功能測試85.1 測試方案85.2 測試結(jié)果96 收獲與體會

2、10附錄13附錄1源程序部分清單13附錄1.1數(shù)據(jù)庫代碼13附錄1.2 數(shù)據(jù)庫代碼30附錄1.3 WebConnect代碼31車站售票子系統(tǒng)1 課題內(nèi)容和要求 1.1課題描述隨著市場經(jīng)濟(jì)的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動頻繁,數(shù)量不斷加大,車站信息量迅猛增長,車站售票管理系統(tǒng)在人們的日常生活中發(fā)揮著越來越重要的作用。本系統(tǒng)實現(xiàn)了線路信息,汽車信息,票務(wù)信息的查詢和管理,滿足人們的需求 1.2 課題要求(1)具有方便快速的售票功能,包括車票的預(yù)定和退票功能,能夠支持團(tuán)體的預(yù)定票和退票(2)能準(zhǔn)確地來哦接售票情況,提供多次查詢和統(tǒng)計功能,如車次的查詢時刻表的查

3、詢(3)能按情況所需實現(xiàn)對車次的更改、票價的變動及調(diào)度功能(4)完善的報表系統(tǒng)2 需求分析2.1 功能需求分析 1登錄功能:分為汽車站售票人員和系統(tǒng)管理員兩種權(quán)限登陸。用戶通過輸入不同用戶名和密碼進(jìn)行身份驗證,系統(tǒng)通過用戶名和密碼判斷不同用戶的權(quán)限,從而確定該用戶可以執(zhí)行的操作。2車票信息查詢功能:由車站的普通售票人員通過不同的檢索入口,查詢車票信息,并進(jìn)行排序。3修改功能:汽車站售票人員、汽車站售票工作的管理人員能夠修改自身的用戶名和密碼,系統(tǒng)管理員則能實現(xiàn)系統(tǒng)用戶與普通用戶的添加,修改普通用戶與系統(tǒng)管理員的密碼,以此確保該系統(tǒng)能夠安全操作,避免不必要的損失。4匯總功能:對當(dāng)天車票的信息進(jìn)行

4、匯總。2.2 數(shù)據(jù)需求分析顧客售票人員車站售票管理系統(tǒng)購票信息售票信息頂層圖購票信息查詢可供票處理買票車票車票記錄車票匯總?cè)逼庇涗?層圖售票記錄購票信息1層圖查詢可供票處理買票車票售票記錄車票記錄訂票信息查詢顧客信息核對后的顧客信息查詢可供票處理訂票車票訂票記錄車票記錄退票信息處理退票退票記錄數(shù)據(jù)流圖數(shù)據(jù)字典1. 數(shù)據(jù)項乘客姓名 顧客身份證號 顧客性別 顧客身高2.數(shù)據(jù)結(jié)構(gòu) 乘客的數(shù)據(jù)結(jié)構(gòu)*的 車票乘客身份證號乘客姓名乘客性別乘客身高*趙三男185*李四男1803. 數(shù)據(jù)流數(shù)據(jù)流名稱:乘客簡述:乘客有關(guān)信息數(shù)據(jù)流來源:售票員操作結(jié)果數(shù)據(jù)流去向:購票乘客數(shù)據(jù)流組成:乘客身份證號+乘客姓名+乘客性

5、別+乘客身高4. 數(shù)據(jù)存儲乘客記錄:乘客身份證號 乘客姓名 乘客性別 乘客身高增加記錄:乘客身份證號 乘客姓名 乘客性別 乘客身高刪除記錄: 乘客身份證號 乘客姓名 乘客性別 乘客身高更改記錄:乘客身份證號 乘客姓名 乘客性別 乘客身高乘客系統(tǒng)3 系統(tǒng)設(shè)計3.1 功能模塊設(shè)計刪除乘客更改乘客增加乘客查看乘客3.2 數(shù)據(jù)庫概念設(shè)計 3.3 數(shù)據(jù)庫邏輯設(shè)計 車票票價,車票編號,座位類型,座位號,發(fā)車時,火車到車站時,火車發(fā)站時間,火車到站時間,車票名售票員姓名,密碼,工作號購買車票編號,工作號顧客姓名,身份證號訂票車票編號,團(tuán)體票,個人票,日期,交易金額,起始站,終點站,身份證號退票退票時間,車票

6、編號,退票金額服務(wù)時刻查詢,車次查詢車站車站名,車站所在省,車站所在城市,車站號工作車站號,工作號管理員姓名,工作號,密碼管理票價更改,車次更改 3.4 數(shù)據(jù)庫物理設(shè)計 車站車站名車站所在省車站所在城市車站號管理員管理員姓名管理員工作號管理員密碼顧客顧客名顧客身份證號售票員售票員姓名售票員工作號售票員密碼車票車票號車票票價座位號車廂號發(fā)車時倒車時3.5 數(shù)據(jù)庫表間聯(lián)系 乘客表:CREATETABLEts_passenger(Pnumbigint(12)NOTNULLAUTO_INCREMENT,Pnamevarchar(20)DEFAULTNULL,Psexvarchar(20)DEFAULT

7、NULL,Pheightvarchar(20)DEFAULTNULL,PRIMARYKEY(Pnum)ENGINE=InnoDBDEFAULTCHARSET=utf8售票員表:CREATETABLEts_conductor(Cnamevarchar(10)NOTNULL,Cnobigint(30)NOTNULLAUTO_INCREMENT,PRIMARYKEY(Cno)ENGINE=InnoDBAUTO_INCREMENT=695DEFAULTCHARSET=utf8車站表:CREATETABLEts_station(Snamevarchar(10)DEFAULTNULL,Sprovincev

8、archar(10)DEFAULTNULL,Scityvarchar(20)DEFAULTNULL,Snobigint(20)NOTNULLAUTO_INCREMENT,PRIMARYKEY(Sno)ENGINE=InnoDBAUTO_INCREMENT=66DEFAULTCHARSET=utf8車票表:CREATETABLEts_ticket(Tpiaojiavarchar(300)NOTNULL,Tnobigint(30)NOTNULLAUTO_INCREMENT,Tzuoweihaovarchar(300)NOTNULL,Tchexiangvarchar(30)NOTNULL,Tfach

9、eshijiantimeNOTNULL,PRIMARYKEY(Tno)ENGINE=InnoDBDEFAULTCHARSET=utf84系統(tǒng)實現(xiàn)4.1 增加乘客模塊實現(xiàn)該模塊主要實現(xiàn)乘客信息的增加。乘客管理中的數(shù)據(jù)源為ticket_sales數(shù)據(jù)庫中passenger表,在此管理部分中,能夠使用界面操作實現(xiàn)乘客信息的增加,并將數(shù)據(jù)庫中的數(shù)據(jù)按照編輯的要求來及時更新數(shù)據(jù)表中的相關(guān)數(shù)據(jù)。4.2 刪除模塊實現(xiàn)該模塊主要實現(xiàn)乘客信息的刪除。乘客管理中的數(shù)據(jù)源為ticket_sales數(shù)據(jù)庫中passenger表,在此管理部分中,能夠使用界面操作實現(xiàn)乘客信息的刪除,并將數(shù)據(jù)庫中的數(shù)據(jù)按照編輯的要求來及時

10、更新數(shù)據(jù)表中的相關(guān)數(shù)據(jù)。4.3 更新模塊實現(xiàn)該模塊主要實現(xiàn)乘客信息的更新。乘客管理中的數(shù)據(jù)源為ticket_sales數(shù)據(jù)庫中passenger表,在此管理部分中,能夠使用界面操作實現(xiàn)乘客信息的更新,并將數(shù)據(jù)庫中的數(shù)據(jù)按照編輯的要求來及時更新數(shù)據(jù)表中的相關(guān)數(shù)據(jù)。5 代碼調(diào)試與功能測試5.1 測試方案在eclipese中執(zhí)行,以本機為服務(wù)器并確定好服務(wù)器的位置。以實現(xiàn)對乘客表的增,刪,改,查。5.2 測試結(jié)果查增加刪除修改6 收獲與體會本系統(tǒng)的整個設(shè)計開發(fā)是對乘客管理的一次的嘗試,最后完成的這個系統(tǒng)也只是車票銷售系統(tǒng)的一個模型,它的使用對象是客戶端,如果要推廣到車站使用,還面臨很多問題,比如全國

11、整個鐵路系統(tǒng)包括很多分局,各自權(quán)限不一樣,他們又下屬很多結(jié)點。但是經(jīng)過這次的課程設(shè)計在本次實踐中,我認(rèn)識到了團(tuán)隊的重要性,團(tuán)隊需要個人,個人也離不開團(tuán)隊,必須發(fā)揚團(tuán)結(jié)協(xié)作的精神。某個人的離群都可能導(dǎo)致導(dǎo)致整項工作的失敗。只有一個人知道原理是遠(yuǎn)遠(yuǎn)不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導(dǎo)致整個工作失敗。團(tuán)結(jié)協(xié)作是我們實習(xí)成功的一項非常重要的保證。而這次實習(xí)也正好鍛煉我們這一點,這也是非常寶貴的。我很清楚的知道團(tuán)結(jié)協(xié)作的力量是偉大的,如果是我一個人孤軍奮戰(zhàn)的話,肯定不能在規(guī)定時間內(nèi)完成這次課程設(shè)計的要求內(nèi)容,因此我很懷念這兩個星期的合作,想起我們一起查閱資料,一起討論設(shè)計程序的思路,

12、成功的時候一起分享喜悅,失敗的時候互相鼓勵,我堅信,在這兩個星期的時間里面,我們的友情和團(tuán)結(jié)精神在歷練中經(jīng)受住了考驗,變的更加頑強,我們是一個集體的思想已經(jīng)深入人心!參考文獻(xiàn)1 錢雪忠,王燕玲,林挺.數(shù)據(jù)庫原理及技術(shù)M.北京:清華大學(xué)出版社,2011.2 錢雪忠,羅海馳,陳國俊.數(shù)據(jù)庫原理及技術(shù)課程設(shè)計M.北京:清華大學(xué)出版社,2014.附錄附錄1源程序部分清單附錄1.1數(shù)據(jù)庫代碼cn.bdqn.util包package cn.bdqn.utils;import java.io.IOException;import java.io.InputStream;import java.util.Pr

13、operties;public class DbInformationUtil /創(chuàng)建一個Properties對象,對象中沒有任何信息public static Properties properties = new Properties();staticInputStream in =DbInformationUtil.class.getClassLoader().getResourceAsStream(perties);/加載文件信息tryproperties.load(in);catch(IOException e)e.printStackTrace(); public st

14、atic String getProperty(String key) return properties.getProperty(key); public static void main(String args) System.out.println(DbInformationUtil.getProperty(password); dao包package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLExcep

15、tion;import java.util.List;import cn.bdqn.utils.DbInformationUtil;import entity.Station; /* * author BaseBao類 * */public abstract class BaseDao protected Connection getConnection =null;protected PreparedStatement ps=null;/* * author 鏈接數(shù)據(jù)庫 * */public Connection getConnection() throws SQLException try

16、 Class.forName(DbInformationUtil.getProperty(driver); catch(ClassNotFoundException e) e.printStackTrace(); String ur1 = DbInformationUtil.getProperty(url); String username=DbInformationUtil.getProperty(username); String password=DbInformationUtil.getProperty(password);/密碼 /連接數(shù)據(jù)庫 Connection connectio

17、n = DriverManager.getConnection(ur1, username, password); return connection; /* * author 關(guān)閉數(shù)據(jù)庫 * */public void closeResource() throws SQLException if(ps!=null) ps.close(); if(getConnection!=null) getConnection.close(); /關(guān)閉數(shù)據(jù)庫/* * author * */public List findall() / TODO Auto-generated method stub ret

18、urn null; package dao;import java.sql.SQLException;import java.util.List;import entity.Station; /* * author StationDao類 * */public interface StationDao /* * author 數(shù)據(jù)操作增加方法 * */public int save(Station station) throws SQLException; /* * author 數(shù)據(jù)操作更新方法 * */public int update(Station station); /* * aut

19、hor 數(shù)據(jù)操作查詢方法 * */public List findAll(); /* * author 數(shù)據(jù)操作刪除方法 * */public int removeBySno(int sno);Station findBySno(int sno);dao.impl包package dao.Impt;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import

20、java.util.List;import dao.BaseDao;import dao.StationDao;import entity.Station; /* * author StationrDaoImpt類 * */public class StationDaoImpt extends BaseDao implements StationDao /* * author 實現(xiàn)插入功能主程序 * */public int save(Station station) throws SQLException / 對售票員進(jìn)行操作 Connection connection = getConne

21、ction(); String sqlAdd = INSERT INTO ts_station VALUE(?,?,?,null); PreparedStatement ps = connection.prepareStatement(sqlAdd); ps.setString(1, station.getSname(); ps.setString(2, station.getSprovince(); ps.setString(3,station.getScity(); int line = ps.executeUpdate(); closeResource(); return line;/*

22、 * author 實現(xiàn)查詢功能主程序 * */Override public List findAll() / TODO Auto-generated method stub List list = new ArrayList();try getConnection =getConnection(); String sqlQuery =SELECT * FROM ts_station; PreparedStatement ps = getConnection.prepareStatement(sqlQuery); ResultSet set = ps.executeQuery(); whil

23、e(set.next() String sname = set.getString(1); String sprovince=set.getString(2); String scity=set.getString(3); int sno=set.getInt(4); Station station = new Station(); station.setSname(sname); station.setSno(sno); station.setSprovince(sprovince); station.setScity(scity); list.add(station); /System.o

24、ut.println(sname+-+sprovince+-+scity+-+sno); /int line = preparedStatement.executeUpdate(); closeResource(); catch(SQLException e) e.printStackTrace(); return list; /* * author 實現(xiàn)刪除功能主程序 * */ /* * author 實現(xiàn)更新功能主程序 * */Override public int update(Station station) /鏈接 Connection connection=null;try con

25、nection = getConnection();catch (SQLException e2) / TODO Auto-generated catch blocke2.printStackTrace();/更新 String sqlUpdate=UPDATE ts_station SET sname=?WHERE sno=?;/獲取執(zhí)行器statement int line2=-1; PreparedStatement ps=null;try ps = connection.prepareStatement(sqlUpdate); ps.setString(1,station.getSna

26、me(); ps.setInt(2, station.getSno(); line2=ps.executeUpdate(); closeResource(); catch (SQLException e) e.printStackTrace(); return line2; Overridepublic Station findBySno(int sno) / TODO Auto-generated method stub Station station=null;try getConnection =getConnection(); String sqlQuery =SELECT * FRO

27、M ts_station WHERE sno=?; PreparedStatement ps = getConnection.prepareStatement(sqlQuery); ps.setInt(1, sno); ResultSet set = ps.executeQuery(); station=new Station(); while(set.next() String sname = set.getString(1); String sprovince=set.getString(2); String scity=set.getString(3); int no=set.getIn

28、t(4); station.setSname(sname); station.setSprovince(sprovince); station.setScity(scity); station.setSno(no); /System.out.println(sname+-+sprovince+-+scity+-+sno); /int line = preparedStatement.executeUpdate(); closeResource(); catch(SQLException e) e.printStackTrace(); return station;Overridepublic

29、int removeBySno(int sno) / TODO Auto-generated method stub Connection connection=null;try connection = getConnection();catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();/sqlString sqlDelete=DELETE FROM ts_station WHERE sno=? ;/獲取執(zhí)行器statement int line=-1; PreparedStatement

30、 ps=null; try ps = connection.prepareStatement(sqlDelete); ps.setInt(1, sno); line=ps.executeUpdate(); closeResource(); catch (SQLException e) e.printStackTrace(); return line;entity包package entity;/* * author Station類 * */public class Station private int sno;private String sname;private String spro

31、vince;private String scity; /* * author sno調(diào)用方法 * */public int getSno() return sno;public void setSno(int sno) this.sno = sno; /* * author sname調(diào)用方法 * */public String getSname() return sname;public void setSname(String sname) this.sname = sname; /* * author sprovince調(diào)用方法 * */public String getSprovin

32、ce() return sprovince;public void setSprovince(String sprovince) this.sprovince = sprovince; /* * author scity調(diào)用方法 * */public String getScity() return scity;public void setScity(String scity) this.scity = scity;Service包package service;import java.sql.SQLException;import java.util.List;import entity.

33、Station; /* * author ConductorService類 * */public interface StationService /* * author 售票員的增加 * */public void add(Station station) throws SQLException;/* * author 售票員的查詢 * */public List findAll();/* * author 售票員的刪除 * */public Station findBySno(int sno);public int deleteBySno(int sno);public int upda

34、te(Station station);serviceimpl包package serviceimpt;import java.sql.SQLException;import java.util.List;import dao.StationDao;import dao.Impt.StationDaoImpt;import entity.Station;import service.StationService;/* * author StationServiceImpt類 * */public class StationServiceImpt implements StationServic

35、e private StationDao dao;public StationServiceImpt(StationDao dao) this.dao=dao; public void add(Station station) throws SQLException dao.save(station); /* * author 主函數(shù)調(diào)用 * */ public static void main(Stringargs) throws SQLException Station station = new Station(); station.setSname(鹽城火車站); station.se

36、tScity(鹽城); station.setSprovince(江蘇); new StationDaoImpt().save(station);/增 / StationDao dao = (StationDao) new StationDaoImpt(); / Station station = new Station(); / station.setSno(12); / new StationSeiviceImpt(dao).delete(station);/刪 / StationDao dao = (StationDao) new StationDaoImpt(); / Station

37、station = new Station(); / station.setSname(鹽城汽車站); /station.setSno(1); / new StationServiceImpt(dao).update(station);/改 / StationDao dao = (StationDao) new StationDaoImpt(); / StationService service = new StationServiceImpt(dao); / List list =service.findAll(); / for(Station station:list) / System.out.println(station.getSname()+-+station.getSprovince()+-+station.getScity()+-+station.getSno(); / /查 /* * author 實現(xiàn)更改功能 * */public int update(Station station) retu

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論