首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大神解答查错解决办法

2013-01-23 
求大神解答查错#includeiostream#includestring#includefstreamusing namespace stdstruct flight/

求大神解答查错
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
struct flight    //航班信息
{
char a1[10];   //航班号
   string a2;    //起飞时间
   string a3;  //降落时间
char a4[10];   //起飞城市
char a5[10];   //降落城市
int a6;       //价格
    int a7;   //票价折扣   
    int a8;      //余票
}fl[10];
struct customer  //客户信息
{
char name[10];                    //定义字符型数组姓名name[10]
    int seat;                        //定义整型变量座位号seat
    char num[10];                        //定义字符型数组航班号num[10]
char no[18];                    //证件号no
int ps;                        //订票数ps
string qfs;                    //起飞时间qfs
string jls;                    //降落时间jls
char qfd[10];                     //起飞城市qfd
char jld[10];                     //降落城市jld
int pj;                      //票价pj
}cu[200];
int cnum=3;
int len=0;
int A=0;
void luru();          //声明录入函数
void chaxun();       //声明查询函数
void chaxun1();       //声明查询方式1函数
void chaxun2();       //声明按查询方式2函数
void dingpiao();      //声明订票函数
void tuipiao();       //声明退票函数
void xiugai();        //声明修改函数
void menu();          //声明主菜单函数
void duqu();          //声明文件读取函数
void tuichu();         //声明退出并保存函数


void luru()  //航班信息录入

    cout<<"请输入航班信息:"<<endl;
cout<<"请输入航班号"<<endl;
cin>>fl[len].a1;          //录入航班号
    cout<<"起飞时间"<<endl;
cin>>fl[len].a2;          //录入起飞时间
cout<<"降落时间"<<endl;
cin>>fl[len].a3;          //录入降落时间
cout<<"起飞城市"<<endl;
cin>>fl[len].a4;          //录入起飞城市
cout<<"降落城市"<<endl;


cin>>fl[len].a5;          //录入降落城市
cout<<"票价"<<endl;
cin>>fl[len].a6;         //录入票价
cout<<"折扣"<<endl;
cin>>fl[len].a7;         //录入机票折扣
cout<<"剩余票量"<<endl;
cin>>fl[len].a8;         //录入剩余票量
len++;
 cout<<"请选择所要进行的操作"<<endl;
 menu();    //录入完成跳转回菜单选择操作
}
void chaxun()     //查询
{system("cls");
cout<<"请选择查询方式"<<endl;
cout<<"1.按航班号查询"<<endl;  
cout<<"2.按城市查询"<<endl;
int t;
cin>>t;          //选择查询方式
switch(t)
{
case 1:
chaxun1();
break;
case 2:
chaxun2();
break;
default:cout<<"输入的数据有误,请重新输入!"<<endl;
menu();        //输入错误返回主菜单重新输入
break;
}
}
void chaxun1()    //按航班号查询航班信息
{   
char n[10];
cout<<"请输入要查询的航班号:"<<endl;
cin>>n;
for(int j=0;j<len;j++)
if(strcmp(fl[j].a1,n)==0)
{
cout<<"***航班信息****"<<endl<<"航班号:"<<fl[j].a1<<'\t'<<"起飞时间:"<<fl[j].a2<<'\t'<<"降落时间:"<<fl[j].a3<<'\t'<<"起飞城市:"<<fl[j].a4<<'\t'<<"降落城市:"<<fl[j].a5<<'\t'<<"票价:"<<fl[j].a6<<'\t'<<"折扣:"<<fl[j].a7<<'\t'<<"剩余票量:"<<fl[j].a8<<endl;
break;}  //输出航班信息
else
cout<<"没有对应的航班!"<<endl;getchar();
menu();
}

void chaxun2()  //按起飞城市和降落城市查询航班信息
{
char m1[10],m2[10];
int j;
cout<<"请输入要查询的起始、降落城市:"<<endl;
cin>>m1>>m2;   //输入起始城市和降落城市
for(j=0;j<len;j++)
if((strcmp(fl[j].a4,m1)==0)&&(strcmp(fl[j].a5,m2)==0))
{cout<<"***航班信息****"<<endl<<"航班号:"<<fl[j].a1<<'\t'<<"起飞时间:"<<fl[j].a2<<'\t'<<"降落时间:"<<fl[j].a3<<'\t'<<"起飞城市:"<<fl[j].a4<<'\t'<<"降落城市:"<<fl[j].a5<<'\t'<<"票价:"<<fl[j].a6<<'\t'<<"折扣:"<<fl[j].a7<<'\t'<<"剩余票量:"<<fl[j].a8<<endl;break;}//输出航班信息
    if(j==10)    
{ cout<<"没有对应的航班!"<<endl;}
menu();
}
void dingpiao()        //订票
{
    char Name[10]; char fn[10];int sign=0;
 cout<<"请输入你的姓名和想订的航班号:"<<endl;
 cin>>Name;      //输入乘客姓名
 cin>>fn;        //输入乘客所要订的航班号
for(int i=0;i<len;i++)
{if(fl[i].a1==fn)  
if(fl[i].a8>0)  
{strcpy(cu[A].name,Name);
strcpy(cu[A].num,fn);
cu[A].seat=fl[i].a8;
A++;fl[i].a8--;sign=1;
cout<<"订票成功!"<<endl;break;}
if(sign) break;

if(i==len)cout<<"航班号错误!"<<endl;}
}
void tuipiao()   //退票
{system("cls");
char Name[10];char fn[10];int sign=0;int i;
 cout<<"请输入你的姓名:";cin>>Name;  //输入乘客姓名

 cout<<"请输入航班号:";cin>>fn;cout<<endl;  //输入乘客所订的航班的航班号
    for(int i=0;i<len;i++)
{if(strcmp(fn,fl[i].a1)==0)
for(int j=0;j<A;j++)


if(strcmp(Name,cu[j].name)==0)
{cout<<" 退票成功!"<<endl;fl[i].a8++;sign=1;break;}
if(sign)break;
}
if(i==len) cout<<"输入信息有误!退票失败"<<endl;
}  


void xiugai()    //修改航班信息
{
cout<<"输入航班号:"<<endl;
    char num[10];cin>>num;int z=0;int j;
for(int z=0;z<len;z++)
if(strcmp(fl[z].a1,num)==0){j=z;    cout<<"起飞时间:";cin>>fl[j].a2;cout<<"达到时间:";cin>>fl[j].a3;cout<<endl;break; }

   if(z==len)cout<<"航班号错误!"<<endl;
}
void tuichu()   //退出时保存录入和更改信息

ofstream nfile2("cus.dat",ios_base::binary);  //输出方式打开文件    
nfile2.close();  //关闭文件
ofstream infile2("cus.dat",ios_base::binary|ios_base::app);   //输入方式打开文件 
for(int i=0;i<A;i++)
{infile2.write((reinterpret_cast<char *>(&cu[i])),sizeof(customer));cout<<"写入成功!"<<endl;}//将乘客信息写入文件
infile2.close();  //关闭文件
ofstream nfile1("airline.dat",ios_base::binary);  //输出方式打开文件
nfile1.close(); //关闭文件
   ofstream infile1("airline.dat",ios_base::binary|ios_base::app); //输出方式打开文件
for(int i=0;i<len;i++)
     infile1.write((reinterpret_cast<char *>(&fl[i])),sizeof(flight));//将航班信息写入文件
infile1.close(); //关闭文件

}
void duqu()   //读取文件信息
{  
ifstream infile1("airline.dat",ios_base::binary); 
while(infile1.peek()!=EOF)
{
infile1.read((reinterpret_cast<char *>(&fl[len])),sizeof(flight));//输入方式读取文件
cout<<"***航班信息****"<<endl<<"航班号:"<<fl[len].a1<<'\t'<<"起飞时间:"<<fl[len].a2<<'\t'<<"降落时间:"<<fl[len].a3<<'\t'<<"起飞城市:"<<fl[len].a4<<'\t'<<"降落城市:"<<fl[len].a5<<'\t'<<"票价:"<<fl[len].a6<<'\t'<<"折扣:"<<fl[len].a7<<'\t'<<"剩余票量:"<<fl[len].a8<<endl;
len++;
}
   infile1.close();//关闭文件
ifstream infile2("cus.dat",ios_base::binary); 
while(infile2.peek()!=EOF)
{infile2.read((reinterpret_cast<char *>(&cu[A++])),sizeof(customer));} //输入方式读取文件
infile2.close();     //关闭文件
getchar();system("cls");
}
void menu()
{
cout<<"*******************航班订票系统*********************"<<endl;

cout<<""<<endl;
cout<<"1.录入航班信息"<<endl;
cout<<"2.查询航班信息"<<endl;
cout<<"3.订票"<<endl;
cout<<"4.退票"<<endl;
cout<<"5.修改航班信息"<<endl;
cout<<"6.退出系统"<<endl;
cout<<""<<endl;
cout<<"****************************************************"<<endl;
cout<<""<<endl;   //菜单界面
int i;
cout<<"输入选项:"<<endl;
cin>>i;     //选择菜单
switch(i)
{
case 1:
luru(); 
break;
case 2:
chaxun();  
break;
case 3:
dingpiao();menu();
case 4:
tuipiao();
menu();
case 5:
xiugai();
menu();
case 6:
tuichu();
    exit(1);      //退出
break;
default:cout<<"输入的选项不合法,请重新输入"<<endl;
system("cls");    //清屏
menu();
}
}
void main()
{
cout<<"读取"<<endl;duqu();    //跳转至读取航班信息文件


menu();                           //菜单
}


程序的125功能一切正常,就是34订票和退票时,无论成功与否,均不显示“订票(退票)成功(失败)!;这句话,应该是没有成功存储客户数据,直接跳会主菜单。请各位大神解答,谢谢!
[解决办法]
if(fl[i].a1==fn)
字符串不能这么比。要用strcmp。

热点排行