42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
1

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

22.11.2014, 14:46. Показов 486. Ответов 7
Метки нет (Все метки)

Здравствуйте задача состоит в слудующем есть файл база знаний в которой написаны автомобили и критерии к этому автомобилю
База знаний
1 Мазда=Япония Справо Быстрый Музыка
2 Тойота=Япония Справо Спокойный Вместимость
3 Бмв=Германия Слево Педаль газа в пол Многофункциональность
4 Лада=Россия Слево Режим пенсионер Музыка
5 Додж=Америка Слево Спокойный Комфорт


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

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

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

Помогите пожалуйста с реализацией данного задания
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2014, 14:46
Ответы с готовыми решениями:

Просто позарез необходима поммощь! Молю, спасайте! Завтра зачёт...
такая прогарамма о графах и выскакивает всего одна ошибка на 1-ю строчку(#include "stdafx.h") Не...

Необходимо найти счетчик (или просто набор чисел) для сайта
Здравствуйте. Итак, мне необходимо поставить счетчик на сайт, чтобы это число росло с...

Необходима функция или метод копирования макросов!!
Пожалуйста! Срочно необходима функция и/или алгоритм копирования макросов в среде Word и Excel. Это...

Просто ерунда какая-то, функция просто проверяет мои нервы
Есть функция char OPEN_USER_COMMAND(System::String^ PolzCom) { System::String^ Temp =...

7
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
22.11.2014, 16:21 2
В чём сложность? Записал, считал, сравнил. Чем больше совпало, тем лучше.
1
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
22.11.2014, 16:26  [ТС] 3
nmcf, может по циклам не правильно бегаю или вообще не то написал
Ну что то вообще не получается что не так пишу???
https://www.cyberforum.ru/atta... 1416662676 записанные ответы теста

https://www.cyberforum.ru/atta... 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 байт, 3 просмотров)
Тип файла: txt база_знаний.txt (230 байт, 4 просмотров)
1
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
22.11.2014, 16:30  [ТС] 4
nmcf, если можно проще как то написать покажите как?
1
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
22.11.2014, 16:40 5
Структура у тебя неправильная, каждое поле из 1-го символа. Надо массивы.
1
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
22.11.2014, 16:49  [ТС] 6
nmcf, можете привести пример ?
записать в структуры массивы типа
C++
1
char vopros1[100]
??
йо т.е
C++
1
ES* a=new ES[n];
изменить?
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
22.11.2014, 18:50 7
Цитата Сообщение от Dgaizer Посмотреть сообщение
записать в структуры массивы типа
Код C++
1
char vopros1[100]
Да.
1
42 / 42 / 5
Регистрация: 25.03.2014
Сообщений: 444
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 байт, 2 просмотров)
Тип файла: txt база_знаний.txt (434 байт, 2 просмотров)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2014, 19:18
Помогаю со студенческими работами здесь

Работа с файлами или файловыми бд
Подскажите как реализовать добавление значений в обьекты классы student из файла или файловой бд. ...

Работа с файлами расширения .hgt или
Добрый день. Есть файлы .hgt, содержащие матрицу целых чисел (данные SRTM). Нужно выгрузить их,...

Работа с архивами или зашифрованными файлами
Добрый день. Я хочу сделать программу, которая бы шифровала файлы и расшифровать их можно было...

Работа с файлами (удалить папки или файлы)
Какие есть коды в C++ , чтобы удалить папки или файлы ? Например что про писать в исходнике, чтобы...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru