codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
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); */ using (FileStream fs = File.Create(@"C:\SerializationTest.bin")) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, med); } break; case "load": /* Console.Write("Enter a file name: "); fileName = Console.ReadLine(); Console.WriteLine("fileName: " + fileName); */ using (FileStream fs = File.OpenRead(@"C:\SerializationTest.bin")) { BinaryFormatter formatter = new BinaryFormatter(); med = formatter.Deserialize(fs) as Remedy[]; } 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(); } } [Serializable] 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); } }; [Serializable] 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(); } } }; /* [Serializable] public class SerializableObject : ISerializable { private Remedy[] remedies; public Remedy[] Remedies { get { return this.remedies; } set { this.remedies = value; } } public SerializableObject() { } public SerializableObject(SerializationInfo sInfo, StreamingContext contextArg) { this.remedies = (Remedy[])sInfo.GetValue("Remedies", typeof(Remedy[])); } public void GetObjectData(SerializationInfo sInfo, StreamingContext contextArg) { sInfo.AddValue("Remedies", this.remedies); } } */ }
Private
[
?
]
Run code
Submit