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

Работа с файлами необходима функция или просто счетчик С++ - C++

Восстановить пароль Регистрация
 
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
22.11.2014, 14:46     Работа с файлами необходима функция или просто счетчик С++ #1
Здравствуйте задача состоит в слудующем есть файл база знаний в которой написаны автомобили и критерии к этому автомобилю
База знаний
1 Мазда=Япония Справо Быстрый Музыка
2 Тойота=Япония Справо Спокойный Вместимость
3 Бмв=Германия Слево Педаль газа в пол Многофункциональность
4 Лада=Россия Слево Режим пенсионер Музыка
5 Додж=Америка Слево Спокойный Комфорт


Пользователь проходит тест.
1)Какая страна производства?
2)Руль с какой стороны?
3)Как вы водите?
4)Что в машине главное ?

Его ответы записываются в текстовый файл.

И следующее что надо сделать это считать с файла ответы пользователя сравнить их с Базой знаний и вывести результат какие машины подходят больше или меньше ( необязательно % соотношении можно )

Помогите пожалуйста с реализацией данного задания
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2014, 14:46     Работа с файлами необходима функция или просто счетчик С++
Посмотрите здесь:

Структуры: Вывести все танки с 1940-1950 г. чей калибр , больше 50 мм. или же просто больше 50 C++
Дана строка удалить все пробелы или просто присвоить в другую строку без пробелов C++
C++ Работа с файлами
Просто позарез необходима поммощь! Молю, спасайте! Завтра зачёт... C++
C++ что использовать std::cout или просто using namespace std?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4307 / 3728 / 1257
Регистрация: 14.04.2014
Сообщений: 14,610
22.11.2014, 16:21     Работа с файлами необходима функция или просто счетчик С++ #2
В чём сложность? Записал, считал, сравнил. Чем больше совпало, тем лучше.
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
22.11.2014, 16:26  [ТС]     Работа с файлами необходима функция или просто счетчик С++ #3
nmcf, может по циклам не правильно бегаю или вообще не то написал
Ну что то вообще не получается что не так пишу???
http://www.cyberforum.ru/attachment....1&d=1416662676 записанные ответы теста

http://www.cyberforum.ru/attachment....1&d=1416662676 база знаний
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
#include <clx.h>
#pragma hdrstop
#include <iostream.h>
#include <fstream.h>
#include <string.h>
//---------------------------------------------------------------------------
 
 struct ES{char vopros1; char vopros2; char vopros3 ; char vopros4 ; char vopros5;char vopros6 ;} ;
 struct RES{char otvet1; char otvet2; char otvet3 ; char otvet4 ; char otvet5;char otvet6 ;};
 #pragma argsused
 
int main(int argc, char* argv[])
{  char mashina; int i, j , n=0 , d=0;
string temp;
 
ifstream in("база_знаний.txt");
   while(!in.eof())
     {
       getline(in,temp);
        n++;
      }
    in.clear();
    in.seekg(0 ,ios::beg);
    ES* a=new ES[n]; //динамический массив струтур
    n=0;
    while(!in.eof())
        {
        in>>temp>>mashina>>temp>>a[n].vopros1>>a[n].vopros2>>a[n].vopros3>>a[n].vopros4>>a[n].vopros5>>a[n].vopros6;
        n++;
        }
 
 
 
       ifstream f("rezultat.txt");
       while(!f.eof())
     {
       getline(f,temp);
        d++;
      }
    f.clear();
    f.seekg(0 ,ios::beg);
    RES* b=new RES[d]; //динамический массив структур
    d=0;
    while(!f.eof())
        {
        in>>b[d].otvet1>>b[d].otvet2>>b[d].otvet3>>b[d].otvet4>>b[d].otvet5>>b[d].otvet6;
        d++;
        }
  //сравниваем
    for(i=0;i<n;i++)
 
       for(j=0;j<d;j++)
   if(a[n].vopros1==b[d].otvet1 &&
   a[n].vopros2==b[d].otvet2 &&
   a[n].vopros3==b[d].otvet3 &&
    a[n].vopros4==b[d].otvet4 &&
    a[n].vopros5==b[d].otvet5 &&
     a[n].vopros6==b[d].otvet6)
     cout<<"Mashina 100% vam podhodit"<<mashina;
 
 
 
 
 
 
 
 
 
 
 
 
     system("pause");
        return 0;
}
Вложения
Тип файла: txt rezultat.txt (53 байт, 1 просмотров)
Тип файла: txt база_знаний.txt (230 байт, 2 просмотров)
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
22.11.2014, 16:30  [ТС]     Работа с файлами необходима функция или просто счетчик С++ #4
nmcf, если можно проще как то написать покажите как?
nmcf
4307 / 3728 / 1257
Регистрация: 14.04.2014
Сообщений: 14,610
22.11.2014, 16:40     Работа с файлами необходима функция или просто счетчик С++ #5
Структура у тебя неправильная, каждое поле из 1-го символа. Надо массивы.
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
22.11.2014, 16:49  [ТС]     Работа с файлами необходима функция или просто счетчик С++ #6
nmcf, можете привести пример ?
записать в структуры массивы типа
C++
1
char vopros1[100]
??
йо т.е
C++
1
ES* a=new ES[n];
изменить?
nmcf
4307 / 3728 / 1257
Регистрация: 14.04.2014
Сообщений: 14,610
22.11.2014, 18:50     Работа с файлами необходима функция или просто счетчик С++ #7
Цитата Сообщение от Dgaizer Посмотреть сообщение
записать в структуры массивы типа
Код C++
1
char vopros1[100]
Да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 19:18     Работа с файлами необходима функция или просто счетчик С++
Еще ссылки по теме:

