online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
using System; using System.Collections.Generic; using System.Text; namespace Task { class Program { static void Main(string[] args) { Console.WriteLine(">>>>>>>>>>>>>>> Hello My World! <<<<<<<<<<<<<<<<<<<"); Medicine medicine1 = new Medicine("Fosetrin", 30, 12); Medicine medicine2 = new Medicine("Kmietrin", 21, 30); Medicine medicine3 = new Medicine("Pririnos-4", 21, 12); Medicine medicine4 = new Medicine("NemRoot", 36, 12); Medicine medicine5 = new Medicine("BomZi", 40, 10); Pharmacy pharmacy = new Pharmacy(); pharmacy.AddMedicine(medicine1); pharmacy.AddMedicine(medicine2); pharmacy.AddMedicine(medicine3); pharmacy.AddMedicine(medicine4); pharmacy.AddMedicine(medicine5); List<string> operation = new List<string>(); operation.Add("Create Medicine => cm"); operation.Add("Remove Medicine => rm"); operation.Add("Update Medicine => um"); operation.Add("Show Medicine List=> swm");// operation.Add("Sell Medicine => slm"); operation.Add("Find Medicine => fm"); operation.Add("Show Common Totalincome => sctm"); string operaton; bool is_conitue; do { My.NoteHead("Opertions"); foreach (var item in operation) { My.NoteOutput(item); } My.NoteHead("Choose your operation?"); operaton = My.ConsInputString(); switch (operaton) { case "cm": CreateMedicine(pharmacy); break; case "rm": RemoveMedicine(pharmacy); break; case "um": UpdateMedicine(pharmacy); break; case "swm": pharmacy.ShowInfoList(); break; case "slm": Sell(pharmacy); break; case "fm": Find(pharmacy); break; case "sctm": My.NoteHead("Common Totalincome Medicine"); My.NoteOutput(pharmacy.TotalCome.ToString()); break; default: My.NoteOutput("Don't have this operation!"); break; } My.NoteHead("Want to do another operation?"); is_conitue = !My.IsContinueLoop(); } while (is_conitue); } public static void CommonTotalincome(Pharmacy pharmacy) { My.NoteHead("Common Totalincome Medicine"); } public static void RemoveMedicine(Pharmacy pharmacy) { string name; bool is_continue_last; bool is_continue_2; do { do { My.NoteHead("Medicine Remove"); My.NoteInput("Input Update Medicine Name"); name = My.ConsInputString(); try { pharmacy.RemoveMedicine(name); is_continue_2 = false; } catch (Exception ex) { Console.WriteLine(ex); My.NoteOutput("Can't remove medicine! Plase input agen."); is_continue_2 = true; } } while (is_continue_2); My.NoteOutput("You remove updated!"); My.NoteOutput("Do you remove update medicine ?"); is_continue_last = !My.IsContinueLoop(); } while (is_continue_last); IsShowList(pharmacy); } public static void UpdateMedicine(Pharmacy pharmacy) { int price; int count; string name; string newname; bool is_continue_last; bool is_continue_2; do { do { My.NoteHead("Medicine Update"); My.NoteInput("Input Update Medicine Name"); name = My.ConsInputString(); My.NoteInput("Input New Medicine Name"); newname = My.ConsInputString(); My.NoteInput("Input New Medicine Name"); price = My.ConsInputInt(); My.NoteInput("Input New Medicine Count"); count = My.ConsInputInt(); try { pharmacy.UpdateMedicine(name, newname, price, count); is_continue_2 = false; } catch (Exception ex) { Console.WriteLine(ex); My.NoteOutput("Can't update medicine! Plase input agen."); is_continue_2 = true; } } while (is_continue_2); My.NoteOutput("You medicine updated!"); My.NoteOutput("Do you continue update medicine ?"); is_continue_last = !My.IsContinueLoop(); pharmacy.ShowInfoList(); } while (is_continue_last); IsShowList(pharmacy); } public static void CreateMedicine(Pharmacy pharmacy) { int price; int count; string name; bool is_continue_last; bool is_continue_2; do { for (int i = 0; i < 1; i++) { do { My.NoteHead("Medicine Create"); My.NoteInput("Input Medicine Name"); name = My.ConsInputString(); My.NoteInput("Input Medicine Price"); price = My.ConsInputInt(); My.NoteInput("Input Medicine Count"); count = My.ConsInputInt(); try { Medicine medicine = new Medicine(name, price, count); pharmacy.AddMedicine(medicine); is_continue_2 = false; } catch (Exception ex) { Console.WriteLine(ex); My.NoteOutput("Can't create medicine! Plase input agen."); is_continue_2 = true; } } while (is_continue_2); My.NoteOutput("You medicine created!"); } My.NoteOutput("Do you continue create medicine ?"); is_continue_last = !My.IsContinueLoop(); } while (is_continue_last); IsShowList(pharmacy); } public static void IsShowList(Pharmacy pharmacy) { bool is_continue; My.NoteOutput("Do you show list ?"); is_continue = !My.IsContinueLoop(); if (is_continue) { pharmacy.ShowInfoList(); } } public static void Sell(Pharmacy pharmacy) { string name; int count; bool is_continue_last; bool is_continue_2; do { do { My.NoteHead("Sell Medicine"); My.NoteInput("Input Medicine Name"); name = My.ConsInputString(); My.NoteInput("Input Medicine Count"); count = My.ConsInputInt(); try { pharmacy.Sell(name, count); is_continue_2 = false; } catch (Exception ex) { Console.WriteLine(ex); My.NoteOutput("Can't sell medicine! Plase input agen."); is_continue_2 = true; } } while (is_continue_2); My.NoteOutput("You selled the medicine!"); pharmacy.FindMedicineByName(name).ShowInfo(); My.NoteOutput("Do you sell medicine ?"); is_continue_last = !My.IsContinueLoop(); } while (is_continue_last); } public static void Find(Pharmacy pharmacy) { string name; bool is_continue_last; bool is_continue_2; do { do { My.NoteHead("Medicine Find"); My.NoteInput("Input Update Medicine Name"); name = My.ConsInputString(); try { pharmacy.FindMedicineByName(name); is_continue_2 = false; } catch (Exception ex) { Console.WriteLine(ex); My.NoteOutput("Can't find medicine! Plase input agen."); is_continue_2 = true; } } while (is_continue_2); pharmacy.FindMedicineByName(name).ShowInfo(); My.NoteOutput("Do you find medicine ?"); is_continue_last = !My.IsContinueLoop(); } while (is_continue_last); } } public class Medicine { private string _name; public string Name { get { return _name; } } private int _price; public int Price { get { return _price; } } private int _count; public int Count { get { return _count; } } private int _totalIncome; public int TotalIncome { get { return _totalIncome; } } public Medicine(string name,int price,int count) { this.Update(name, price, count); } public void ShowInfo() { My.NoteHead("Medicine Info"); Console.WriteLine($" >> Name : {this.Name} / Price : {this.Price} / Count : {this.Count} / TotalIncome : {this.TotalIncome}"); } public void Update(string name,int price,int count) { if (string.IsNullOrEmpty(name)) { throw new UnCatchNameException("Name is Null or Empty"); } else { this._name = name; } if (0 >= price) { throw new IsNotZeroPriceException("You Use UnCorrect Price "); } else { this._price = price; } if (0 >= count) { throw new IsNotZeroCountException("You Use UnCorrect Count"); } else { this._count = count; } } public void Sell(int count) { if (count == 0) { throw new IsNotZeroCountException("You Use UnCorrect Count"); } else if (count > this.Count) { throw new IsNotZeroCountException("Not Found This Count"); } else { this._totalIncome = this.TotalIncome + this._price * count; this._count = this.Count - count; } } } class Pharmacy:IPharmacy { private readonly List<Medicine> _medicines; public List<Medicine> Medicines { get { return _medicines; } } private int _totalcome; public int TotalCome { get { return _totalcome; } } public Pharmacy() { this._medicines = new List<Medicine>(); } public void Sell(string name,int count) { Medicine sellmedicine = this.FindMedicineByName(name); sellmedicine.Sell(count); this._totalcome = this.TotalCome + sellmedicine.Price * count; } public Medicine FindMedicineByName(string name) { if (string.IsNullOrEmpty(name)) { throw new UnCatchNameException("This is Empty"); } string lowercase = name.Trim().ToLower(); Medicine findmedicine = this._medicines.Find(f => f.Name.Trim().ToLower().Equals(name.ToLower().Trim())); if (findmedicine == null) { throw new UnCatchNameException("Not Found This Medicine"); } return findmedicine; } public void UpdateMedicine(string name, string newneme, int newprice, int newcount) { if (string.IsNullOrEmpty(name)) { throw new UnCatchNameException("This is Empty"); } Medicine updatemedicines = this.Medicines.Find(f => f.Name.Trim().ToLower().Equals(name.ToLower().Trim())); if (updatemedicines == null) { throw new UnCatchNameException("Not Found This Medicine"); } else { if (string.IsNullOrEmpty(newneme)) { newneme = updatemedicines.Name; } if (newprice == 0) { newprice = updatemedicines.Price; } if (newcount == 0) { newcount = updatemedicines.Count; } updatemedicines.Update(newneme, newprice, newcount); } } public void RemoveMedicine(string name) { if (string.IsNullOrEmpty(name)) { throw new UnCatchNameException("This is Empty"); } string lowercase = name.Trim().ToLower(); Medicine removemedicine = this._medicines.Find(f => f.Name.Trim().ToLower() == lowercase); if (removemedicine != null) { this._medicines.Remove(removemedicine); } else { throw new UnCatchNameException(" Not Found This Medicine"); } } public void AddMedicine(Medicine medicine) { Medicine newmedicine = this._medicines.Find(f => f.Name.Trim().ToLower().Equals(medicine.Name.ToLower().Trim())); if (newmedicine == null) { this._medicines.Add(medicine); } else { throw new IsAlreadyAddedException("This Medicine Already Added"); } } public void ShowInfoList() { int listnumber = 0; My.NoteHead("Medicines List"); foreach (var item in this.Medicines) { listnumber += 1; Console.WriteLine($" >>> {listnumber}. Name : {item.Name} / Price : {item.Price} / Count : {item.Count} / TotalIncome : {item.TotalIncome} "); } } } interface IPharmacy { List<Medicine> Medicines { get; } void UpdateMedicine(string name,string newneme,int newprice,int newcount); void RemoveMedicine(string name); void AddMedicine(Medicine medicine); void ShowInfoList(); } class IsAlreadyAddedException: Exception { private readonly string _message; public IsAlreadyAddedException(string message) { this._message = message; } public override string Message => this._message; } class IsNotZeroPriceException:Exception { private readonly string _message; public IsNotZeroPriceException(string message) { this._message = message; } public override string Message => this._message; } class UnCatchNameException:Exception { private readonly string _message; public UnCatchNameException(string message) { this._message = message; } public override string Message => this._message; } class IsNotZeroCountException:Exception { private readonly string _message; public IsNotZeroCountException(string message) { this._message = message; } public override string Message => this._message; } public static class My { public static int ConsInputInt() { int number =0; bool break_loop; do { try { Console.Write("Input a number : <<<<<< : "); number = Convert.ToInt32(Console.ReadLine()); break_loop = false; } catch (Exception) { Console.WriteLine("You don't use full number and don't use number !"); break_loop = true; } } while (break_loop); return number; } public static string ConsInputString() { Console.Write("Input text : <<<<<< : "); string str = Console.ReadLine(); return str; } public static bool IsContinueLoop() { bool is_continue; Console.Write("<<<<<< Are you continue or exit => (Any case / n ) <<< : "); string str = Console.ReadLine(); if (str == "n") { is_continue = true; } else { is_continue = false; } return is_continue; } public static void NoteHead(string str) { Console.WriteLine($"\n---------- >>>>>>>>>> {str} <<<<<<<<<<< ----------"); } public static void NoteInput(string str) { Console.WriteLine($"<<<<<<<<<<<<< : {str}"); } public static void NoteOutput(string str) { Console.WriteLine($">>>>>>> : {str}"); } } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue