您的当前位置:首页正文

火车票订票系统

来源:九壹网
include//预处理函数 include//标准库函数 include//字符串函数

include//通过键盘来控制程序调试 int o=0;

typedef struct zuowei {

int a;//车座 int b;//车厢 }seat;

typedef struct Tmess{//定义一个结构体存储火车订票的信息 char tnum8;//火车车次 char time18;//发车时间 char station18;//出发站 char station28;//终点站

char tujingstation8;//途经站 char time28;//到站时间 char money5;//票价 }tmess;

typedef struct in{//定义一个结构体存储火车座位信息 tmess data;//调用火车的信息 int reseat;//剩余票 seat seatnum;

struct in next;//定义next指针 }in;

typedef struct pmess{//定义一个结构体存储乘客信息 char name10;//姓名 char tel15;//电话 char id20;//身份证

char booknum3;//订票数目 char checi8;//车次 }pmess;

typedef struct people{//乘客信息 pmess m;//调用pmess结构体

struct people next;//定义next指针 }people;

struct dingdan{ int danhao;

char tnum8;//火车车次 char time18;//发车时间 char station18;//出发站 char station28;//终点站

char tujingstation8;//途经站 char time28;//到站时间 char money5;

char name10;//姓名 char tel15;//电话 char id20;//身份证

char booknum3;//订票数目 char seat10;

char seatnum10; }dingdan100; void end; void admin;

void bookin h;people k; void cancel;

void chaxuntrainin h;

in fangshiin h;char findmess;char numorcity; void print;

void passenger;

void putoutticketin p; void putticketin h; void widows; int main {

forint i=0;i<100;i++

{dingdani.danhao=i+1000; }

in h;p;

people k;v; int wp;

h=inmallocsizeofin; h->next=NULL;

k=peoplemallocsizeofpeople; k->next=NULL; p=h;

v=k; while1 {

system\"cls\"; widows;

scanf\"%d\";℘ fflushstdin; system\"cls\"; switchwp {

case 1:

putticketh;break; case 2:

chaxuntrainp;break;

case 3: bookp;v;break; case 4:

print;break; case 5:

cancel;break; default:break; }

printf\"\\n请按任何键结束\\n\"; getch; }

return 0; }

void end

{//结束页面函数 puts\"\";

printf\" 谢谢使用\\n\"; }

void widows

{//初始页面函数; printf\"\\n\";

printf\" printf\" printf\" ;; ;

\\n\" \\n\" \\n\" printf\" \\n\"; printf\" \\n\";

printf\" \\n\";

printf\" \\n\";

printf\" \\n\";

printf\" \\n\"; printf\" \\n\";

printf\" ☆1;输入车次信息 \\n\";

printf\" ☆2;查询车次 \\n\";

printf\" ☆3;订票 \\n\";

printf\" ☆4;订单查询 \\n\";

printf\" ☆5;退票 \\n\"; printf\" ☆6;退出系统 \\n\"; printf\" \\n\"; printf\"\\n\";

printf\" 请输入选择:\"; }

void putticketin h {//输入车次信息

in p;l;s;//定义了三个指针变量 char num8;//定义了数组 p=h;//p指向尾节点

l=h->next;//l指针遍历火车信息 whilep->next {

p=p->next; }

while1 {

printf\"请输入要添加的火车车次按0退出\\n\"; scanf\"%s\";# fflushstdin;

ifstrcmpnum;\"0\"==0

}

break; whilel {

ifstrcmpl->data.tnum;num==0

{//比较的输入车次与之前存在车次 printf\"该车次已经存在\\n\"; return ; }

l=l->next;//l++ }

s=in mallocsizeofin;

strcpys->data.tnum;num;//复制函数;加入新的车次 printf\"请输入出发时间:\\n\"; scanf\"%s\";&s->data.time1; fflushstdin;

printf\"请输入出发城市:\\n\"; scanf\"%s\";&s->data.station1; fflushstdin;

printf\"请输入到达时间:\\n\"; scanf\"%s\";&s->data.time2; fflushstdin;

printf\"请输入到达城市:\\n\"; scanf\"%s\";&s->data.station2; fflushstdin;

printf\"请输入途径大站:\\n\";

scanf\"%s\";&s->data.tujingstation; fflushstdin;

printf\"请输入票价:\\n\"; scanf\"%s\";&s->data.money; fflushstdin;

s->seatnum.a=1; s->seatnum.b=1; s->reseat=-1; s->next=NULL; p->next=s; p=s; }

void putoutticketin p {//打印火车信息

printf\"\\n下面是火车信息\\n\";

printf\"车次:%s\\n\";p->data.tnum;

printf\"出发时间:%s\\n\";p->data.time1; printf\"始发站:%s\\n\";p->data.station1; printf\"到达时间:%s\\n\";p->data.time2; printf\"终点站:%s\\n\";p->data.station2;

printf\"途经站:%s\\n\";p->data.tujingstation; printf\"票价:%s\\n\";p->data.money;

printf\"剩余票数:%d\";1000-p->reseat; }

in fangshiin h;char findmess;char numorcity {//查询方式 in p;

ifstrcmpnumorcity;\"num\"==0 {//按车次查询 p=h->next; whilep {

ifstrcmpp->data.tnum;findmess==0{//查到与车次信息相符的 return p;//返回所查到的信息 }

p=p->next; } }

ifstrcmpnumorcity ;\"city\"==0{//按城市查询 p=h->next; whilep{

ifstrcmpp->data.station2;findmess==0{//查到与城市信息相符的

return p;//返回所查到的信息 }

p=p->next; } }

return 0; }

void chaxuntrainin h{//信息查询 in p;

char str110; int sel;

ifh->next==NULL{

printf\"没有任何火车信息\\n\"; return ; }

printf\"\\n请选择查询方式\\n1.车次查询 2.城市查询\\n\"; scanf\"%d\";&sel; fflushstdin; ifsel==1{

printf\"请输入车次\\n\"; scanf\"%s\";str1; fflushstdin;

p=fangshih;str1;\"num\"; ifp{

putoutticketp; }

else {

printf\"\\n没有找到\\n\"; } }

else ifsel==2{

printf\"请输入到达城市\\n\"; scanf\"%s\";str1; fflushstdin;

p=fangshih;str1;\"city\"; ifp{

putoutticketp; }

else {

printf\"\\n没有找到\\n\"; } } }

void bookin h;people k{//订票输入乘客信息;订票数 in p;l;//定义两个in结构体下的指针变量

people v;s;//定义两个people结构体下的指针变量 int i=0;t=0;wp;i2=1;

char str110;str210;//定义两个数组分别用来存储到达城市和车次信息 l=h; v=k;

extern int o; whilev->next

v=v->next;//v指针遍历火车信息 printf\"请输入想要达到的城市\\n\"; scanf\"%s\";&str1; fflushstdin;

p=fangshil;str1;\"city\";//按城市搜索的查询方式 printf\"请输入想要的车次\\n\"; scanf\"%s\";&str2; fflushstdin;

p=fangshil;str2;\"num\";//按车次搜索的查询方式 ifp{

printf\"\\n没有找到到达该城市的车次\\n\"; return ; }

else {

putoutticketp;//调用outoutticket函数 printf\"是否要订这个车次<0/1>\\n\"; scanf\"%d\";℘ fflushstdin; ifwp{

s=peoplemallocsizeofpeople; printf\"请输入姓名:\"; scanf\"%s\";&s->m.name; fflushstdin;

printf\"请输入电话:\"; scanf\"%s\";&s->m.tel; fflushstdin;

printf\"请输入身份证号:\"; scanf\"%s\";&s->m.id; fflushstdin;

printf\"请输入要订的票数:\"; scanf\"%s\";&s->m.booknum;

fflushstdin;

s->next=NULL; v->next=s; v=s;

strcpys->m.checi;p->data.tnum;

p->reseat=p->reseat+intatofs->m.booknum; ifp->seatnum.a<8 {

sprintfdingdano.seatnum;\"%d/%d\";p->seatnum.a;p->seatnum.b; p->seatnum.a=p->seatnum.a+1; }

else

ifp->seatnum.b<8 {

sprintfdingdano.seatnum;\"%d/%d\";p->seatnum.a;p->seatnum.b; p->seatnum.b=p->seatnum.b+1; p->seatnum.a=1; }

printf\"\\nOK订票成功\\n\";

strcpydingdano.tnum;p->data.tnum; strcpydingdano.time1;p->data.time1;

strcpydingdano.station1;p->data.station1; strcpydingdano.station2;p->data.station2;

strcpydingdano.tujingstation;p->data.tujingstation; strcpydingdano.time2;p->data.time2; strcpydingdano.money;p->data.money; strcpydingdano.name;s->m.name; strcpydingdano.tel;s->m.tel; strcpydingdano.id;s->m.id;

strcpydingdano.booknum;s->m.booknum; printf\"订单号为:%d\\n\";dingdano.danhao;

printf\"座位号为:%s座位号/车厢号\\n\";dingdano.seatnum; o++; getch; } }

}

void cancel {

int count=0; extern int o; char q5=\"失效\"; int p; int s=0;

char passname20;

printf\"请输入乘客姓名:\"; scanf\"%s/n\";passname; forint i=0;iifstrcmppassname;dingdani.name==0 {

printf\"\\n\";

printf\" 这是订单号为%d的订单信息 \\n\";dingdani.danhao; printf\"\\n\";

printf\" 火车车次:%s \\n\";dingdani.tnum;

printf\" 发车时间:%s \\n\";dingdani.time1;

printf\" 出发站:%s \\n\";dingdani.station1;

printf\" 终点站:%s \\n\";dingdani.station2;

printf\" 途径站:%s \\n\";dingdani.tujingstation;

printf\" 到站时间:%s \\n\";dingdani.time2;

printf\" 票价:%s \\n\";dingdani.money;

printf\" 姓名:%s \\n\";dingdani.name;

printf\" 电话:%s \\n\";dingdani.tel;

printf\" 身份证:%s

\\n\";dingdani.id;

printf\" 订票数目:%s \\n\";dingdani.booknum;

printf\" 座位号:%s<座位号/车厢号> \\n\";dingdani.seatnum; printf\"\\n\";

printf\"----------------------------------------------------------------------------\\n\"; count++; } }

ifcount==0 {

printf\"未找到该乘客的订票信息\\n\"; goto low; }

printf\"请输入要删除的订单编号:\"; scanf\"%d\\n\";&p; fors=0;sifp==dingdans.danhao

{ strcpydingdans.tnum;q; strcpydingdans.time1;q;

strcpydingdans.station1;q; strcpydingdans.station2;q;

strcpydingdans.tujingstation;q; strcpydingdans.time2;q; strcpydingdans.money;q; strcpydingdans.name;q; strcpydingdans.tel;q; strcpydingdans.id;q;

strcpydingdans.booknum;q; printf\"\\n\";

printf\" 这是订单号为%d的订单信息 \\n\";dingdans.danhao; printf\"\\n\";

printf\" 火车车次:%s

\\n\";dingdans.tnum;

printf\" 发车时间:%s \\n\";dingdans.time1;

printf\" 出发站:%s \\n\";dingdans.station1;

printf\" 终点站:%s \\n\";dingdans.station2;

printf\" 途径站:%s \\n\";dingdans.tujingstation;

printf\" 到站时间:%s \\n\";dingdans.time2;

printf\" 票价:%s \\n\";dingdans.money;

printf\" 姓名:%s \\n\";dingdans.name;

printf\" 电话:%s \\n\";dingdans.tel;

printf\" 身份证:%s \\n\";dingdans.id;

printf\" 订票数目:%s \\n\";dingdans.booknum;

printf\" 座位号:%s<座位号/车厢号> \\n\";dingdani.seatnum; printf\"\\n\";

printf\"----------------------------------------------------------------------------\\n\"; } }

low:; }

void admin {

int password=1; extern int o; int n;

printf\"请输入管理员密码:\"; scanf\"%d\\n\";&n;

fflushstdin; ifpassword==n {

forint i=0;iprintf\"\\n\";

printf\" 这是订单号为%d的订单信息 \\n\";dingdani.danhao; printf\"\\n\";

printf\" 火车车次:%s \\n\";dingdani.tnum;

printf\" 发车时间:%s \\n\";dingdani.time1;

printf\" 出发站:%s \\n\";dingdani.station1;

printf\" 终点站:%s \\n\";dingdani.station2;

printf\" 途径站:%s \\n\";dingdani.tujingstation;

printf\" 到站时间:%s \\n\";dingdani.time2;

printf\" 票价:%s \\n\";dingdani.money;

printf\" 姓名:%s \\n\";dingdani.name;

printf\" 电话:%s \\n\";dingdani.tel;

printf\" 身份证:%s \\n\";dingdani.id;

printf\" 订票数目:%s \\n\";dingdani.booknum;

printf\" 座位号:%s<座位号/车厢号> \\n\";dingdani.seatnum; printf\"\\n\";

printf\"----------------------------------------------------------------------------\\n\"; }

} }

void passenger {

char passname20;

printf\"请输入乘客姓名:\"; scanf\"%s/n\";passname; fflushstdin;

forint i=0;iifstrcmppassname;dingdani.name==0 {

printf\"\\n\";

printf\" 这是订单号为%d的订单信息 \\n\";dingdani.danhao; printf\"\\n\";

printf\" 火车车次:%s \\n\";dingdani.tnum;

printf\" 发车时间:%s \\n\";dingdani.time1;

printf\" 出发站:%s \\n\";dingdani.station1;

printf\" 终点站:%s \\n\";dingdani.station2;

printf\" 途径站:%s \\n\";dingdani.tujingstation;

printf\" 到站时间:%s \\n\";dingdani.time2;

printf\" 票价:%s \\n\";dingdani.money;

printf\" 姓名:%s \\n\";dingdani.name;

printf\" 电话:%s \\n\";dingdani.tel;

printf\" 身份证:%s \\n\";dingdani.id;

printf\" 订票数目:%s \\n\";dingdani.booknum;

printf\" 座位号:%s<座位号/车厢号> \\n\";dingdani.seatnum; printf\"\\n\";

printf\"----------------------------------------------------------------------------\\n\"; } } }

void print {

printf\"\\n\";

printf\" 1:管理员登陆需管理员密码 printf\" 2:乘客登陆 \\n\" printf\"\\n\";

printf\"请选择登录方式:\"; int m;

scanf\"%d\\n\";&m; fflushstdin; switchm

{case 1:admin;break;

case 2:passenger;break; default:break; } }

; ; \\n\"

因篇幅问题不能全部显示,请点此查看更多更全内容

Top