一个简单的火车票售票管理系统Word格式.docx

上传人:b****1 文档编号:6023273 上传时间:2023-05-05 格式:DOCX 页数:10 大小:17.38KB
下载 相关 举报
一个简单的火车票售票管理系统Word格式.docx_第1页
第1页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第2页
第2页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第3页
第3页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第4页
第4页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第5页
第5页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第6页
第6页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第7页
第7页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第8页
第8页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第9页
第9页 / 共10页
一个简单的火车票售票管理系统Word格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

一个简单的火车票售票管理系统Word格式.docx

《一个简单的火车票售票管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《一个简单的火车票售票管理系统Word格式.docx(10页珍藏版)》请在冰点文库上搜索。

一个简单的火车票售票管理系统Word格式.docx

//按购票日期搜索(限定某车次)voidsearch_date_all(TNODE*,TIME);

//按购票日期搜索(所有车次)voidprint_c(CNODE*);

//输出售票纪录(单张)

voidprint_c_all(CNODE*);

//输出售票纪录(批量)

TNODE*root=NULL;

voidmain(){inti,func,no,ok;

TNODE*t;

CNODE*c;

TIMEd;

printf(\n\n\n);

for(i=0;

i<

15;

i++)printf(=);

printf(列车售票信息管理系统);

for(i=0;

printf(\n);

printf(\t

1.车次信息管理\n);

2.售票记录管理\n);

3/18

3.售票记录查询\n);

4.售票记录一览\n);

printf(\t5.退出系统\n);

N;

printf(\n请选择您所需要的功能:

);

fflush(stdin);

scanf(%d,&

func);

switch(func){case1:

printf(\n\n车次信息管理>

>

\n);

printf(\n\t1.增加新的车次);

printf(\n\t2.取消车次);

printf(\n\t

3.返回上级菜单\n);

4/18

create();

printf(\n售票信息更新成功!

\n\n);

break;

case2:

del();

break;

case3:

main();

default:

printf(\n[错误]功能号输入有误!

请重新输入!

);

}break;

case2:

printf(\n\n售票记录管理>

1.增加新的售票记录);

printf(\n\t2.退票);

5/18

t=search();

if(t!

=NULL)t->

head=insert_c_more(t->

head);

printf(需要退票的票号:

scanf(%d,&

no);

t->

head=del_c(t->

head,search_c(t->

head,no));

case3:

6/18

printf(\n[错误]功能号输入有误!

printf(\n\n售票记录查询>

printf(\n\t1.按票号搜索);

2.按购票者证件号搜索);

3.按购票日期搜索);

4.返回上级菜单\n);

if(t!

=NULL){

7/18

printf(\n请输入您所要查询的票号:

c=search_c(t->

head,no);

if(c==NULL)printf([错误]没有该票号的纪录!

该票还未售出或为废票!

自动返回上级菜单\n...);

}

printf(\n请输入您所要查询的购票者证件号:

search_c_id_all(root,no);

printf(搜索完毕!

do{

printf(\n请输入您所要查询的日期(格式:

yy-mm-dd):

scanf(%d-%d-%d,&

d.x,&

d.y,&

d.z);

if(d.y<

13&

&

d.y>

0){

8/18

if(d.y==1||d.y==3||d.y==5||d.y==7||d.y==8||d.y==10||d.y==12)if(d.z<

32&

d.z>

0)ok=1;

elseif(d.z==2)

if(d.z<

30&

else

31&

}elseok=0;

if(!

ok)printf(\n[错误]日期输入有误!

}while(!

ok);

printf(\n指定车次吗?

(1->

是,0->

否):

if(ok)search_date(search()->

head,d);

elsesearch_date_all(root,d);

case4:

printf(\n\n售票记录一览>

printf(\n\t1.仅浏览车次);

9/18

2.指定车次已售票记录);

3.所有车次已售票记录);

printf(\n\t4.测试:

先序遍历车次);

5.返回上级菜单\n);

printf(\n+++仅浏览车次\n);

if(root==NULL)printf([错误]无车次纪录!

else{inorder(root);

printf(\n);

}break;

printf(\n+++指定车次已售票记录\n);

10/18

=NULL){print_c_all(t->

printf(\n+++所有车次已售票记录\n);

if(root==NULL)printf([错误]无车次纪录!

else{inorder_all(root);

case4:

printf(\n+++测试:

先序遍历车次\n);

else{preorder(root);

case5:

exit(0);

}main();

}void

11/18

inorder_all(TNODE*ptr){if(ptr!

=NULL){inorder_all(ptr->

lchild);

printf(%d:

\n,ptr->

data);

print_c_all(ptr->

inorder_all(ptr->

rchild);

}}

voidinorder(TNODE*ptr){if(ptr!

=NULL){inorder(ptr->

printf(%d\t,ptr->

inorder(ptr->

voidpreorder(TNODE*ptr){if(ptr!

=NULL){printf(%d\t,ptr->

preorder(ptr->

}}voidprint_c(CNODE*tkt){if(tkt!

=NULL)

printf(\t%d\t%d\t%d-%d-%d\n,tkt->

no,tkt->

id,tkt->

date.x,tkt->

date.y,tkt->

date.z);

}voidprint_c_all(CNODE*head){

inti=0,j=0;

if(head==NULL){printf(\n记录为空!

return;

}for(i=0;

printf(\nNO\t票号\t购票者证件号\t购票日期(年-月-日)\n);

i++)printf(-);

for(j=0;

head!

=NULL;

j++){

12/18

printf(\n%d,j);

print_c(head);

head=head->

next;

}printf(\n);

printf(\n总计%d条记录\n,j);

}voidcreate(){intn,i;

intk[MAX];

printf(\n您所希望增加车次的数量:

n);

n;

i++){

printf(新增第%d列车次:

i+1);

k[i]);

}for(i=0;

i++)

insert(k[i]);

}voidinsert(intm){TNODE*p1,*p2;

if(root==NULL){root=(TNODE*)malloc(sizeof(TNODE));

root->

data=m;

root->

lchild=root->

rchild=NULL;

head=NULL;

}else{p1=root;

while(m!

=p1->

data){if((m<

p1->

data)&

(p1->

lchild!

=NULL))p1=p1->

lchild;

elseif((m>

rchild!

rchild;

13/18

elseif((m<

lchild==NULL)){p2=(TNODE*)malloc(sizeof(TNODE));

p2->

p2->

lchild=p2->

p1->

lchild=p2;

}elseif((m>

rchild==NULL)){p2=(TNODE*)malloc(sizeof(TNODE));

rchild=p2;

return;

printf(\n[错误]未能成功增加车次%d,车次号%d已存在!

m,m);

}}TNODE*search(){

intkey;

TNODE*p;

p=root;

printf(\n输入您所要查找的车次编号:

key);

while(p!

=NULL&

p->

data!

=key){

14/18

if(key<

data){p=p->

elseif(key>

}}if(p==NULL)printf(\n该车次不存在!

return(p);

}voiddel(){

TNODE*p1,*p2,*p3,*temp;

p1=p2=root;

p3=temp=NULL;

printf(\n请输入您想要取消的车次编号:

while(p2!

=key){if(key<

data){p1=p2;

p2=p2->

p2=p1->

}}if(p2==NULL){printf(\n[错误]该车次不存在!

返回上级菜单\n...);

elseif(p2->

lchild==NULL&

rchild==NULL){if(p1->

lchild==p2)p1->

lchild=NULL;

if(p1->

rchild==p2)p1->

temp=p2;

if(root==p2){temp=root;

root=NULL;

}}else{if(p2->

rchild==NULL){temp=p2->

data=temp->

data;

15/18

lchild=temp->

rchild=temp->

}elseif(p2->

lchild==NULL){temp=p2->

}else{p3=p2;

temp=p2->

while(temp->

=NULL){p3=temp;

temp=temp->

}p2->

if(p3==p2)p3->

elsep3->

}}free(temp);

printf(车次%d已取消!

\n\n,key);

}CNODE*insert_c(CNODE*head){CNODE*k,*p;

k=(CNODE*)malloc(sizeof(CNODE));

printf(\n车票编号:

k->

p=search_c(head,k->

if(p!

=NULL)printf(\n[错误]该票已被购买!

请重新选择!

16/18

}while(p!

=NULL);

printf(购票者证件号:

id);

printf(购票日期(格式:

date.x,&

date.y,&

k->

next=head;

head=k;

return(head);

}CNODE*insert_c_more(CNODE*head){intn,i;

printf(\n请输入批量新增售票记录数:

i++)head=insert_c(head);

printf(\n售票记录更新成功!

}CNODE*search_c(CNODE*head,intid){CNODE*temp,*s;

s=temp=head;

17/18

while(temp!

temp->

id!

=id){s=temp;

}print_c(temp);

if(temp!

=NULL)return(s);

elsereturnNULL;

}voidsearch_c_id(CNODE*head,intid){CNODE*s,*head_s;

s=head_s=NULL;

if(head==NULL)printf(无该证件号纪录!

while(head!

=NULL){if(head->

id==id){

s=(CNODE*)malloc(sizeof(CNODE));

s->

no=head->

no;

id=head->

id;

date=head->

date;

next=head_s;

head_s=s;

}head=head->

}print_c_all(head_s);

}voidsearch_c_id_all(TNODE*ptr,intid){

if(ptr!

search_c_id_all(ptr->

lchild,id);

printf(\n车次:

%d\n,ptr->

search_c_id(ptr->

head,id);

search_c_id_all(ptr->

rchild,id);

}}voidsearch_date(CNODE*head,TIMEt){CNODE*s,*head_s;

18/18

=NULL){if(t.x==head->

date.x)if(t.y==head->

date.y)

if(t.z==head->

date.z){s=(CNODE*)malloc(sizeof(CNODE));

s->

}voidsearch_date_all(TNODE*ptr,TIMEt){

search_date_all(ptr->

lchild,t);

search_date(ptr->

head,t);

search_date_all(ptr->

rchild,t);

CNODE*del_c(CNODE*head,CNODE*p){CNODE*temp;

if(p==NULL)printf([错误]该票未售出或为废票!

elseif(p==head){head=NULL;

free(p);

else{

temp=p->

p->

next=temp->

free(temp);

}return(head);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2