Программирование
Download 110 Kb.
|
include
- Bu sahifa navigatsiya:
- Практическая работа № 6 Выполнила
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРЕЗМИ ИНФОКОММУНИЦИОННЫЙ ИНЖИНИРИНГ ПРОГРАММИРОВАНИЕ Практическая работа №6 Выполнила: Ахмаджанова Назима (группа 205-4) Проверила: Д. Динара Наримановна Tashkent 2022 Вариант №5 Задание №1. Организуйте ввод времени в формате – «чч.мм.сс PM» с проверкой на правильность и соответствие данному формату. Решение:
#include #include #include #include using namespace std; class Time { string time; friend istream& operator>>(istream& inp, Time& t) { do { cout << "Input time: "; getline(inp, t.time); } while (!t.check()); return inp; } friend ostream& operator<<(ostream& out, const Time& t) { return out << t.time; } vector const regex re{ signs }; const sregex_token_iterator iter{ str.begin(), str.end(), re, -1 }; return { iter, {} }; } bool check() { static const string box[]{ "AM", "PM", "am", "pm", "Am", "Pm", "aM", "pM" }; const string re(R"([ .]+)"); auto result = tokens(time, re); if (result.size() != 4) return false; if (find(begin(box), end(box), result.back()) == end(box)) { return false; } constexpr size_t n = 3; unsigned tmp[n]{}; for (size_t i = 0; i < n; ++i) { try { tmp[i] = stoul(result[i]); } catch (...) { return false; } } static constexpr auto _10 = 10U; static constexpr auto _12 = 12U; static constexpr auto _59 = 59U; if (tmp[0] > _12) return false; if (tmp[1] > _59 || tmp[2] > _59) return false; string str; if (tmp[0] < _10) str = "0"; str += to_string(tmp[0]) + '.'; if (tmp[1] < _10) str += '0'; str += to_string(tmp[1]) + '.'; if (tmp[2] < _10) str += '0'; str += to_string(tmp[2]) + ' '; if (toupper(result.back()[0]) == 'A') str += box[0]; else str += box[1]; time = str; return true; } }; int main() { Time time; cin >> time; cout << "Output time: " << time << '\n'; } Результат: Задание №2. Дана строка: «Алиева Нигора Азаматовна» Надо: Определить количество символов. Выделит из предложения все слова в отдельные строки. Во втором и третьем оставить первую букву и добавить символ «.». Соединить вновь созданные строки и вывести на печать. Решение:
#include #include using namespace std; class Person { public: Person() = default; Person(const string& fio) { split(fio); } string fullname()const { return surname + ' ' + name + ' ' + patronymic; } string shortname()const { return surname + ' ' + name.front() + ". " + patronymic.front() + '.'; } private: string surname; string name; string patronymic; void split(const string& line) { istringstream iss(line); iss >> surname >> name >> patronymic; } }; int main() { system("chcp 1251 > nul"); cout << "Ф.И.О.: "; string fio; getline(cin, fio); Person person(fio); cout << person.shortname() << '\n'; system("pause > nul"); } Результат: Задание №3. Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке Решение: #include #include #include #include #include #include using namespace std; typedef istream_iterator typedef ostream_iterator int main() { ifstream fin("f.txt", ios::in); ofstream fout("g.txt", ios::out); if (!fin) { cerr << "error: couldn't open file.\n"; exit(1); } vector copy(str.rbegin(), str.rend(), output(fout, " ")); fin.close(); fout.close(); cout << "The data is successfully written!\n\n"; return 0; } Результат: Download 110 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling