Хелпикс

Главная

Контакты

Случайная статья





Методы системы программирования»



 

МИНПРОСВЕЩЕНИЯ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Тульский государственный педагогический университет им. Л.Н. Толстого» (ТГПУ им. Л.Н. Толстого)

 

                                                                                                                                    

 

Кафедра информатики и информационных технологий

 

 

ОТЧЕТ

по дисциплине:

«Методы системы программирования»

Лабораторная работа № 4

ВАРИАНТ № 20

 

 

Выполнил:

студент группы 121591

факультета математики, физики и

информатики

Сидоров М.Д.

 

Тула – 2020


 

Общие задания:

2)Создать шаблон класса для работы с двусвязным списком. Применить шаблон класса для решения задачи. Элемент списка содержит информацию о заявке на авиабилет: пункт назначения, номер рейса, фамилию и инициалы пассажира, желаемую дату вылета. Программа должна обеспечивать: хранение всех заявок в виде списка, добавление заявок в список, удаление заявок, вывод заявок по заданному номеру рейса и дате вылета, вывод всех заявок.

Код программы:

#include <iostream>

#include <string>

 

#include <iostream>

#include <fstream>

#include <cstringt.h>

using namespace std;

struct a

{

           int s;

           char p[256];

           char nom[256];

           char f[256];

           char in[256];

           char data[256];

           bool ud;

           a* next;

 

};

//, typename T2, typename T3, typename T4, typename T5

template <typename T1>

class cl

{

public:

 

 

           void sozdanie(a* s)

           {

                          if (s == NULL)

                          {

 

                                          s = new a;

                                          begin = s;

                          }

                          else

                          {

                                          (s)->next = new a;

                                          (s) = (s)->next;

                          }

                          cout << "Введите пункт назначения\n";

                          cin >> t;

                          //s->s = t;

                          strcpy(s->p, t);

                          cout << "Введите номер рейса\n";

                          cin >> t;

                          strcpy(s->nom, t);

                          cout << "Введите фамилию\n";

                          cin >> t;

                          strcpy(s->f, t);

                          cout << "Введите инициалы\n";

                          cin >> t;

                          strcpy(s->in, t);

                          cout << "Введите дату вылета\n";

                          cin >> t;

                          strcpy(s->data, t); (s)->next = NULL;

                          s->ud = 0;

           }

 

           void proch(a* s)

           {

                          while (s)

                          {

                                          if (s->ud == 0) cout << (s)->p << "\n" << (s)->nom << "\n" << (s)->f << "\n" << (s)->in << "\n" << (s)->data << "\n" << "\n\n";

                                          (s) = (s)->next;

                          }

           }

           void nomer(a* s)

           {

                          cout << "Ищем по номеру\n";

                          char nom[256];

                          bool sec = 0;

                          cin >> nom;

                          while (s)

                          {

                                          if ((strcmp(nom, (s)->nom) == 0) && s->ud == 0) { cout << (s)->p << "\n" << (s)->nom << "\n" << (s)->f << "\n" << (s)->in << "\n" << (s)->data << "\n"; sec = 1; }

                                          (s) = (s)->next;

                          }

                          if (sec == 0) cout << "Таких нет\n";

           }

 

           void data(a* s)

           {

                          cout << "Ищем по дате вылета\n";

                          char data[256];

                          bool sec = 0;

                          cin >> data;

                          while (s)

                          {

                                          if ((strcmp(data, (s)->data) == 0) && s->ud == 0) { cout << (s)->p << "\n" << (s)->nom << "\n" << (s)->f << "\n" << (s)->in << "\n" << (s)->data << "\n"; sec = 1; }

                                          (s) = (s)->next;

                          }

                          if (sec == 0) cout << "Таких нет\n";

           }

           void udal(a* s)

           {

                          cout << "Ищем по номеру\n";

                          char nom[256];

                          bool sec = 0;

                          cin >> nom;

                          while (s)

                          {

                                     if ((strcmp(nom, (s)->nom) == 0) && s->ud == 0) { cout << (s)->p << "\n" << (s)->nom << "\n" << (s)->f << "\n" << (s)->in << "\n" << (s)->data << "\n"; sec = 1; s->ud = 1; }

                                          (s) = (s)->next;

                          }

                          if (sec == 0) cout << "Таких нет\n";

 

           }

 

           a* begin = NULL;

private:

           T1 t;

};

 

int main()

{

           a* s = NULL;

           system("chcp 1251");

           cl<char[256]> cl;

           int a;

           do

           {

                          cout << "Введите\n1)Для ввода данных\n2)Распечатать\n3)Поиск по номеру рейса\n4)Поиск по дате вылета\n5)Удалить\n0)Выход\n";

                          cin >> a;

                          if (a == 1) {

                                          cl.sozdanie(s);

                                          s = cl.begin;

                          }

                          if (a == 2) {

                                          cl.proch(s);

                                          s = cl.begin;

                          }

                          if (a == 3) {

                                          cl.nomer(s); s = cl.begin;

                          }

                          if (a == 4) {

                                          cl.data(s); s = cl.begin;

                          }

                          if (a == 5) {

                                          cl.udal(s); s = cl.begin;

                          }

                          cout << "\n";

           } while (a != 0);

 

 

}


Контрольные примеры:

Пример №1

Пример №2



Пример №3

20.Индивидуальное задание:

Создать шаблон класса для работы с одномерным массивом. Выполнить тестирование путем создания и обработки массивов, содержащих элементы различных типов (например, сортировка элементов массивов различными методами).

Код программы:

#include <iostream>

#include <algorithm>

using namespace std;

template <typename T>

class My

{

public:

 

 

           void soq()

           {

 

                          cout << "Введите размер\n";

                          cin >> q;

                          z = new T[q];

                          for (int i = 0; i < q; i++)

                          {

                                          cin >> z[i];

                          }

                          cout << "\n";

           }

           void vivod()

           {

                          for (int i = 0; i < q; i++)

                          {

                                          cout << z[i] << "\t";

                          }

                          cout << "\n";

           }

           void sort()

           {

 

                          for (int i = 0; i < q; i++)

                          {

                                          for (int j = 0; j < q; j++)

                                          {

                                                          if (z[i] < z[j])swap(z[i], z[j]);

                                          }

                          }

                          cout << "\n";

           }

private:

           int q;

           T* z;

};

 

int main()

{

           int a;

           system("chcp 1251");

           cout << "Введите тип данных 1-Целый 2-Дробные 3-Буквы\n";

           cin >> a;

           if (a == 1) {

                          My<int> s;

                          s.soq();

                          s.vivod();

                          s.sort();

                          s.vivod();

           }

           if (a == 2) {

                          My<double> s;

                          s.soq();

                          s.vivod();

                          s.sort();

                          s.vivod();

           }

           if (a == 3) {

                          My<char> s;

                          s.soq();

                          s.vivod();

                          s.sort();

                          s.vivod();

           }

}

Контрольные примеры:

Пример №1

Пример №2


Пример №3

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.