永发信息网

C++编程,紧急!作业。求救!!!!!!!!

答案:2  悬赏:10  手机版
解决时间 2021-01-07 06:10
C++编程,紧急!作业。求救!!!!!!!!
最佳答案
#include
#include
//***********************************************************************************
void initial_room(); //初始化80个房间信息
void welcome(); //验证用户登陆,登陆成功显示欢迎信息
void enter();
void book_room();
void check_in();
void check_out();
void inquire();
int i=0;
//***********************************************************************************
struct Room
{
int number;
int dank;
int price;
int state;
};

class Customer
{
public:
Customer();

void set_name(char *n){strcpy(name,n);}
void set_ID(char *p){strcpy(ID,p);}
void set_room_number(int n){room_number=n;}
void set_day(int d){day=d;}
void set_prepaid(int p){prepaid=p;}
char *get_name(){return name;}
char *get_ID(){return ID;}
int get_room_number(){return room_number;}
int get_day(){return day;}
int get_prepaid(){return prepaid;}

virtual ~Customer();
private:
char name[10],ID[19];
int room_number;
int prepaid;
int change;
int day;
};
Customer::Customer()
{
cout<<"请您输入顾客的姓名\n";
cin>>name;
cout<<"请您输入顾客的身份证号码\n";
cin>>ID;
prepaid=change=day=0;
}
Customer::~Customer()
{
cout<<"该顾客退房成功!"<}
//***********************************************************************************
Room room[80];
Customer *customer[80];

void main() //程序入口从这里开始运行
{
char choice='1';
initial_room(); //初始化80个房间的信息,分四个等级
welcome(); //验证用户登陆,登陆成功显示欢迎信息

while(choice=='1')
{
enter(); //根据用户的选择执行不同的功能
cout< cout<<"继续使用本系统请按\"1\",退出请按\"2\"! ";
cin>>choice;
cout< }
}
//系统登陆界面***********************************************************************
void welcome() //验证用户登陆,登陆成功显示欢迎信息
{
char name[4],code[7];
cout<<"请输入用户名和密码(以空格隔开):\n";
cin>>name>>code;
while((strcmp(name,"000")!=0)||(strcmp(code,"666666")!=0))
{
cout<<"用户名或密码输入有误,请重新输入!\n";
cin>>name>>code;
}
cout< cout< cout<<" ▲***************************▲\n";
cout<<" △ 欢迎使用***系统!△\n";
cout<<" ▲***************************▲\n";
cout<}
//系统入口***************************************************************************
void enter()
{
int kind_of_service;
cout<<"请选择服务类别:订房、入住、退房还是查询? \n";
cout<<" 1->定房 2->入住 3->退房 4->查询: ";
cin>>kind_of_service;
if((kind_of_service>4) || (kind_of_service<1))
{
cout<<"您的输入有误,请重试!\n";
cin>>kind_of_service;
}
else
switch(kind_of_service)
{
case 1: book_room();
break;
case 2: check_in();
break;
case 3: check_out();
break;
case 4: inquire();
break;
}
}

//订房实现***************************************************************************
void book_room()
{
customer[i]=new Customer;
int room_standard,day;
cout<<"请您选择预定房间的标准:\n";
cout<<"1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n";
cin>>room_standard;
cout<<"请输入预定天数\n";
cin>>day;
customer[i]->set_day(day);
switch(room_standard)
{
int n;
case 1:
cout<<"住房费用总共为: "< for(n=0;n<20;n++) //从第一个级别的房间中查找一个空闲的房间
{
if(room[n].state==0) //state=0表示该住房没有被预定的
{
cout<<"预定成功★房间号码为: "< room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 2:
cout<<"住房费用总共为: "< for(n=20;n<40;n++)
{
if(room[n].state==0)
{
cout<<"预定成功★房间号码为: "< room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 3:
cout<<"住房费用总共为: "< for(n=40;n<60;n++)
{
if(room[n].state==0)
{
cout<<"预定成功★房间号码为: "< room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 4:
cout<<"住房费用总共为: "< for(n=60;n<80;n++)
{
if(room[n].state==0)
{
cout<<"预定成功★房间号码为: "< room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
}
i++; //住房的顾客数加1
}
//入住登记***************************************************************************
void check_in()
{
char name1[10],id1[19];
int ding_or_no,prepaid;
cout<<"该顾客订房了吗? (1->订了 2->没订) ";
cin>>ding_or_no;
if(ding_or_no==1)
{
cout<<"请输入顾客的姓名:"< cin>>name1;
cout<<"请输入顾客的身份证号码:"< cin>>id1;
for(int j=0;j<=i;j++)
{
if((strcmp(customer[j]->get_name(),name1)==0)&&(strcmp(customer[j]->get_ID(),id1)==0)) //查找该顾客的定房信息
{
int num=customer[j]->get_room_number(); //取得定房的房间号
cout<<"顾客"< switch(num/100)
{
case 6:
prepaid=customer[j]->get_day()*150;
customer[j]->set_prepaid(prepaid);
cout<<"请收房费 "< room[num%100-1].state=2; //修改房间状态为入住状态
break;
case 7:
prepaid=customer[j]->get_day()*200;
customer[j]->set_prepaid(prepaid);
cout<<"请收房费 "< room[19+num%100].state=2;
break;
case 8:
prepaid=customer[j]->get_day()*300;
customer[j]->set_prepaid(prepaid);
cout<<"请收房费 "< room[39+num%100].state=2;
break;
case 9:
prepaid=customer[j]->get_day()*600;
customer[j]->set_prepaid(prepaid);
cout<<"请收房费 "< room[59+num%100].state=2;
break;

}
break;
}
}

}
else
{
customer[i]=new Customer;
int room_standard,day;
cout<<"请您选择预定房间的标准:\n";
cout<<"1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n";
cin>>room_standard;
cout<<"请输入住宿天数\n";
cin>>day;
customer[i]->set_day(day);
switch(room_standard)
{
int n;
case 1:
prepaid=day*150;
customer[i]->set_prepaid(prepaid);
cout<<"请收房费 "< for(n=0;n<20;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "< room[n].state=2;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 2:
prepaid=day*200;
customer[i]->set_prepaid(prepaid);
cout<<"请收房费 "< for(n=20;n<40;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "< room[n].state=2;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 3:
prepaid=day*300;
customer[i]->set_prepaid(prepaid);
cout<<"请收房费 "< for(n=40;n<60;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "< room[n].state=2;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 4:
prepaid=day*600;
customer[i]->set_prepaid(prepaid);
cout<<"请收房费 "< for(n=60;n<80;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "< room[n].state=2;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
}
i++;
}
}
//退房结算***************************************************************************
void check_out()
{
char name2[10],id2[19];
int standard,j,room_number,day1,day2,day;
cout<<"请输入要退房的顾客姓名和身份证号码:\n";
cin>>name2>>id2;
cout<<"请输入该顾客实住天数:\n";
cin>>day2;
for(j=0;j {
if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0))
{
room_number=customer[j]->get_room_number();
standard=room_number/100;
day1=customer[j]->get_day();
day=day1-day2;
switch(standard)
{
case 6:
cout<<"顾客的房间号是"< cout<<"该顾客预付了房费 "<get_prepaid()<<"元, 实际消费 "< cout< if(day>0)
cout<<"请退给该顾客 "< if(day<0)
cout<<"请补收该顾客住房费 "<<-day*150<<" 元整!\n";
break;
case 7:
cout<<"顾客的房间号是"< cout<<"该顾客预付了房费 "<get_prepaid()<<"元, 实际消费 "< cout< if(day>0)
cout<<"请退给该顾客 "< if(day<0)
cout<<"请补收该顾客住房费 "<<-day*200<<" 元整!\n";
break;
case 8:
cout<<"顾客的房间号是"< cout<<"该顾客预付了房费 "<get_prepaid()<<"元, 实际消费 "< cout< if(day>0)
cout<<"请退给该顾客 "< if(day<0)
cout<<"请补收该顾客住房费 "<<-day*300<<" 元整!\n";
break;
case 9:
cout<<"顾客的房间号是"< cout<<"该顾客预付了房费 "<get_prepaid()<<"元, 实际消费 "< cout< if(day>0)
cout<<"请退给该顾客 "< if(day<0)
cout<<"请补收该顾客住房费 "<<-day*600<<" 元整!\n";
break;
}
cout< cout<<"退房核算清楚,请按1: ";
char account;
cin>>account;
if(account=='1')
{
for(int k=0;k<80;k++)
{
if(room[k].number==customer[j]->get_room_number())
room[k].state=0;
}
i--;
for(;j {
customer[j]=customer[j+1];
}
delete customer[i];
}
}
}
}
//信息查询***************************************************************************
void inquire()
{
char inquire_choice;
cout<<"房间信息查询请按1, 顾客信息查询请按2: "< cin>>inquire_choice;
if(inquire_choice=='1')
{
int j,k=0;
cout< cout<<"下列房间还没人预订,也没人入住:"< for(j=0;j<80;j++)
{
if(room[j].state==0)
{
if(k%10==0) cout< cout< k++;
}
}
cout< cout< k=0;
cout<<"下列房间已预订:"< for(j=0;j<80;j++)
{
if(room[j].state==1)
{
if(k%10==0) cout< cout< k++;
}
}
k=0;
cout< cout< cout<<"下列房间有人入住:"< for(j=0;j<80;j++)
{
if(room[j].state==2)
{
if(k%10==0) cout< cout< k++;
}
}
cout< cout< }
else if(inquire_choice=='2')
{
cout<<"按姓名查询请按1, 按身份证查询请按2: "< char inquire_choice;
cin>>inquire_choice;
if(inquire_choice=='1')
{
char name3[10];
cout<<"请输入顾客的姓名: "< cin>>name3;
for(int j=0;j<=i;j++)
{
if(strcmp(customer[j]->get_name(),name3)==0)
{
cout< cout<<'\t'<<"房间号为: "<get_room_number()< cout<<"\t"<<"预付房费为: "<get_prepaid()< }
}
}
if(inquire_choice=='2')
{
char id3[10];
cout<<"请输入顾客的姓名: "< cin>>id3;
for(int j=0;j<=i;j++)
{
if(strcmp(customer[j]->get_ID(),id3)==0)
{
cout<get_name()<<"的住房信息如下:\n";
cout<<'\t'<<"房间号为: "<get_room_number()< cout<<"\t"<<"预付房费为: "<get_prepaid()< }
}
}
}
}
//房间信息初始化*********************************************************************
void initial_room() //对80个房间进行初始化,分4个等级
{
int j,k=601;
for(j=0;j<20;j++)
{
room[j].number=k++;
room[j].dank=1;
room[j].price=150;
room[j].state=0;
}
k=701;
for(j=20;j<40;j++)
{
room[j].number=k++;
room[j].dank=2;
room[j].price=200;
room[j].state=0;
}
k=801;
for(j=40;j<60;j++)
{
room[j].number=k++;
room[j].dank=3;
room[j].price=300;
room[j].state=0;
}
k=901;
for(j=60;j<80;j++)
{
room[j].number=k++;
room[j].dank=4;
room[j].price=600;
room[j].state=0;
}
}
全部回答
楼主加油,如果这是个简单的控制台程序,也不要花一些时间的。如果是图形程序,都可以收几百块钱了。5分,哈哈。楼主好运。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
最厉害的航母能抗住海啸吗?
贷款80000,年利率是7厘6,一年要付多少利息
求PS图片,感谢
哪位手上有湖南长沙移动直充的平台吗
请问。中年大妈和年轻的女孩,意思相同吗??
关于浙江大学的宿舍
梧州哪里配眼镜最好
一个数是24的倍数,它位于100与170之间,这个
从生物学角度讲,水貂是貂么??怎么区分貂类
8年抗战只是和日本打个平手而已,苏联8天灭关
黄铜摆件什么时间开始的
sketch软件windows下怎么打开
延吉有几家日企?
我想找378除以125再除以八怎么简便运算
在日本VL瘦腿霜多少钱
推荐资讯
市里面房子老的实在不能住人了会怎么处理
有没有人想要兼职帮人抄写的
从遵义走桐梓在那点上高速那下高速
身为大树为何要和小草相争的成语
工厂每个月生产300吨产品,照这样计算,全年
如果说北京奥运会是中国展示给世界看,那么上
请问这是什么,看图猜物游戏,答案不是灭火器
oppo k1手机性能和别的手机对比怎么样?
数据库管理员的职责主要包括哪些?
成语“初窥门径”是什么意思???
()÷()=15……30()内填什么
单选题下列属于启蒙思想家共同的思想主张是A.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?