Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов.
За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее.
✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать».
Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами!
Приклади програм. Приклад 1. Дано текстовий файл, що містить декілька рядків довжиною не більше 255 символів
Приклад 1. Дано текстовий файл, що містить декілька рядків довжиною не більше 255 символів. У кожному з рядків без помилок записано єдиний вираз, який має вигляд a#b, де a, b – невід’ємні цілочислові величини, # – одна з операцій +, –, /, *. У файлі за останнім виразом переведення рядка не виконувалося. Вивести кожен із виразів і їх значення на екран і в новий текстовий файл.
Розв’язок.
#include < cstdlib> #include < conio.h> #include < iostream> #include < fstream> using namespace std; int main() { int a, b; char s[256], c; int i; cout < < " Input-file name? "; cin > > s; // Уводимо ім'я файлу cin.get(); // Зчитуємо символ нового рядка ifstream fInp; fInp.open(s); // Відкриття потоку (тільки для читання) if (! fInp) // Якщо має місце помилка відкриття { cout < < " Error of opening of a input-file " < < s; cout < < " \nPress any key to exit.\n"; getch(); return 1; } cout < < " Output-file name? "; cin > > s; // Уводимо ім'я файлу cin.get(); // Зчитуємо символ нового рядка ofstream fOut; fOut.open(s); // Відкриття потоку (тільки для запису) if (! fOut) // Якщо має місце помилка відкриття { cout < < " Error of opening of a output-file " < < s; cout < < " \nPress any key to exit.\n"; getch(); return 2; } while (fInp.peek()! = EOF) // Поки не кінець файлу { fInp.getline(s, 256); // Читаємо рядок з файлу i = 0; a = 0; while (s[i] > = '0' & & s[i] < = '9') // Формування { // першого операнда a = a * 10 + s[i] - '0'; i++; } c = s[i++]; // Знак операції b = 0; while (s[i] > = '0' & & s[i] < = '9') // Формування { // другого операнда b = b * 10 + s[i] - '0'; i++; } switch (c) // Обчислення значення виразу { case '+': a += b; break; case '-': a -= b; break; case '/': a /= b; break; case '*': a *= b; } cout < < s < < " = " < < a < < endl; // Вивід на екран fOut < < s < < " = " < < a < < endl; // Вивід у файл } fOut.close(); // Закриття вихідного потоку (файлу) fInp.close(); // Закриття вхідного потоку (файлу) cout < < " Press any key to exit.\n"; getch(); return 0; }
Приклад 2. У текстовому файлі data.txt через довільну кількість будь-яких пробільних символів записано цілі числа, причому за останнім числом додаткові символи відсутні. Переписати у файл res.txt із файлу data.txt усі числа за винятком максимальних (у припущенні, що їх може бути декілька). У кожному рядку файлу res.txt (за винятком останнього) повинно міститися по 10 чисел із розділенням їх символом табуляції.
Розв’язок.
#include < conio.h> #include < iostream> #include < fstream>
using namespace std; int main() { int v, Max; bool b = true; ifstream fInp; fInp.open(" data.txt"); // Відкриття потоку (для читання) if (! fInp) // Якщо має місце помилка відкриття { cout < < " Error of opening of a input-file"; cout < < " \nPress any key to exit.\n"; getch(); return 1; } ofstream fOut; fOut.open(" res.txt"); // Відкриття потоку (для запису) if (! fOut) // Якщо має місце помилка відкриття { cout < < " Error of opening of a output-file"; cout < < " \nPress any key to exit.\n"; getch(); return 2; } while(! fInp.eof()) // Поки не кінець потоку { // читаємо по одному fInp > > v; // числу if (b) // і шукаємо максимальне значення { b = false; Max = v; } else if (v > Max) Max = v; } fInp.close(); // Закриваємо // і знову відкриваємо вхідний потік fInp.open(" data.txt"); // Замість закриття і повторного відкриття файлу можна // встановити стан потоку в нуль функцією clear() і // зсунути покажчик поточної позиції на початок потоку // fInp.clear(); // fInp.seekg(0); int i = 0; while(! fInp.eof()) { fInp > > v; // Читаємо одне число if (v < Max) // Якщо це не максимум { if (i == 10) // Оформлюємо виведення { fOut < < endl; i = 0; } else if (i! = 0) fOut < < '\t'; fOut < < v; // Виводимо число i++; } } fOut.close(); // Закриваємо вихідний потік fInp.close(); // Закриваємо вхідний потік cout < < " Press any key to exit.\n"; getch(); return 0; }
Приклад 3. Створити текстовий файл «Заміри температури пацієнтів поліклініки». Запис про кожного пацієнта заносити в окремий рядок файлу у вигляді: прізвище (послідовність не більш ніж з 30 символів без пробільних символів), вік (ціле число), температура (дійсне число) з розділенням цих елементів даних одним символом табуляції. Занести у файл інформацію про 10 пацієнтів.
Розв’язок.
#include < iostream> #include < fstream> #include < conio.h> using namespace std; int main() { char FileName[100], Surname[31]; int Age; double Temperature; cout < < " Enter file name: "; cin > > FileName; // Уводимо ім'я файлу cin.get(); // Зчитуємо символ нового рядка ofstream fOut; // Визначаємо вихідний потік і відкри- fOut.open(FileName); // ваємо його тільки для запису if (! fOut) // Якщо має місце помилка відкриття { cout < < " Error of opening of a output-file " < < FileName; cout < < " \nPress any key to exit.\n"; getch(); return 1; } for (int i = 0; i < 10; i++) { cout < < " Enter Surname: "; cin > > Surname; cout < < " Enter Age: "; cin > > Age; cout < < " Temperature: "; cin > > Temperature; fOut < < Surname < < '\t' < < Age < < '\t' < < Temperature < < endl; // Пишемо у файл } fOut.close(); // Закриваємо потік puts(" Press any key to exit."); getch(); return 0; }
Приклад 4. Дано текстовий файл «Заміри температури пацієнтів поліклініки». Запис про кожного пацієнта занесена в окремий рядок файлу у вигляді: прізвище (послідовність не більш ніж з 30 символів без пробільних символів), вік (ціле число), температура (дійсне число) із розділенням цих елементів даних у рядку файлу довільною кількістю будь-яких пробільних символів. Вивести на екран прізвища і температуру пацієнтів, чия температура, нижче 36.0 або вище 36.9 градусів.
Розв’язок.
#include < iostream> #include < fstream> #include < conio.h> using namespace std; int main() { char FileName[100], Surname[31]; int Age; double Temperature; cout < < " Enter file name: "; cin > > FileName; // Уводимо ім'я файлу cin.get(); // Зчитуємо символ нового рядка ifstream fInp; // Визначаємо вхідний потік і відкри- fInp.open(FileName); // ваємо його тільки для читання if (! fInp) // Якщо має місце помилка відкриття { cout < < " Error of opening of a input-file " < < FileName; cout < < " \nPress any key to exit.\n"; getch(); return 1; } while (! fInp.eof()) // Поки не кінець файлу { // Читаємо з файлу fInp > > Surname > > Age > > Temperature; if (Temperature < 36.0 || Temperature > 36.9) cout < < Surname < < '\t' < < Temperature < < endl; // Якщо прочитаний рядок файлу містить if (fInp.peek() == '\n') // ознаку кінця рядка, fInp.ignore(2); // то пропускаємо 2 символи } fInp.close(); // Закриваємо потік puts(" Press any key to exit."); getch(); return 0; }
Приклад 5. Дано текстовий файл із рядками довжиною не більше 255 символів. Розвернути кожен його рядок на 180°.
Розв’язок.
#include < iostream> #include < string.h> #include < conio.h> #include < fstream> using namespace std; int main() { char FileName[100], str[256], ch; cout < < " File name? "; cin > > FileName; // Уводимо ім'я файлу fstream fInpOut; // Визначаємо двонаправлений потік // і зв'язуємо його з існуючим файлом для введення fInpOut.open(FileName, ios:: in | ios:: out); // і виводу if (! fInpOut) { cout < < " Error of opening of a file " < < FileName; cout < < " \nPress any key to exit.\n"; getch(); return 1; } int k; streampos Pos1 = 0; // Поточна позиція файлу (початкова) while (! fInpOut.eof()) { fInpOut.getline(str, 256); // Читаємо рядок // Зараз активний режим читання. Далі писати // не можна. Покажчик поточної позиції зсунувся // на strlen(str) байт або на strlen(str) + 2 байт, // якщо було зчитано і ознаку кінця рядка у файлі streampos Pos2 = fInpOut.tellg(); // Запам'ятовуємо // положення поточного покажчика k = strlen(str); for (int i = 0; i < k / 2; i++) // Розвертаємо вміст { // рядка ch = str[i]; str[i] = str[k - 1 - i]; str[k - 1 - i] = ch; } fInpOut.seekp(Pos1, ios:: beg); // Повертаємо // покажчик поточної позиції у положення, яке // він займав перед читанням. Тепер можна писати fInpOut < < str; // Пишемо у файл. Далі читати не можна Pos1 = Pos2; fInpOut.seekg(Pos1); // Встановлюємо покажчик // у положення, яке він займав по закінченні // попереднього сеансу читання. Тепер можна читати } fInpOut.close(); // Закриваємо потік puts(" Press any key to exit."); getch(); return 0; }
|