Академический Документы
Профессиональный Документы
Культура Документы
Отчёт
Лабораторная работа № 1
Тема: Использование файлов
Кишинёв 2023
Цель: Алгоритмы программирования обработки структур и массивов из структур с
использованием функций, указателей, динамического выделения памяти на языке Си, а
также использование файлов.
Для открытия файла в C++ можно использовать классы ifstream для чтения
данных из файла и ofstream для записи данных в файл. Класс fstream может
использоваться как для чтения, так и для записи данных в файл.
Для чтения данных из файла можно использовать функцию getline() для чтения
строк из файла, а также функцию >> для чтения других типов данных. Для записи
данных в файл используется функция <<.
Для более удобной работы с данными, например, для записи и чтения структур,
можно использовать функции write() и read(), которые позволяют записывать
данные в файл в бинарном виде и считывать данные из файла в бинарном виде.
При работе с файлами важно убедиться, что файл был успешно открыт, а также
закрыть файл после использования, чтобы избежать потери данных.
Код программы:
int main()
{
int choice;
do {
printMenu();
cout << "Select an action: ";
cin >> choice;
switch (choice) {
case 1:
dynamicMemoryAllocation();
break;
case 2:
inputData();
break;
case 3:
printData();
break;
case 4:
addNewElement();
break;
case 5:
changeElement();
break;
case 6:
searchElement();
break;
case 7:
sortArray();
break;
case 8:
deleteElement();
break;
case 9:
freeMemory();
break;
case 0:
cout << "Goodbye!" << endl;
break;
default:
cout << "Select an action from the list!" << endl;
}
} while (choice != 0);
return 0;
}
void printMenu();
void dynamicMemoryAllocation();
void inputData();
void printData();
void addNewElement();
void changeElement();
void searchElement();
void sortArray();
void deleteElement();
void freeMemory();
#include "sda_lab1.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
struct Hotel
{
string name;
string address;
string phone;
string category;
int numberOfPlaces;
};
vector<Hotel> hotels;
void printMenu() {
cout << "1. Dynamic memory allocation for an array of structures." << endl;
cout << "2. Entering table elements from the keyboard." << endl;
cout << "3. Display the elements of the table on the screen." << endl;
cout << "4. Adding a new element at the end." << endl;
cout << "5. Changing a table element." << endl;
cout << "6. Search for an array element." << endl;
cout << "7. Sort picture." << endl;
cout << "8. Removing the specified element from the array." << endl;
cout << "9. Freeing the memory allocated for the table." << endl;
cout << "0. Exit the program." << endl;
}
void dynamicMemoryAllocation() {
int size;
cout << "Enter the number of elements: ";
cin >> size;
hotels.resize(size);
cout << "The memory for the structure array has been allocated!" << endl;
}
void inputData() {
cout << "Enter data for each array element: " << endl;
void printData() {
cout << "Name\tAdress\t\tPhone\tCategory\tNumber of places" << endl;
for (int i = 0; i < hotels.size(); i++) {
cout << hotels[i].name << "\t";
cout << hotels[i].address << "\t";
cout << hotels[i].phone << "\t";
cout << hotels[i].category << "\t";
cout << hotels[i].numberOfPlaces << endl;
}
}
void addNewElement() {
Hotel hotel;
cout << "Enter data for the new item: " << endl;
cout << "Name: ";
cin >> hotel.name;
hotels.push_back(hotel);
void changeElement() {
string name;
cout << "Enter the name of the hotel you want to change: ";
cin >> name;
void searchElement() {
string name;
cout << "Enter the name of the hotel you want to find: ";
cin >> name;
void sortArray() {
for (int i = 0; i < hotels.size() - 1; i++) {
for (int j = 0; j < hotels.size() - i - 1; j++) {
if (hotels[j].name > hotels[j + 1].name) {
Hotel temp = hotels[j];
hotels[j] = hotels[j + 1];
hotels[j + 1] = temp;
}
}
}
}
void deleteElement() {
string name;
cout << "Enter the name of the hotel to be deleted: ";
cin >> name;
void freeMemory()
{
hotels.clear();
}
Выводы:
Я научился программированию алгоритмов программирования обработки структур и
массивов из структур с использованием функций, указателей, динамического выделения
памяти на языке Си.
Литература:
Основной учебник курса это ПОЛЯКОВ "Программирование на языке Си. "
2009 г.