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

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

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

Поиск и запись в файл - C++

22.04.2012, 13:17. Просмотров 222. Ответов 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
#include <iostream>
#include <conio.h>
#include <locale>
#include <fstream>
using namespace std;
class Hotel
{
    char *country, *name;
    int n_star,n_fplace;
public:
    Hotel(char *country="\0", char *name="\0",int n_star=0, int n_fplace=0);
    Hotel(const Hotel &);
    void set_country (char*);
    void set_name (char*);
    void set_s_fp (int a,int b){n_star=a,n_fplace=b;}
    char* get_country (){return country;}
    char* get_name () {return name;}
    int get_s () {return n_star;}
    int get_fp () {return n_fplace;}
    bool isEqualCountry (char *);
    bool isEqualname (char *);
    void show() {cout<<country<<" , "<<name<<" , "<<n_star<<" звезд"<<"\t"<<n_fplace<<" свободных мест"<<endl;}
    ~Hotel () {delete[]country;delete[]name;}
};
Hotel::Hotel(char *a, char *b, int c, int d)
{
    int n=strlen(a); country=new char[n+1]; if(!country) exit(1);strcpy(country,a);
    int m=strlen(b); name=new char[m+1]; if(!name) exit(1);strcpy(name,b);
    n_star=c;
    n_fplace=d;
}
Hotel::Hotel(const Hotel &ob)
{
    int n=strlen(ob.country); country=new char[n+1]; if(!country) exit(1);strcpy(country,ob.country);
    int m=strlen(ob.name); name=new char[m+1]; if(!name) exit(1);strcpy(name,ob.name);
    n_star=ob.n_star;
    n_fplace=ob.n_fplace;
}
void Hotel::set_country(char *a)
{
    int n=strlen(a); country=new char[n+1]; if(!country) exit(1);strcpy(country,a);
}
void Hotel::set_name(char *b)
{
    int m=strlen(b); name=new char[m+1]; if(!name) exit(1);strcpy(name,b);
}
bool Hotel::isEqualCountry (char *a)
{
    if(strcmp(country,a)==0)
        return true;
            return false;
}
bool Hotel::isEqualname (char *a)
{
    if(strcmp(name,a)==0)
        return true;
            return false;
}
int main()
{
    setlocale(LC_ALL,"Russian");
    const int n=20;
    Hotel ob[n];
    char country[100],name[100],y[100];
    int n_star,n_fplace,s,i=0,f=0,q=0;
    ifstream f1("hotel.txt");
    if(!f1)
    {
        cout<<"Ошибка чтения файла\n";
        return 0;
    }
    while(!f1.eof())
    {
        f1>>country>>name>>n_star>>n_fplace;
        ob[i].set_country(country);ob[i].set_name(name);ob[i].set_s_fp(n_star,n_fplace);
        ob[i].show();
        i++;
    }
    q=i;
    f1.close();
    while( true)
    {
        cout<<"Выберите вариант поиска"<<endl;
        cout<<"Если введете 1:Выбор отелей по стране нахождения"<<endl;
        cout<<"Если введете 2:Выбор отелей по названию"<<endl;
        cout<<"Если введете 0:выход из программы!!!"<<endl;
    cin>>s;
    if(s==0)
    {
    cout<<"Спасибо,что воспользовались нашей программой!"<<endl;
    break;
    }
    switch(s)
    {
case 1:
    {
        cout<<"Введите страну для поиска:"<<endl;
        fflush(stdin);
        gets(y);f=0;
        ofstream f2("country.txt");
    for(int i=0;i<q;i++)
        {
        if(ob[i].isEqualCountry(y))
        {
            f2<<country<<" , "<<name<<" , "<<n_star<<" звезд"<<"\t"<<n_fplace<<" свободных мест"<<endl;f=1;
        }
        }
        if(f==0)
            cout<<"Введенной страны не существует!!!"<<endl;
        f2.close();
        break;
    }
case 2:
    {
        cout<<"Введите название для поиска:"<<endl;
        fflush(stdin);
        gets(y);f=0;
        ofstream f3("name.txt");
    for(int i=0;i<q;i++)
        {
        if(ob[i].isEqualname(y))
        {
            f3<<country<<" , "<<name<<" , "<<n_star<<" звезд"<<"\t"<<n_fplace<<" свободных мест"<<endl;f=1;
        }
        }
        if(f==0)
            cout<<"Введенной страны не существует!!!"<<endl;
        f3.close();
        break;
    }
default:
        cout<<"Неверно ввели вариант сортировки!!!"<<endl;
    }
    }
    return 0;
}
Добавлено через 1 час 0 минут
А вот и содержимое файла hotel.txt
Бразилия Gold_palace 5 23
Англия Crown_palace 4 12
Мексика Cactus_Hotel 2 56
Беларусь Europa 5 22
Россия Moscow_city 5 67
Беларусь Minsk 4 34
Польша Pan_Hotel 3 7
Германия Octoberfest 4 5
ОАЭ Platinum 5 0
Египет Red_sea 4 33
Турция Turkey_plaza 2 1
Мальдивы Bungalow 1 0
Тайланд Phucket_Plaza 5 6
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2012, 13:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск и запись в файл (C++):

Запись в файл , и поиск содержимого / (Библиотека) - C++
Писал в &quot;Visual Studio 2013&quot; Есть каталог библиотеки. Нужно записать информацию о книге в файл, посмотреть содержимое , и найти...

Поиск маршрутов выхода из лабиринта и запись карты с найденным маршрутом в файл - C++
Нужно провести поиск маршрутов выхода из лабиринта и запись карты с найденным маршрутом в файл solution.txt. Карта лабиринта содержится в...

Multimap STL - работает только запись в файл, поиск в файле не работает - C++
И снова здравствуйте. Снова я прошу вашей помощи. Переделал программу с мапом в мульти мап, но что то пошло не так и работает только запись...

запись в файл. не создается файл - C++
#include &lt;graphics.h&gt; // vkljy4it' opisanie grafi4eskix fynkcij Ñ/Ñ++ Borland'ah #include&lt;stdio.h&gt; #include &lt;conio.h&gt; // opisanie...

чтение запись поиск - C++
В файле хранится информация о служащих, состоящая из имени, фамилии, отчества служащего, даты рождения, образования, домашнего адреса,...

Работа со строками, поиск, запись - C++
Дорогие друзья, пишу программу. При написании возникли проблемы, а точнее столь слабые познания в с++. Имеем .xml файл вида: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2012, 13:17
Привет! Вот еще темы с ответами:

Поиск уникальных элементов в массиве и запись в другой массив - C++
есть код но он не работает, полностью копирует массив А в массив В что я не так сделал? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Запись в файл - C++
Здравствуйте. Такая вот проблема: Есть функция, вычисляющая на встроенном ассемблере уравнение. Значения должны браться из файла input.txt...

Запись в файл - C++
Здравствуйте. У меня такой вопрос. Вот есть программа выводящая лабораторные на экран и мне нужно чтобы все результаты с экрана...

Запись в файл - C++
Напишите пожалуйста простой пример записи в файл.


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

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

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