Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bogdan_Fateev
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 10
#1

Ошибка в программе. Структура "Автомобиль" - C++

23.04.2014, 21:50. Просмотров 276. Ответов 4
Метки нет (Все метки)

Нуждаюсь в помощи. Сделал программу, но есть проблема с поиском.
Задание: создать программу, которая бы обеспечивала создание, просмотр, дополнения и извлечение данных из файла, содержащего сведения об автомобиле состоящие из названия его марки, номера, фамилии владельца. Данная информация о 20 автомобилей. Организовать поиск количества автомобилей каждой марки.
Проблема в том, что при поиске выводит "0" вместо нужного количества марок.
Например, я введу 2 машины с маркой "лада", а выводит вместо "2" "0".

Вот код:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
//---------------------------------------------------------------------------
 
#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
{
int kod;
char mark[15];
char fam[15];
double nomer;
};
FILE *f,*g;
ant x;
 
//stvorenn9
void stv(void)
{ if ((f=fopen("x.dat","w"))==NULL)
{perror("Fail uje suwestvuet");
getch();
exit(1);
}
cout<<"\n Vvedite inform avtomobilya\n";
do
{cout<<"\n Vvedite marku avtomobilya: ";
cin>>x.mark;
cout<<"\n Vvedite nomer avtomobilya: ";
cin>>x.nomer;
cout<<"\n Vvedite familiu vladelca: ";
cin>>x.fam;
fwrite(&x,sizeof(x),1,f);
}
while(getch()!=27);
fclose(f);
}
 
//dopolnenie
void dop(void)
{ if ((f=fopen("x.dat","a"))==NULL)
{perror("Fail uje sywestvuet");
getch();
exit(1);
}
cout<<"\n Vvedite inform avtomobilya\n";
do
{cout<<"\n Vvedite marku avtomobilya: ";
cin>>x.mark;
cout<<"\n Vvedite nomer avtomobilya: ";
cin>>x.nomer;
cout<<"\n Vvedite prizvuwe vladelca: ";
cin>>x.fam;
fwrite(&x,sizeof(x),1,f);
}
while(getch()!=27);
fclose(f);
}
 
//peresmotr
void per(void)
{ if ((f=fopen("x.dat","r"))==NULL)
{perror("Fail uje suwestvuet");
getch();
exit(1);
}
cout<<"\n Vvedite inform avtomobilya: \n";
while(fread(&x,sizeof(x),1,f)!=NULL)
{cout<<"\n Vvedite marku avtomobilya: "<<x.mark;
cout<<"\n Vvedite nomer avtomobilya: "<<x.nomer;
cout<<"\n Vvedite prizvuwe vladelca: "<<x.fam;
getch();
}
fclose(f);
}
 
//DEl
void del(void)
{ if ((f=fopen("x.dat","r"))==NULL)
{perror("Fail uje suwestvuet");
getch();
exit(1);
}
if((g=fopen("x1.dat","w"))==NULL)
{perror("Fail uje suwestvuet");
getch();
exit(1);
}
cout<<"\n Vvedite inform avtomobilya: \n";
while(fread(&x,sizeof(x),1,f)!=NULL)
{cout<<"\n Vvedite marku avtomobilya: "<<x.mark;
cout<<"\n Vvedite nomer avtomobilya: "<<x.nomer;
cout<<"\n Vvedite prizvuwe vladelca: "<<x.fam;
cout<<"\n\n UDALITE(y/n)?";
if(getch()=='n') fwrite(&x,sizeof(x),1,g);
}
fclose(f);
fclose(g);
unlink("x.dat");
rename("x1.dat","x.dat");
}
 
