Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lr_c#_12.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
107.01 Кб
Скачать

Постановка задания

Таблица 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();

}

}

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]