火车售票系统SQL设计火车售票系统SQL字段修改版.docx
《火车售票系统SQL设计火车售票系统SQL字段修改版.docx》由会员分享,可在线阅读,更多相关《火车售票系统SQL设计火车售票系统SQL字段修改版.docx(60页珍藏版)》请在冰点文库上搜索。
火车售票系统SQL设计火车售票系统SQL字段修改版
第一篇:
火车售票系统SQL设计,火车售票系统SQL字段
1、旅客账户表:
旅客账户ID,用户名,登录密码,旅客ID,创建日期
Passengeraccount:
passengeraccountID,username,password,passengerID,creationdate
2、乘车人表(账号人&乘车人):
乘车人ID,旅客ID,邮箱,手机号码,性别,国家/地区,旅客类型ID
出生日期,核验状态,国定电话,地址,学生IDWhich:
passengerID,passengerID,emailaddress,phonenumber,gender,region,passengertypeID
Dateofbirth,checkstatus,nationaltelephone,address,studentID
3、旅客表:
旅客ID,旅客姓名,证件类型ID,证件号码,旅客状态IDPassenger:
passengerID,passengername,IDcertificatetype,certificatenumber,passengerstateID
4、证件类型表:
证件类型ID,证件类型
Certificatetype:
IDcertificatetype,documenttype
5、旅客类型表:
旅客类型ID,旅客类型(成人)Passengertype:
passengertypeID,passengertypes
6、旅客状态表:
旅客状态ID,旅客状态
Passengerstatus:
passengerstateID,passengerstate
7、学生信息表:
学生ID,学校所在省份,学校ID,院系,班级,学号,学制,入学年份,优惠卡号,优惠区间
studentinformation:
studentID,school,schoolname,department,class,studentnumber,lengthofschooling,
enrollmentyear,preferentialcardnumber,preferentialran
8、学校表:
学校ID,学校名称,省份IDSchoolnames:
SchoolID,SchoolName,provinceID
9、快递地址表:
地址ID,收件人,地址,手机,默认否,账户IDDeliveryaddress:
IDaddress,therecipient,address,mobilephone,bydefault,noaccountID
10、员工表:
员工ID,职业类型ID,班次ID,工作证号,登录密码,姓名,性别,出生日期,证件类型ID,证件号码,联系地址,联系电话,手机号码,创建日期,学历程度
Employee:
employeeID,professionaltypeID,shiftID,jobnumber,password,name,gender,dateofbirth,IDcertificatetype,certificatenumber,contactaddress,phonenumber,mobilenumber,creationdate,Academicdegree
11、员工班次表:
班次ID,班次名称(白班,夜班)Shift:
flightID,servicename
12、职业类型表:
职业类型ID,职业类型名称(售票员)Professionaltypesof:
professionaltypeID,professionaltypename
13、旅客订单表:
旅客订单ID,旅客账户ID,订单号,订单日期,乘车日期,车次,始发站,终点站,订单状态(是否支付)
Passengerorder:
passengerorderID,passengersaccountID,ordernumber,orderdate,todate,trains,Ofdeparture,destination,orderstatus
14、旅客订单明细表:
订单明细ID,订单ID,原票ID(订单明细ID,变更到站、改签使用),
车厢号,席位号,票价,车次席位类型(新空调硬座),票面说明(至北京/中转签证),备注(有效期或者随原票使用),
旅客ID,出票车站(茂名站售、未印票)
Passengerorderdetail:
passengerorderID,orderID,theoriginalticketID
Trainno,Seatno,price,Seattype,instructions,note
PassengerID,ticketstation
15、员工订单表:
员工订单ID,员工ID,订单号,订单日期,乘车日期,车次,始发站,终点站
Stafforder:
employeeorderID,employeeID,ordernumber,orderdate,todate,numberanddeparturepointanddestination
16、员工订单明细表:
订单明细ID,订单ID,原票ID(订单明细ID,变更到站、改签使用),
车厢号,席位号,票价,车次席位类型(新空调硬座),票面说明(至北京/中转签证),备注(有效期或者随原票使用),
旅客ID,出票车站(茂名站售)
Theemployeeorderdetail:
employeeorderID,orderID,theoriginalticketID
Trainno,Seatno,price,Seattype,instructions,note
PassengerID,ticketstation
17、员工销售表:
销售ID,员工ID,销售日期Employee:
salesID,employeeID,dateofsales
18、员工销售明细表:
销售明细ID,销售ID,员工订单IDThesalessubsidiary:
salessubsidiaryID,salesID,EmployeesordersID
19、车票表:
车票ID,车票序号(7位),始发站,终到站,车次,开车日期和时刻,
车厢号,席位号,票价,售票点类型(网),车次席位类型(新空调硬座),票面说明(至北京/中转签证),
备注一(仅限当日当次车),备注二(有效期或者随原票使用),
旅客ID,出票车站(茂名站售、未印票)
--条码(车站代码(6位)+票卷批次(4位)+到达日期(4位)+车票序号(7位))
Ticketinformation:
ticketID,ticketnumber,departurepoint,intostations,trains,Drivingtime,
Trainno,Seatno,price,Thetickettype,Seattype,instructions,
Note1,note2,
PassengerID,Ticketstation
20、票库表:
票库ID,车次车厢ID,席位号,售出否,预售否,生成日期Library:
ticketID,traincarriagesID,carseats,sold,bookingno,date
21、票价表:
票价ID,票价金额,车次ID,出发_车站ID,终到_车站ID,票价率ID,里程区段票价率ID,区段ID,
客票发展金,候车室空调费,卧铺订票费
Thefares:
fareID,fareamount,trainsID,StationforID,ArrivestationID,faresID,SectionfaresID,segmentID,
Developmentofgold,Waitingroomfee,sleeperDingPiaoFei
22、票价率表:
票价率ID,方案名称,硬座票费率,软座票费率,车次类型费率,硬卧下费率,
硬卧中费率,硬卧上费率,软卧下费率,软卧上费率,空调费率,上浮率
Thefarerate:
faresID,name,hardticketrate,Softseatrate,serviceratetype,hardsleeperrate1,
hardsleeperrate2,hardsleeperrate3,softsleeperrate1,softsleeperrate2,airrate,bluyancerate
23、里程区段票价率表:
里程区段票价率ID,区段,递减率,票价率,区段累计票价Themileagefares:
SectionfaresID,section,declinerate,fares,Thecumulativefares
24、旅客票价旅程区段表:
区段ID,里程区段,每区段里程,区段数Sectionfares:
segmentID,mileageextents,Mileagerange,thesectionnumber
25、车次信息表:
车次ID,车次编号,车次类型(空调特快),出发_车站ID,终到_车站ID,历时,里程,停运否
Trainnumberinformation:
trainsID,trainnumber,TraintypeID,StationforID,ArrivestationID,duration,range,norunning
26、车次类型表:
车次类型ID,车次类型名称(空调特快)Traintype:
TraintypeID,TraintypeName
27、列车途经表:
途经ID,车次ID,车站ID,站序,天数,到达时间,开车时间,里程,车次,停留时间
Trainroute:
viaID,trainsID,ThestationID,sequence,Numberdays,arrivaltime,drivingtime,mileage,Trainnumber,durationofstay
28、车次车厢表:
车次车厢ID,车次ID,车厢IDTraincarriages:
traincarriagesID,trainsID,trainscarID
29、车厢表:
车厢ID,席位类型ID,车厢号(YZ22),
席位数(硬座YZ22118,YZ25B128,YZ25G\YZ25K\YZ25T118,硬卧YW25G
66,YW22\YW2566,软卧RW32/36,软座RZ25C80)Thecarriage:
carID,seattypeID,carriages,seats
30、席位类型表:
席位类型ID,席位类型Seatstype:
typeID,typeofseats
31、地区省表:
省份ID,省份名称,省份排序,摘要province:
provinceID,provincename,Thesorting,inthispaper
32、车站表:
车站ID,省份ID,车站名称,数字编码,名称短拼音,名称拼音,字母编码,车站代码(6位)
Station:
ThestationID,provinceID,Thestationname,Digitalcoding,Shortpinyin,Allthepinyin,Lettercodes,Thestationcode
第二篇:
课程设计一:
火车售票系统
数据结构与算法课程实验报告
班级:
学号:
课程设计一:
火车售票系统设计及实现姓名:
cll
一、实验内容:
火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例如采用C/S模式下的程序设计或者采用B/S模式下的程序设计,通常都具有较为友好的界面和较为完善的功能。
火车售票系统的实现过程中,主要涉及到数据格式的设计,也就是数据结构的设计。
通常在采用数据库的情况下,可以运用数据库的设计来实现。
在没有采用数据库情况下需要,单独设计相应数据结构和算法。
二、实验目的:
按给定需求,通过查找相关资料,完成火车售票系统设计及实现,在设计过程中充分运用数据结构与算法课程中所学知识,从而熟练地掌握和应用线性表、单链表等重要数据结构和常用算法。
提前熟悉软件需求分析,软件测试等环节,运用相应程序设计语言实现该系统,从而进一步提高程序设计能力。
三、问题描述
(1)此系统可以实现售票、退票、车票剩余情况查询等功能。
(2)每张车票包含车次、座位信息。
在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。
(3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。
(4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。
(5)由订票系统的主要功能使程序的命令包括:
1)查询;2)订票;3)退票4)退出订票系统
四、问题的实现
4.1所用的数据结构(包括所用数据结构的抽象数据类型定义和说明)typedefstructLNode{//数据域
charname[10];//订票姓名
intdnum;//订票数量
chardj[50];//证件编号
intzhekou;//1代表折扣对象
floatpay;//付费
structLNode*next;//指针域
intzuohao[200];}LNode,*LinkList;//构造单链表(已订票)
typedefstructTickets{char*endname;//终点站名
char*hnum;//车次名
intfnum;//票价
floatdiscut;//折扣
intday;//日期
intwholenum;//总票额intlastnum;//余票量
inttuipiao[100];//退票处理,记录退票的座位号inttpcs;//记录目前退票次数
intmcps;//记录卖出去的票数(包括退票)LinkListla;//已订票链表
}Tickets;//构造结构类型(火车票)
typedefstruct{structTickets*elem;//存储空间的基址
intlength;intlistsize;//当前分配的存储容量(以sizeof(Tickets)为单位)}SqList;//构造顺序表
4.2主要实现思路
1、火车站的火车票采用顺序表表示。
每趟火车出售的票用链表表示。
2、查询:
输入终点站信息,输出该趟火车的票价,日期,余票数等信息;订票:
输入终点站信息,确认有该趟车之后,输入该趟车的基本信息,之后输入购票数,系统查询是否有余票,确认之后,输入个人基本信息;系统查询是否有退票,若有退票则,先售出退票。
插入新的结点。
退票:
输入终点站的信息,输入个人信息,
1、若退出所有票,则删除该结点,若,只退部分票,则更改该结点的购票信息。
退出:
退出系统;
【程序演示】
输入2订票,购买到温州的火车票十张,姓名:
a;证件号:
a;
退票:
输入3退票,输入终点站温州,姓名:
a;证件号:
a;
退票之后,继续订票3张
【实现代码】
intInitList_L(LinkList*h){//初始化带头结点的单链表
*h=(LinkList)malloc(sizeof(LNode));//生成头结点
if(!
h){printf("初始化链表错误!
\n");
return0;}
(*h)->next=NULL;return1;}
intCreate_Sq(SqList*L){//初始化并创建顺序表
L->elem=(Tickets*)malloc(ListInitSize*sizeof(Tickets));if(!
L->elem){printf("存储分配失败!
");//存储分配失败
return0;}L->length=5;//赋值
L->listsize=ListInitSize;intj;for(j=0;jlength;j++){
L->elem[j].mcps=0;//初始化,记录买出去的票L->elem[j].tpcs=0;//记录退票数
}inti;for(i=0;ilength;i++){
InitList_L(&L->elem[i].la);}
L->elem[0].endname="北京";//终点站名
L->elem[0].hnum="G2378";//车次名
L->elem[0].day=1;//日期
L->elem[0].fnum=346;//票价
L->elem[0].discut=0.5;L->elem[0].wholenum=L->elem[0].lastnum=10;
L->elem[1].endname="温州";L->elem[1].hnum="K351";L->elem[1].day=2;L->elem[1].fnum=254;L->elem[1].discut=0.5;L->elem[1].wholenum=L->elem[1].lastnum=10;
L->elem[2].endname="合肥";L->elem[2].hnum="G782B";L->elem[2].day=3;L->elem[2].fnum=224;
L->elem[2].discut=0.5;L->elem[2].wholenum=L->elem[2].lastnum=10;L->elem[3].endname="武汉";L->elem[3].hnum="D2903";L->elem[3].day=4;L->elem[3].fnum=200;L->elem[3].discut=0.5;L->elem[3].wholenum=L->elem[3].lastnum=10;L->elem[4].endname="厦门";L->elem[4].hnum="T112";L->elem[4].day=5;L->elem[4].fnum=450;L->elem[4].discut=0.5;L->elem[4].wholenum=L->elem[4].lastnum=10;return1;}//创建顺序表
voidDemand(SqListL){intn1;do{
charendstop[100];
printf("*******查票窗口********\n");
printf("请输入终点站名:
\n");
do{gets(endstop);}while(!
endstop[0]);inti;for(i=0;i
printf("\t\t杭州-->%s\n",endstop);printf("\t\t车次:
%s\n",L.elem[i].hnum);printf("\t\t日期:
%d日\n",L.elem[i].day);printf("\t\t票价:
%d\n",L.elem[i].fnum);printf("\t\t折扣价(学生/军人等5折):
%f\n",L.elem[i].fnum*L.elem[i].discut);printf("\t\t总票量:
%d\n",L.elem[i].wholenum);printf("\t\t余票量:
%d\n",L.elem[i].lastnum);}
}break;if(i==L.length-1){printf("没有找到%s的车票!
\n",endstop);}
printf("1.返回主菜单;2.继续\n");
scanf("%d",&n1);}while(n1==2);}
voidGetTicket(SqList*L){//订票
intn2=2,zhekou;//n2=1,继续订票;n2=2,返回主菜单;n2=0,确定,即订票成功
intnum;//订票数
floatmoney;//存储应付的总票额
charendstop[100];//记录终点站名
charname[100];charID[100];//记录证件号
do{printf("*******订票窗口********\n");printf("终点站名:
");
do{gets(endstop);}while(!
endstop[0]);inti=0;for(i=0;ilength;i++){if(strcmp(L->elem[i].endname,endstop)==0){//有该趟火车
printf("\t\t杭州-->%s\n",endstop);printf("\t\t车次:
%s\n",L->elem[i].hnum);printf("\t\t日期:
%d日\n",L->elem[i].day);printf("\t\t票价:
%d\n",L->elem[i].fnum);printf("\t\t折扣价(学生/军人等5折):
%f\n",L->elem[i].fnum*L->elem[i].discut);printf("\t\t总票量:
%d\n",L->elem[i].wholenum);printf("\t\t余票量:
%d\n",L->elem[i].lastnum);printf("请输入订票数:
");
scanf("%d",&num);
if(L->elem[i].lastnum==0){printf("对不起,到%s的车票已卖完!
\n",endstop);printf("\n\t1.继续订票;2.返回主菜单;\n");
scanf("%d",&n2);}elseif(num>L->elem[i].lastnum){printf("对不起,到%s的车票只剩%d张。
\n",endstop);printf("\n1.继续订票;2.返回主菜单;\n");scanf("%d",&n2);}else{
printf("购票请输入个人信息:
\n");
printf("姓名:
");
do{gets(name);}while(!
name[0]);
printf("是折扣对象吗?
若是,请输入相关证件号,不是请输入身份证号(1.是;0.不是)\n");
scanf("