C语言课程设计火车订票系统存储结构设计,火车售票系统(数据结构课设)
#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语言课程设计火车订票系统存储结构设计,火车售票系统(数据结构课设)相关推荐
- 飞机订票系统c语言大作业,c语言课程设计---飞机订票系统
<c语言课程设计---飞机订票系统>由会员分享,可在线阅读,更多相关<c语言课程设计---飞机订票系统(46页珍藏版)>请在皮匠网上搜索. 1.C 语言程序设计课程设计报告设计 ...
- 飞机订票系统程序设计c语言,C语言课程设计——飞机订票系统源代码
<C语言课程设计--飞机订票系统源代码>由会员分享,可在线阅读,更多相关<C语言课程设计--飞机订票系统源代码(9页珍藏版)>请在人人文库网上搜索. 1.include/标准输 ...
- 数据结构火车订票系统C语言课程设计,求助一个数据结构C语言课程设计源代码订票系统^:^!...
/********************************/ /*TurboC2.0运行通过*/ /*飞机订票系统*/ /* */ /***************************** ...
- java计算机毕业设计火车订票管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计火车订票管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计火车订票管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...
- 课程设计---飞机订票系统
1. 题目 本课程设计的题目为:飞机订票系统. 2. 项目描述 基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票 ...
- c语言自动售票课程设计报告,C语言课程设计-地铁自动售票图形模拟系统.doc
word文档 可自由复制编辑 word文档 可自由复制编辑 C语言课程设计 需求分析与系统设计报告 (模拟地铁自动售票系统) (最终版本) 题目:地铁自动售票图形模拟系统 修订历史记录 日期 版本 说 ...
- 火车订票管理系统/火车购票网站系统/火车订票网站/火车票售卖系统
摘要:随着科技的飞速发展,计算机已经广泛的应用于各行各业当中,而且日趋普及.在各个领域内,计算机的应用已经十分广泛,各种智能设备都与计算机紧密结合在一起,主要应用于两个方面:一是以设备为主.另一种是软 ...
- c语言课程设计北京电子工业出版社,C语言课程设计报告(招生查询系统).doc
PAGE 课 程 设 计 报 告 题目: 招生查询系统 课程名称: C语言程序设计 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 2013.10.16 计算机科学与技术学院 任务书 题目㈠ ...
- java计算机毕业设计基于ssm的火车订票管理系统(源代码+数据库+Lw文档)
项目介绍 本论文主要论述的是如何利用JAVA语言去设计一个好的火车订票系统.在前言当中,我们会简述在当前时代研究火车订票系统的背景以及研究现状.本系统的框架将会采用B/S结构和Spring Boot框 ...
最新文章
- 关于Java 获取时间戳的方法,我和同事争论了半天
- 书单 | 春日必读书,少看一本都是遗憾
- java ssl 无证书_java – 如何修复SSL – 没有可用的证书
- C#中利用Linq.Dynamic实现简单的动态表达式构建查询
- Java框架数据库连接池比较(c3p0,dbcp和proxool)
- GPS串口报文NMEA格式,Python解析L76-gps数据流
- 更换map的遍历顺序优先级_树的级别顺序遍历或宽度优先遍历
- PMP考前资料分享!另送160+项目管理表格模板~
- MP3、MP4、MP5、PSP
- 数字大写;大写的一到十;…
- linux开机禁用vga设备,用vga_switcheroo在Linux下(开启KMS)彻底关闭某一可切换显卡的简单教程...
- UE4_模型_Bound(边界)
- 中国云计算产业2016年度点评
- 找出符合要求的字符串子串
- 解决在命令行中出现/usr/local/hadoop/libexec/hadoop-functions.sh: 行 1185: dirname: 未找到命令
- 光学基础知识:焦点、弥散圆、景深、焦深
- Delphi报表开发ReportMachine的小计和总计的计算
- 常用计算机二级题库,17年计算机二级office选择题题库
- 用Python实现栅格计算器中的Con和Power
- 网站安全漏洞检测报告年度安全分析
热门文章
- 脉搏波相关产品的介绍
- ansys怎么建立弯曲圆柱_ANSYS复合材料分析
- background-image属性设置图片尺寸_Matlab | 批量修改图片尺寸及图片灰度化
- 操作系统OS进程(一)初识
- ShadeGraph教程之节点详解6:Procedural Nodes
- java 异常限制_java的异常限制
- 在Reporting Services (RDL)中自动生成大量列
- Mongo DB教程及SQL与Mongo DB查询的映射
- 前端框架 Bootstrap 4.5.2 发布
- VS 2019 for Mac 第 3 个预览版发布,新编辑器、Xamarin 开发改进