Register

OR

Do you already have an account? Login

Login

OR

Don't you have an account yet? Register

Newsletter

Submit to our newsletter to receive exclusive stories delivered to you inbox!

C++
Дан файл, содержащий сведения о владельцах
автомобилей. Структура записи файла: фамилия и инициалы владельца,
марка и номер автомобиля.
Написать программу, которая печатает
- фамилию владельца автомобиля с заданным номером;
- фамилии владельцев и номера автомобилей данной марки (в алфавитном
порядке);
- количество автомобилей каждой марки.

более месяца назад
Повернуть

Прикрепленные изображения:


Просмотров : 607    Ответов : 1    Картинок: 1   

Лучший ответ:


код не работает
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<locale.h>
#include<iostream>
#include<string.h>


#define DL_FIO 18
#define DL_NOMER 10
#define DL_MARKA 17
#define DL_KOL 4

using namespace std;


struct avto
{
char fio[DL_FIO];
char marka[DL_MARKA];
char nomer[DL_NOMER];
int kol[DL_KOL];
};


//рототип функции
void Nomer(FILE *f);
void Marka(FILE *f);
void Kol(FILE *f);
/*---------------------*/
/* главная функция */
/*---------------------*/
int main()
{
setlocale(LC_ALL,"Russian");
FILE *f;
char n;
f=fopen("avto.txt","r");
if (f==NULL)
{
puts("файл не наден");
getch();
return 1;
}
do
{
puts("\n ==========================================================================");
puts("Выберите номер пункта");
puts("1-вывод фамилии, инициалов и марки автомобиля по номеру автомобиля");
puts("2-вывод номера автомобиля и фамилии в алфамитном пордке по марке автомобиля");
puts("3-вывод количества автомобилей данной марки");
puts("4-выход");
puts("---------------------------------------------------------------------------");
n=getche();
switch(n)
{
case '1' : Nomer(f); break;
case '2' : Marka(f); break;
case '3' : Kol(f); break;
case '4' : break;



default: puts("\n нужно вводить от 1 до 4");
}
if (n!='4')
{
puts("\n Для продолжения нажмите любую клавишу");
getch();
}
}
while (n!='4');
fclose(f);
return 0;
}


// поиск по номеру
void Nomer(FILE *f)
{
char znomer[10];
int a=0;
struct avto tz;
puts("\n введите номер в виде e678ss716");
gets(znomer);
rewind(f);
while(fgets((char *) &tz, sizeof(struct avto),f)!=NULL)
{
if (strcmp(tz.nomer, znomer)==0)
{

printf("%s", tz.fio);
tz.fio[DL_FIO]='\0';
tz.marka[DL_MARKA];
a++;
}

}
if(a==0)
cout << "Нет владельца номера" << endl;
}

void Marka(FILE *f)

{
char zmarka[DL_MARKA];
struct avto tz;
int a=0, n=0;
puts("\n Введите марку автомобиля ");
gets(zmarka);
rewind(f);

while (fgets((char *) &tz, sizeof(struct avto), f)!=NULL)
{
if (strncmp (tz.marka, zmarka, 3)==0)
{
tz.fio[DL_FIO]='\0';
printf("%s %s\n", tz.fio,tz.nomer);
tz.marka[DL_MARKA]='\0';
a++;


}

}

if(a==0)
cout << "Нет такого автомобиля" << endl;
fclose(f);
}


void Kol(FILE *f)//количество

{
char zmarka[DL_MARKA];
struct avto tz;
int a=0 ;
puts("\n Введите марку автомобиля ");
gets(zmarka);
rewind(f);

while (fgets((char *) &tz, sizeof(struct avto), f)!=NULL)
{
if (strncmp (tz.marka, zmarka, 3)==0)
{

a++;


}

}
printf("%d\n", a);
if(a==0)
cout << "Нет такого автомобиля" << endl;
fclose(f);
}





более месяца назад
Ваш ответ:
Комментарий должен быть минимум 20 символов
Чтобы получить баллы за ответ войди на сайт





Вы можете из нескольких рисунков создать анимацию (или целый мультфильм!). Для этого нарисуйте несколько последовательных кадров и нажмите кнопку Просмотр анимации.


Другие вопросы: