ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:17.38KB ,
资源ID:10060281      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10060281.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一个简单的火车票售票管理系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、一个简单的火车票售票管理系统 1 / 18 () #include #include #define MAX 100 #define N 50 typedef struct time /时间类型int x,y,z;/分别对应年,月,日 TIME; int id;/购票人证件号 TIME date;/购票日期 CNODE; typedef struct tnode /车次信息类型char data;/车次编号 struct tnode *lchild,*rchild; CNODE *head; TNODE; void create();/按车次建立二叉排序树 void insert(int );

2、/增加新的车次(二叉排序树的插入) void del();/取消车次(二叉排序树节点删除) void inorder(TNODE *);/中序遍历车次二叉排序树(仅显示车次信息)voidinorder_all(TNODE *);/中序遍历车次二叉排序树(显示车次及售票信息)voidpreorder(TNODE *);/先序遍历车次二叉排序树(仅显示车次信息)TNODE*search();/按车次编号搜索 CNODE *insert_c(CNODE *);/插入新的售票信息(单张) 2 / 18 CNODE *insert_c_more(CNODE *);/插入新的售票信息(批量)CNODE *

3、del_c(CNODE *,CNODE *);/退票处理(删除售票信息)CNODE *search_c(CNODE *,int);/按票号查询 void search_c_id(CNODE *,int);/按购票人证件号搜索(限定某车次)void search_c_id_all(TNODE *,int);/按购票人证件号搜索(所有车次)void search_date(CNODE *,TIME);/按购票日期搜索(限定某车次)void search_date_all(TNODE *,TIME);/按购票日期搜索(所有车次)void print_c(CNODE *);/输出售票纪录(单张) vo

4、id print_c_all(CNODE *);/输出售票纪录(批量) TNODE *root=NULL; void main()int i,func,no,ok; TNODE *t; CNODE *c; TIME d; printf(nnn); for(i=0;i15;i+) printf(=); printf(列车售票信息管理系统); for(i=0;i15;i+) printf(=); printf(n); printf(t 1.车次信息管理n); printf(t 2.售票记录管理n); 3 / 18 printf(t 3.售票记录查询n); printf(t 4.售票记录一览n);

