Тема: Робота зі списком фільмів (мова С)
Не получається написати четверту і п'яту функцію.
Допоможіть
Задача.
Підготувати дані, що містять інформацію про Відеотеку, дані оформити у вигляді запису, що містить наступні поля: Номер, Фільм, Країна, Час, Жанр, Дата. Кількість записів довільна. Створити програму записів підготовлених даних до зовнішнього файлу і програму обробки цього зовнішнього файлу, що виконує наступні операції.
1)Введення даних в файл;
2)Виводить на екран введені дані;
3)Додає записів на початок або кінець файлу;
4)Видаляє всі дані про фільм, номер якого задано користувачем і виводить на екран
оновлений вміст файлу;
5)Сортує жанри фільмів за алфавітом;
Ось код для трьох пунктів.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int number()
{
int fnumber;
printf("vvedit kilkist zapysiv: ");
scanf("%d", &fnumber);
printf("\n");
return(fnumber);
}
void vvedena_danux(){
FILE *file;
struct video {
int nomer;
char film[50];
char kraina[50];
float time;
char janr[50];
int date;
} shop[100];
int n=number();
char i=0;
file= fopen("videoteka.txt", "w");
for(i=0;i<n;i++)
{
printf("Введіть номер\n");
scanf("%d",&(shop[i].nomer));
fprintf(file,"\n%d ",shop[i].nomer);
printf("Введіть фільм\n");
scanf("%s", shop[i].film);
fprintf(file,"%s ",shop[i].film);
printf("Введіть країну\n");
scanf("%s",shop[i].kraina);
fprintf(file,"%s ",shop[i].kraina);
printf("Введіть час\n");
scanf("%f",&(shop[i].time));
fprintf(file,"%0.2f ",shop[i].time);
printf("Введіть жанр фільма\n");
scanf("%s",shop[i].janr);
fprintf(file,"%s ",shop[i].janr);
printf("Введіть дату фільма\n");
scanf("%d",&(shop[i].date));
fprintf(file,"%d ",shop[i].date);
}
fclose(file);
}
void vuvodut_na_ekaran(){
FILE *file;
struct video {
int nomer;
char film[50];
char kraina[50];
float time;
char janr[50];
int date;
} shop[100];
char emptyLine;
char i=0;
file= fopen("videoteka.txt", "r");
while(!feof(file))
{
fscanf(file,"%d",&(shop[i].nomer));
fscanf(file,"%s", shop[i].film);
fscanf(file,"%s", shop[i].kraina);
fscanf(file,"%f",&(shop[i].time));
fscanf(file,"%s", shop[i].janr);
fscanf(file,"%d",&(shop[i].date));
printf("\n№:%d Фільм:%s Країна:%s Час:%0.2f Жанр:%s Дата:%d ", shop[i].nomer, shop[i].film, shop[i].kraina,
shop[i].time, shop[i].janr, shop[i].date);
fscanf(file, "%c%c", &emptyLine, &emptyLine);
i++;
}
fclose(file);
}
void dodavanna_zapusy(){
FILE *file;
struct food {
int nomer;
char film[50];
char kraina[50];
float time;
char janr[50];
int date;
}shop[100];
char i=0;
file= fopen("videoteka.txt", "a");
printf("Введіть номер запису\n");
scanf("%d", &(shop[i].nomer));
fprintf(file,"%d ",shop[i].nomer);
printf("Введіть фільм\n");
scanf("%s",shop[i].film);
fprintf(file,"%s ",shop[i].film);
printf("Введіть країну\n");
scanf("%s",shop[i].kraina);
fprintf(file,"%s ",shop[i].kraina);
printf("Введіть час\n");
scanf("%f",&(shop[i].time));
fprintf(file,"%.2f ",shop[i].time);
printf("Введіть жанр\n");
scanf("%s",shop[i].janr);
fprintf(file,"%s ",shop[i].janr);
printf("Введіть дату\n");
scanf("%d",&(shop[i].date));
fprintf(file,"%d ",shop[i].date);
fclose(file);
}
main()
{
system("chcp 1251");
int k;
do{
printf("\n--------------------------------");
printf("\n Меню \n");
printf("1)Введення даних в файл\n");
printf("2)Ввиводить на екран введені дані \n");
printf("3)Додає запис на початок або кінець файлу \n");
printf("------------------------------ \n");
printf("Виберіть пункт \n");
scanf("%d",&k);
switch (k) {
case 1: vvedena_danux(); break;
case 2: vuvodut_na_ekaran(); break;
case 3: dodavanna_zapusy(); break;
default: printf("\nНемає такого пункту\n");
}
} while(k !=5);
getch();
}