Đề bài: Một điểm KARAOKE tính tiền khách hàng theo công thức sau:
• Mỗi giờ trong 3 giờ đầu tiên tính 30 000 đồng/giờ,
• Mỗi giờ tiếp theo có đơn giá giảm 30% so với đơn giá trong 3 giờ đầu tiên.
Ngoài ra nếu thời gian thuê phòng từ 8 – 17 giờ thì được giảm giá 10%. Viết chương trình
nhập vào giờ bắt đầu, giờ kết thúc và in ra số tiền khách hàng phải trả biết rằng 8 ≤ giờ bắt
đầu < giờ kết thúc ≤ 24.
Mình làm như lày:
Code:
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
int gbd,gkt,time,t1,t2;
float tien;
cout<<"\nNhap gio bat dau: ";cin>>gbd;
cout<<"\n\nNhap gio ket thuc: ";cin>>gkt;
if (gbd<8)
{ cout<<"\nQuan mo cua luc 8h va dong cua vao 24h\nBan da nhap sai gio";
getch();
exit(0);
}
else if (gkt>24)
{cout<<"\nQuan mo cua luc 8h va dong cua vao 24h\nBan da nhap sai gio";
getch();
exit(0);
}
else if (gkt<gbd)
{cout<<"\nQuan mo cua luc 8h va dong cua vao 24h\nBan da nhap sai gio";
getch();
exit(0);
}
else
{
time=gkt-gbd;
if (gkt<=17)
{
if (time<=3) tien=30000*time*0.9;
else tien=30000*(3+(time-3)*0.7)*0.9;
}
else { t1=gkt-17;
if (t1>0)
{t2=17-gbd;
if ((time)<=3) tien=30000*(t2+0.9*t1);
else { if (t2<=3) tien=30000*(t2+(3-t2)*0.9)+30000*(time-3)*0.7*0.9;
else tien=30000*(3+(t2-3)*0.7)+30000*t1*0.7*0.9;
}
}
}
cout<<"\n\n So tien phai tra: "<<(int)tien;
getch();
}
}
Mình thấy mấy cái if else này dài quá có rút gọn đc ko?
Code:
if (gbd<8)
{ cout<<"\nQuan mo cua luc 8h va dong cua vao 24h\nBan da nhap sai gio";
getch();
exit(0);
}
else if (gkt>24)
{cout<<"\nQuan mo cua luc 8h va dong cua vao 24h\nBan da nhap sai gio";
getch();
exit(0);
}
else if (gkt<gbd)
{cout<<"\nQuan mo cua luc 8h va dong cua vao 24h\nBan da nhap sai gio";
getch();
exit(0);
}