Файлы
Предмет
Тип работы
Факультет
Преподаватель
Министерство образования Республики Беларусь
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра экономической информатики
Лабораторная работа №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);
}