大一C语言课程设计--飞机订票系统

#include
#include
#include
struct airplane
{
       int num;
       char begin[20];
       char end[20];
       char time[20];
       double fee;
       int count;
       }plane[2014];
void home();
void input();
void del();
void scan();
void book();
void change();
void quit();
void sou();
void save();
void read();


void home()
{
int a,i,j;
printf("\n\n *****************************欢迎进入飞机票务系统*****************************\n\n");
printf("==========您好,现在要确认您的身份!票务人员请按 1 ,旅客请按 0  ===========");
scanf("%d",&a);
if(a==1)
do{
printf("\n\t\t^o^o^o^o^o^o^o^o^  1.输入航班信息  ^o^o^o^o^o^o^o^o^\n");
printf("\t\t^o^o^o^o^o^o^o^o^  2.删除航班信息  ^o^o^o^o^o^o^o^o^\n");
printf("\t\t^o^o^o^o^o^o^o^o^  3.浏览航班信息  ^o^o^o^o^o^o^o^o^\n");
printf("\t\t^o^o^o^o^o^o^o^o^  0.退出          ^o^o^o^o^o^o^o^o^\n\n");
printf("请在0~3之间选择您要进行的操作 ");
scanf("%d",&i);
if(i>=0&&i<=3)
          switch(i)
          {
            case  0: break;
            case  1:input();    break; 
            case  2: del();      break; 
            case  3:scan();    break;    
         }
else
          {
                       printf("\n输入错误!!\n\n\n");
                       continue;
          }
printf("\n\n **************************以高度负责的态度做好春运工作**************************\n\n");


} while(i!=0);

if(a==0)
do{


printf("\n\t\t<><><><><><><><><><>  1.订票  <><><><><><><><><><>\n");
printf("\t\t<><><><><><><><><><>  2.改签  <><><><><><><><><><>\n");
printf("\t\t<><><><><><><><><><>  3.退票  <><><><><><><><><><>\n");
printf("\t\t<><><><><><><><><><>  4.浏览航班信息 <><><><><><>\n");
printf("\t\t<><><><><><><><><><>  5.查询  <><><><><><><><><><>\n");
printf("\t\t<><><><><><><><><><>  0.退出  <><><><><><><><><><>\n\n");
printf("请在0~5之间选择您要进行的操作");
scanf("%d\n\n",&j);
if(j>=0&&j<=5)
          switch(j)
          {
            case 0: break;
            case 1:book();     break;   
            case 2:change();   break;
            case 3:quit();      break; 
            case 4:scan();     break;     
          }
else
          {
                       printf("\n输入错误!!\n\n\n");
                       continue;
          }

printf("\n\n *******************春节即将到来,提前祝您春节快乐,出行平安********************\n\n");
} while(j!=0);
}

