⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 feijidingpiaoxitong.txt

📁 一段关于飞机订票系统的程序。我们做软件工程的作业。
💻 TXT
📖 第 1 页 / 共 2 页
字号:
      for (j = 0; j < 7; j++)
	people[i][j] = 0;
    for (p = psglist->next; p != NULL; p = p->next)
    {
      for (j = 0; j < n; j++)
      {
	if (datecmp(&date[j], &p->m_psg.m_Date))
	{
	  for (i = 0; i < 40; i++)
	  {
	    if (fltlist[i].m_fltno == p->m_psg.m_fltno)
	      people[i][j]++;
	  }
	}
      }
    }
    for (i = 0; i < 40; i++)
    {
      if (fltlist[i].m_fltno != -1)
      {
	printf("%d %s--%s--%s ", fltlist[i].m_fltno, fltlist[i].m_szFrom,
	  fltlist[i].m_szPass, fltlist[i].m_szTo);
	for (j = 0; j < n; j++)
	  printf("%d ", people[i][j]);
	printf("\n");
      }
    }
    printf("继续查询吗?(y/n)");
    ClearBuffer();
    c = getchar();
  }
}
void Manage(FLIGHT fltlist[], PNODE psglist)
{
  for (;;)
  {
    char c;
//    clrscr();
    printf("航班管理\n");
    printf("~~~~~~~~\n");
    printf("1.查询航班基本情况\n");
    printf("2.对某天航班飞行情况管理\n");
    printf("3.近期航班飞行情况管理\n");
    printf("4.取消航班\n");
    printf("5.新增航班\n");
    printf("6.返回\n");
    printf("\n请选择1-6:");
    c = getchar();
    switch (c)
    {
      case '1':
	Query(fltlist);
	break;
      case '2':
	OneDay(fltlist, psglist);
	break;
      case '3':
	MultiDay(fltlist, psglist);
	break;
      case '4':
	Del(fltlist);
	break;
      case '5':
	Add(fltlist);
	break;
      case '6':
	break;
      default:
	continue;
    }
    if (c == '6')
      break;
  }
}
void query(FLIGHT fltlist[], PNODE psglist);
void  fltnumber(FLIGHT fltlist[]);
void psgname (PNODE psglist);
void fromto (FLIGHT fltlist[]);
void fltdat(FLIGHT fltlist[], PNODE psglist);
/* Please run Chinese a system, then you can read the comment. */
/* 文件名:query.c*/
#include <stdio.h>
#include <stdlib.h>

