abstract class Currency //Абстракт класс, на его основе класс доллар, я врубаю что незя создавать его экземпляр на прямую, но мне надо св-вами его долларов, евро и фунтов воспользоваца.
{
decimal dollar, euro, pound, rub;//Поля
public Currency(decimal dollar, decimal euro, decimal pound)//Конуструктор
{
this.dollar= dollar;
this.euro= euro;
this.pound= pound;
}
public abstract void Cent(decimal a)//Перевод в центы, для баксов и евро
{
Console.WriteLine(a *100+" Центов");
}
public abstract void ToRub();//Перевод в баксы, он тупо изменяеца для каждого свой
public decimal Dollar
{
get {return dollar;}
set
{
if(value >0) dollar = value;
else dollar =0;
}
}
public decimal Euro
{
get {return euro;}
set
{
if(value >0) euro = value;
else euro =0;
}
}
public decimal Pound
{
get {return pound;}
set
{
if(value >0) pound = value;
else pound =0;
}
}
}
class Dollar : Currency
{
override public void ToRub(decimal a, decimal b)//В рубли с доллара
{
b = a *282212/10000;
}
}
class Euro : Currency
{
override public void ToRub(decimal a, decimal b)//В рубли с евро
{
b = a *408304/10000;
}
}
class Pound : Currency
{
override public void ToRub(decimal a, decimal b)//В рубли с фунта
{
b = a *458721/10000;
}
override public void Cent(decimal a)//Пенсы, отличаеца надписью, не центы а пенсы :)
{
Console.WriteLine(a *100+" Пенсов");
}
}
class Purse
{
abstract List<Currency> cash;
//Вот что мне надо тут накалякать, чтобы экземляр этого класса, содержал список, каждый элемент которого был типа list<класс свыше> кошелек ... и кошелек.add(new класс(decimal dollar, decimal euro, decimal pound));
}
class Program
{
/*void Read(List<Currency> a)
{
StreamReader Money = new StreamReader(@"C:\\Money.txt");
char[] delim = new char[] { ' ' };
List<string> list = new List<string>(Money.ReadToEnd().Split(delim, StringSplitOptions.RemoveEmptyEntries));
Money.Close();
for (int i = 0; i < list.Count; i += 3) //Ибо каждый записаный элемент будит как бэ на 0вых (и +3) позициах бачинскии, ну а дальше понятно, ниже все написано :)
foreach (int temp in a) Console.WriteLine(temp); //Вывод массива
}
void Write(List<Currency> a)
{
StreamWriter Money = new StreamWriter(@"C:\Money.txt");
Money.WriteLine("{0,9}\t{1,16}\t{2,10}", "Доллароф", "Еуроф", "Фунтов :)"); //Шапку правда пока что методом РЕД не прочесть, но регекс мне в помощь блеа
foreach (Currency elem in a) Money.WriteLine("{0,9}\t{1,16}\t{2,10}/n", "Кол-во баксов", "Евро", "ФУнтов"); //Тут доработать естесно, чтоб каждый раз вписывалось именно то содержимое, и то что не инт понятно
Money.Close();
}*/
staticvoid Main(string[] args)
{
/*Создать абстрактный класс Currency для работы с денежными суммами. Определить в нем методы перевода в рубли и вывода на экран.
* На его основе реализовать классы Dollar, Euro и Pound (фунт стерлингов) с возможностью пересчета в центы и пенсы соответственно.
Создать класс Purse (кошелек), содержащий массив/параметризованную коллекцию объектов этих классов в динамической памяти.
* Предусмотреть возможность вывода общей суммы, переведенной в рубли, и суммы по каждой из валют.
* Написать демонстрационную программу, в которой будут использоваться все методы классов.
Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.