C语言结构体-火车票查询程序

C语言结构体–火车票查询程序

【问题描述】定义一个火车票的结构体数组,结构体的数据包括车次、始发站、终点站和票价。要求从键盘输入多个火车票数据,票价输入为负数时代表输入结束。
继续输入查询条件和要查询的数据,输出满足查询条件的所有车次信息(不考虑查不到的情况)。
【输入形式】
输入火车票数据信息,输入顺序为车次、始发站、终点站和票价,票价输入为负数时代表输入结束。
再输入查询条件和查询数据,形式如下:
1 站名originst:查询所有始发站为 originst 的车次信息。
2 站名terminal:查询所有终点站为 terminal 的车次信息。
3 票价fare:查询低于该票价 fare 的所有车次信息。
4 车次train:查询该车次 train 的信息。
注:以上四个变量名只是参考,不一定用该名字。不需考虑查不到的情况,不需考虑查询条件非法(不是1~4)的情况。
【输出形式】
输出查询到的车次信息。小数保留一位小数点。
【样例输入】
c6859 guangzhou zhaoqing 65
k9078 guangzhou yiyang 119
k7037 haerbin suihua -19.5
4 c6859
【样例输出】
c6859 guangzhou zhaoqing 65

源代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
 struct Train                                     //定义一个火车结构体
 {
  char tra[12];                                   //车次
  char ori[20];                                   //始发车
  char ter[20];                                   //终点站
  float fare;                                     //票价
 };
 struct Train date[20];                           //定义一个火车信息的数组
 int i, n, k, j;
 char str[20];
 for (i = 0;; i++)
 {
  k = i;
  scanf_s("%s %s %s %f", date[i].tra, 12, date[i].ori, 20, date[i].ter, 20, &date[i].fare);
  if (date[i].fare < 0)
   break;
 }
 //scanf_s("%d %s", &n, str, 20);
 scanf_s("%d", &n);
 if (n != 3)
  scanf_s("%s", str, 20);
 else
  scanf_s("%d", &j);
 if (n == 1)
 {
  for (i = 0; i < k; i++)
  {
   if (strcmp(str, date[i].ori) == 0)
   {
    printf("%s %s %s %.1f\n", date[i].tra, date[i].ori, date[i].ter, date[i].fare);
   }
  }
 }
 if (n == 2)
 {
  for (i = 0; i < k; i++)
  {
   if (strcmp(str, date[i].ter) == 0)
   {
    printf("%s %s %s %.1f\n", date[i].tra, date[i].ori, date[i].ter, date[i].fare);
   }
  }
 }
 if (n == 4)
 {
  for (i = 0; i < k; i++)
  {
   if (strcmp(str, date[i].tra) == 0)
   {
    printf("%s %s %s %.1f \n", date[i].tra, date[i].ori, date[i].ter, date[i].fare);
   }
  }
 }
 if (n == 3)
 {
  for (i = 0; i < k; i++)
  {
   if (date[i].fare < j)
   {
    printf("%s %s %s %.1f \n", date[i].tra, date[i].ori, date[i].ter, date[i].fare);
   }
  }
 }
 system("pause");
 return 0;
}

运行情况:
查询车次
查询票价
](https://img-blog.csdnimg.cn/20200317005705206.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ozNjkxMjM2,size_16,color_FFFFFF,t_70)

查询发始站

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值