#include

#include

#include

#define MAXSIZE 2000

/*车票信息*/

typedef struct

{

char chezhan[20];/*车站*/

char checi[20];/*车次*/

char zuowei[40];/*座位*/

}Data;

/*顺序表类型定义*/

typedef struct

{

Data data[MAXSIZE];

int len;/*表长*/

}SqList;

/*统计所需的票的数量*/

int searchnum(SqList *p,char m[])

{

int i,j=0;

for(i=1;i<=p->len;i++)

{

if(strcmp(p->data[i].checi,m)==0)

{

j++;

}

}

return j;

}

/*查找*/

int search(SqList *p,char m[])

{

int i=1;

if(p->len==0)

{

return 0;

}

else

{

while(i<=p->len&&strcmp(p->data[i].checi,m)!=0)

{

i++;

}

if(i>p->len)

{

return 0;

}

}

return i;

}

/*售票*/

void del(SqList *p,int n,char m[])

{

int i,j,k;

printf("\n你已成功购买以下车票\n");

printf("\n 车站 车次 座位号\n");

for(i=1;i<=n;i++)

{

k=search(p,m);

if(k!=0)

{

printf("%8s%8s%8s\n",p->data[k].chezhan,p->data[k].checi,p->data[k].zuowei);

for(j=k+1;j<=p->len;j++)

{

p->data[j-1]=p->data[j];

}

p->len--;

}

}

printf("\n");

}

/*退票*/

void add(SqList *p,Data x)

{

int i=1,j;

while(i<=p->len&&strcmp(p->data[i].checi,x.checi)<0)

{

i++;

}

if(p->len==MAXSIZE-1)

{

printf("\n退票失败!\n");

}

else

{

for(j=p->len;j>=i;j--)

{

p->data[j+1]=p->data[j];

}

p->data[i]=x;

p->len++;

}

}

/*菜单*/

void menu()

{

printf("*******************************************\n");

printf("* 晋江火车站售票系统 *\n");

printf("* 1----------------------------------查询 *\n");

printf("* 2----------------------------------购票 *\n");

printf("* 3----------------------------------退票 *\n");

printf("* 0----------------------------------退出 *\n");

printf("*******************************************\n");

}

/*主函数*/

int main()

{

FILE *fp;

int i,sel,n,l,a;

SqList *p;

p=(SqList *)malloc(sizeof(SqList));

p->len=1;

Data x;

char m[20];

do

{

menu();

printf("\n请输入你的选择:");

scanf("%d",&sel);

switch(sel)

{

case 1:fp=fopen("F:\\Cprogram\\kesheyouhua\\tickets.txt","rb");

if(fp==NULL)

{

printf("\nopen error!\n");

return 0;

}

else

{

if(p->len==0)

{

printf("\n车票均已售空!\n\n");

}

else

{

printf("\n 车站 车次 座位号\n");

for(i=1;!feof(fp);i++)

{

fscanf(fp,"%8s%8s%8s\n",p->data[i].chezhan,p->data[i].checi,p->data[i].zuowei);

printf("%8s%8s%8s\n",p->data[i].chezhan,p->data[i].checi,p->data[i].zuowei);

}

p->len=i-1;

fclose(fp);

}

}

printf("\n");

break;

case 2:fp=fopen("F:\\Cprogram\\kesheyouhua\\tickets.txt","rb");

if(fp==NULL)

{

printf("\nopen error!\n");

return 0;

}

else

{

if(p->len==0)

{

printf("\n车票均已售空,无法购票!\n\n");

}

else

{

for(i=1;!feof(fp);i++)

{

fscanf(fp,"%8s%8s%8s\n",p->data[i].chezhan,p->data[i].checi,p->data[i].zuowei);

}

p->len=i-1;

if(p->len==0)

{

printf("\n车票均已售空!\n\n");

}

else

{

printf("\n请输入要购买的车次和车票数量:");

scanf("%s%d",m,&n);

l=searchnum(p,m);

if(l==0)

{

printf("\n此车次的车票已经售空!\n");

}

else

{

if(l

{

printf("\n此车次的车票仅剩下%d张,是否购买?(购买请按1,取消请按0)\n",l);

printf("你的选择是:");

scanf("%d",&a);

if(a==1)

{

del(p,n,m);

fp=fopen("F:\\Cprogram\\kesheyouhua\\tickets.txt","wb");

if(fp==NULL)

{

printf("open error!");

return 0;

}

else

{

for(i=1;i<=p->len;i++)

{

fprintf(fp,"%8s%8s%8s\n",p->data[i].chezhan,p->data[i].checi,p->data[i].zuowei);

}

fclose(fp);

}

}

}

if(l>=n)

{

del(p,n,m);

fp=fopen("F:\\Cprogram\\kesheyouhua\\tickets.txt","wb");

if(fp==NULL)

{

printf("open error!");

return 0;

}

else

{

for(i=1;i<=p->len;i++)

{

fprintf(fp,"%8s%8s%8s\n",p->data[i].chezhan,p->data[i].checi,p->data[i].zuowei);

}

fclose(fp);

}

}

}

}

}

fclose(fp);

}

break;

case 3:printf("\n请输入要退的票的购买地点(如:晋江火车站,西安火车站):");

scanf("%s",x.chezhan);

if(strcmp("晋江",x.chezhan)==0)

{

printf("\n请输入你要退的票的车次和座位:");

scanf("%s%s",x.checi,x.zuowei);

add(p,x);

fp=fopen("F:\\Cprogram\\kesheyouhua\\tickets.txt","wb");

if(fp==NULL)

{

printf("open error!");

return 0;

}

else

{

for(i=1;i<=p->len;i++)

{

fprintf(fp,"%8s%8s%8s\n",p->data[i].chezhan,p->data[i].checi,p->data[i].zuowei);

}

p->len=i-1;

fclose(fp);

}

printf("\n退票成功!\n\n");

}

else

{

printf("\n由于此车票不是本站出售的,无法让您退票,给您造成的不便敬请谅解!\n\n");

}

break;

}

}while(sel!=0);

return 0;

}

C语言课程设计火车订票系统存储结构设计,火车售票系统(数据结构课设)相关推荐

  1. 飞机订票系统c语言大作业,c语言课程设计---飞机订票系统

    <c语言课程设计---飞机订票系统>由会员分享,可在线阅读,更多相关<c语言课程设计---飞机订票系统(46页珍藏版)>请在皮匠网上搜索. 1.C 语言程序设计课程设计报告设计 ...

  2. 飞机订票系统程序设计c语言,C语言课程设计——飞机订票系统源代码

    <C语言课程设计--飞机订票系统源代码>由会员分享,可在线阅读,更多相关<C语言课程设计--飞机订票系统源代码(9页珍藏版)>请在人人文库网上搜索. 1.include/标准输 ...

  3. 数据结构火车订票系统C语言课程设计,求助一个数据结构C语言课程设计源代码订票系统^:^!...

    /********************************/ /*TurboC2.0运行通过*/ /*飞机订票系统*/ /* */ /***************************** ...

  4. java计算机毕业设计火车订票管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计火车订票管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计火车订票管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  5. 课程设计---飞机订票系统

    1. 题目 本课程设计的题目为:飞机订票系统. 2. 项目描述 基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票 ...

  6. c语言自动售票课程设计报告,C语言课程设计-地铁自动售票图形模拟系统.doc

    word文档 可自由复制编辑 word文档 可自由复制编辑 C语言课程设计 需求分析与系统设计报告 (模拟地铁自动售票系统) (最终版本) 题目:地铁自动售票图形模拟系统 修订历史记录 日期 版本 说 ...

  7. 火车订票管理系统/火车购票网站系统/火车订票网站/火车票售卖系统

    摘要:随着科技的飞速发展,计算机已经广泛的应用于各行各业当中,而且日趋普及.在各个领域内,计算机的应用已经十分广泛,各种智能设备都与计算机紧密结合在一起,主要应用于两个方面:一是以设备为主.另一种是软 ...

  8. c语言课程设计北京电子工业出版社,C语言课程设计报告(招生查询系统).doc

    PAGE 课 程 设 计 报 告 题目: 招生查询系统 课程名称: C语言程序设计 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 2013.10.16 计算机科学与技术学院 任务书 题目㈠ ...

  9. java计算机毕业设计基于ssm的火车订票管理系统(源代码+数据库+Lw文档)

    项目介绍 本论文主要论述的是如何利用JAVA语言去设计一个好的火车订票系统.在前言当中,我们会简述在当前时代研究火车订票系统的背景以及研究现状.本系统的框架将会采用B/S结构和Spring Boot框 ...

最新文章

  1. 关于Java 获取时间戳的方法,我和同事争论了半天
  2. 书单 | 春日必读书,少看一本都是遗憾
  3. java ssl 无证书_java – 如何修复SSL – 没有可用的证书
  4. C#中利用Linq.Dynamic实现简单的动态表达式构建查询
  5. Java框架数据库连接池比较(c3p0,dbcp和proxool)
  6. GPS串口报文NMEA格式,Python解析L76-gps数据流
  7. 更换map的遍历顺序优先级_树的级别顺序遍历或宽度优先遍历
  8. PMP考前资料分享!另送160+项目管理表格模板~
  9. MP3、MP4、MP5、PSP
  10. 数字大写;大写的一到十;…
  11. linux开机禁用vga设备,用vga_switcheroo在Linux下(开启KMS)彻底关闭某一可切换显卡的简单教程...
  12. UE4_模型_Bound(边界)
  13. 中国云计算产业2016年度点评
  14. 找出符合要求的字符串子串
  15. 解决在命令行中出现/usr/local/hadoop/libexec/hadoop-functions.sh: 行 1185: dirname: 未找到命令
  16. 光学基础知识:焦点、弥散圆、景深、焦深
  17. Delphi报表开发ReportMachine的小计和总计的计算
  18. 常用计算机二级题库,17年计算机二级office选择题题库
  19. 用Python实现栅格计算器中的Con和Power
  20. 网站安全漏洞检测报告年度安全分析

热门文章

  1. 脉搏波相关产品的介绍
  2. ansys怎么建立弯曲圆柱_ANSYS复合材料分析
  3. background-image属性设置图片尺寸_Matlab | 批量修改图片尺寸及图片灰度化
  4. 操作系统OS进程(一)初识
  5. ShadeGraph教程之节点详解6:Procedural Nodes
  6. java 异常限制_java的异常限制
  7. 在Reporting Services (RDL)中自动生成大量列
  8. Mongo DB教程及SQL与Mongo DB查询的映射
  9. 前端框架 Bootstrap 4.5.2 发布
  10. VS 2019 for Mac 第 3 个预览版发布,新编辑器、Xamarin 开发改进