public static void Main(string [] args) {
Console.Write("Enter Item: ");
string ItemN = Console.ReadLine();
Console.Write("\nEnter Quantity: ");
int Quanti = Convert.ToInt32(Console.ReadLine());
DiscountedItem DisItem = new DiscountedItem(ItemN, Quanti);
Console.WriteLine("\nDiscount: {0}", DisItem.GetDiscount());
Console.WriteLine("\nPrice: {0}", DisItem.GetPrice());
Console.WriteLine("\nTotal Amount: {0}", DisItem.GetTotalPrice());
Console.WriteLine("\nPayment Received: ");
double PaymentRec = Convert.ToDouble(Console.ReadLine());
DisItem.SetPayment(PaymentRec);
Console.WriteLine(DisItem.GetChange());
namespace ItemNamespace {
public abstract class Item {
private string item_name;
protected double item_price;
public Item(string name) {
public double GetPrice() {
public abstract double GetTotalPrice();
public abstract void SetPayment (double amount);
public class DiscountedItem : Item {
private double item_discount;
private double item_quantity;
private double discounted_price;
private double payment_amount;
public DiscountedItem(string name, int quantity) : base(name) {
this.item_quantity = quantity;
if (item_quantity >= 6) {
this.item_discount = 0.32;
else if (item_quantity >= 3) {
this.item_discount = 0.27;
this.item_discount = 0.00;
public double GetDiscount() {
return this.item_discount;
public override void SetPayment(double amount) {
this.payment_amount = amount;
change = payment_amount - item_price;
public double GetChange() {
public override double GetTotalPrice() {
this.item_price *= this.item_quantity;
discounted_price = this.item_price * GetDiscount();
this.item_price -= discounted_price;