void input()            //  输入航班
{
char sysm[]="jim007";   
char youm[20];
int i,m;
printf("请输入密码:  ");
scanf("%s",youm);       

                if(strcmp(sysm,youm)!=0)
{
                printf("输入密码错误!请确认您是否是票务人员,如不是,请按任意键返回菜单重新选择" );
getchar();                         
 getchar();
home();
}
         
else
{
 system("cls");
printf("请问要输入几个航班信息: ");
scanf("%d",&m);
printf("\n\n******************************************************************\n\n");
for(i=0;i
{
printf("请输入航班号:\n");
scanf("%d",&plane[i].num);            
printf("请输入起飞地点:\n");
scanf("%s",plane[i].begin);           
printf("请输入降落地点:\n");
scanf("%s",plane[i].end);             
printf("请输入起飞时间:\n");
scanf("%s",plane[i].time);           
printf("请输入票价:\n");
scanf("%lf",&plane[i].fee);          
printf("请输入机票数:\n");
scanf("%d",&plane[i].count);          
}
getchar();
home();
}
}

 

void del()              //删除模块
{
char be[20];
char en[20];
char sysm[]="jim007";
char youm[20];
int i,w,p,q,k=0;
printf("请输入密码:  ");
scanf("%s",youm) ;           
if(strcmp(sysm,youm)!=0)   
 {
                printf("输入密码错误!请确认您是否是票务人员,如不是,请按任意键返回菜单重新选择" );
getchar();                         
 getchar();
home();
}
else
    printf("1.按航班号删除 \n");
    printf("2.按航线删除 \n");
    printf("请在1-2中选择删除方式: ");
    scanf("%d",&q);            
    switch(q)
    {
    case 1:
     printf("请输入航班号: ");
     scanf("%d",&p);            
     break;                   
    case 2:
     printf("请输入起飞地点: ");
     scanf("%s",be);        
     printf("请输入降落地点: ");
     scanf("%s",en);         
     break;            
    }
   
 printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");     
for(i=0;i
{
if(q==1&&plane[i].num==p)
{
  k++; 
  printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count);
 } 
if(q==2&&strcmp(plane[i].begin,be)==0&&strcmp(plane[i].end,en)==0)
  { 
  k++;
  printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count);
 
}
}
if(k=0)
printf("没有找到此航班,无法删除!");
else   
printf("确定删除请按 1 否则请按 0:\n\n");
    scanf("%d",&w);
  if(w==1)
for(i=0;i
{
  plane[i].num=0;                        
  strcpy(plane[i].begin,"0");           
  strcpy(plane[i].end,"0");             
  strcpy(plane[i].time,"0");
  plane[i].fee=0;         
  plane[i].count=0;
}
    getchar();                         
 getchar();
home();
}

void scan()       //浏览
{
int i;
  if(m==0) 
   printf("\n\n无航班信息\n\n");
else
{
printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");  
for(i=0;i
printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count);
}
getchar();
home();
}


void book()   //订票模块
{
int i,a;
struct airplane d;
system( "cls" );
do
{
sou();
printf("请输入您要订的航班号: ");
scanf("%d",&d.num);   
printf("请输入您要订的机票数: ");
scanf("%d",&d.count);    
for(i=0;i
if(result[i].num==d.num)
{
 if(result[i].count!=0&&result[i].count>= d.count)   
{
result[i].count=result[i].count- d.count;
   printf("恭喜您订票成功!祝您旅途愉快!\n");
   break;
}
if(result[i].count
{
 printf("此航班只剩下%d张票,订票失败",result [i].count);
        break;
}
}
printf("\n\n继续订票请按 1 ,退出请按 0  ");
   scanf("%d",&a);
}while(a==1);


void change()   //改签模块
{
int i,num1,num2;
system( "cls" );
do
{
sou();
printf("请输入您改签前的航班号: ");
scanf("%d",&num1);   
printf("请输入您改签后的航班号: ");
scanf("%d",&num2);    
for(i=0;i
if(result[i].num==num1)
result[i].count=result[i].count+1;
for(i=0;i
if(result[i].num==num2)
result[i].count=result[i].count-1;
   printf("恭喜您改签成功! 祝您旅途愉快!\n");
   break;
printf("\n\n继续改签请按 1 ,退出请按 0  ");
   scanf("%d",&a);
}while(a==1);
}

void quit()   //退票模块
{
int i,a;
struct airplane f;
system( "cls" );
do
{
sou();
printf("请输入您要退订的航班号: ");
scanf("%d",&f.num);   
printf("请输入您要退订的机票数: ");
scanf("%d",&f.count);    
if(d.count<0)
{
   printf("您输入的票数有误,请重新输入\n");   
   break;
}
for(i=0;i
if(result[i].num==f.num)
{
result[i].count=result[i].count+ f.count;
   printf("恭喜您退票成功! \n");
   break;
}
else
printf("抱歉,您输入的航班号有误!");
printf("\n\n继续订票请按 1 ,退出请按 0  ");
   scanf("%d",&a);
}while(a==1);
}


void sou()  //查询模块
{
 int i,c,d,e,t,j=0;
 struct airplane a;
    struct airplane result[20];
 system( "cls" );
    printf("\n\n请输入起飞时间:");
 scanf("%s",a.time);    
 printf("\n\n请输入起飞地点:");
 scanf("%s",a.begin);
 printf("\n\n请输入降落地点:");
 scanf("%s",a.end);
printf("请选择排序方式( 1:按航班号升序;2:按票价升序)")
scanf("%d",&c);
 printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");  
for(i=0;i
{
 if(plane[i].time==a.time&&strcmp(plane[i].begin,a.begin)==0&&strcmp(plane[i].end,a.end)==0)
        result[j]=plane[i]
        j++;
  
}
 if(j==0)    
printf("抱歉,暂时没有该条件的航班!");
  

if(j>0&&c==1) 
{
for(d=0;d
for(e=d+1;e
if(result[e].num
{
t= result[e];
result[e]= result[e-1];
result[e-1]=t;
}
}

if(j>0&&c==0) 
{
for(d=0;d
for(e=d+1;e
if(result[e].fee
{
t= result[e];
result[e]= result[e-1];
result[e-1]=t;
}
}
for(i=0;i
 printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n", result[i].num, result[i].begin, result [i].end, result[i].time, result[i].fee, result[i].count);
}


void save()   //保存模块
{
 FILE *fp;
 int i,w=1;
 system( "cls" );
 if((fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","w"))==NULL)
{  
   printf("打开文件错误\n");
 exit(0);
}
for(i=0;i
   if(fwrite(fp,sizeof(struct airplane),1, &plane[i])==0) 
{
  printf("文件保存错误!\n");
        exit(0);
    w=0;
 }
 if(w==1)
    printf("文件保存成功!\n");
 fclose(fp);
 getchar();
 getchar();   
 home();
}


void read()  //读取模块
{
int i;
FILE *fp;
if(fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","r")==NULL)
{
  printf("文件打开失败\n");
  exit(0);
}
else
{
while(!feof(fp))
for(i=0;i
fread(plane[i],sizeof(struct airplane),1,fp)
}
getchar();
getchar();   
home();
}

posted @ 2014-05-19 19:45  awenzero  阅读(3538)  评论(2编辑  收藏  举报