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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言课程设计火车票系统源代码.docx

1、C语言课程设计火车票系统源代码#include#include#include/火车票结构体类型/typedef struct Nodeint num; /编号/ char name20; /起点和终点/ char time5; /出发时间/ int price; /车票价格/ int amount; /剩余数量/ struct Node *next;Node;/创建链表并输入数据/struct Node *creat()struct Node *head,*r,*s; int i=0; char choice; head=(struct Node *)malloc(sizeof(struct

2、 Node); head-next=NULL; r=head; do s=(struct Node *)malloc(sizeof(struct Node); s-next=NULL; printf(请输入第%d种火车票的信息:n,+i); printf(请输入火车的编号:); scanf(%d,&s-num); printf(起点和终点:); scanf(%s,s-name); printf(出发时间:); scanf(%s,s-time);printf(车票价格:);scanf(%d,&s-price);printf(剩余数量:); scanf(%d,&s-amount); r-next=

3、s; r=s; printf(Continue?(Y/N); scanf(%s,&choice); while(choice=Y|choice=y); r-next=NULL; return(head);/将单链表中的信息保存到文件1.txt中/void save(struct Node *h) struct Node *s; FILE *fp; char filename10=1.txt; fp=fopen(1.txt,wt);if(fp=NULL) printf(n写文件出错,按任意键退出!);getchar();exit(1); for(s=h-next;s!=NULL;s=s-next

4、) fprintf(fp,%d %s %s %d %d n,s-num,s-name,s-time,s-price,s-amount); getchar();fclose(fp);/ 从文件1.txt中读取信息并存入单链表中/struct Node *read() struct Node *head,*r,*s; FILE *fp; char filename10=zl.txt; fp=fopen(1.txt,rt); if(fp=NULL) printf(读文件错误,按任意键退出!);getchar();exit(1); head=(struct Node *)malloc(sizeof(s

5、truct Node); head-next=NULL; r=head; while(!feof(fp) s=(struct Node *)malloc(sizeof(struct Node); fscanf(fp,%d %s %s %d %d,&s-num,s-name,s-time,&s-price,&s-amount); r-next=s;r=s; r-next=NULL; fclose(fp); return head;/将链表中的数据输出/void print(struct Node *h) struct Node *s; printf(n火车票信息如下:n); printf(n);

6、 printf(编号 起点和终点 出发时间 车票价格 剩余票数:n); for(s=h-next;s-next!=NULL;s=s-next) printf( %d %10s %5s %10d %6dn,s-num,s-name,s-time,s-price,s-amount); /链表查询/struct Node * find(struct Node *h)int i,j;char s20;printf(tt 查询方法有以下几种:n); printf(tt 1.火车票编号n);printf(tt 2.起点和终点n);printf(tt 3.出发时间n);printf(tt 4.车票价格n);

7、printf(tt 5.剩余票数n);printf(请输入您要查询的方法的序号:); scanf(%d,&i);switch(i) case 1:printf(请输入你要查询火车票的编号:); scanf(%d,&j); while(h-next!=NULL) h=h-next; if(h-num=j) return h; return NULL; break; case 2:printf(请输入您要查询火车票的起点和终点:);scanf(%s,s); while(h-next!=NULL) h=h-next; if(strcmp(h-name,s)=0) return h; return N

8、ULL; break; case 3:printf(请输入您要查询火车票的时间:); scanf(%s,s); while(h-next!=NULL) h=h-next; if(strcmp(h-time,s)=0) return h; return NULL; break; case 4:printf(请输入你要查询火车票的价格 :); scanf(%d,&j); while(h-next!=NULL) h=h-next; if(h-price=j) return h; return NULL; break; case 5:printf(请输入你要查询火车票的剩余票数:); scanf(%d

9、,&j); while(h-next!=NULL) h=h-next; if(h-amount=j) return h; return NULL; break;/修改信息/change(struct Node *h,int k) int j; struct Node *p;p=find(h); printf(-n);printf(t 您要修改哪一项?n);printf(t 1.火车编号n);printf(t 2.起点和终点n);printf(t 3.出发时间n);printf(t 4.车票价格n); printf(t 5.剩余票数n);printf(t 0.退出系统n); printf(-n)

10、;printf(请输入您要修改项的编号:);scanf(%d,&j);switch(j) case 1: printf(修改后的火车编号:); scanf(%d,&p-num); break; case 2: printf(修改后的起点和终点:); scanf(%s,p-name); break; case 3: printf(修改后的出发时间:); scanf(%s,p-time); break; case 4: printf(修改后的车票价格:); scanf(%d,&p-price); break; case 5: printf(修改后的剩余票数:); scanf(%d,&p-amoun

11、t); break; case 0:break;/删除信息/delete(struct Node *h)struct Node *p; int j; printf(请输入您要删除的火车票的编号:);scanf(%d,&j);p=h-next; if(p=NULL) return 0;while(p!=NULL)if(p-num=j) h-next=p-next; free(p); return 1; h=p; p=p-next; return 0;/添加信息/void append() struct Node *p; FILE *fp; fp=fopen(1.txt,at+); if(fp=N

12、ULL) printf(写文件出错,按任意键返回.n); getchar(); exit(1); printf(请输入要添加的火车票的信息:火车编号,起点和终点,出发时间,车票价格,剩余票数:n); scanf(%d%s%s%d%d,&p-num,p-name,p-time,&p-price,&p-amount); fprintf(fp,%d %s %s %d %dn,p-num,p-name,p-time,p-price,p-amount); getchar(); fclose(fp);/数据的统计/void count(struct Node *h) struct Node *s; s=h

13、; int i,j,k,n=0; printf(*n); printf(tt 请选择您要统计项目的序号:n); printf(tt 1.车票价格n); printf(tt 2.剩余票数n); printf(tt 0.退出界面n); scanf(%d,&i); switch(i) case 1: printf(请输入您要统计车票的价格的标准:); scanf(%d,&j); printf(tt 请选择低于或高于标准:n); printf(tt 1.价格低于%d的个数n,j); printf(tt 2.价格高于%d的个数n,j); scanf(%d,&k); if(k=1) for(s=h-nex

14、t;s-next!=NULL;s=s-next) if(s-pricenext;s-next!=NULL;s=s-next) if(s-pricej) n+; printf(车票价格低于%d的个数有%d个.n,j,n); break; case 2: printf(请输入您要统计剩余票数的数量:); scanf(%d,&j); printf(tt 请选择低于或高于所输票数:n); printf(tt 1.票数低于%d的个数n,j); printf(tt 2.票数高于%d的个数n,j); scanf(%d,&k); if(k=1) for(s=h-next;s-next!=NULL;s=s-ne

15、xt) if(s-amountnext;s-next!=NULL;s=s-next) if(s-amountj) n+; printf(剩余票数高于%d的个数有%d个.n,j,n); break; case 0:break; /保存用户和密码到文件2.txt中/void save_user() char file10=2.txt; FILE *fp;char name20; char pwd10; fp=fopen(2.txt,at+); if(fp=NULL) printf(n写文件出错,按任意键退出.n); getchar(); exit(1); printf(请输入用户名:); scan

16、f(%s,name); printf(请输入密码:); scanf(%s,pwd); fprintf(fp,%s %sn,name,pwd); getchar(); fclose(fp); printf(用户注册成功!n);/检验用户和密码是否匹配/int check(char *name,char *pwd)char name120; char pwd110; FILE *fp; char file10=2.txt; if(fp=fopen(2.txt,rt)=NULL) printf(读文件出错,按任意键退出!n); getchar(); exit(1); while(!feof(fp)

17、fscanf(fp,%s %s,name1,pwd1); if(strcmp(name1,name)=0&strcmp(pwd1,pwd)=0) return 1; return 0;/数据排序/void sort(struct Node *h)struct Node *s,*p,*m,*n; int t,t1,t2,t3;char s120;char s210; printf(车票价格由小到大排序如下:n); for(s=h-next;s-next!=NULL;s=s-next) for(p=s-next;p-next!=NULL;p=p-next) if(s-pricep-price) t

18、1=s-num;s-num=p-num;p-num=t1; t2=s-price;s-price=p-price;p-price=t2; t3=s-amount;s-amount=p-amount;p-amount=t3; strcpy(s1,s-name);strcpy(s-name,p-name);strcpy(p-name,s1); strcpy(s2,s-time);strcpy(s-time,p-time);strcpy(p-time,s2); print(h); printf(nn剩余车票数量由多到少排序如下:n); for(s=h-next;s-next!=NULL;s=s-ne

19、xt) for(p=s-next;p-next!=NULL;p=p-next) if(s-amountamount) t1=s-num;s-num=p-num;p-num=t1; t2=s-price;s-price=p-price;p-price=t2; t3=s-amount;s-amount=p-amount;p-amount=t3; strcpy(s1,s-name);strcpy(s-name,p-name);strcpy(p-name,s1); strcpy(s2,s-time);strcpy(s-time,p-time);strcpy(p-time,s2); print(h);v

20、oid main()struct Node *head,*p; int i,j,k; head=(struct Node *)malloc(sizeof(struct Node); head-next=NULL; char name20; char pwd10; printf(n*欢迎进入火车票管理系统*n); printf(tt 1.用户登录n); printf(tt 2.用户注册n); printf(tt 0.退出系统n); printf(请输入所选序号:); scanf(%d,&k); switch(k) case 1: printf(请输入用户名:); scanf(%s,name);

21、printf(请输入密码:); scanf(%s,pwd); if(check(name,pwd) printf(密码正确.n); do printf(nntt*欢迎进入火车票管理系统*n); printf(tt 1.录入火车票信息tt 2.添加火车票信息n); printf(tt 3.修改火车票信息tt 4.删除火车票信息n); printf(tt 5.打印火车票信息tt 6.查询火车票信息n); printf(tt 7.统计火车票信息tt 8.火车票销售排行n); printf(tt 0.退出系统n); printf(请输入您要进入菜单的序号(0-8):); scanf(%d,&i); s

22、witch(i) case 1: printf(请录入火车票信息nn); head=creat(); save(head); head=read(); break; case 2: append(); break; case 3: printf(请输入您要修改的火车票的编号:); scanf(%d,&j); change(head,j); save(head); break; case 4: head=read(); if(delete(head) printf(已正确删除!n); save(head); else printf(要删除的结点不存在!n); break; case 5: hea

23、d=read(); print(head); break; case 6: printf(请输入您要查询火车票的编号(以0结束):); scanf(%d,&j); p=find(head); printf(编号 起点和终点 出发时间 车票价格 剩余票数:n); printf(%d %10s %5s %10d %6dn,p-num,p-name,p-time,p-price,p-amount); printf(请继续输入序号(以0结束):); scanf(%d,&j); break; case 7: head=read();count(head);break; case 8: sort(head);break; case 0: printf(*谢谢使用!*n);break; while(i!=0); else printf(密码错误或用户名不存在.n); break; case 2:save_user();break; case 0:break;

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

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