void query(FLIGHT fltlist[], PNODE psglist)
{
  for (;;)
  {
    char c;
//   clrscr();
    printf("航班查询\n");
    printf("~~~~~~~~\n");
    printf("1.按航班号查询\n");
    printf("2.按姓名查询乘客\n");
    printf("3.按起飞、到达港查询\n");
    printf("4.按日期查询航班情况\n");
    printf("5.返回\n");
    printf("\n请选择1-5:");
    c = getchar();
    switch (c)
    {
      case '1':
	fltnumber(fltlist);
	break;
      case '2':
	psgname(psglist);
	break;
      case '3':
	fromto(fltlist);
	break;
      case '4':
	fltdat(fltlist, psglist);
	break;
      case '5':
	break;
      default:
	continue;
    }
    if (c == '5')
      break;
  }
}
void  fltnumber(FLIGHT fltlist[])
{
  char c = 'y';
  while (c == 'y' || c == 'Y')
  {
    BOOL b = FALSE;
    int fltno, i;
    printf("可以查询的航班号:");
    for (i = 0; i < 40; i++)
    {
      if (fltlist[i].m_fltno != -1)
      {
	b = TRUE;
	printf("%d ", fltlist[i].m_fltno);
      }
    }
    if (!b)
    {
      printf("无\n按任意键返回。");
      getchar();
      return;
    }
    printf("\n请输入要查询的航班号:");
    scanf("%d", &fltno);
    for(i = 0; i < 40; i++)
    {
      if (fltlist[i].m_fltno == fltno)
      {
	printf("%s--%s--%s\n", fltlist[i].m_szFrom, fltlist[i].m_szPass,
	  fltlist[i].m_szTo);
	printf("起飞时间:%2d:%02d 到达时间:%2d:%02d 飞行固定时间:%2d:%02d\n",
	  fltlist[i].m_start.m_hour, fltlist[i].m_start.m_min,
	  fltlist[i].m_arrive.m_hour, fltlist[i].m_arrive.m_min,
	  fltlist[i].m_fly.m_hour, fltlist[i].m_fly.m_min);
	printf("乘客限额:%d\n", fltlist[i].m_people);
	break;
      }
    }
    printf("继续查询吗?(y/n)");
    ClearBuffer();
    c = getchar();
  }
}
void psgname(PNODE psglist)
{
  char c = 'y';
  while (c == 'y' || c == 'Y')
  {
    char name[20];
    PNODE p;
    BOOL b = FALSE;
    printf("请输入乘客姓名:");
    scanf("%s",name);
    for (p = psglist->next; p != NULL; p = p->next)
    {
      if(strcmp(p->m_psg.m_szName, name) == 0)
      {
	b = TRUE;
	printf("姓名:%s 单位:%s 身份证号:%s\n", p->m_psg.m_szName,
	  p->m_psg.m_szCorp, p->m_psg.m_szNumber);
	printf("订票日期:%d-%d-%d ", p->m_psg.m_Date.m_year,
	  p->m_psg.m_Date.m_month, p->m_psg.m_Date.m_day);
	printf("航班号:%d 座位号:%d", p->m_psg.m_fltno, p->m_psg.m_seatno);  break;
      }
    }
    if (!b)
    {
      printf("查无此人,按任意键退出");
      getchar();
      return;
    }
    printf("是否继续查询?(y/n)");
    ClearBuffer();
    c = getchar();
  }
}
void fromto (FLIGHT fltlist[])
{
  char c = 'y';
  while (c == 'y' || c == 'Y')
  {
    BOOL b = FALSE;
    char from[30], to[30];
    int i;
    printf("请输入起飞港:");
    scanf("%s", from);
    printf("请输入到达港:");
    scanf("%s", to);
    for(i = 0; i < 40; i++)
    {
      if(strcmp(fltlist[i].m_szFrom,from)==0)
      {
	if(strcmp(fltlist[i].m_szTo,to)==0)
	{
	  b=TRUE;
	  break;
	}
      }
    }
    if(b)
    {
      printf("%s--%s--%s\n",fltlist[i].m_szFrom,fltlist[i].m_szPass,fltlist[i].m_szTo);
      printf("起飞时间:%2d:%02d 到达时间:%2d:%02d 飞行固定时间:%2d:%02d\n",fltlist[i].m_start.m_hour,fltlist[i].m_start.m_min,fltlist[i].m_arrive.m_hour,fltlist[i].m_arrive.m_min,fltlist[i].m_fly.m_hour,fltlist[i].m_fly.m_min);
      printf("乘客限额:%d",fltlist[i].m_people);
    }
    else
      printf("无此飞机");
    getchar();
    printf("是否继续查询?");
    ClearBuffer();
    c = getchar();
  }
}

