public class CashierApplication
public static void Main()
Console.WriteLine("You are at the cashier.");
Console.WriteLine("----------------");
Console.Write("Name of item: ");
string n = Console.ReadLine();
Console.Write("Price: ");
double p = double.Parse(Console.ReadLine());
Console.Write("Quantity: ");
int q = int.Parse(Console.ReadLine());
Console.Write("Discount (set to 0 if none): ");
double d = double.Parse(Console.ReadLine());
DiscountItem di = new DiscountItem(n,p,q,d);
Console.Write("Total: "+di.getTotalPrice());
Console.Write("\nPayment: ");
double pay = double.Parse(Console.ReadLine());
Console.Write("Change: "+di.getChange());
Console.WriteLine("\n----------------");
Console.Write("\nWill you make another transaction? (yes/no): ");
string ans = Console.ReadLine();
Console.WriteLine("Exiting program...");
public abstract class Item{
protected string item_name;
protected double item_price;
protected int item_quantity;
private double total_price;
public Item(string name, double price, int quantity){
this.item_quantity=quantity;
public abstract double getTotalPrice();
public abstract void setPayment(double amount);
public class DiscountItem:Item{
private double item_discount;
private double discounted_price;
private double payment_amount;
public DiscountItem(string name, double price, int quantity, double discount): base(name,price,quantity){
this.item_discount=discount;
public override double getTotalPrice(){
this.discounted_price = (item_price-((item_discount/100)*item_price))*item_quantity;
public override void setPayment(double amount){
this.payment_amount=amount;
public double getChange(){
return payment_amount - discounted_price;