📄 feijidingpiaoxitong.txt
字号:
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 + -