Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace YAP_28_03
- {
- abstract class Deposit
- {
- public int Number { get; set; }
- public int Moneys { get; set; }
- public DateTime Data { get; set; }
- public Deposit(int Number, int Moneys, DateTime Data)
- {
- this.Number = Number;
- this.Moneys = Moneys;
- this.Data = Data;
- }
- public void Zapros(){
- Console.WriteLine(" Number : " + this.Number + " Moneys : " + this.Moneys );
- }
- }
- class Saving : Deposit
- {
- public double Proc { get; set; }
- public Saving(int Number, int Moneys, DateTime Data, double Proc):base(Number,Moneys,Data)
- {
- this.Proc = Proc;
- }
- public void Print()
- {
- Console.WriteLine(" Number : " + this.Number + " Moneys : " + this.Moneys + " Procent : " + this.Proc + " Data : " + this.Data);
- }
- }
- class Cheking : Deposit
- {
- public int CurChek { get; set; }
- public int MaxChek { get; set; }
- public Cheking(int Number, int Moneys, DateTime Data, int MaxChek): base(Number, Moneys, Data)
- {
- CurChek = 0;
- this.MaxChek = MaxChek;
- }
- public void Print()
- {
- Console.WriteLine(" Number : " + this.Number + " Moneys : " + this.Moneys + " CurChek : " + this.CurChek + " Data : " + this.Data);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- StreamReader s = File.OpenText("input.txt");
- StreamReader s2 = File.OpenText("input2.txt");
- int n, n2;
- bool miss = false;
- n = int.Parse(s.ReadLine());
- n2 = int.Parse(s2.ReadLine());
- Saving[] saving = new Saving[n];
- Cheking[] chek = new Cheking[n2];
- Console.WriteLine(" ");
- Console.WriteLine("Savings Account : ");
- Console.WriteLine(" ");
- for (int i = 0; i < n; i++)
- {
- string[] w = new string[6];
- string f = s.ReadLine();
- w[0] = f.Split(' ')[0];
- w[1] = f.Split(' ')[1];
- w[2] = f.Split(' ')[2];
- w[3] = f.Split(' ')[3];
- w[4] = f.Split(' ')[4];
- w[5] = f.Split(' ')[5];
- int Number = Convert.ToInt32(w[0]);
- int Count = Convert.ToInt32(w[1]);
- int day = Convert.ToInt32(w[2]);
- int month = Convert.ToInt32(w[3]);
- int age = Convert.ToInt32(w[4]);
- double Proc = Convert.ToDouble(w[5]);
- saving[i] = new Saving(Number, Count, new DateTime(age, month, day), Proc);
- saving[i].Print();
- }
- Console.WriteLine(" ");
- Console.WriteLine("Checking Account : ");
- Console.WriteLine(" ");
- for (int i = 0; i < n2; i++)
- {
- string[] w = new string[6];
- string f = s2.ReadLine();
- w[0] = f.Split(' ')[0];
- w[1] = f.Split(' ')[1];
- w[2] = f.Split(' ')[2];
- w[3] = f.Split(' ')[3];
- w[4] = f.Split(' ')[4];
- w[5] = f.Split(' ')[5];
- int Number = Convert.ToInt32(w[0]);
- int Count = Convert.ToInt32(w[1]);
- int day = Convert.ToInt32(w[2]);
- int month = Convert.ToInt32(w[3]);
- int age = Convert.ToInt32(w[4]);
- int MaxChek = Convert.ToInt32(w[5]);
- chek[i] = new Cheking(Number, Count, new DateTime(age, month, day), MaxChek);
- chek[i].Print();
- }
- Console.WriteLine(" ");
- Console.WriteLine(" ");
- Console.WriteLine("Введи номер счёта для которого необходимо определить сумму процентов");
- int a = int.Parse(Console.ReadLine());
- for (int j = 0; j < saving.Length; j++)
- {
- if (a == saving[j].Number)
- {
- int b = saving[j].Moneys;
- for (int i = 0; i < (2015 - (saving[j].Data).Year); i++)
- {
- saving[j].Moneys += (int)((saving[j].Proc / 100) * saving[j].Moneys);
- }
- Console.WriteLine("Сумма процентов , поступивших на счёт [" + saving[j].Number + "] = " + (saving[j].Moneys - b));
- Console.WriteLine("Текущая сумма на счёте [" + saving[j].Number + "] = " + saving[j].Moneys);
- miss = true;
- }
- }
- if (miss == false)
- {
- Console.WriteLine("Счёта с таким номером не существует");
- }
- Console.WriteLine(" ");
- Console.WriteLine("Введи номер счёта с которого необходимо снять сумму ");
- miss = false;
- a = int.Parse(Console.ReadLine());
- for (int j = 0; j < saving.Length; j++)
- {
- if (a == saving[j].Number)
- {
- Console.WriteLine("Введи сумму для снятия");
- int sum = int.Parse(Console.ReadLine());
- if (sum < saving[j].Moneys)
- saving[j].Moneys -= sum;
- else
- Console.WriteLine("На счёте не достаточно средств");
- Console.WriteLine("Текущая сумма на счёте [" + saving[j].Number + "] = " + saving[j].Moneys);
- miss = true;
- }
- }
- if (miss == false)
- {
- Console.WriteLine("Счёта с таким номером не существует");
- }
- TakeMoneys(chek);
- }
- static void TakeMoneys(Cheking[] a)
- {
- Console.WriteLine(" ");
- Console.WriteLine(" ");
- Console.WriteLine(" ");
- Console.WriteLine("ФУНКЦИЯ СНЯТИЯ СРЕДСТВ С Checking СЧЁТА : ");
- Console.WriteLine(" ");
- Console.WriteLine(" ");
- Console.WriteLine("Введите номер счёта , с которого необходимо снять средства");
- int number = int.Parse(Console.ReadLine());
- bool end = true;
- int sumbad = 0;
- int k=0;
- for (int i = 0; i < a.Length; i++)
- {
- if (number == a[i].Number)
- end = false;
- k = i;
- }
- if (end == true)
- {
- Console.WriteLine("Такого счёта не существует");
- }
- while (!end)
- {
- Console.WriteLine("Выберите операцию");
- int sum;
- Console.WriteLine("1 - Снять сумму");
- Console.WriteLine("2 - Получить информацию по состоянию счёта");
- Console.WriteLine("3 - Получить информацию по состоянию штрафов");
- Console.WriteLine("4 - Сообщить о начале нового месяца");
- Console.WriteLine("5 - Закончить выполнение");
- int switc = int.Parse(Console.ReadLine());
- switch (switc)
- {
- case (1):
- Console.WriteLine("Введите сумму для снятия");
- sum = int.Parse(Console.ReadLine());
- if (sum < a[k].Number)
- {
- if (a[k].CurChek < a[k].MaxChek)
- {
- a[k].Moneys -= sum;
- a[k].CurChek++;
- }
- else
- {
- if (a[k].Moneys > sum + (sum / 20))
- {
- a[k].Moneys -= sum;
- a[k].Moneys -= sum / 20;
- sumbad = sumbad+(sum / 20);
- a[k].CurChek++;
- }
- else
- {
- Console.WriteLine("Не достаточно средств для снятия денег и погашения штрафа");
- }
- }
- }
- break;
- case (2): Console.WriteLine("В данный момент на счёте " + a[k].Moneys + " рублей"); break;
- case (3):
- Console.WriteLine("В текущем месяце снятий со счёта : " + a[k].CurChek);
- Console.WriteLine("Максимальное кол-во операций счёта за месяц " + a[k].MaxChek);
- if(a[k].CurChek > a[k].MaxChek)
- Console.WriteLine("Кол-во нарушений месячной квоты : " + (a[k].CurChek - a[k].MaxChek));
- else
- Console.WriteLine("Кол-во нарушений месячной квоты : 0");
- Console.WriteLine("Сумма штрафов месячной квоты : " + sumbad);
- break;
- case (4): a[k].CurChek = 0; break;
- case (5): end = true; break;
- default: Console.WriteLine("Ошибка ввода"); break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment