package midexam;
class Order{
int order_id;
int ordered_amount;
Order(int id,int amount){
order_id = id;
ordered_amount = amount;
}
}
class Client{
int id;
this.name = name;
this.id = id;
}
}
class Registered_client extends Client{
Registered_client
(String name,
int id
){ super(name,id);
}
void make_order(int id, int amount,Supervisor s,Admin a){
if(amount > 5000){
Order Ob = new Order(id,amount);
s.discount(Ob,a);
}
else{
System.
out.
println("Sorry amount less than 5000"); }
}
}
class Non_Registered_client extends Client{
Non_Registered_client
(String name,
int id
){ super(name,id);
}
void make_order(int id,int amount,Admin a){
if(amount > 5000){
Order ob = new Order(id,amount);
a.Non_Regcalculate_Total_bill(ob);
}
else{
System.
out.
println("Sorry amount less than 5000"); }
}
}
class Supervisor{
int id;
id = i;
name = n;
}
void discount(Order o,Admin a){
if(o.ordered_amount > 10000){
a.Regcalculate_Total_bill(10,o);
}
else{
a.Regcalculate_Total_bill(0,o);
}
}
}
class Admin{
void Regcalculate_Total_bill(int discount,Order o){
System.
out.
println(o.
ordered_amount*200 + ((o.
ordered_amount*200)*0.5)); }
void Non_Regcalculate_Total_bill(Order o){
System.
out.
println(o.
ordered_amount*200 + ((o.
ordered_amount*200)*0.5)); }
}
class MIDExam {
public static void main
(String[] args
) { Registered_client r = new Registered_client("Registered", 1);
Supervisor s = new Supervisor(1,"Ahmed");
Admin a = new Admin();
r.make_order(1, 11000, s, a);
}
}
cGFja2FnZSBtaWRleGFtOwoKY2xhc3MgT3JkZXJ7CiAgICBpbnQgb3JkZXJfaWQ7CiAgICBpbnQgb3JkZXJlZF9hbW91bnQ7CiAgICBPcmRlcihpbnQgaWQsaW50IGFtb3VudCl7CiAgICAgICAgb3JkZXJfaWQgPSBpZDsKICAgICAgICBvcmRlcmVkX2Ftb3VudCA9IGFtb3VudDsKICAgIH0KfQpjbGFzcyBDbGllbnR7CiAgICBTdHJpbmcgbmFtZTsKICAgIGludCBpZDsKICAgIENsaWVudChTdHJpbmcgbmFtZSxpbnQgaWQpewogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5pZCA9IGlkOwogICAgfQp9CmNsYXNzIFJlZ2lzdGVyZWRfY2xpZW50IGV4dGVuZHMgQ2xpZW50ewogICAgUmVnaXN0ZXJlZF9jbGllbnQoU3RyaW5nIG5hbWUsaW50IGlkKXsKICAgICAgICBzdXBlcihuYW1lLGlkKTsKICAgIH0KICAgIHZvaWQgbWFrZV9vcmRlcihpbnQgaWQsIGludCBhbW91bnQsU3VwZXJ2aXNvciBzLEFkbWluIGEpewogICAgICAgIGlmKGFtb3VudCA+IDUwMDApewogICAgICAgICAgICBPcmRlciBPYiA9IG5ldyBPcmRlcihpZCxhbW91bnQpOwogICAgICAgICAgICBzLmRpc2NvdW50KE9iLGEpOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvcnJ5IGFtb3VudCBsZXNzIHRoYW4gNTAwMCIpOwogICAgICAgIH0KICAgIH0KfSAKY2xhc3MgTm9uX1JlZ2lzdGVyZWRfY2xpZW50IGV4dGVuZHMgQ2xpZW50ewogICAgTm9uX1JlZ2lzdGVyZWRfY2xpZW50KFN0cmluZyBuYW1lLGludCBpZCl7CiAgICAgICAgc3VwZXIobmFtZSxpZCk7CiAgICB9CiAgICB2b2lkIG1ha2Vfb3JkZXIoaW50IGlkLGludCBhbW91bnQsQWRtaW4gYSl7CiAgICAgICAgaWYoYW1vdW50ID4gNTAwMCl7ICAKICAgICAgICAgICAgT3JkZXIgb2IgPSBuZXcgT3JkZXIoaWQsYW1vdW50KTsKICAgICAgICAgICAgYS5Ob25fUmVnY2FsY3VsYXRlX1RvdGFsX2JpbGwob2IpOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvcnJ5IGFtb3VudCBsZXNzIHRoYW4gNTAwMCIpOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBTdXBlcnZpc29yewogICAgaW50IGlkOwogICAgU3RyaW5nIG5hbWU7CiAgICBTdXBlcnZpc29yKGludCBpLCBTdHJpbmcgbil7CiAgICAgICAgaWQgPSBpOwogICAgICAgIG5hbWUgPSBuOwogICAgfQogICAgdm9pZCBkaXNjb3VudChPcmRlciBvLEFkbWluIGEpewogICAgICAgIGlmKG8ub3JkZXJlZF9hbW91bnQgPiAxMDAwMCl7CiAgICAgICAgICAgIGEuUmVnY2FsY3VsYXRlX1RvdGFsX2JpbGwoMTAsbyk7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGEuUmVnY2FsY3VsYXRlX1RvdGFsX2JpbGwoMCxvKTsKICAgICAgICB9CiAgICB9Cn0KY2xhc3MgQWRtaW57CiAgICB2b2lkIFJlZ2NhbGN1bGF0ZV9Ub3RhbF9iaWxsKGludCBkaXNjb3VudCxPcmRlciBvKXsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oby5vcmRlcmVkX2Ftb3VudCoyMDAgKyAoKG8ub3JkZXJlZF9hbW91bnQqMjAwKSowLjUpKTsKICAgIH0KICAgIHZvaWQgTm9uX1JlZ2NhbGN1bGF0ZV9Ub3RhbF9iaWxsKE9yZGVyIG8pewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihvLm9yZGVyZWRfYW1vdW50KjIwMCArICgoby5vcmRlcmVkX2Ftb3VudCoyMDApKjAuNSkpOwogICAgfQp9CmNsYXNzIE1JREV4YW0gewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBSZWdpc3RlcmVkX2NsaWVudCByID0gbmV3IFJlZ2lzdGVyZWRfY2xpZW50KCJSZWdpc3RlcmVkIiwgMSk7CiAgICAgICAgU3VwZXJ2aXNvciBzID0gbmV3IFN1cGVydmlzb3IoMSwiQWhtZWQiKTsKICAgICAgICBBZG1pbiBhID0gbmV3IEFkbWluKCk7CiAgICAgICAgci5tYWtlX29yZGVyKDEsIDExMDAwLCBzLCBhKTsKICAgIH0KICAgIAp9Cg==