1.47M
Категория: ПрограммированиеПрограммирование

Структуры и файлы структур. Квартиры

1.

на тему:
Структуры и файлы структур. Квартиры.
Студент группы
Руководитель ассистент
Мусатова А.В.
Майн Е.Е.

2.

Актуальность
Как известно, информация, обрабатываемая компьютером, хранится в файлах.
Большинство компьютерных программ работают с файлами, и поэтому возникает
необходимость создания решений, реализующих обработку разнотипных структур
данных, взятых из файлов.
Актуальность данной курсовой работы подтверждается существованием большого
количества неотсортированной информации. Для решения этой проблемы могут
использоваться специальные программные решения, которые структурируют,
совершают обновление хранимой информации, а также обеспечивают оперативный
доступ к ней для просмотра и поиска. Для современного программиста важно владеть
навыками работы с разными структурами данных. Объект исследования
сконцентрирован на принципах хранения в файлах структурированных данных на
примере записей о квартирах.

3.

Цели и задачи
Целью работы является: используя технологию процедурного программирования,
разработать на языке С++ программу обработки файлов структур с числом записей не менее
пяти в соответствии с индивидуальным заданием по теме «Квартиры».
Для достижения цели должны быть решены следующие задачи:
-
программное создание файла
-
добавление новых элементов структуры в файл
-
просмотр содержимого файла
-
сортировка записей файла по числовому и строковому полю
-
поиск данных в файле по условию с сохранением найденных записей в новом файле
Запись о каждой квартире должна содержать следующую информацию:
Адрес; Площадь кв.м; Кол-во комнат; Стоимость кв.м.; Этаж

4.

Методы и инструменты разработки
В ходе анализа существующих средств разработки была выбрана среда
программирования, которая имеет наибольшую совместимость с операционной
системой Windows, а именно Microsoft Visual Studio. Данная среда совмещает в себе
совокупность следующих незаменимых функциональных возможностей:
-
автоматическое форматирование кода по мере его написания и применение
цветового кодирования для выделения элементов, которое ускоряет процесс
написания программы и делает код удобным для чтения;
-
функциональные инструменты отладки, такие как интеллектуальные точки
прерывания, а также окна памяти, хранящие локальные переменные, позволяют
эффективно отслеживать и устранять непредвиденные ошибки;
-
встроенный компилятор, выполняющий трансляцию и последующую сборку
исполняемой машинной программы.

5.

Блок-схема
Начало
1
const char*path("..\\
Apartments");
_mkdir(path)
item
49
Начало
!Apartments.
empty()
auto
apartment :
Apartments
std::cout<<
apartment.addres
s
<<apartment.area
_sq_meter
<<apartment.roo
m_count<<apart
ment.price_of_sq
_meter
<<apartment.floor
vector<sApartment>Ap
artments;
path = "..\\Apartments\\
Apartments.txt";
50
system("cls");
char item;
Apartments.clear();
readApartments(Ap
artments, path);
system("cls");
addApartment(Apart
ments, path);
1*
!(field
!(field
!(field
!(field
!(field
== 49) &&
== 50) &&
== 51) &&
== 52) &&
== 53)
51
system("cls");
char field;
field = _getch();
system("cls");
searchApartments(A
partments, floor);
system("cls");
!(sort
Direction==49
)&&!(sortDirection
==50)
Apartments.clear();
readApartments(Apart
ments,"..\\Apartments\\
FoundApartments.txt");
item = _getch();
outputApartments(A
partments);
outputApartments(A
partments);
sortApartments
(Apartments,path,
(int)field-49,
(int)sortDirection-49
);
Apartments.clear();
1
Конец
Рисунок 1 – Блок-схема функции
outputApartments
item != 27
Рисунок 2 – Блок-схема основной программы
Конец
53
1*
sortDirection =
_getch();
outputApartments(A
partments);
52

6.

Блок-схема
Начало
3
int i = 0; i <
Apartments.
size(); i++
4
2
int k = i + 1;
k<Apartmen
ts.size();
k++
3
1*
(strcmp(Apartments[i].address,
Apartments[k].address)>0) &&
(field==0)&&(sortDirection == true)
5*
(Apartments[i].room_count >
Apartments[k].room_count) && (field
== 2)&&(sortDirection == true)
2*
(strcmp(Apartments[i].address,
Apartments[k].address)<0) && (field
== 0) && (sortDirection == false)
6*
(Apartments[i].room_count <
Apartments[k].room_count) && (field
== 2)&&(sortDirection==false)
3*
(Apartments[i].area_sq_meter >
Apartments[k].area_sq_meter) &&
(field == 1)&&(sortDirection == true)
7*
(Apartments[i].price_of_sq_meter >
Apartments[k].price_of_sq_meter)
&&(field==3) && (sortDirection==true)
4*
(Apartments[i].area_sq_meter <
Apartments[k].area_sq_meter) &&
(field == 1)&&(sortDirection==false)
8*
(Apartments[i].price_of_sq_meter <
Apartments[k].price_of_sq_meter) &&
(field == 3) &&(sortDirection==false)
6*
7*
swap(Apartments[i]
, Apartments[k]);
2
1*
9*
(Apartments[i].floor >
Apartments[k].floor) && (field == 4)
&& (sortDirection == true)
2*
swap(Apartments[i]
, Apartments[k]);
2
1
10*
(Apartments[i].floor <
Apartments[k].floor) && (field == 4)
&& (sortDirection == false)
3*
swap(Apartments[i]
, Apartments[k]);
2
swap(Apartments[i]
, Apartments[k]);
2
swap(Apartments[i]
, Apartments[k]);
9*
swap(Apartments[i]
, Apartments[k]);
4
2
rewriteApartments
(Apartments, path);
4*
2
8*
10*
swap(Apartments[i]
, Apartments[k]);
2
swap(Apartments[i]
, Apartments[k]);
5*
swap(Apartments[i]
, Apartments[k]);
2
1
Конец
swap(Apartments[i]
, Apartments[k]);
2
Рисунок 3 – Блок-схема функции sortApartments
2

7.

Блок-схема
Рисунок 4 – Блок-схема функции
searchApartments
Рисунок 5 – Блок-схема функции
addApartments
Рисунок 6 – Блок-схема функции
readApartments

8.

Результат работы программы
Рисунок 8 - Вид приложения при
отсутствии файла для чтения
Рисунок 7 - Вид приложения при добавлении новой
квартиры

9.

Результат работы программы
Рисунок 10 - Вид приложения после поиска квартир
с заданным этажом
Рисунок 9 - Вид приложения после сортировки поля Адрес
по возрастанию

10.

Заключение
Была разработана программа обработки файлов структур, которая реализует функции
создания файла, добавления новых записей о квартирах, сортировки записей по
числовому и строковому полю, поиска в файле по условию и просмотра содержимого
файла.
Экспериментальная проверка показала работоспособность программы
Область применения: использование программы в качестве примера при изучении
структурных данных и текстовых файлов
Для достижения цели работы были изучены принципы структурной организации,
способы доступа к элементам и другие особенности структур и файлов структур.
Результирующая программа реализует все запланированные функции и поставленные
задачи.

11.

на тему:
Структуры и файлы структур. Квартиры
СПАСИБО ЗА ВНИМАНИЕ!
Студент группы
Руководитель ассистент
Мусатова А.В.
Майн Е.Е.
English     Русский Правила