5、printf(t 5.退出系统n); for(i=0;in); for(i=0;iN;i+) printf(=); printf(nt 1.增加新的车次); printf(nt 2.取消车次); printf(nt 3.返回上级菜单n); 4 / 18 for(i=0;in); for(i=0;iN;i+) printf(=); printf(nt 1.增加新的售票记录); printf(nt 2.退票); 5 / 18 printf(nt 3.返回上级菜单n); for(i=0;ihead=insert_c_more(t-head); break; case 2: t=search(); p

6、rintf(需要退票的票号: ); scanf(%d,&no); t-head=del_c(t-head,search_c(t-head,no); break; case 3:main();break; default: 6 / 18 printf(n错误功能号输入有误!请重新输入!);break; case 3: printf(nn售票记录查询n); for(i=0;iN;i+) printf(=); printf(nt 1.按票号搜索); printf(nt 2.按购票者证件号搜索); printf(nt 3.按购票日期搜索); printf(nt 4.返回上级菜单n); for(i=0;

7、ihead,no); if(c=NULL)printf(错误没有该票号的纪录!该票还未售出或为废票!自动返回上级菜单n.); break; case 2: printf(n请输入您所要查询的购票者证件号: ); scanf(%d,&no); search_c_id_all(root,no); printf(搜索完毕!自动返回上级菜单n.); break; case 3: do printf(n请输入您所要查询的日期(格式: yy-mm-dd): ); scanf(%d-%d-%d,&d.x,&d.y,&d.z); if(d.y0) 8 / 18 if(d.y=1|d.y=3|d.y=5|d.y

8、=7|d.y=8|d.y=10|d.y=12)if(d.z0) ok=1; else if(d.z=2) if(d.z0) ok=1; else if(d.z0) ok=1;else ok=0; if(!ok) printf(n错误日期输入有误!请重新输入!); while(!ok); printf(n指定车次吗?(1-是,0-否): ); scanf(%d,&ok); if(ok) search_date(search()-head,d); else search_date_all(root,d); break; case 4:main();break; default: printf(n错

9、误功能号输入有误!自动返回上级菜单n.);break;case 4: printf(nn售票记录一览n); for(i=0;iN;i+) printf(=); printf(nt 1.仅浏览车次); printf(nt 9 / 18 2.指定车次已售票记录); printf(nt 3.所有车次已售票记录); printf(nt 4.测试: 先序遍历车次); printf(nt 5.返回上级菜单n); for(i=0;ihead); printf(n);break; case 3: printf(n+所有车次已售票记录n); if(root=NULL) printf(错误无车次纪录!); els

10、einorder_all(root);printf(n); break; case 4: printf(n+测试: 先序遍历车次n); if(root=NULL) printf(错误无车次纪录!); elsepreorder(root);printf(n); break; case 5:main();break; default: printf(n错误功能号输入有误!自动返回上级菜单n.);break;case 5:exit (0); default: printf(n错误功能号输入有误!请重新输入!);main();void 11 / 18 inorder_all(TNODE *ptr)if

11、(ptr!=NULL)inorder_all(ptr-lchild); printf(%d: n,ptr-data); print_c_all(ptr-head); printf(n); inorder_all(ptr-rchild); void inorder(TNODE *ptr)if(ptr!=NULL)inorder(ptr-lchild); printf(%dt,ptr-data); inorder(ptr-rchild); void preorder(TNODE *ptr)if(ptr!=NULL)printf(%dt ,ptr-data);preorder(ptr-lchild)

12、; preorder(ptr-rchild); void print_c(CNODE *tkt) if(tkt!=NULL) printf(t%dt%dt%d-%d-%dn,tkt-no,tkt-id,tkt-date.x,tkt-date.y,tkt-date.z);void print_c_all(CNODE *head) int i=0,j=0; if(head=NULL)printf(n记录为空!n);return; for(i=0;iN;i+) printf(=); printf(nNOt票号t购票者证件号t购票日期(年-月-日)n); for(i=0;inext;printf(n)

13、; for(i=0;iN;i+) printf(-); printf(n总计%d条记录n,j); for(i=0;iN;i+) printf(=); printf(n);void create()int n,i; int kMAX; printf(n您所希望增加车次的数量: ); scanf(%d,&n); for(i=0;in;i+) printf(新增第%d列车次: ,i+1); scanf(%d,&ki);for(i=0;idata=m; root-lchild=root-rchild=NULL; root-head=NULL;else p1=root; while(m!=p1-data

14、)if(mdata)&(p1-lchild!=NULL)p1=p1-lchild;else if(mp1-data)&(p1-rchild!=NULL)p1=p1-rchild; 13 / 18 else if(mdata)&(p1-lchild=NULL)p2=(TNODE *)malloc(sizeof(TNODE); p2-data=m; p2-lchild=p2-rchild=NULL; p2-head=NULL; p1-lchild=p2; return;else if(mp1-data)&(p1-rchild=NULL)p2=(TNODE *)malloc(sizeof(TNODE

15、); p2-data=m; p2-lchild=p2-rchild=NULL; p2-head=NULL; p1-rchild=p2; return; printf(n错误未能成功增加车次%d,车次号%d已存在!,m,m);TNODE *search() int key; TNODE *p; p=root; printf(n输入您所要查找的车次编号: ); scanf(%d,&key); while(p!=NULL&p-data!=key) 14 / 18 if(keydata)p=p-lchild; else if(keyp-data)p=p-rchild;if(p=NULL) printf

16、(n该车次不存在!);return(p);void del() int key; TNODE *p1,*p2,*p3,*temp; p1=p2=root; p3=temp=NULL; printf(n请输入您想要取消的车次编号: ); scanf(%d,&key); while(p2!=NULL&p2-data!=key) if(keydata)p1=p2;p2=p2-lchild; else if(keyp2-data)p1=p2;p2=p1-rchild;if(p2=NULL)printf(n错误该车次不存在!返回上级菜单n.);return; else if(p2-lchild=NULL

17、&p2-rchild=NULL)if(p1-lchild=p2) p1-lchild=NULL; if(p1-rchild=p2) p1-rchild=NULL; temp=p2; if(root=p2) temp=root;root=NULL;else if(p2-rchild=NULL) temp=p2-lchild; p2-data=temp-data; 15 / 18 p2-lchild=temp-lchild; p2-rchild=temp-rchild;else if(p2-lchild=NULL) temp=p2-rchild; p2-data=temp-data; p2-lch

18、ild=temp-lchild; p2-rchild=temp-rchild;else p3=p2; temp=p2-lchild; while(temp-rchild!=NULL)p3=temp;temp=temp-rchild; p2-data=temp-data; if(p3=p2) p3-lchild=temp-lchild; else p3-rchild=temp-lchild; free(temp); printf(车次%d已取消!nn,key);CNODE *insert_c(CNODE *head)CNODE *k,*p; k=(CNODE *)malloc(sizeof(CN

19、ODE); do printf(n车票编号: ); scanf(%d,&k-no); p=search_c(head,k-no); if(p!=NULL) printf(n错误该票已被购买!请重新选择!n); 16 / 18 while(p!=NULL); printf(购票者证件号: ); scanf(%d,&k-id); printf(购票日期(格式: yy-mm-dd): ); scanf(%d-%d-%d,&k-date.x,&k-date.y,&k-date.z); k-next=head; head=k; return(head);CNODE *insert_c_more(CNOD

20、E *head) int n,i; printf(n请输入批量新增售票记录数: ); fflush(stdin); scanf(%d,&n); for(i=0;iid!=id)s=temp;temp=temp-next; print_c(temp); if(temp!=NULL) return(s); else return NULL;void search_c_id(CNODE *head,int id) CNODE *s,*head_s; s=head_s=NULL; if(head=NULL) printf(无该证件号纪录!n); while(head!=NULL) if(head-id

21、=id) s=(CNODE *)malloc(sizeof(CNODE); s-no=head-no;s-id=head-id;s-date=head-date; s-next=head_s;head_s=s;head=head-next;print_c_all(head_s);printf(n);void search_c_id_all(TNODE *ptr,int id) if(ptr!=NULL) search_c_id_all(ptr-lchild,id); printf(n车次: %dn,ptr-data); search_c_id(ptr-head,id); search_c_id

22、_all(ptr-rchild,id); void search_date(CNODE *head,TIME t) CNODE *s,*head_s; s=head_s=NULL; 18 / 18 while(head!=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-no=head-no;s-id=head-id;s-date=head-date; s-next=head_s;head_s=s;head=head-next;print_c_a

23、ll(head_s);printf(n);void search_date_all(TNODE *ptr,TIME t) if(ptr!=NULL) search_date_all(ptr-lchild,t); printf(n车次: %dn,ptr-data); search_date(ptr-head,t); search_date_all(ptr-rchild,t); CNODE *del_c(CNODE *head,CNODE *p) CNODE *temp; if(p=NULL) printf(错误该票未售出或为废票!返回上级菜单n.);else if(p=head)head=NULL;free(p); else temp=p-next; p-next=temp-next; free(temp);return(head);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1