0


C程序设计基础课程设计报告飞机订票系统

1 需求分析
1.1 程序的功能
本程序首先输入飞机航班Id,从菜单中选择可以输入机票信息对机票信息进行浏览、修改、查询、退订票等功能并可以通过其内部各类进行操作。在菜单程序内选项了解航班更详细的信息,系统初始化之后 若原始数据文件存在 则进行文件内航班信息的读取 以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen和关闭fclose、成块读写函数中的fread。
1)航班信息地录入,其中包括了航班信息中航班代号、起始地点、降落地点、起飞日期、飞机票价、最大载客量、已售票数。
2)航班浏览提供输入功能显示操作。
3)订票操作,通过search( )函数来进行用户输入操作进行匹配,如果用户自己输入的起飞地点、降落地点、时间相吻合,如果最大乘客量大于已售票数,即自动订票,订票成功。
4)退票程序,用户选择退票窗口,办理退票,输入自己已成功购票的航班信息,如果成功匹配,退票成功。
5)保存,航班信息用文件保存,因而要提供文件的输入输出操作。
6)载入
7)退出

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
typedef struct plane
{char Id[10];
char Beplace[10];
char Enplace[10];
char data[15];
int max;
int price;
int num;
}PLANE;
PLANE ti[N];
int n;
void enter()
{
int i;
printf(“请输入记录数目:”);
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf(“请输入航班代号:\n”);
scanf("%s",ti[i].Id);
printf(“请输入起飞地点:\n”);
scanf("%s",ti[i].Beplace);
printf(“请输入降落地点:\n”);
scanf("%s",ti[i].Enplace);
printf(“请输入时间:\n”);
scanf("%s",ti[i].data);
printf(“请输入航班的最大乘客人数:\n”);
scanf("%d",&ti[i].max);
printf(“请输入航班的票价:\n”);
scanf("%d",&ti[i].price);
printf(“请输入飞机已售的票数:\n”);
scanf("%d",&ti[i].num);
}
}
void save()
{FILE *fp;
int i;
if((fp=fopen(“ticket.txt”,“wb”))==NULL)
{
printf(“Don’t find file\n”);
return;
}
for(i=0;i<n;i++)
if(fwrite(&ti[i],sizeof(PLANE),1,fp)!=1)
printf(“Don’t find file\n”);
fclose(fp);
printf(“save successfully!\n”);
getchar();getchar();
}
void load()
{int i;
FILE *fp;
if((fp=fopen(“ticket.txt”,“rt”))==NULL)
{
printf(“Don’t find file\n”);

}

for(i=0;i<n;i++)
{
    fread(&ti[i],sizeof(struct plane),1,fp);
}

fclose(fp);
printf(“load successfully!\n”);
getchar();getchar();
}

void browse()
{int i;
system(“cls”);
printf(“航班代号 起飞地点 降落地点 时间 航班的最大乘客人数 航班的票价 飞机已售的票数\n”);
for(i=0;i<n;i++)
printf("%5s%13s%10s%10s%15d%26d %12d\n",ti[i].Id,ti[i].Beplace,ti[i].Enplace,ti[i].data,ti[i].max,ti[i].price,ti[i].num);
getchar();getchar();

}
void menu()
{ system(“cls”);
puts("\tMENU");
puts("\t\t\t\t1.输入航班");
puts("\t\t\t\t2.浏览");
puts("\t\t\t\t3.订票");
puts("\t\t\t\t4.退票");
puts("\t\t\t\t5.保存");
puts("\t\t\t\t6.载入");
puts("\t\t\t\t7.退出");
puts("\t
***********************************");
puts("\tchoice your number(1-7):[]\b\b");
}

int search()
{ int i,k=-1; PLANE s;

printf("\n\n起飞地点:");
scanf("%s",s.Beplace);
printf("\n\n降落的地点 ");
scanf("%s",s.Enplace);
printf("请输入起飞时间:");
scanf("%s",s.data);
for(i=0;i<n;i++)
{   if(strcmp(s.Beplace,ti[i].Beplace)==0&&strcmp(s.Enplace,ti[i].Enplace)==0&&strcmp(s.data,ti[i].data)==0)
   {    k=i;
  printf("\t%8s%8s%8s%8s%8d%8d%8d\n",ti[i].Id,ti[i].Beplace,ti[i].Enplace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);break;
    
  }
 }
return k;
}

void booking()
{ int i; system(“cls”);
printf(“Welcome”);
i=search();
if(i!=-2)
{ if(ti[i].num>=ti[i].max)
{ printf("\n该航班已经售完!! ");

     }
 else if(ti[i].num<ti[i].max)
 {
     ti[i].num++;
        printf("\n订票成功!\n");
     printf("祝你旅程愉快");
 }
 }
else
    printf("该航班不存在\n");
getchar();
getchar(); }

void back()
{ int i; system(“cls”);
printf(“欢迎进入退票窗口!\n”);
i=search();
if(i==-1) { printf("\n该航班不存在!\n"); }
else { if(ti[i].num==0)
printf("\n你没有定该航班\n");
else{ ti[i].num–;
printf("\n退票成功!\n");
}
}
getchar();
getchar();

}
int main()
{
int n;
do
{menu();
scanf("%d",&n);
switch(n)
{ case 1:enter();break;
case 2:browse();break;
case 3:booking();break;
case 4:back();break;
case 5:save();break;
case 6:load();break;
case 7:return 0;

    }
}  while(1);
return 0;

}

标签:

本文转载自: https://blog.csdn.net/m0_46323635/article/details/118027990
版权归原作者 K2I- 所有, 如有侵权,请联系我们删除。

“C程序设计基础课程设计报告飞机订票系统”的评论:

还没有评论