Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <iostream>
- #include <string>
- #include <iomanip>
- #include <fstream>
- #include "Competition.h"
- using namespace std;
- //
- bool isValidEnterName(string strD)
- {
- char chsign = strD[0];
- if (chsign >= 65 && chsign <=90) return true;
- else return false;
- }
- //
- bool isValidEnterDay(int iDay)
- {
- int iD = iDay;
- if( iD >= 01 && iD <= 31) return true;
- else return false;
- }
- //
- bool isValidEnterMonth(int iMonth)
- {
- int iM = iMonth;
- if( iM >= 01 && iM <= 12 ) return true;
- else return false;
- }
- //
- bool isValidEnterYear(int iYear)
- {
- int iY = iYear;
- if( iY >= 2000 && iY <= 2040 ) return true;
- else return false;
- }
- //
- //int getDay()
- //{
- // int iDay;
- // while (true)
- // {
- // cin >> iDay;
- // if(isValidEnterDay(iDay)) return iDay;
- // else
- // {
- // if (!cin)
- // {
- // cin.clear();
- // while (cin.get() != '\n');
- // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- // }
- // else
- // {
- // if (cin.get() == '\n') return iDay;
- // else
- // {
- // cin.clear();
- // while (cin.get() != '\n');
- // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- // }
- // }
- // }
- // }
- //}
- ////
- //int getMonth()
- //{
- // int iMonth;
- // while (true)
- // {
- // cin >> iMonth;
- // if(isValidEnterMonth(iMonth)) return iMonth;
- // else
- // {
- // if (!cin)
- // {
- // cin.clear();
- // while (cin.get() != '\n');
- // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- // }
- // else
- // {
- // if (cin.get() == '\n') return iMonth;
- // else
- // {
- // cin.clear();
- // while (cin.get() != '\n');
- // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- // }
- // }
- // }
- // }
- //}
- ////
- //int getYear()
- //{
- // int iYear;
- // while (true)
- // {
- // cin >> iYear;
- // if(isValidEnterYear(iYear)) return iYear;
- // else
- // {
- // if (!cin)
- // {
- // cin.clear();
- // while (cin.get() != '\n');
- // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- // }
- // else
- // {
- // if (cin.get() == '\n') return iYear;
- // else
- // {
- // cin.clear();
- // while (cin.get() != '\n');
- // cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- // }
- // }
- // }
- // }
- //}
- //
- double getNumber()
- {
- double dblD;
- while (true)
- {
- cin >> dblD;
- if (!cin)
- {
- cin.clear();
- while (cin.get() != '\n');
- cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- }
- else
- {
- if (cin.get() == '\n')
- return dblD;
- else
- {
- cin.clear();
- while (cin.get() != '\n');
- cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- }
- }
- }
- }
- //
- string getWord()
- {
- string strD;
- while (true)
- {
- cin >> strD;
- if (isValidEnterName(strD)) return strD;
- else
- {
- cin.clear();
- while (cin.get() != '\n');
- cout << " Ошибка! Введите корректное значение(C большой буквы!)\n";
- }
- }
- }
- int getDateCmp()
- {
- char chC = '.';
- int iDay;
- int iMonth;
- int iYear;
- while (true)
- {
- fstream D("date.txt",ios::out);
- cin >> iDay;
- D << iDay << ".";
- cin>> iMonth;
- D << iMonth << ".";
- cin >> iYear;
- D << iYear << ".";
- if(isValidEnterDay(iDay)&&isValidEnterMonth(iMonth)&&isValidEnterYear(iYear)) { return iDay, iMonth, iYear; }
- else
- {
- if (!cin)
- {
- cin.clear();
- while (cin.get() != '\n');
- cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- }
- else
- {
- if (cin.get() == '\n') return iDay,iMonth,iYear;
- else
- {
- cin.clear();
- while (cin.get() != '\n');
- cout << " Ошибка! Пожалуйста, повторите ввод.\n";
- }
- }
- }
- D.close();
- }
- fstream D("date.txt",ios::in);
- return 0;
- }
- void main()
- {
- setlocale(LC_ALL,"RUS");
- char chkey;
- int iA,ivar;
- int iSize = 0;
- cout << "\t\t\tЗдравствуйте, пользователь!" << endl;
- for(;;)
- {
- cout << "\n Пожалуйста, выберите вариант работы:\n 1) удаление прошлой сессии записи ланных и начало новой сессии заполнения блока [Cоревнование];\n 2) заполнение блока [Соревнование] без удаления прошлой сессии с файла;\n 3) вывод данных блока [Соревнование] с файла;\n 4) полная очистка файла."<<endl;
- iA = int(getNumber());
- switch(iA)
- {
- case 1: ivar = 1;
- {
- fstream F("Competition.txt",ios::out);
- class Competition *pbplA;
- while(true)
- {
- cout << " Введите количество элементов класса [Соревнование]\n";
- iSize = int(getNumber());
- if(iSize>0)
- break;
- cout<<"Ошибка! Повторите ввод" << endl;
- }
- pbplA = new Competition[iSize];
- string strK;
- int iK = 0;
- for(int i = 0; i < iSize; i++)
- {
- cout << "1.Название сорвенований: ";
- strK = getWord();
- F << strK << endl;
- pbplA[i].setName(strK);
- cout << "2.Вид спорта: ";
- strK = getWord();
- F << strK << endl;
- pbplA[i].setViev(strK);
- cout << "3.Дата проведения: ";
- iK = getDateCmp();
- F << iK << endl;
- pbplA[i].setDate(iK);
- }
- delete [] pbplA;
- } break;
- case 2: ivar = 2;
- {
- fstream F("Competition.txt",ios::app);
- class Competition *pbplA;
- while(true)
- {
- cout << " Введите количество элементов класса [Соревнование]\n";
- iSize = int(getNumber());
- if(iSize>0)
- break;
- cout<<"Ошибка! Повторите ввод" << endl;
- }
- pbplA = new Competition[iSize];
- string strK;
- int iK = 0;
- for(int i = 0; i < iSize; i++)
- {
- cout << "1.Название сорвенований: ";
- strK = getWord();
- F << strK << endl;
- pbplA[i].setName(strK);
- cout << "2.Вид спорта: ";
- strK = getWord();
- F << strK << endl;
- pbplA[i].setViev(strK);
- cout << "3.Дата проведения: " <<" . "<<" . ";
- iK = getDateCmp();
- F << iK << endl;
- pbplA[i].setDate(iK);
- }
- delete [] pbplA;
- } break;
- /*case 3: ivar = 3;
- {
- fstream F("Competition.txt",ios::in);
- string strK;
- int iK;
- for
- }break;*/
- }
- cout<<"\n Что бы закончить работу программы нажмите N или n. Для продолжения работы работы введите любое другое значение."<<endl;
- cin>>chkey;
- if(chkey=='N'||chkey=='n') break;
- else continue;
- }
- system ("Pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement