Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

os_6

.docx
Скачиваний:
0
Добавлен:
07.04.2025
Размер:
1.06 Mб
Скачать

Министерство науки и высшего образования Российской Федерации

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

высшего образования

Уфимский Университет Науки и Технологий

Факультет информатики и робототехники

Кафедра вычислительной математики и кибернетики

Отчет к лабораторной работе №6

По дисциплине «Операционные системы»

По теме «Работа с файлами»

Выполнил: студент группы ПРО-232Б

Ихсанова Э. А.

Проверил: доцент каф. ВМиК

Веденяпин И. Э.

Уфа 2022

Задание

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

Код

#include<iostream>

#include<windows.h>

#include<conio.h>

#include<string>

int main()

{

system("chcp 65001");

LPCTSTR fn = "LR_6_6.txt";

HANDLE myFile = CreateFile(fn, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

DWORD n;

std::string name = "";

std::string title = "";

std::string year = "";

int choise;

std::string outp[3];

while (true) {

int ind = 0;

std::cout << "1.Ввести данные в файл" << std::endl

<< "2.Показать данные из файла" << std::endl

<< "3.Книги изданные после 1889 года"<<std::endl

<< "4.Выход" << std::endl;

std::cin >> choise;

system("cls");

switch (choise) {

case 1:

std::cout<< "Введите данные: Например, ‘Толстой Детство 1852'" << std::endl;

SetEndOfFile(myFile);

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

{

SetConsoleCP(1251);

std::cin >> name;

SetConsoleCP(866);

WriteFile(myFile, &name, sizeof(name), &n, NULL);

FlushFileBuffers(myFile);

}

break;

case 2:

std::cout << "Данные представлены в формате 'Автор' 'Название' 'Год издания'" << std::endl;

SetFilePointer(myFile, 0, 0, FILE_BEGIN);

while (ReadFile(myFile, &name, sizeof(name), &n, NULL) && n != 0) {

std::cout << name << " "; ind++;

if (ind % 3 == 0)

std::cout << "\n";

}

break;

case 3:

std::cout << "Книги изданные после 1889 года\n";

SetFilePointer(myFile, 0, 0, FILE_BEGIN);

while (ReadFile(myFile, &name, sizeof(name), &n, NULL) && n != 0) {

outp[ind % 3] = name;

if (ind % 3 == 2) {

if ( outp[2] >= "1889")

{

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

std::cout << outp[i] << " ";

std::cout << std::endl;

}

}

++ind;

}

break;

case 4:

CloseHandle(myFile);

exit(0);

break;

}

std::cout << "Нажмите любую клавишу для продолжения";

_getch();

system("cls");

}

CloseHandle(myFile);

}

Р езультат работы

1.

2.

3 .

Соседние файлы в предмете Операционные системы