Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Проектирование и реализация класса «Почтовый адрес»

Автор:   •  Май 13, 2023  •  Практическая работа  •  5,013 Слов (21 Страниц)  •  184 Просмотры

Страница 1 из 21

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное   учреждение высшего образования

«Чувашский государственный университет имени И.Н.Ульянова»

Факультет информатики и вычислительной техники

Кафедра математического и аппаратного обеспечения

информационных систем

Расчетно-графическая работа по дисциплине «Языки программирования»

на тему:

Проектирование и реализация класса «Почтовый адрес»

        

Выполнил:

Проверил:

Оценка_____________

Дата________________

Чебоксары 20

Оглавление

Введение        3

Постановка задачи        4

        5

        6

Класс        6

Функция main        6

Функция сортировки        8

Подключенные библиотеки        9

Заключение        11

Список использованной литературы        12

Приложение 1        13

Приложение 2        28

Приложение 3        29

 


Практическая часть

Класс

Создаю класс «Square». В модификатор доступа private создаю переменные:

int  index, dom;

long telephone;

char organiz[100], gor[100], ul[100];.

В модификатор доступа public создаю итератор вектора типа класса Square:   void in(vector <Square> &v, int& x); //для чтения из файла в вектор

void udal(vector <Square> &v); //для удаления отделььных записей

void Vvod(vector <Square> &v);//для добавления записей

void izmenorg(vector <Square> &v);//для изменения огранизации

void izmenindex(vector <Square> &v);//для изменения индекса

void izmengor(vector <Square> &v);//для изменения города

void izmenul(vector <Square> &v);//для изменения улицы

void izmendom(vector <Square> &v);//для изменения дома

void izmentelephon(vector <Square> &v);//для изменения телефона

void sortirovka(vector<Square>&v); //для сортировки по разным полям

void out(vector<Square>&v, int& x); //для вывода результата на экран

friend ostream &operator <<(ostream &stream, Square ob); //перегруженный оператор вывода

friend istream &operator >>(istream &stream, Square &ob); //перегруженный оператор ввода

Функция main

(Рис.1)В функцию передаем в качестве параметров вектор v и количество строк в файле x (x инициализируем равной нулю).  Открываем файл для чтения (файл dat). Объявляем переменную str типа string. В цикле с помощью Getline проверяем сколько у нас записей в файле. (Количество записываем в x, то есть каждый раз прибавляем).

 [pic 1]

(Рис.1 «Функция Main»)

Заканчиваем цикл, закрываем файл и вызываем функцию in, которая читает из файла(* ниже представлена функция in)

[pic 2]

(Рис.* «функция in»)

Далее (411-412) мы выводим наш вектор, который мы только что записали.

[pic 3]

(рис.2 «Продолжение функции main»)

Далее создаём переменную типа int vybor

[pic 4]

(рис.3 «Продолжение функции main »)

С помощью цикла do while выводим сообщение (строки 416-419). Вводим наш выбор. И в зависимости от того, что мы выбрали, выполняется та или иная функция.

Если вводим 11, завершается весь цикл и прекращается работа программы.

Функция сортировки

В ней передаём ссылку на вектор v, которая хранит объекты класса Square.

Объявляем переменную e типа int;

Выводим сообщение (по всем полям):

[pic 5]

(рис.4 «Начало функции сортировки»)

Вводим е. Если е равняется 1, то:

[pic 6]

(рис.5 «Продолжение функции сортировки»)

(Объяснение 304 строчки: sort – стандартный алгоритм из библиотеки #include <algorithm>; v.begin() - итератор начала(то есть откуда сортируем), v.end() – итератор конца(докуда сортируем). Далее «[]» (лямбда и всё, что после лямбда является компаратором) - это лямбда выражение Это сокращенная функция, она вписана в функцию sort. Мы можем отделить её при желании, но для этого нужно написать ещё 1 функцию bool типа и передать в неё параметры) В лямбду выражение мы передаем ссылку на объекты класса Square “a” и “b”. Если вкратце, то лямбда — это функция внутри функции. В лямбду выражение мы передаём параметры объект класса a и ссылку на объект класcа b; {return strcmp(a.organiz, b.organiz)<0;} – c помощью этого мы и сортируем. Если строка a меньше, чем строка b, то есть она идёт раньше чем b(по фалфавиту), то мы её возвращаем, то есть сортируем, то есть мы меняем их местами и так весь вектор от начала до конца)

...

Скачать:   txt (28.9 Kb)   pdf (375.9 Kb)   docx (261.9 Kb)  
Продолжить читать еще 20 страниц(ы) »
Доступно только на Essays.club