Постановка задания
Таблица 12.1.
№ п.п |
Задание |
1
|
Реализовать класс Bankomat, моделирующий работу банкомата. Поля: номер банкомата, количество денег в банкомате, минимальная и максимальная сумма снятия. Операции: инициализация общего количества денег в банкомате при его загрузке, вывод на экран данных о минимальной и максимальной сумме снятия, снятие суммы с проверкой на наличие нужной суммы на счету. Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для гривен и byte - для копеек. Операции: сложение, вычитание, сравнение и вывод числа прописью (дробная часть при выводе на экран должна быть отделена от целой запятой). Реализовать класс Accоunt, представляющий собой банковский счет. Поля: ФИО владельца, номер счета, процент начисления, сумма в гривнах. Операции: снять часть денег со счета, положить деньги на счет, начислить процент, перевести сумму в доллары или евро, вывести сумму прописью. |
2
|
Реализовать класс Accоunt, представляющий собой банковский счет. Поля: ФИО владельца, номер счета, процент начисления, сумма в гривнах. Операции: открытие нового счета выполняется операцией инициализации; сменить владельца счета, снять часть денег со счета, положить деньги на счет, начислить процент, перевести сумму в доллары или евро, вывести сумму прописью. Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для гривен и byte - для копеек. Операции: сложение, вычитание, сравнение и вывод числа прописью (дробная часть при выводе на экран должна быть отделена от целой запятой). Создать отдельный класс Persona с полями Фамилия, Имя, Отчество, Адрес, Телефон и операциями корректировки данных. |
ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ
Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для гривен и byte - для копеек. Операции: сложение, вычитание, умножение, деление, деление на целое число. Реализовать класс Accоunt, представляющий собой банковский счет. Поля: ФИО владельца, номер счета, процент начисления, сумма в гривнах. Операции: открытие нового счета выполняется операцией инициализации, снять часть денег со счета, изменить фамилию вкладчика. |
ПРОГРАММА
Решение:
using System;
class Money
{
long grn; //поля класса
byte kop;
public Money() //конструктор класса Money
{
//...
}
public Money(Money M)
: this(M.grn, M.kop)//перегруженный конструктор класса Money
{
//...
}
public Money(long g, byte k)//перегруженный конструктор класса Money
{
grn = g;
kop = k;
}
public Money(double g)//перегруженный конструктор класса Money
{
grn =(long)(System.Math.Floor(g));
kop = (byte)((g-grn)*100);
}
public Money sum(Money a, Money b)
{
Money m = new Money();
long s;
s = a.kop + a.grn * 100 + b.kop + b.grn * 100;
m.grn = (long)s / 100;
m.kop = (byte)(s - m.grn * 100);
return m;
}
public Money razn(Money a, Money b)
{
Money m = new Money();
long s;
s = (a.kop + a.grn * 100) - (b.kop + b.grn * 100);
m.grn = (long)s / 100;
m.kop = (byte)(s - m.grn * 100);
return m;
}
public Money proizv(Money a, Money b)
{
Money m = new Money();
long s;
s = (a.kop + a.grn * 100) * (b.kop + b.grn * 100);
m.grn = (long)s / 10000;
m.kop = (byte)(s - m.grn * 100);
return m;
}
public float del(Money a, Money b)
{
float kol;
long s;
kol = (float)(a.kop + a.grn * 100) / (b.kop + b.grn * 100);
return kol;
}
public Money del(Money a, int b)//перегруженный метод
{
Money m = new Money();
long s;
s = (a.kop + a.grn * 100) / b;
m.grn = (long)s / 100;
m.kop = (byte)(s - m.grn * 100);
return m;
}
public void print()
{
Console.WriteLine(grn + "," + kop);
}
}
class Account
{
string FIO;
string nom;
float procent;
Money sum;
public Account() //конструктор класса
{
Console.WriteLine("Введите ФИО вкладчика:");
FIO = Console.ReadLine();
Console.WriteLine("Введите процент по ставке:");
procent = float.Parse(Console.ReadLine());
nom = "00000001";
Console.WriteLine("Введите сумму вклада:");
double d = double.Parse(Console.ReadLine());
sum = new Money((long)d, (byte)((d - (long)d) * 100));
}
public void smena_FIO()
{
Console.WriteLine("Введите новое ФИО вкладчика:");
FIO = Console.ReadLine();
}
public void sniatie()
{
Console.WriteLine("Укажите сумму снятия:");
double d = double.Parse(Console.ReadLine());
Money m = new Money((long)d, (byte)((d - (long)d) * 100));
sum = m.razn(sum, m);
}
public void print()
{
Console.WriteLine("ФИО вкладчика: " + FIO);
Console.WriteLine("Номер вклада: " + nom);
Console.WriteLine("Сумма вклада: "); sum.print();
Console.WriteLine("Процент по вкладу: " + procent);
}
// Вызывается при утилизации объекта.
~Account()
{
Console.WriteLine("Программу выполнил ");
}
}
class Rezult
{
static void Main()
{
Money m = new Money();
Money m1 = new Money(34, 56);
Money m2 = new Money(2.0);
m = m.sum(m1, m2); m.print();
m = m.razn(m1, m2); m.print();
m = m.proizv(m1, m2); m.print();
m = m.del(m1, 3); m.print();
Console.WriteLine(m.del(m1, m2));
Account a = new Account();
a.smena_FIO(); a.print();
a.sniatie(); a.print();
Console.ReadKey();
}
}
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ
