Файлы

Подробнее
Лабораторная работа на тему "работа с файлами"
Текстовая версия:

Министерство образования Республики Беларусь

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра экономической информатики

Лабораторная работа №1

«Файлы»

Вариант 11

Выполнила: студентка группы 072303

Проверил:

Минск 2021

11. Опишите структуру с именем ORDER, содержащую следующие поля:

- расчетный счет плательщика;

- расчетный счет получателя;

- перечисляемая сумма;

- дата перечисления.

Определите для нее структурную переменную, в которую введите данные путем начальной инициализации. Запишите структуру 6 раз в файл, после чего выведите данные из файла на экран.

1)Файлы с последовательным доступом

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <stdio.h>

#include <conio.h> // для _getch()

struct order

{

char num[20]; // Расчетный счет плательщика

char num2[20]; // Расчетный счет получатель

float sum; //Сумма

char date[10]; // Дата перечисления {dd,mm,yyyy}

};

struct order mas; //объвляем глобальный массив структур

int main() {

system("chcp 1251"); // переходим в консоли на русский язык

system("cls");

FILE* fp;

fp = fopen("myFile.txt", "w");

for (int i = 0; i < 6; i++) {

printf("-=-=-=-=-=-=-=-=-=-=-\n");

printf( "Счет плательщика: ");

scanf("%s", &mas.num);

printf( "Счет получателя: ");

scanf("%s", &mas.num2);

printf( "Сумма: ");

scanf("%f", &mas.sum);

printf( "Дата: ");

scanf("%s", &mas.date);

fprintf(fp, "%s %s %f %s\n", mas.num, mas.num2, mas.sum, mas.date);

}

fclose(fp);

fp = fopen("myFile.txt", "r");

for (int i = 0; i < 6; i++) {

printf("\n-=-=-=-=-=-=-=-=-=-=-");

fscanf(fp, "%s", &mas.num);

printf("\nСчет плательщика: %s", mas.num);

fscanf(fp, "%s", &mas.num2);

printf("\nСчет получателя: %s", mas.num2);

fscanf(fp, "%f", &mas.sum);

printf("\nСумма: %f", mas.sum);

fscanf(fp, "%s", &mas.date);

printf("\nДата: %s", mas.date);

}

fclose(fp);

getchar(); getchar();

return(0);

}

2) Файлы с произвольным доступом

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <stdio.h>

#include <conio.h> // для _getch()

struct order

{

char num[20]; // Расчетный счет плательщика

char num2[20]; // Расчетный счет получатель

float sum; //Сумма

char date[10]; // Дата перечисления {dd,mm,yyyy}

};

struct order mas; //объвляем глобальный массив структур

int main() {

system("chcp 1251"); // переходим в консоли на русский язык

system("cls");

FILE* fp;

fp = fopen("File.dat", "w");

int size = sizeof(order);

for (int i = 0; i < 6; i++) {

printf("-=-=-=-=-=-=-=-=-=-=-\n");

printf("Счет плательщика: ");

scanf("%s", &mas.num);

printf("Счет получателя: ");

scanf("%s", &mas.num2);

printf("Сумма: ");

scanf("%f", &mas.sum);

printf("Дата: ");

scanf("%s", &mas.date);

fwrite(&mas, size, 1, fp);

}

fclose(fp);

_getch(); _getch();

fp = fopen("File.dat", "r");

for (int i = 0; i < 6; i++) {

printf("\n-=-=-=-=-=-=-=-=-=-=-");

fread(&mas, size, 1, fp);

printf("\nСчет плательщика: %s", mas.num);

printf("\nСчет получателя: %s", mas.num2);

printf("\nСумма: %f", mas.sum);

printf("\nДата: %s", mas.date);

}

fclose(fp);

_getch(); _getch();

return(0);

}