void fltdat(FLIGHT fltlist[], PNODE psglist)
{
  int people[40], i;
  DATE date;
  PNODE p;
  for (i = 0; i < 40; i++)
    people[i] = 0;
  printf("请输入您要查询的日期(yyyy,mm,dd):");
  scanf("%d,%d,%d", &date.m_year, &date.m_month, &date.m_day);
  for (p = psglist->next; p != NULL; p=p->next)
  {
    if (datecmp(&date, &p->m_psg.m_Date))
    {
      for(i=0;i<40;i++)
      {
	if(fltlist[i].m_fltno==p->m_psg.m_fltno)
	people[i]++;
      }
    }
  }
  for (i = 0; i < 40; i++)
  {
    if (people[i] > 0)
    {
      printf("%d %s--%s--%s 人数:%d", fltlist[i].m_fltno, fltlist[i].m_szFrom,
      fltlist[i].m_szPass, fltlist[i].m_szTo, people[i]);
    }
  }
  getchar();
}
#include <stdio.h>
void c_ticket(FLIGHT fltlist[], PNODE psglist)
{
  char c = 'y';
  while (c == 'y' || c == 'Y')
  {
    int fltno, i;
    DATE date;
    printf("请输入所退票的日期(yyyy,mm,dd):");
    scanf("%d,%d,%d", &date.m_year, &date.m_month, &date.m_day);
    printf("请输入航班号: ");
    scanf("%d", &fltno);
    for(i = 0; i < 40; i++)
    {
      if (fltlist[i].m_fltno == fltno)
      {
	int seatno;
	printf("请输入座位号:");
	scanf("%d", &seatno);
	if (fltlist[i].m_people >= seatno && seatno > 0)
	{
	  PNODE p;
	  int index = 1;
	  BOOL b = FALSE;
	  for (p = psglist->next; p != NULL; p = p->next)
	  {
	    index++;
	    if (p->m_psg.m_seatno == seatno && datecmp(&p->m_psg.m_Date,
	      &date))
	    {
	      b = TRUE;
	      printf("已经办理退票。\n");
	      DelPassenger(psglist, index);
	      break;
	    }
	  }
	  if (!b)
	  {
	    printf("座位没有人订,任意键返回。\n");
	    getchar();
	    break;
	  }
	  else
	    break;
	}
	else
	{
	  printf("座位号无效,任意键返回。\n");
	  getchar();
	  break;
	}
      }
    }
    ClearBuffer();
    printf("继续退票吗?(y/n)");
    c = getchar();
  }
}
/* Please run Chinese a system, then you can read the comment. */
/* 文件名:Quit.c
   说明:退出模块函数声明*/
/* 保存航班数据 */
void SaveFlight(FLIGHT fltlist[]);
/* 保存乘客数据 */
void SavePassenger(PNODE psglist);
/* 退出 */
void Quit(FLIGHT fltlist[], PNODE psglist);

/* Please run Chinese a system, then you can read the comment. */
/* 文件名:quit.c
   说明:退出模块 */
#include <stdio.h>
#include <iostream.h>
void SaveFlight(FLIGHT fltlist[])
{
  FILE *fp;
  if ((fp = fopen("flight.dat", "wb")) == NULL)
  {
    printf("不能打开flight.dat文件,航班数据无法保存。\n");
    fclose(fp);
    return;
  }
  fwrite(&fltlist[0], sizeof(FLIGHT), 40, fp);
  fclose(fp);
  printf("航班数据已保存至flight.dat文件。\n");
}
void SavePassenger(PNODE psglist)
{
  FILE *fp;
  PNODE p;
  int n = GetPsgCount(psglist);
  unlink("psg.dat");
  if (n == 0)
    return;
  if ((fp = fopen("psg.dat", "wb")) == NULL)
  {
    printf("不能打开psg.dat文件,乘客数据无法保存。\n");
    fclose(fp);
    return;
  }
  fwrite(&n, sizeof(int), 1, fp);
  for (p = psglist->next; p != NULL; p = p->next)
    fwrite(&p->m_psg, sizeof(PASSENGER), 1, fp);
  fclose(fp);
  printf("乘客数据已保存至psg.dat文件。\n");
}
void Quit(FLIGHT fltlist[], PNODE psglist)
{
  SaveFlight(fltlist);
  SavePassenger(psglist);
}


/* Please run Chinese a system, then you can read the comment. */
/* 文件名:flight.c
   说明:本系统的用户界面*/
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
  FLIGHT fltlist[40];
  NODE psglist;
  ReadFlight(fltlist);
  ReadPassenger(&psglist);
  for (;;)
  {
    char c;
//    clrscr();
    printf("飞机订票系统\n");
    printf("~~~~~~~~~~~~\n");
    printf("---主菜单---\n");
    printf("1.订票\n");
    printf("2.退票\n");
    printf("3.航班管理\n");
    printf("4.查询\n");
    printf("5.退出\n");
    printf("\n请选择1-5:");
    c = getchar();
    switch (c)
    {
      case '1':
	Book(fltlist, &psglist);
	break;
      case '2':
	c_ticket(fltlist, &psglist);
	break;
      case '3':
	Manage(fltlist, &psglist);
	break;
      case '4':
	query(fltlist, &psglist);
	break;
      case '5':
	Quit(fltlist, &psglist);
	break;
      default:
	continue;
    }
    if (c == '5')
      break;
  }
  ClearPsgList(&psglist);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -