ООП. Риэлторская программа. Самгупс) Кафедра Мехатроника, автоматизация и управление на транспорте курсовая работа по дисциплине Объектноориентированное программирование (ооп) (09. 03. 01) Тема Риэлтерская
Скачать 268.25 Kb.
|
Data();//деструкторlМИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ (СамГУПС) Кафедра «Мехатроника, автоматизация и управление на транспорте» КУРСОВАЯ РАБОТА по дисциплине: «Объектно-ориентированное программирование (ООП) (09.03.01)» Тема: Риэлтерская программа. Выполнил: Студент гр. ИВТб-11 Запашнев К.Ю. Проверил: Фатеев В.А. САМАРА 2022 СОДЕРЖАНИ 1.ВВЕДЕНИЕ 3 1.1. Наименование продукта 4 1.2. Краткая характеристика области применения 4 2.Техническое задание 6 3.1. Описание проекта 8 3.2. Пользовательский интерфейс 8 3.3. Описание работы программы 10 4. Реализация логики ПО 10 5.Заключение 17 Список литературы 18 Приложение А 19 1.ВВЕДЕНИЕ 3 1.1. Наименование продукта 4 1.2. Краткая характеристика области применения 4 2.Техническое задание 5 3.1. Описание проекта 7 3.2. Пользовательский интерфейс 7 3.3. Описание работы программы 9 4. Реализация логики ПО 9 5.Заключение 16 Список литературы 16 Приложение А 16 1.ВВЕДЕНИЕЗадача данной работы в создание программы риэлтерские услуги. Программа должна выглядеть как меню, которое работает с базой данных. В меню нужно добавить пункты редактирования, удаления и добавления данных. Работа будет написана в среде разработки Visual Studio 2022 на языке программирования C++. Visual Studio — это стартовая площадка для написания, отладки и сборки кода, а также последующей публикации приложений. Помимо стандартного редактора и отладчика, которые есть в большинстве сред IDE, Visual Studio включает в себя компиляторы, средства автозавершения кода, графические конструкторы и многие другие функции для улучшения процесса разработки. Рис. 1 – Язык программирования Язык программирования С++ представляет высокоуровневый компилируемый язык программирования общего назначения со статической типизацией, который подходит для создания самых различных приложений. На сегодняшний день С++ является одним из самых популярных и распространенных языков. С++ является мощным языком, унаследовав от Си богатые возможности по работе с памятью. Поэтому нередко С++ находит свое применение в системном программировании, в частности, при создании операционных систем, драйверов, различных утилит, антивирусов и т.д. К слову сказать, ОС Windows большей частью написана на С++. Но только системным программированием применение данного языка не ограничивается. С++ можно использовать в программах любого уровня, где важны скорость работы и производительность. Нередко он применяется для создания графических приложений, различных прикладных программ. Также особенно часто его используют для создания игр с богатой насыщенной визуализацией. Кроме того, в последнее время набирает ход мобильное направление, где С++ тоже нашел свое применение. И даже в веб-разработке также можно использовать С++ для создания веб-приложений или каких-то вспомогательных сервисов, которые обслуживают веб-приложения. В общем С++ - язык широкого пользования, на котором можно создавать практически любые виды программ. 1.1. Наименование продуктаРиэлтерские услуги. 1.2. Краткая характеристика области примененияПрограмма разработанная в рамках данной курсовой работы, показывает как работать с базами данных и текстовыми файлами. 2.Техническое заданиеЦель: Реализовать программу по поиску квартир с заданными параметрами Задачи: изучить среду разработки Visual Studio, изучить язык программирования C++. Функциональные требования: вывод, поиск, редактирование, добавление и удаление данных. Обозначить цель работы Подготовить алгоритм работы Создать меню Нет Да Расставить пункты в меню Наличие меню Блок схема 1 – Алгоритм выполнения работы Оформить курсовую работу Собрать код в единую систему Написать код для каждого элемента системы 3.1. Описание проектаДанная курсовая посвящена разработке программы для изучения работы классов и структур. Главная цель курсовой работы – проработка и упорядочивание знаний, полученных за время изучения дисциплины «Объектно-ориентированное программирование» с использованием языка C++. 3.2. Пользовательский интерфейсПользовательский интерфейс (UI) — это способ взаимодействия пользователя и программы. Интерфейс используется для корректного в пользователя с программой для верного решения поставленных задач. В данной работе используется консоль. Консоль — простейший интерфейс ввода-вывода, относящийся к классу символьных устройств, позволяющий вводить данные с клавиатуры и выводить их на экран или в другое устройство отображения. На рис. 2 представлен пользовательский интерфейс программы. Здесь пользователю предлагают выбрать пункт меню. Рис. 2 – Меню. На рис. 3 представлены данные, которые мы берем из файла. Пользователь может наблюдать список доступных квартир и информацию о них. Рис. 3 – Список квартир. Рис. 4 – Поиск квартиры. На рис. 4 мы видим как выполняется поиск квартиры по заданными нами параметрами. 3.3. Описание работы программыСуть работы данной программы заключается в подборе квартир по определенным параметрам из имеющихся квартир. 4. Реализация логики ПОПрежде всего мы создаём классы содержащие информацию о квартире (floor, city, room, price, s(площадь)).Для данных классов реализованы методы добавления, удаления, редактирования и т.д. данных. Метод Print выводит данные в консоль. Метод Choose выбирает нужную квартиру. Метод DataChange позволяет поменять данные. Метод Copy создает копию данных массива. Метод DataAdd позволяет добавить квартиру, а DeleteData удалить. Метод SaveData позволяет сохранить данные в другой файл. Метод DataReading. Начало удаления Введите номер элемента Да Нет Номер введен не верно. Введите номер элемента Удаляем данные Есть такой элемент Данные удалены Блок схема 2 – Алгоритм удаления данных По алгоритму, описанному в блок схеме 2, представленной выше, был разработан метод удаления данных. Во время разработки были применены классы и другие методы. Одним из таких методов является метод Copy, который копирует данные массива. Мы выбираем номер элемента, который хотим удалить, делается проверка ввода, если она пройдена, то данные удаляются. Начало Нет Да Да Нет Ошибка. Введите число Ошибка. Введите положительное число Число проходит Число положительное? Это число? Блок схема 3 – Алгоритм проверки ввода данных Начать работу Код проверки ввода данных пользователем. Данный код проверяет подходит ли число введённое пользователем для работы программы. Мы используем cin.peek, cin.fail, cin.get, cin.clear cin.peek() возвращает целочисленное представление следующего символа в буфере потока, не прочитав его (cin >> a) при вводе значения a , если все нормально, то выражение вернет true, соответственно !(cin >> a) вернет false (неудачу). Функция get() же стандартного потока ввода cin заставляет систему ожидать ввода пользователем любого символа, который она считывает.cin.fail() повторяется, пока не получит int. cin.sync () используется для очистки потока данных в области кэша. Если идентификатор не изменился, его нельзя ввести, даже если поток данных очищен. Запуск программы Нет Да Да Нет Это пункт закрытия Есть такой пункт Выбираем пункт меню Блок схема 4 – Алгоритм основной программы Закрыть программу Старт На блок схеме 4 представлен основной код. Этот код связывает всё вместе. Суть его работы заключается в следующем: для каждого пункта меню прописывается свой код и эти пункты отвечают за определённую часть программы. После того как мы ведём нужный пункт меню, программа запустится и начнёт выполнять функционал предназначенный для этого пункта меню. После окончания работы, вы можете закрыть меню. 5.ЗаключениеБлагодаря уровню навыков, полученных во время курса обучения мы разработали программу риэлтерские услуги. Данная программа позволяет искать данные по нужным нам параметрам. Работа над кодом помогла в очередной раз закрепить знания и навыки, полученные в ходе обучения. Список литературыЯзык программирования C++ – Стивен Прата. Объектно-ориентированное программирование в С++реализации – Роберт Лафоре. Программирование. Принципы и практика с использованием C++ – Страуструп. Философия C++ – Эккель Брюс. C++: базовый курс– Герберт Шилдт. Язык программирования C++. Базовый курс – Стенли Липпман, Жози Лажойе, Барбара Э. Му Приложение А#include #include "function.h" using namespace std; int _stateMenu; void menu() { cout << "Выберите действие" << endl << "0 - Выход из программы" << endl << "1 - Ввод данных" << endl << "2 - Вывод данных" << endl << "3 - Поменять данные" < << "4 - Добавить данные" << endl << "5 - Удаление данных" << endl << "6 - Сохранить данные" << endl << "7 - Найти данные" << endl << "Ваш выбор:"; cin >> _stateMenu; } /* Данные Стоимость Адрес Площадь Этаж Кол-во комнат */ int main() { setlocale(LC_ALL, "Russian"); //Чтобы функция isalpha() работала с русским текстом SetConsoleCP(1251); SetConsoleOutputCP(1251); menu(); string fileName; int _size = 0; //количество данных Data* d = new Data[_size];//массив данных Data r; while (_stateMenu != 0) { switch (_stateMenu) { case 1: system("cls");// очистка консоли DataReading(d, _size, "Input.txt"); system("cls"); menu(); break; case 2: system("cls"); if (_size != 0) Print(d, _size); else cout << "Данные пусты!" << endl; menu(); break; case 3: system("cls"); if (_size != 0) DataChange(d, _size); else cout << " Данные пусты " << endl; system("cls"); menu(); break; case 4: system("cls"); if (_size != 0) AddData(d, _size); else cout << "Данные пусты" << endl; system("cls"); menu(); break; case 5: system("cls"); if (_size != 0) DeleteData(d, _size); else cout << "Данные пусты" << endl; system("cls"); menu(); break; case 6: system("cls"); if (_size != 0) { cout << "Введите название файла: "; cin >> fileName; SaveData(d, _size, fileName); } else cout << "Данные пусты" << endl; system("cls"); menu(); break; case 7: system("cls"); cout << "Введите данные квартиры" << endl; DataEntry(r); Choose(r, d, _size); system("pause"); system("cls"); menu(); break; default: cout << "Пункт меню введен не верно" << endl; system("cls"); menu(); break; } } system("cls"); } #include "Room.h" Data::Data() { price.p = 0; se.s = 0; floor.f = 0; rooms.r = 0; city.c = ""; } Data::Data(Price price_, Se se_, Floor floor_, Rooms rooms_, City city_) { price.p = price_.p; se.s = se_.s; floor.f = floor_.f; rooms.r = rooms_.r; city.c = city_.c; } Data:: #include #include #include #include "Room.h" using namespace std; //прототипы функций void DataReading(Data* (&d), int& n, string fileName);//чтение данных void Print(Data* d, int n);//вывод в консоль void Choose(Data a, Data* d, int n);//выбор параметров void DataEntry(Data (&d));//ввод данных в ручную void DataChange(Data* d, int n);//изменение данных void Copy(Data* d_n, Data* d_o, int n);//копия данных массива void AddData(Data* (&d), int& n);//добавление данных void DeleteData(Data* (&d), int& n);//удаление данных void SaveData(Data* d, int n, string fileName);//сохранение данных void DataEntrys(Data* (&d), int& n); #pragma once #include #include #include #include using namespace std; /* Данные 1. Цена 2. Площадь 3. Этаж 4. Кол-во комнат 5. Город */ struct Price { int p; }; struct Se { int s; }; struct Floor { int f; }; struct Rooms { int r; }; struct City { string c; }; // прототип класса class Data { //закрытая часть класса private: Price price; Se se; Floor floor; Rooms rooms; City city; public: Data();//пустой класс Data(Price price_, Se se_, Floor floor_, Rooms rooms_, City city_); void Print(); void DataEntry(Price price_, Se se_, Floor floor_, Rooms rooms_, City city_); // вывод данных полей из класса Price GetPrice() { return price; }; Se GetSe() { return se; }; Floor GetFloor(){ return floor; }; Rooms GetRooms() { return rooms; }; City GetCity() { return city; }; // перегрузка оператора Data& operator = (Data d_o); bool operator == (const Data& d_o); }; |