fork(1) download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Diagnostics;
  6. using System.IO;
  7. using System.Text.RegularExpressions;
  8.  
  9. namespace ConsoleApplication1
  10. {
  11. abstract class Currency //Абстракт класс, на его основе класс доллар, я врубаю что незя создавать его экземпляр на прямую, но мне надо св-вами его долларов, евро и фунтов воспользоваца.
  12. {
  13. decimal dollar, euro, pound, rub; //Поля
  14. public Currency(decimal dollar, decimal euro, decimal pound) //Конуструктор
  15. {
  16. this.dollar = dollar;
  17. this.euro = euro;
  18. this.pound = pound;
  19. }
  20. public abstract void Cent(decimal a) //Перевод в центы, для баксов и евро
  21. {
  22. Console.WriteLine(a * 100 + " Центов");
  23. }
  24. public abstract void ToRub(); //Перевод в баксы, он тупо изменяеца для каждого свой
  25. public decimal Dollar
  26. {
  27. get { return dollar; }
  28. set
  29. {
  30. if (value > 0) dollar = value;
  31. else dollar = 0;
  32. }
  33. }
  34. public decimal Euro
  35. {
  36. get { return euro; }
  37. set
  38. {
  39. if (value > 0) euro = value;
  40. else euro = 0;
  41. }
  42. }
  43. public decimal Pound
  44. {
  45. get { return pound; }
  46. set
  47. {
  48. if (value > 0) pound = value;
  49. else pound = 0;
  50. }
  51. }
  52. }
  53. class Dollar : Currency
  54. {
  55. override public void ToRub(decimal a, decimal b) //В рубли с доллара
  56. {
  57. b = a * 282212/10000;
  58. }
  59. }
  60. class Euro : Currency
  61. {
  62. override public void ToRub(decimal a, decimal b) //В рубли с евро
  63. {
  64. b = a * 408304/10000;
  65. }
  66. }
  67. class Pound : Currency
  68. {
  69. override public void ToRub(decimal a, decimal b) //В рубли с фунта
  70. {
  71. b = a * 458721/10000;
  72. }
  73. override public void Cent(decimal a) //Пенсы, отличаеца надписью, не центы а пенсы :)
  74. {
  75. Console.WriteLine(a * 100 + " Пенсов");
  76. }
  77. }
  78. class Purse
  79. {
  80. abstract List<Currency> cash;
  81.  
  82. //Вот что мне надо тут накалякать, чтобы экземляр этого класса, содержал список, каждый элемент которого был типа list<класс свыше> кошелек ... и кошелек.add(new класс(decimal dollar, decimal euro, decimal pound));
  83. }
  84.  
  85.  
  86. class Program
  87. {
  88. /*void Read(List<Currency> a)
  89.   {
  90.   StreamReader Money = new StreamReader(@"C:\\Money.txt");
  91.   char[] delim = new char[] { ' ' };
  92.   List<string> list = new List<string>(Money.ReadToEnd().Split(delim, StringSplitOptions.RemoveEmptyEntries));
  93.   Money.Close();
  94.   for (int i = 0; i < list.Count; i += 3) //Ибо каждый записаный элемент будит как бэ на 0вых (и +3) позициах бачинскии, ну а дальше понятно, ниже все написано :)
  95.   {
  96.   a.Add(new Currency(Convert.ToDecimal(list[i]),Convert.ToDecimal(list[i + 1]), Convert.ToDecimal(list[i + 2])));
  97.   }
  98.   foreach (int temp in a) Console.WriteLine(temp); //Вывод массива
  99.   }
  100.   void Write(List<Currency> a)
  101.   {
  102.   StreamWriter Money = new StreamWriter(@"C:\Money.txt");
  103.   Money.WriteLine("{0,9}\t{1,16}\t{2,10}", "Доллароф", "Еуроф", "Фунтов :)"); //Шапку правда пока что методом РЕД не прочесть, но регекс мне в помощь блеа
  104.   foreach (Currency elem in a) Money.WriteLine("{0,9}\t{1,16}\t{2,10}/n", "Кол-во баксов", "Евро", "ФУнтов"); //Тут доработать естесно, чтоб каждый раз вписывалось именно то содержимое, и то что не инт понятно
  105.   Money.Close();
  106.   }*/
  107. static void Main(string[] args)
  108. {
  109. /*Создать абстрактный класс Currency для работы с денежными суммами. Определить в нем методы перевода в рубли и вывода на экран.
  110.   * На его основе реализовать классы Dollar, Euro и Pound (фунт стерлингов) с возможностью пересчета в центы и пенсы соответственно.
  111. Создать класс Purse (кошелек), содержащий массив/параметризованную коллекцию объектов этих классов в динамической памяти.
  112.   * Предусмотреть возможность вывода общей суммы, переведенной в рубли, и суммы по каждой из валют.
  113.   * Написать демонстрационную программу, в которой будут использоваться все методы классов.
  114. Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.
  115. */
  116.  
  117. }
  118. }
  119. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cs(80,33): error CS0681: The modifier 'abstract' is not valid on fields. Try using a property instead
Compilation failed: 1 error(s), 0 warnings
stdout
Standard output is empty