帮小弟看看程序是哪里错了吧!!!大家提出来,谢谢啦!!!小弟不会了!!!在线等!!!。
谢谢!!!
头文件
#ifndef Keshe_H_
#define Keshe_H_
#include <iomanip>
#include <string>
#include <iostream>
using namespace std;
class Hangkong{
private:
int num;
char start[20];
char over[20];
char time[10];
int count;
public:
Hangkong(int=0,int=0);
void input();
void print();
void save();
void read();
void search();
void shanchu();
void dingpiao();
void tuipiao();
};
#endif
源文件
# include "Keshe.h"
const int MaxSize=100;
const int m=0;
const int N=100;
int i;
Hangkong arr[MaxSize];
#define PRINT "%-d%12s%12s%10s%12d\n",arr[i].num,arr[i].start,arr[i].over,arr[i].time,arr[i].count
Hangkong::Hangkong(int vnum,int vcount){
num=vnum;
count=vcount;
}
void Hangkong::input(){
char f[]="2008china";
int y;
cout<<"请输入密码并以回车键结束:";
cin>>f;
if(strcmp(f,"2008china")==0)
{
cout<<"请依次输入航班信息(机票数位0结束输入):";
cout<<"完成输入信息请键入w以回车键结束";
cout<<"--------------------------------------------------------------------------"<<endl;
for(i=0;i<N;i++)
{
cout<<"请输入航班号:";
cin>>arr[i].num;
cout<<"请输入起始站:";
cin>>arr[i].start;
cout<<"请输入终点站:";
cin>>arr[i].over;
cout<<"请输入时间:";
cin>>arr[i].time;
cout<<"请输入机票数(机票数为0结束输入):"<<m<<endl;
cin>>arr[i].count;
m++;
cout<<"第%d个信息已经输完是否继续?按任意键继续,按 0结束"<<m<<endl;
cin>>y;
if(y==0)
{
save();
print();
break;
}
}
}
else
cout<<"输入密码错误!请检查您的密码是否正确!谢谢!再见!"<<endl;
}
void save()
{
FILE *fp,*fp1;
if((fp=fopen("chen.dat","wb"))==NULL)
{
cout<<"创建文件失败!";
getchar();
return;
}
if((fp1=fopen("hao.dat","wb"))==NULL)
{
cout<<"创建文件失败!";
getchar();
return;
}
for(i=0;i<m;i++)
if(fwrite(&arr[i],sizeof(class Hangkong),1,fp)==0)
cout<<"向文件输入数据失败!";
fcout(fp1,"%d",m);
fclose(fp);
fclose(fp1);
}
void read()
{
FILE *fp,*fp1;
if((fp=fopen("chen.dat","rb"))==NULL)
{
cout<<"出错,请检查文件是否存在,按任意键返回住菜单";
getchar();
}
if((fp1=fopen("hao.dat","rb"))==NULL)
{
cout<<"创建文件失败!";
getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);
for(i=0;i<m;i++)
{
fread(&arr[i],sizeof(class Hangkong),1,fp);
}
fclose(fp);
}
void Hangkong::print(){
char w[10];
read();
cout<<"航班号 起始站 终点站 时间 机票数"<<endl;
for(i=0;i<m;i++)
{
cout(PRINT);
}
cout<<"请按任意键回车键结束返回上层菜单以:"<<endl;
cin>>w;
}
void Hangkong::search(){
char name1[20];
char name2[20];
char ii[10];
int n,no;
do
{
cout<<"请选择查找方式:";
cout<<"1.按航班号查找:";
cout<<"2.按终点站查找:";
cout<<"3.按航线查找:";
cout<<"0.返回:";
cout<<"请在0-3中选择:";
cout<<"按其他键以回车键结束返回主菜单:";
cin>>n;
if(n==0)
break;
switch(n)
{
case 1:
cout<<"请输入航班号:";
cin>>no;
break;
case 2:
cout<<"请输入终点站名称:";
cin>>name2;
break;
case 3:
cout<<"请输入起始站名称:";
cin>>name1;
cout<<"请输入终点站名称:";
cin>>name2;
break;
}
read();
for(i=0;i<m;i++)
{
if(strcmp(arr[i].over,name1)==0||strcmp(arr[i].over,name2)==0)
{
cout<<"\n查找航班信息成功!";
cout<<"航班号 起始站 终点站 时间 机票数\n";
cout(PRINT);
break;
}
if(arr[i].num==no)
{
cout<<"\n查找航班信息成功!";
cout<<"航班号 起始站 终点站 时间 机票数\n";
cout(PRINT);
break;
}
}
no=0;
cout<<"没有您需要的信息或查找完毕:";
cout<<"是否继续查找?请键入yes或no以回车键结束";
cin>>ii;
}while(strcmp(ii,"yes")==0);
}
void Hangkong::shanchu(){
char name1[20];
char name2[20];
char ii[10];
char f[]="2008china";
int no,n;
cout<<"请输入密码并以回车键结束:";
cin>>f;
if(strcmp(f,"2008china")==0)
{
do
{
cout<<"请选择删除以方式回车键结束:";
cout<<"*1.按航班号删除\n\n";
cout<<"*2.按航线删除\n\n";
cout<<"*0.返回\n\n";
cout<<"请在0-2中选择以回车键结束:";
cin>>n;
if(n==0)
break;
switch(n)
{
case 1:
cout<<"请输入航班号:";
cin>>no;
break;
case 2:
cout<<"请输入起始站 名称:";
cin>>name1;
cout<<"请输入终点站名称:";
cin>>name2;
break;
}
for(i=0;i<m;i++)
{
if(arr[i].num==no||strcmp(arr[i].start,name1)==0&&strcmp(arr[i].over,name2)==0)
{
arr[i]=arr[m-1];
m--;
}
}
cout<<"查找完毕或没有这个信息"<<endl;
cout<<"是否继续删除"<<endl;
cout<<"请键入yes或no以回车键结束"<<endl;
cin>>ii;
save();
if(!strcmp(ii,"yes"))
cout<<"请按任意键以回车键结束返回上层菜单:";
break;
}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0);
}
else
cout<<"对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!";
}
void Hangkong::dingpiao(){
int n;
char a[10];
do
{
search();
cout<<"请输入您要订的机票数以回车键结束:";
cin>>n;
if(n<0)
{
cout<<"请输入有效的机票数!";
break;
}
if(arr[i].count!=0&&arr[i].count>=n)
{
arr[i].count=arr[i].count-n;
save();
cout<<"订票成功!";
break;
}
if(arr[i].count<n)
{
cout<<"请输入有效的机票数:";
break;
}
cout<<"是否继续? 请输入yes或no以回车键结束:";
cin>>a;
}while(!strcmp(a,"yes"));
}
void Hangkong::tuipiao(){
int n;
char a[10];
do
{
search();
cout<<"请输入您要退的机票数目:";
cin>>n;
if(n<0)
cout<<"请输入有效的机票数!";
arr[i].count=arr[i].count+n;
save();
cout<<"退票成功!";
cout<<"是否继续? 请键入yes或no以回车键结束:";
cin>>a;
}while(!strcmp(a,"yes"));
getchar();
}
主函数
# include "Keshe.h"
void main()
{
int j;
cout<<" ★---您好,欢迎进入中国民航管理系统!---★\n";
cout<<"================================================================================"<<endl;
do
{
cout<<" -------- ☆ 1.输入航班信息 ☆-------- ";
cout<<" -------- ☆ 2.浏览航班信息 ☆-------- ";
cout<<" -------- ☆ 3.修改航班信息 ☆-------- ";
cout<<" -------- ☆ 4.查找航班信息 ☆-------- ";
cout<<" -------- ☆ 5.删除航班信息 ☆-------- ";
cout<<" -------- ☆ 6.订票信息 ☆-------- ";
cout<<" -------- ☆ 7.退票信息 ☆-------- ";
cout<<" -------- ☆ 0.退出 ☆-------- ";
cout<<"================================================================================"<<endl;
cout<<"请在0-7中选择以回车键结束:";
cin>>j;
switch(j)
{
case 1: Hangkong::input();
break;
case 2: Hangkong::print();
break;
case 3: Hangkong::xiugai();
break;
case 4: Hangkong::search();
break;
case 5: Hangkong::shanchu();
break;
case 6: Hangkong::dingpiao();
break;
case 7: Hangkong::tuipiao();
break;
case 0:
break;
}
}while(j!=0);
cout<<"谢谢使用,再见!"<<endl;
}