Лабораторная работа № 8.




 

Вариант 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;

}

Результат выполнения:

 

 

Вывод: в ходе выполнения лабораторных работ, были приобретены практические и теоретические навыки использования языка С++ для решения поставленных задач.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-07-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: