Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
завдання з програмування.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
425.66 Кб
Скачать

Int main(int argc, char* argv[])

{SetConsoleCP(1251);

SetConsoleOutputCP(1251);

char s[100],st1[100];

char *p;

int i,k=0;

cout<<"Введіть рядок:\n";

gets(s);

strcat(s," ");

strcpy(st1,s);

cout<<"\nСлова рядка: \n";

for(i=0;(p=strtok(!i?st1:NULL," '\n'"))!=NULL;i=1)

{k++;

puts(p);

}

cout<<"\nКількість слів: "<<k<<"\n";

getch();

return 0;

}

Результати виконання програми

Рисунок 2.5.2 – Вікно результатів роботи програми

2.6 Обробка файлів структурованих даних

Завдання: створити програму, яка б забезпечувала створення, перегляд, доповнення та вилучення даних з файлу, що містить інформацію про учнів в школі у вигляді: ім’я, прізвище, клас, рік навчання. Організувати пошук учнів, які мають однакове ім’я та прізвище і навчаються в одному клачсі.

Виконання завдання

Алгоритм рішення

П рограма рішення.

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

struct ant

{char im[30];

char fam[50];

char kls[2];

char rik[256];};

FILE *f,*g;

ant x;

//створення

void stv(void)

{ if ((f=fopen("x.dat","w"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть інформацію про учня:\n";

do

{cout<<"\nВведіть імя учня: ";

cin>>x.im;

cout<<"\nВведіть прізвище учня: ";

cin>>x.fam;

cout<<"\nВведіть клас: ";

cin>>x.kls;

cout<<"\nВведіть рік навчасння : ";

cin>>x.rik;

fwrite(&x,sizeof(x),1,f);}

while(getch()!=27);

fclose(f);}

//доповнення

void dod(void)

{ if ((f=fopen("x.dat","a"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть інформацію про учня:\n";

do

{cout<<"\nВведіть імя учня: ";

cin>>x.im;

cout<<"\nВведіть прізвище учня: ";

cin>>x.fam;

cout<<"\nВведіть клас: ";

cin>>x.kls;

cout<<"\nВведіть рік навчасння (буквами): ";

cin>>x.rik;

fwrite(&x,sizeof(x),1,f);}

while(getch()!=27);

fclose(f);}

//перегляд

void per(void)

{ if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\n Інформація про учня:\n";

while(fread(&x,sizeof(x),1,f)!=NULL)

{cout<<"\nімя учня: ";

cout<<x.im;

cout<<"\nпрізвище учня: ";

cout<<x.fam<<"\n";

cout<<"\nклас: ";

cout<<x.kls;

cout<<"\nрік навчасння (буквами): ";

cout<<x.rik;

getch();}

fclose(f);}

//вилучення

void del(void)

{ if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

if((g=fopen("x1.dat","w"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\n Інформація про учнів: \n";

while(fread(&x,sizeof(x),1,f)!=NULL)

{cout<<"\nІмя учня: ";

cout<<x.im;

cout<<"\nПрізвище учня: ";

cout<<x.fam;

cout<<"\nКлас: ";

cout<<x.kls;

cout<<"\nРік навчасння (буквами): ";

cout<<x.rik;

getch();

cout<<"\n\n Вилучати(y/n)?";

if(getch()=='n') fwrite(&x,sizeof(x),1,g);}

fclose(f);

fclose(g);

unlink("x.dat");

rename("x1.dat","x.dat");}

void posh(void)

{ char s1[40],s2[50],s3[10];

if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть імя для пошуку:";

cin>>s1;

cout<<"\nВведіть прізвище для пошуку:";

cin>>s2;

{cout<<"\nКлас: ";

cin>>s3;

while(fread(&x,sizeof(x),1,f)!=NULL)

if((strcmp(s1,x.im)==0)&&(strcmp(s2,x.fam)==0)&&(strcmp(s3,x.kls)==0))

cout<<"\nРік навчасння (буквами): ";

cout<<x.rik; }

getch();

}

#pragma argsused