ChameL1oN

ЯП_ХуйняПроБанки

Apr 17th, 2015
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.51 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7.  
  8. namespace YAP_28_03
  9. {
  10. abstract class Deposit
  11. {
  12. public int Number { get; set; }
  13. public int Moneys { get; set; }
  14. public DateTime Data { get; set; }
  15.  
  16. public Deposit(int Number, int Moneys, DateTime Data)
  17. {
  18. this.Number = Number;
  19. this.Moneys = Moneys;
  20. this.Data = Data;
  21. }
  22.  
  23. public void Zapros(){
  24. Console.WriteLine(" Number : " + this.Number + " Moneys : " + this.Moneys );
  25. }
  26. }
  27. class Saving : Deposit
  28. {
  29. public double Proc { get; set; }
  30.  
  31. public Saving(int Number, int Moneys, DateTime Data, double Proc):base(Number,Moneys,Data)
  32. {
  33. this.Proc = Proc;
  34. }
  35. public void Print()
  36. {
  37. Console.WriteLine(" Number : " + this.Number + " Moneys : " + this.Moneys + " Procent : " + this.Proc + " Data : " + this.Data);
  38. }
  39. }
  40.  
  41. class Cheking : Deposit
  42. {
  43. public int CurChek { get; set; }
  44.  
  45. public int MaxChek { get; set; }
  46.  
  47. public Cheking(int Number, int Moneys, DateTime Data, int MaxChek): base(Number, Moneys, Data)
  48. {
  49. CurChek = 0;
  50. this.MaxChek = MaxChek;
  51. }
  52. public void Print()
  53. {
  54. Console.WriteLine(" Number : " + this.Number + " Moneys : " + this.Moneys + " CurChek : " + this.CurChek + " Data : " + this.Data);
  55. }
  56. }
  57.  
  58.  
  59.  
  60.  
  61.  
  62. class Program
  63. {
  64. static void Main(string[] args)
  65. {
  66. StreamReader s = File.OpenText("input.txt");
  67. StreamReader s2 = File.OpenText("input2.txt");
  68. int n, n2;
  69. bool miss = false;
  70. n = int.Parse(s.ReadLine());
  71. n2 = int.Parse(s2.ReadLine());
  72. Saving[] saving = new Saving[n];
  73. Cheking[] chek = new Cheking[n2];
  74. Console.WriteLine(" ");
  75. Console.WriteLine("Savings Account : ");
  76. Console.WriteLine(" ");
  77. for (int i = 0; i < n; i++)
  78. {
  79. string[] w = new string[6];
  80. string f = s.ReadLine();
  81. w[0] = f.Split(' ')[0];
  82. w[1] = f.Split(' ')[1];
  83. w[2] = f.Split(' ')[2];
  84. w[3] = f.Split(' ')[3];
  85. w[4] = f.Split(' ')[4];
  86. w[5] = f.Split(' ')[5];
  87. int Number = Convert.ToInt32(w[0]);
  88. int Count = Convert.ToInt32(w[1]);
  89. int day = Convert.ToInt32(w[2]);
  90. int month = Convert.ToInt32(w[3]);
  91. int age = Convert.ToInt32(w[4]);
  92. double Proc = Convert.ToDouble(w[5]);
  93. saving[i] = new Saving(Number, Count, new DateTime(age, month, day), Proc);
  94. saving[i].Print();
  95. }
  96. Console.WriteLine(" ");
  97. Console.WriteLine("Checking Account : ");
  98. Console.WriteLine(" ");
  99. for (int i = 0; i < n2; i++)
  100. {
  101. string[] w = new string[6];
  102. string f = s2.ReadLine();
  103. w[0] = f.Split(' ')[0];
  104. w[1] = f.Split(' ')[1];
  105. w[2] = f.Split(' ')[2];
  106. w[3] = f.Split(' ')[3];
  107. w[4] = f.Split(' ')[4];
  108. w[5] = f.Split(' ')[5];
  109. int Number = Convert.ToInt32(w[0]);
  110. int Count = Convert.ToInt32(w[1]);
  111. int day = Convert.ToInt32(w[2]);
  112. int month = Convert.ToInt32(w[3]);
  113. int age = Convert.ToInt32(w[4]);
  114. int MaxChek = Convert.ToInt32(w[5]);
  115. chek[i] = new Cheking(Number, Count, new DateTime(age, month, day), MaxChek);
  116. chek[i].Print();
  117. }
  118. Console.WriteLine(" ");
  119. Console.WriteLine(" ");
  120. Console.WriteLine("Введи номер счёта для которого необходимо определить сумму процентов");
  121. int a = int.Parse(Console.ReadLine());
  122.  
  123. for (int j = 0; j < saving.Length; j++)
  124. {
  125. if (a == saving[j].Number)
  126. {
  127. int b = saving[j].Moneys;
  128. for (int i = 0; i < (2015 - (saving[j].Data).Year); i++)
  129. {
  130. saving[j].Moneys += (int)((saving[j].Proc / 100) * saving[j].Moneys);
  131. }
  132. Console.WriteLine("Сумма процентов , поступивших на счёт [" + saving[j].Number + "] = " + (saving[j].Moneys - b));
  133. Console.WriteLine("Текущая сумма на счёте [" + saving[j].Number + "] = " + saving[j].Moneys);
  134. miss = true;
  135. }
  136. }
  137. if (miss == false)
  138. {
  139. Console.WriteLine("Счёта с таким номером не существует");
  140. }
  141. Console.WriteLine(" ");
  142. Console.WriteLine("Введи номер счёта с которого необходимо снять сумму ");
  143. miss = false;
  144. a = int.Parse(Console.ReadLine());
  145. for (int j = 0; j < saving.Length; j++)
  146. {
  147. if (a == saving[j].Number)
  148. {
  149. Console.WriteLine("Введи сумму для снятия");
  150. int sum = int.Parse(Console.ReadLine());
  151. if (sum < saving[j].Moneys)
  152. saving[j].Moneys -= sum;
  153. else
  154. Console.WriteLine("На счёте не достаточно средств");
  155. Console.WriteLine("Текущая сумма на счёте [" + saving[j].Number + "] = " + saving[j].Moneys);
  156. miss = true;
  157. }
  158. }
  159. if (miss == false)
  160. {
  161. Console.WriteLine("Счёта с таким номером не существует");
  162. }
  163. TakeMoneys(chek);
  164.  
  165. }
  166. static void TakeMoneys(Cheking[] a)
  167. {
  168. Console.WriteLine(" ");
  169. Console.WriteLine(" ");
  170. Console.WriteLine(" ");
  171. Console.WriteLine("ФУНКЦИЯ СНЯТИЯ СРЕДСТВ С Checking СЧЁТА : ");
  172. Console.WriteLine(" ");
  173. Console.WriteLine(" ");
  174. Console.WriteLine("Введите номер счёта , с которого необходимо снять средства");
  175. int number = int.Parse(Console.ReadLine());
  176. bool end = true;
  177. int sumbad = 0;
  178. int k=0;
  179. for (int i = 0; i < a.Length; i++)
  180. {
  181. if (number == a[i].Number)
  182. end = false;
  183. k = i;
  184. }
  185. if (end == true)
  186. {
  187. Console.WriteLine("Такого счёта не существует");
  188. }
  189. while (!end)
  190. {
  191. Console.WriteLine("Выберите операцию");
  192.  
  193. int sum;
  194. Console.WriteLine("1 - Снять сумму");
  195. Console.WriteLine("2 - Получить информацию по состоянию счёта");
  196. Console.WriteLine("3 - Получить информацию по состоянию штрафов");
  197. Console.WriteLine("4 - Сообщить о начале нового месяца");
  198. Console.WriteLine("5 - Закончить выполнение");
  199. int switc = int.Parse(Console.ReadLine());
  200. switch (switc)
  201. {
  202. case (1):
  203. Console.WriteLine("Введите сумму для снятия");
  204. sum = int.Parse(Console.ReadLine());
  205. if (sum < a[k].Number)
  206. {
  207. if (a[k].CurChek < a[k].MaxChek)
  208. {
  209. a[k].Moneys -= sum;
  210. a[k].CurChek++;
  211. }
  212. else
  213. {
  214. if (a[k].Moneys > sum + (sum / 20))
  215. {
  216. a[k].Moneys -= sum;
  217. a[k].Moneys -= sum / 20;
  218. sumbad = sumbad+(sum / 20);
  219. a[k].CurChek++;
  220. }
  221. else
  222. {
  223. Console.WriteLine("Не достаточно средств для снятия денег и погашения штрафа");
  224. }
  225. }
  226. }
  227. break;
  228. case (2): Console.WriteLine("В данный момент на счёте " + a[k].Moneys + " рублей"); break;
  229. case (3):
  230. Console.WriteLine("В текущем месяце снятий со счёта : " + a[k].CurChek);
  231. Console.WriteLine("Максимальное кол-во операций счёта за месяц " + a[k].MaxChek);
  232. if(a[k].CurChek > a[k].MaxChek)
  233. Console.WriteLine("Кол-во нарушений месячной квоты : " + (a[k].CurChek - a[k].MaxChek));
  234. else
  235. Console.WriteLine("Кол-во нарушений месячной квоты : 0");
  236. Console.WriteLine("Сумма штрафов месячной квоты : " + sumbad);
  237. break;
  238. case (4): a[k].CurChek = 0; break;
  239. case (5): end = true; break;
  240. default: Console.WriteLine("Ошибка ввода"); break;
  241. }
  242.  
  243. }
  244. }
  245. }
  246. }
Advertisement
Add Comment
Please, Sign In to add comment