| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 477 人关注过本帖
标题:有个题目要请问
只看楼主 加入收藏
lixuhao
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2005-12-9
收藏
 问题点数:0 回复次数:4 
有个题目要请问


求助



航空购票系统模型:

为一架10个坐位的飞机分配坐位。程序应显示如下菜单:

**********************************

** 吸烟区 --------1 **

** 无烟区 --------2 **

**********************************

若购票人键入1则在吸烟区分配一个座位(座号1~5)若购票人键入2则在无烟区分配一个座位(座号5~10)。然后程序打印座号以及座位是在吸烟区还是无烟区。然后再显示提示信息,等候下一个购票人。

基本要求:

若吸烟区(无烟区)满员,应询问是否愿意分配到无烟区(吸烟区),若愿意就分配,否则提示:“下一个航班在6小时以后”。航班全部满员后显示信息:“本航班满员,请候下一航班”。程序结束。

2006-03-09 18:31
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
收藏
得分:0 
初学者不知道

http://www. 第二站>>>提供源码下载
2006-03-10 13:33
tyfabc_sc
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-2-17
收藏
得分:0 


#include <stdio.h>
#include <string.h>


class Seat
{
public:
int Region;
int SeatId;
bool IsBooked;
public:
Seat();
Seat(int r,int s);
~Seat();
Diaplay();
};

Seat::Seat(int r,int s)
{
Region=r;
SeatId=s;
}
Seat::Seat()
{

}
Seat::~Seat()
{
}

Seat::Diaplay()
{
if(Region==1)
printf("\t在无烟区!\t\n");
else
printf("\t在吸烟区!\t\n");

printf("\t--座位号是%d\t\n",SeatId+1);
}

int main()
{
Seat seat[10];
Seat *pS=NULL;
Seat NoSigur[5];
Seat Sigur[5];

for(int n=0;n<5;n++)
{
seat[n].Region=1;
seat[n].IsBooked=false;
seat[n].SeatId=n;
}
for(n=5;n<10;n++)
{
seat[n].Region=2;
seat[n].IsBooked=false;
seat[n].SeatId=n+5;
}
bool BookSeccess;
while(1)
{
printf(" **********************************\n");
printf(" \n");
printf(" ** 吸烟区 --------1 **\n");
printf(" \n");
printf(" ** 无烟区 --------2 **\n");
printf(" \n");
printf(" **********************************\n");
int input;
BookSeccess=false;
scanf("%d",&input);
if(input==1)
{
for(int m=0;m<5;m++)
{
if(!seat[m].IsBooked)
{
seat[m].IsBooked=true;
printf("你定的机票是:\n");
seat[m].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
if(!BookSeccess)
{
printf("是否原意调配到吸烟区?愿意:1 不愿意:0\n");
int in2;
scanf("%d",&in2);
if(in2==1)
{
for(m=0;m<5;m++)
{
if(!seat[m+5].IsBooked)
{
seat[m+5].IsBooked=true;
printf("你定的机票是:\n");
seat[m+5].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
}
else
{
printf("请等下一航班,在6小时以后\n");
break;
}
if(!BookSeccess)
{
printf("对不起,该航班机票已售完,请等下一航班\n");
}
}

}
else if(input==2)
{
for(int m=5;m<10;m++)
{
if(!seat[m].IsBooked)
{
seat[m].IsBooked=true;
printf("你定的机票是:\n");
seat[m].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
if(!BookSeccess)
{
printf("是否原意调配到无烟区?愿意:1 不愿意:0\n");
int in2;
scanf("%d",&in2);
if(in2==1)
{
for(m=0;m<5;m++)
{
if(!seat[m].IsBooked)
{
seat[m].IsBooked=true;
printf("你定的机票是:\n");
seat[m].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
}
else
{
printf("请等下一航班,在6小时以后\n");
break;
}
if(!BookSeccess)
{
printf("对不起,该航班机票已售完,请等下一航班\n");
}
}
}
else
{
continue;
}
}
return 0;
}

2006-03-10 15:29
kelehai
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-10-31
收藏
得分:0 

/*楼上的程序写得真不错
但是飞机只有十个座位啊,当键入2时,照上面的程序运行会得出:
你定的机票是:
在吸烟区!
--座位号是:11
经过一点小小的修改就可以正确运行了,见以下程序:
*/

#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;

class Seat
{
public:
int Region;
int SeatId;
bool IsBooked;
public:
Seat();
Seat(int r,int s);
~Seat();
Diaplay();
};

Seat::Seat(int r,int s)
{
Region=r;
SeatId=s;
}
Seat::Seat()
{

}
Seat::~Seat()
{
}

Seat::Diaplay()
{
if(Region==1)
printf("\t在无烟区!\t\n");
else
printf("\t在吸烟区!\t\n");

printf("\t--座位号是%d\t\n",SeatId+1);
}

int main()
{
Seat seat[10];
Seat *pS=NULL;
Seat NoSigur[5];
Seat Sigur[5];

for(int n=0;n<10;n++)
{
if (n<5) //如果是前五位的是无烟区,Region = 1,否则为2.
seat[n].Region=1;
seat[n].Region = 2;
seat[n].IsBooked=false;
seat[n].SeatId=n;
}
/*这一部分无必要了,在前面已经做出了区分
for(n=5;n<10;n++)
{
seat[n].Region=2;
seat[n].IsBooked=false;
seat[n].SeatId = n;//seat[n].SeatId=n+5;
}
*/
bool BookSeccess;
while(1)
{
printf(" **********************************\n");
printf(" \n");
printf(" ** 吸烟区 --------1 **\n");
printf(" \n");
printf(" ** 无烟区 --------2 **\n");
printf(" \n");
printf(" **********************************\n");
int input;
BookSeccess=false;
cin >> input;
if(input==1)
{
for(int m=0;m<5;m++)
{
if(!seat[m].IsBooked)
{
seat[m].IsBooked=true;
printf("你定的机票是:\n");
seat[m].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
if(!BookSeccess)
{
printf("是否原意调配到吸烟区?愿意:1 不愿意:0\n");
int in2;
cin >> in2; //scanf("%d",&in2);
if(in2==1)
{
for(m=0;m<5;m++)
{
if(!seat[m+5].IsBooked)
{
seat[m+5].IsBooked=true;
printf("你定的机票是:\n");
seat[m+5].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
}
else
{
printf("请等下一航班,在6小时以后\n");
break;
}
if(!BookSeccess)
{
printf("对不起,该航班机票已售完,请等下一航班\n");
}
}

}
else if(input==2)
{
for(int m=5;m<10;m++)
{
if(!seat[m].IsBooked)
{
seat[m].IsBooked=true;
printf("你定的机票是:\n");
seat[m].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
if(!BookSeccess)
{
printf("是否原意调配到无烟区?愿意:1 不愿意:0\n");
int in2;
scanf("%d",&in2);
if(in2==1)
{
for(m=0;m<5;m++)
{
if(!seat[m].IsBooked)
{
seat[m].IsBooked=true;
printf("你定的机票是:\n");
seat[m].Diaplay();
BookSeccess=true;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
break;
}
}
}
else
{
printf("请等下一航班,在6小时以后\n");
break;
}
if(!BookSeccess)
{
printf("对不起,该航班机票已售完,请等下一航班\n");
}
}
}
else
{
continue;
}
}
return 0;
}

2006-03-11 18:21
lixuhao
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2005-12-9
收藏
得分:0 
多谢大家
2006-03-12 18:37
快速回复:有个题目要请问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044016 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved