using UserAccountNamespace;
using System.Collections.Generic;
private Dictionary<string,Cashier> records;
records = new Dictionary<string, Cashier>();
records.Add("Pat_T", new Cashier("Patricia Tanque","Sales","Pat_T","patricia123"));
records.Add("Bia_T", new Cashier("Bianca Tanque","Sales","Bia_T","bianca123"));
public bool vLogIn(string uname, string pass){
if (records.ContainsKey(uname))
Cashier c = records[uname];
return c.validateLogin(uname, pass);
static Dictionary<string,Cashier> records;
public static void Main()
Console.WriteLine("User Login\n----------------");
Console.WriteLine("Username: ");
string u = Console.ReadLine();
Console.WriteLine("Password: ");
string p = Console.ReadLine();
Console.WriteLine("\nWelcome. What do you want to do?");
Console.WriteLine("1 - Cashier\n2 - Logout\n3 - Exit");
int ans = int.Parse(Console.ReadLine());
Console.WriteLine("Logging out..");
Console.WriteLine("Exiting program...");
Console.WriteLine("Invalid input");
Console.WriteLine("No user found. Try again");
public static void items(){
Console.WriteLine("\n----------------");
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 cashier...");
namespace UserAccountNamespace{
abstract class UserAccount{
private string full_name;
protected string user_name;
protected string user_password;
public UserAccount(string name, string uName, string password){
this.user_password=password;
public abstract bool validateLogin(string uName, string password);
public string getFullName(){
class Cashier:UserAccount{
private string department;
public Cashier(string name, string department, string uName, string password):base(name,uName,password){
this.department=department;
public override bool validateLogin(string uName, string password){
return uName.Equals(user_name)&&password.Equals(user_password);
public string getDepartment(){
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;