[ create a new paste ] login | about

Link: http://codepad.org/lhZjRC9h    [ raw code | fork ]

8Observer8 - C, pasted on Feb 18:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

namespace lab_3
{
    class Program
    {
        static void Main()
        {
            Remedy[] med = new Remedy[100];
            string command = "";
            int nmed = 0;
            while (command != "stop")
            {
                Console.WriteLine("");
                Console.Write("Enter a command: ");
                command = Console.ReadLine();
                Remedy r = new Remedy();

                switch (command)
                {
                    case "add":
                        r.set_name();
                        r.set_price();
                        r.set_type();
                        r.set_num();
                        //med[nmed] = r;
                        nmed++; break;
                    case "del":
                        nmed--;
                        break;

                    case "sort -price -asc": Array.Sort(med, 0, nmed, Remedy.sortPriceAscending()); break;
                    case "sort -price -desk": Array.Sort(med, 0, nmed, Remedy.sortPriceDeskcending()); break;
                    case "sort -name -asc": Array.Sort(med, 0, nmed); break;
                    case "sort -name- desc": Array.Sort(med, 0, nmed, Remedy.sortNameDescending()); break;
                    case "sort -num -asc": Array.Sort(med, 0, nmed, Remedy.sortNumAscending()); break;
                    case "sort -num -desc": Array.Sort(med, 0, nmed, Remedy.sortNumDeskcending()); break;
                    case "sort -type -asc": Array.Sort(med, 0, nmed, Remedy.sortTypeAscending()); break;
                    case "sort -type -desc": Array.Sort(med, 0, nmed, Remedy.sortTypeDescending()); break;

                    case "show":
                        if (nmed == 0)
                        {
                            Console.WriteLine("List is empty.");
                        }
                        else
                        {
                            Console.WriteLine("");
                            Console.WriteLine("List of medicine: ");

                            for (int i = 0; i < nmed; i++)
                            {
                                med[i].show();
                            }

                        } break;

                    case "save":
                        Console.Write("Enter a file name: ");
                        string fileName = Console.ReadLine();
                        Console.WriteLine("fileName: " + fileName);
                        break;

                    case "load":
                        Console.Write("Enter a file name: ");
                        fileName = Console.ReadLine();
                        Console.WriteLine("fileName: " + fileName);
                        break;

                    case "clear":
                        nmed = 0;
                        break;

                    case "help":
                        Console.WriteLine("add");
                        Console.WriteLine("show");
                        Console.WriteLine("del");
                        Console.WriteLine("clear");
                        Console.WriteLine("sort -price -asc");
                        Console.WriteLine("sort -price -desk");
                        Console.WriteLine("sort -name -asc");
                        Console.WriteLine("sort -name- desc");
                        Console.WriteLine("sort -num -asc");
                        Console.WriteLine("sort -num -desc");
                        Console.WriteLine("sort -type -asc");
                        Console.WriteLine("sort -type -desc");
                        break;

                    case "stop": break;
                    default: { Console.WriteLine("Error: incorrect command. Please, type: help"); break; }


                }
            }

            Tincture x1 = new Tincture();
            Tincture x2 = new Tincture();
            Tincture x3 = new Tincture();
            x2.set_name();
            x2.set_price();
            x1.set_name();
            x1.set_price();
            x1.set_type();
            x1.set_num();
            x1.show();
            x2.show();

            Remedy y = new Remedy();
            Remedy y1 = new Remedy("valerianka", 120, "tabletki", 1);
            y1.show();
            y.set_name();
            y.set_price();
            y.show();

            Medicine z = new Medicine();
            Medicine z1 = new Medicine("valerianka", 100);
            z1.show();
            z.set_name();
            z.set_price();
            z.show();

            Remedy xx = new Remedy();
            Remedy yy = new Remedy();


            Console.ReadKey();

        }
    }

    class Medicine : IComparable
    {
        static int count;
        protected string name;
        protected int price;
        public Medicine() { count++; }
        public Medicine(string n, int p) { name = n; price = p; }

        public void set_price()
        {
            try
            {
                Console.Write("Enter price: ");
                price = int.Parse(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("error");
                set_price();
            }
        }
        public void set_name()
        {
            try
            {
                Console.Write("Enter name medicine: ");
                name = Console.ReadLine();
            }
            catch
            {
                Console.WriteLine("error");
                set_name();
            }
        }
        public void show()
        {
            Console.Write("Price: " + price + " Name: " + name + " ");
        }
        int IComparable.CompareTo(object obj)
        {
            Medicine m = (Medicine)obj;
            return String.Compare(this.name, m.name);
        }
    };

    class Remedy : Medicine
    {
        static int count;
        private string type;
        private int num;


        public Remedy() { count++; }
        public Remedy(string n, int p, string t, int s) : base(n, p) { type = t; num = s; }

        public void set_num()
        {
            try
            {
                Console.Write("Enter num: ");
                num = int.Parse(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("error");
                set_num();
            }
        }
        public void set_type()
        {
            try
            {
                Console.Write("Enter type: ");
                type = Console.ReadLine();
            }
            catch
            {
                Console.WriteLine("error");
                set_type();
            }
        }
        public void show()
        {
            base.show();
            Console.WriteLine("Num: " + num + " Type: " + type);
        }

        private class sortNameDescendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;
                return String.Compare(r2.name, r1.name);
            }
        }

        public static IComparer sortNameDescending()
        {
            return (IComparer)new sortNameDescendingHelper();
        }

        private class sortPriceAscendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;

                if (r1.price > r2.price)
                    return 1;

                if (r1.price < r2.price)
                    return -1;

                else
                    return 0;
            }
        }

        public static IComparer sortPriceAscending()
        {
            return (IComparer)new sortPriceAscendingHelper();
        }

        private class sortPriceDeskcendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;

                if (r1.price < r2.price)
                    return 1;

                if (r1.price > r2.price)
                    return -1;

                else
                    return 0;
            }
        }

        public static IComparer sortPriceDeskcending()
        {
            return (IComparer)new sortPriceDeskcendingHelper();
        }

        private class sortTypeAscendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;
                return String.Compare(r1.type, r2.type);
            }
        }

        public static IComparer sortTypeAscending()
        {
            return (IComparer)new sortTypeAscendingHelper();
        }

        private class sortTypeDescendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;
                return String.Compare(r2.type, r1.type);
            }
        }

        public static IComparer sortTypeDescending()
        {
            return (IComparer)new sortTypeDescendingHelper();
        }

        private class sortNumAscendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;

                if (r1.num > r2.num)
                    return 1;

                if (r1.num < r2.num)
                    return -1;

                else
                    return 0;
            }
        }

        public static IComparer sortNumAscending()
        {
            return (IComparer)new sortNumAscendingHelper();
        }

        private class sortNumDeskcendingHelper : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                Remedy r1 = (Remedy)a;
                Remedy r2 = (Remedy)b;

                if (r1.num < r2.num)
                    return 1;

                if (r1.num > r2.num)
                    return -1;

                else
                    return 0;
            }
        }

        public static IComparer sortNumDeskcending()
        {
            return (IComparer)new sortNumDeskcendingHelper();
        }
    };




    class Tincture : Remedy
    {

        private int date;
        private string type2;

        public void set_type2()
        {
            try
            {
                Console.Write("Enter type2: ");
                type2 = Console.ReadLine();
            }
            catch
            {
                Console.WriteLine("error");
                set_type2();
            }
        }
        public void set_date()
        {
            try
            {
                Console.Write("Enter date: ");
                date = int.Parse(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("error");
                set_date();
            }
        }
    };
}


Create a new paste based on this one


Comments: