Вариант 3 | |
1. | Получить от пользователя строку текста и подсчитать количество точек в строке. Повторять до тех пор, пока не встретится строка завершающаяся словом quit |
2. | Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк). Променять местами четные и нечетные строки текста. Записать измененные строки в новый файл. |
3. | Описать структуру с именем TRAIN, содержащую следующие поля: NUMR — номер поезда; TIME — время отправления; NAZN — название пункта назначения; OTPR - название пункта отправления. Написать программу, выполняющую следующие действия; · ввод с клавиатуры данных в массив RASP, состоящий из шести элементов типа TRAIN; · вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры; · если таких поездов нет, выдать на дисплей соответствующее сообщение. |
Листинг:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string str;
int length = 0;
while (true)
{
cout << "Enter string: ";
getline(cin, str);
string word;
stringstream words(str);
int i = 0;
while (words >> word && word!= "quit")
{
for (i; i < word.length(); i++)
{
switch (word[i])
{
case '.':
length ++;
}
}
}
if (word == "quit") break;
}
cout << "Length = " << str << endl;
}
Результат выполнения:
Листинг:
#include <iostream>
#include <sstream>
#include <fstream>
#include <cctype>
using namespace std;
int main() {
//setlocale(LC_ALL, "ru"); // корректное отображение Кириллицы
ofstream fout("output.txt"); // связываем объект с файлом
ifstream fin("input.txt"); // открыли файл для чтения
string str;
string text;
while (!fin.eof())
{
for (int i = 0; i < 2; i++)
{
if (i == 0)
{
getline(fin, text);
}
else
{
getline(fin, str);
}
}
fout << str << endl; // запись строки в файл
fout << text << endl; // запись строки в файл
}
fout.close(); // закрываем файл
fin.close();
}
Результат выполнения:
Листинг:
#include <cstdlib>
#include <iostream>
using namespace std;
struct train
{
int numr; // номер поезда
double time; // время отправлени
char nazn[50]; // название пункта назначения
char otpr[50]; // название пункта отправления
};
void readtrain(train* RASP, int N)
{
setlocale(LC_ALL, "Russian");
for (int i = 0; i < N; i++)
{
cout << "Введите номер поезда: "; cin >> RASP[i].numr;
cout << "время отправлени: "; cin >> RASP[i].time;
cout << "название пункта назначения: "; cin >> RASP[i].nazn;
cout << "название пункта отправления: "; cin >> RASP[i].otpr;
}
}
/*ФУНКЦИЯ ОБЕСПЕЧИВАЕТ ВЫВОД ДАННЫХ НА ЭКРАН*/
void Showtrain(train* RASP, int N)
{
setlocale(LC_ALL, "Russian");
system("CLS");
cout << "Номер поезда \t Время отправления \t Пункт назначения \t Пункт отправления" << endl;
for (int i = 0; i < N; i++)
{
cout << RASP[i].numr << "\t \t \t";
cout << RASP[i].time << "\t \t \t";
cout << RASP[i].nazn << "\t \t \t";
cout << RASP[i].otpr << endl;
//cout<<M[i].Date[0]<<"."<<M[i].Date[1]<<"."<<M[i].Date[2]<<endl<<endl;
}
}
int main()
{
system("CLS");
setlocale(LC_ALL, "rus");
int N;
cout << "Введите количество описываемых поездов: ";
cin >> N;
train* RASP = new train[N]; //Динамическое выделение памяти под массив структур из N элементов
readtrain(RASP, N);
Showtrain(RASP, N);
delete[] RASP; //Освобождение памяти
cin.get(); //Ожидание нажатия клавиши
return 0;
}
Результат выполнения:
Вывод: в ходе выполнения лабораторных работ, были приобретены практические и теоретические навыки использования языка С++ для решения поставленных задач.