//dolg
void count(void)
{ char vodmark[15];
if((f=fopen("x.dat","r"))==NULL)
{perror("Fail uje sywestvuet");
getch();
exit(1);
}
cout<<"\nvvedite marku\n";
cin>>vodmark;
 int k=0;
while(fread(&x,sizeof(x),1,f))
if(vodmark==x.mark) k++;
cout<<"\n Kolichestvo marok: "<<k;
getch();
}
#pragma argsused
int main(int argc, char* argv[])
{
 int r;
clrscr();
do
{
clrscr();
cout<<"\n\n\n\t\t GLAVNOE MEHU \n\t1-SOZDANIE\n\t2-PERESMOTR";
cout<<"\n\t3-DOPOLNENIE\n\t4-DELETE\n\t5-PODSCHET\n\t6-BUXOD\n\t REGUM?\n\t";
cin>>r;
switch(r)
{case 1:{stv();break;}
case 2:{per();break;}
case 3:{dop();break;}
case 4:{del();break;}
case 5:{count();break;}
case 6:exit(1);
}
}
while(1);
 
        return 0;
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 21:50     Ошибка в программе. Структура "Автомобиль"
Посмотрите здесь:

Структура "Сканер". Нужны советы профессионалов по программе - C++
Программа ПОЧТИ работает, очень все сырое, код мне кажется мог быть и короче. Прошу Вас, эксперты, указать явные недоработки и как было бы...

Ошибка в программе. Замена буквы "О" на "о" - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; main() { int S=0, a, Sum; for (int i = 1; i &lt;=3; i++) for (int j = 1; j &lt;=5; j++) { ...

Ошибка в программе, где создается шаблон класса "стек" - C++
Задача:Гаражная стоянка имеет одну стояночную полосу, причем единственный въезд и единственный выезд находятся в одном конце полосы. Если...

Ошибка "Необработанное исключение" в программе с strlen и strtok - C++
Из заданной текстовой строки распечатать только те слова, которые начинаются и оканчиваются одной и тоже буквой, используя функции...

Ошибка в программе дешифрования: "выражение должно иметь тип указателя на объект" - C++
Возникают ошибки : 5 IntelliSense: выражение должно иметь тип указателя на объект c:\Users\Maks\Documents\Visual Studio...

Ошибка в программе задачи "голодный ферзь" - C++
Суть задачи: на шахматной доске 8х8 стоит белый ферзь и N черных пешек. На вход программе дается число N, положение ферзя и N строк с...

ошибка в программе dev c++ пишет что-то на манеру:"нельзя будет откомпилировать ничего " - C++
Собственно снимок прилагается. Как боротся с этой напастью?

Ошибка в программе "Среднее арифметическое" - C++
Хотел создать программу, которая считает и выводит среднее арифметическое чисел, но эта программа выводит неправильный ответ. #include...

Если первый автомобиль финиширует первым, выведите "First" - C++
Недавно руководством одной известной автомобильной телепередачи «Верхняя шестерня» было решено провести обзор автомобилей на солнечных...

Cтруктура "Автомобиль", поиск по заданным критериям - C++
Создать структуру Car: id, Марка, Модель, Год выпуска, Цвет, Цена, регистрационный номер. Создать массив структур.Вывести: 1) список...

Определение конструкторов, деструкторов в классе "Автомобиль" - C++
Здравствуйте уважаемые форумчане! У меня есть класс Автомобиль public class Automobile { public CarBrand Brand { get;...

Описать класс "Автомобиль" - C++
Описать класс авто, с полями марка, цвет, пробег и методом, увеличивающим пробег на пройденное расстояние – аргумент метода. Описать объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6290 / 5893 / 1911
Регистрация: 18.12.2011
Сообщений: 15,132
Завершенные тесты: 1
23.04.2014, 21:54     Ошибка в программе. Структура "Автомобиль" #2
Стандартная ошибка.
if(vodmark==x.mark)
При сравнении текстов надо сравнивать строки, а не их адреса
C++
1
if(strcmp(vodmark,x.mark)==0)
Bogdan_Fateev
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 10
23.04.2014, 22:01  [ТС]     Ошибка в программе. Структура "Автомобиль" #3
C++
1
2
1
if(strcmp(vodmark,x.mark)==0)
Эм, да нет, все равно. Может ошибка есть до этого? Все равно 0.
Изменилось только то, что если я ввожу 2 одинаковые марки автомобилей, то выводится 2 сообщения, что марок 0. Если введу 3 маки, выводит 3 одинаковых сообщений.
zss
Модератор
Эксперт С++
6290 / 5893 / 1911
Регистрация: 18.12.2011
Сообщений: 15,132
Завершенные тесты: 1
23.04.2014, 22:05     Ошибка в программе. Структура "Автомобиль" #4
Посмотрите строки в отладчике.
Возможно в одной из них нет символа '\n' в конце, а в другой есть.
Bogdan_Fateev
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 10
23.04.2014, 22:57  [ТС]     Ошибка в программе. Структура "Автомобиль" #5
Да не в этом суть. 2 одинаковых сообщений выбивает.
Ну и к тому же, все равно дает 0.
Yandex
Объявления
23.04.2014, 22:57     Ошибка в программе. Структура "Автомобиль"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru