Advertisement
Guest User

Untitled

a guest
May 28th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.00 KB | None | 0 0
  1. #pragma once
  2. #include <iostream>
  3. #include <string>
  4. #include <iomanip>
  5. #include <fstream>
  6. #include "Competition.h"
  7.  
  8. using namespace std;
  9. //
  10. bool isValidEnterName(string strD)
  11. {
  12. char chsign = strD[0];
  13. if (chsign >= 65 && chsign <=90) return true;
  14. else return false;
  15. }
  16. //
  17. bool isValidEnterDay(int iDay)
  18. {
  19. int iD = iDay;
  20. if( iD >= 01 && iD <= 31) return true;
  21. else return false;
  22. }
  23. //
  24. bool isValidEnterMonth(int iMonth)
  25. {
  26. int iM = iMonth;
  27. if( iM >= 01 && iM <= 12 ) return true;
  28. else return false;
  29. }
  30. //
  31. bool isValidEnterYear(int iYear)
  32. {
  33. int iY = iYear;
  34. if( iY >= 2000 && iY <= 2040 ) return true;
  35. else return false;
  36. }
  37. //
  38. //int getDay()
  39. //{
  40. // int iDay;
  41. // while (true)
  42. // {
  43. // cin >> iDay;
  44. // if(isValidEnterDay(iDay)) return iDay;
  45. // else
  46. // {
  47. // if (!cin)
  48. // {
  49. // cin.clear();
  50. // while (cin.get() != '\n');
  51. // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  52. // }
  53. // else
  54. // {
  55. // if (cin.get() == '\n') return iDay;
  56. // else
  57. // {
  58. // cin.clear();
  59. // while (cin.get() != '\n');
  60. // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  61. // }
  62. // }
  63. // }
  64. // }
  65. //}
  66. ////
  67. //int getMonth()
  68. //{
  69. // int iMonth;
  70. // while (true)
  71. // {
  72. // cin >> iMonth;
  73. // if(isValidEnterMonth(iMonth)) return iMonth;
  74. // else
  75. // {
  76. // if (!cin)
  77. // {
  78. // cin.clear();
  79. // while (cin.get() != '\n');
  80. // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  81. // }
  82. // else
  83. // {
  84. // if (cin.get() == '\n') return iMonth;
  85. // else
  86. // {
  87. // cin.clear();
  88. // while (cin.get() != '\n');
  89. // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  90. // }
  91. // }
  92. // }
  93. // }
  94. //}
  95. ////
  96. //int getYear()
  97. //{
  98. // int iYear;
  99. // while (true)
  100. // {
  101. // cin >> iYear;
  102. // if(isValidEnterYear(iYear)) return iYear;
  103. // else
  104. // {
  105. // if (!cin)
  106. // {
  107. // cin.clear();
  108. // while (cin.get() != '\n');
  109. // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  110. // }
  111. // else
  112. // {
  113. // if (cin.get() == '\n') return iYear;
  114. // else
  115. // {
  116. // cin.clear();
  117. // while (cin.get() != '\n');
  118. // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  119. // }
  120. // }
  121. // }
  122. // }
  123. //}
  124. //
  125. double getNumber()
  126. {
  127. double dblD;
  128. while (true)
  129. {
  130. cin >> dblD;
  131. if (!cin)
  132. {
  133. cin.clear();
  134. while (cin.get() != '\n');
  135. cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  136. }
  137. else
  138. {
  139. if (cin.get() == '\n')
  140. return dblD;
  141. else
  142. {
  143. cin.clear();
  144. while (cin.get() != '\n');
  145. cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  146. }
  147. }
  148. }
  149. }
  150. //
  151. string getWord()
  152. {
  153. string strD;
  154. while (true)
  155. {
  156. cin >> strD;
  157. if (isValidEnterName(strD)) return strD;
  158. else
  159. {
  160. cin.clear();
  161. while (cin.get() != '\n');
  162. cout << " Ошибка! Введите корректное значение(C большой буквы!)\n";
  163. }
  164. }
  165. }
  166.  
  167. int getDateCmp()
  168. {
  169. char chC = '.';
  170. int iDay;
  171. int iMonth;
  172. int iYear;
  173. while (true)
  174. {
  175. fstream D("date.txt",ios::out);
  176. cin >> iDay;
  177. D << iDay << ".";
  178. cin>> iMonth;
  179. D << iMonth << ".";
  180. cin >> iYear;
  181. D << iYear << ".";
  182. if(isValidEnterDay(iDay)&&isValidEnterMonth(iMonth)&&isValidEnterYear(iYear)) { return iDay, iMonth, iYear; }
  183. else
  184. {
  185. if (!cin)
  186. {
  187. cin.clear();
  188. while (cin.get() != '\n');
  189. cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  190. }
  191. else
  192. {
  193. if (cin.get() == '\n') return iDay,iMonth,iYear;
  194. else
  195. {
  196. cin.clear();
  197. while (cin.get() != '\n');
  198. cout << " Ошибка! Пожалуйста, повторите ввод.\n";
  199. }
  200. }
  201. }
  202. D.close();
  203. }
  204. fstream D("date.txt",ios::in);
  205. return 0;
  206. }
  207.  
  208. void main()
  209. {
  210. setlocale(LC_ALL,"RUS");
  211. char chkey;
  212. int iA,ivar;
  213. int iSize = 0;
  214. cout << "\t\t\tЗдравствуйте, пользователь!" << endl;
  215. for(;;)
  216. {
  217. cout << "\n Пожалуйста, выберите вариант работы:\n 1) удаление прошлой сессии записи ланных и начало новой сессии заполнения блока [Cоревнование];\n 2) заполнение блока [Соревнование] без удаления прошлой сессии с файла;\n 3) вывод данных блока [Соревнование] с файла;\n 4) полная очистка файла."<<endl;
  218. iA = int(getNumber());
  219. switch(iA)
  220. {
  221. case 1: ivar = 1;
  222. {
  223. fstream F("Competition.txt",ios::out);
  224. class Competition *pbplA;
  225. while(true)
  226. {
  227. cout << " Введите количество элементов класса [Соревнование]\n";
  228. iSize = int(getNumber());
  229. if(iSize>0)
  230. break;
  231. cout<<"Ошибка! Повторите ввод" << endl;
  232. }
  233. pbplA = new Competition[iSize];
  234. string strK;
  235. int iK = 0;
  236. for(int i = 0; i < iSize; i++)
  237. {
  238. cout << "1.Название сорвенований: ";
  239. strK = getWord();
  240. F << strK << endl;
  241. pbplA[i].setName(strK);
  242.  
  243. cout << "2.Вид спорта: ";
  244. strK = getWord();
  245. F << strK << endl;
  246. pbplA[i].setViev(strK);
  247.  
  248. cout << "3.Дата проведения: ";
  249. iK = getDateCmp();
  250. F << iK << endl;
  251. pbplA[i].setDate(iK);
  252. }
  253. delete [] pbplA;
  254. } break;
  255.  
  256. case 2: ivar = 2;
  257. {
  258. fstream F("Competition.txt",ios::app);
  259. class Competition *pbplA;
  260. while(true)
  261. {
  262. cout << " Введите количество элементов класса [Соревнование]\n";
  263. iSize = int(getNumber());
  264. if(iSize>0)
  265. break;
  266. cout<<"Ошибка! Повторите ввод" << endl;
  267. }
  268. pbplA = new Competition[iSize];
  269. string strK;
  270. int iK = 0;
  271. for(int i = 0; i < iSize; i++)
  272. {
  273. cout << "1.Название сорвенований: ";
  274. strK = getWord();
  275. F << strK << endl;
  276. pbplA[i].setName(strK);
  277.  
  278. cout << "2.Вид спорта: ";
  279. strK = getWord();
  280. F << strK << endl;
  281. pbplA[i].setViev(strK);
  282.  
  283. cout << "3.Дата проведения: " <<" . "<<" . ";
  284. iK = getDateCmp();
  285. F << iK << endl;
  286. pbplA[i].setDate(iK);
  287. }
  288. delete [] pbplA;
  289. } break;
  290.  
  291. /*case 3: ivar = 3;
  292. {
  293. fstream F("Competition.txt",ios::in);
  294. string strK;
  295. int iK;
  296. for
  297.  
  298. }break;*/
  299. }
  300. cout<<"\n Что бы закончить работу программы нажмите N или n. Для продолжения работы работы введите любое другое значение."<<endl;
  301. cin>>chkey;
  302. if(chkey=='N'||chkey=='n') break;
  303. else continue;
  304. }
  305. system ("Pause");
  306. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement