火车售票系统(数据结构课设)

这是一个使用C语言编写的火车售票系统,包括查询、购票和退票功能。系统通过顺序表存储车票信息,能从文件中读取并更新车票状态。用户可以输入车次和数量进行购票,如果车票不足会给出提示。退票功能则需要提供购买地点、车次和座位信息。系统还提供了一个简单的菜单界面供用户操作。
摘要由CSDN通过智能技术生成
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#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
  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值