работа с файлами C++
с++как вывести указатель структуры на экран? а то все время что-нибудь подчеркивает или просто ничего не выводит( C++
Как минимально просто использовать функция std::find с последовательность типа : list<myClass*> C++

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

Или воспользуйтесь поиском по форуму:
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
22.11.2014, 19:18  [ТС]     Работа с файлами необходима функция или просто счетчик С++ #8
nmcf, переделал код не много считываю не слова а индесы все равно ничего не выводит почему?

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
#include <clx.h>
#pragma hdrstop
#include <iostream.h>
#include <fstream.h>
#include <string.h>
//---------------------------------------------------------------------------
 
 struct RES{int v1;int v2;int v3;int v4;int v5;int v6;} ;
 struct ES{char mashina[100]; int o1;int o2;int o3;int o4;int o5;int o6;};
 #pragma argsused
 
int main(int argc, char* argv[])
{ int i,j;
 string temp;
  ifstream in("rezultat.txt");
  int n=0;
   while(!in.eof())
    {
      getline(in,temp);
      n++;
      }
    in.clear();
    in.seekg(0,ios::beg);
   RES* a=new RES[n];
    n=0;
      while(!in.eof())
       {
       in>>a[n].v1>>temp>>a[n].v2>>temp>>a[n].v3>>temp>>a[n].v4>>temp>>a[n].v5>>temp>>a[n].v6;
       n++ ;
       }
 
 
       ifstream f("ГЎГ*Г§Г*_Г§Г*Г*Г*ГЁГ©.txt");
  int d=0;
   while(!f.eof())
    {
      getline(f,temp);
      d++;
      }
    f.clear();
    f.seekg(0,ios::beg);
    ES* b=new ES[d];
    d=0;
      while(!f.eof())
       {
       f>>b[d].mashina>>b[d].o1>>temp>>b[d].o2>>temp>>b[d].o3>>temp>>b[d].o4>>temp>>b[d].o5>>temp>>b[d].o6>>temp;
       d++;
       }
         //Г±Г°Г*ГўГ*ГЁГўГ*Г*ГЁГҐ
       for(i=0;i<n;i++)
 
         for(j=0;j<d;j++)
 
         if(a[n].v1==b[d].o1 &&
         a[n].v2==b[d].o2 &&
         a[n].v3==b[d].o3 &&
         a[n].v4==b[d].o4 &&
         a[n].v5==b[d].o5 &&
         a[n].v6==b[d].o6)
         cout<<"Mashina 100 vam podhodit:"<<b[d].mashina;
 
 
 
         return 0;
         }
Вложения
Тип файла: txt rezultat.txt (80 байт, 1 просмотров)
Тип файла: txt база_знаний.txt (434 байт, 1 просмотров)
Yandex
Объявления
22.11.2014, 19:18     Работа с файлами необходима функция или просто счетчик С++
Ответ Создать тему
Опции темы

Текущее время: 10:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru