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

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

Войти
Регистрация
Восстановить пароль
 
zaharys
#1

мне нужно удалить в программе файлы библиотеки.при компиляции под цифрой 4.я не знаю как это правильно оформить - C++

30.05.2012, 00:26. Просмотров 351. Ответов 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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <sstream>
 
using namespace std;
 
string _file_name = "d:\\cd.lib"; // Файл куди пишеться бібліотека
 
// Клас для роботи із cd lbcrfvb
class cd_disk{
    /*
        Функції set_name, set_year, set_owner - сетери для відповідних приватних змінних
        Функції get_name, get_year, get_owner - гетери для відповідних приватних змінних
    */
public:
    void set_name(string name)
    {
        _name = name;
    }
 
    void set_year(int year)
    {
        _year = year;
    }
 
    void set_owner(string owner)
    {
        _owner = owner;
    }
 
    string get_name()
    {
        return _name;
    }
 
    int  get_year()
    {
        return _year;
    }
 
    string get_owner()
    {
        return _owner;
    }
 
    // Функця, яка повертає дані про CD у вигляді стрічки 
    string get_as_string()
    {
        std::stringstream ss;
        ss << _year;
 
        return _name + "\t"  + ss.str() + "\t" + _owner;
    }
 
private:
    string _name;
    int _year;
    string _owner;
};
 
// Клас для роботи із базою даних
class data_base_worker{
public:
 
    // Запис в файл
    void write_to_file(string file_name, cd_disk cd)
    {
        ofstream file;
        file.open (file_name, ios::app);
        file << cd.get_as_string() << '\n';
        file.close();
    }
 
    // Взяття всієї бібліотеки
    vector<string> get_all_library(string file_name)
    {
        vector<string> library;
 
        string line = "";
        ifstream myfile (file_name);
        if (myfile.is_open())
        {
            while (myfile.good())
            {
                getline (myfile, line);
                library.push_back(line);
            }
            myfile.close();
        }
 
        return library;
    }
 
    // Взяття тільки тих записів, які мають в собі значення для пошуку
    vector<string> find_in_library(string file_name, string find_param)
    {
        vector<string> filtered_library;
 
        string line = "";
        ifstream myfile (file_name);
        if (myfile.is_open()) {
            while (myfile.good()) {
                getline (myfile,line);
 
                size_t found = line.find(find_param);
                if (found!=string::npos){
                    filtered_library.push_back(line);
                }
            }
            myfile.close();
        }
 
        return filtered_library;
    }
};
 
// Функця для виводу вектора, і очікуваня на натиснення клавіші
void print_vector(vector<string> vect)
{
    for (int i=0; i < vect.size(); i++)
    {               
        cout << " " << vect[i] << endl;
    }
    system("pause");
}
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    char menu = 0;
    while (true)
    {
        system("cls");
 
        cout << "Диск:" << endl;
        cout << " 1. додати" << endl;
        cout << " 2. показати всi" << endl;
        cout << " 3. знайти" << endl;
        cout <<" 4. видалити все" << endl;
        cout << "q. Вийти" << endl;
 
        cout << "->";
        cin >> menu;
 
        cd_disk *cd = new cd_disk();
        data_base_worker *dbw = new data_base_worker();
        vector<string> library;
        switch(menu)
        {
        case '1':
            char name[100], owner[200];
            int year;
            cout << "Iм'я Рiк Власник: "; 
            scanf("%s %d %s", &name, &year, &owner);
            cd->set_year(year);
            cd->set_owner(owner);
            cd->set_name(name);
            dbw->write_to_file(_file_name, *cd);
            break;
        case '2':
            library = dbw->get_all_library(_file_name);
            print_vector(library);
            break;
        case '3':
            char find_param[200];
            cout << "Параметр пошуку: ";
            cin >> find_param;
            library = dbw->find_in_library(_file_name, find_param);
            print_vector(library);
            break;
        case '4':
            
               (вот в этом месте я не знаю как правильно сделать...)
        case 'q':
            return;
        }
    }
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 00:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос мне нужно удалить в программе файлы библиотеки.при компиляции под цифрой 4.я не знаю как это правильно оформить (C++):

Как правильно использовать заголовочные файлы при раздельной компиляции в MS Visual Studio? - C++
Если я использую функцию cout и cin в каждом модуле, мне нужно в каждом модуле прописывать : #include &lt;iostream&gt; using namespace std; ...

Знаю , что подобное задание на форуме есть, но подскажите как правильно оформить мой код, пожалуйста - C++
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &quot;locale.h&quot; #include &quot;math.h&quot; #include &quot;ctype.h&quot; //Не правильно считает сумму и в...

Есть база данных библиотеки, сотрудники, задолжники и тд. нужно сделать запросы и отчеты, они простые но как делать с формами это я не знаю - MS Access
Отчеты 1. Книги i-го автора 2. Книги, хранящиеся на i-ом стеллаже 3. Кол-во экземпляров книг i-го автора Запросы ...

Как мне это оформить как ThreadLocal member? - Java
If performance is unacceptable because of thread contention over this member, it should be made into a ThreadLocal member, such that each...

Не знаю как удалить ненужные мне винды! - Windows 7
Я установил винду она была не лицензионная и я переустановил она лагала потом ещё раз переустановил и она работает норм а предыдущие...

Какие файлы мне нужно удалить в Outlook, чтобы устранить ошибку? - MS Outlook
Привет всем форумчанам, буквально только что получил ошибку - &quot;файл поврежден и не может быть открыт&quot;, при открытии офиса Outlook 2010. Я...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 00:26
Привет! Вот еще темы с ответами:

Что мне нужно сделать чтобы при компиляции программы не вылазили ошибки? - Delphi
Что мне нужно сделать чтобы при компиляции программы не вылазели ошибки? Дело в том что я использую try _ finally _ end;

При включении нетбука появляется, как бы окно, я не знаю что это такое, подскажите как можно убрать это (фото внутри) - Ремонт ноутбуков

Вернуть строку в режим ввода (не знаю как это правильно называется) - Python
Добрый день! Значит, проблема: у меня есть программа, что-то из серии калькулятора множеств. Вот пользователь вводит &quot;логическую...

Как сделать ограничение на перемещение? Или я не знаю как называется это правильно. (См. внутри) - Delphi
Если нажимать на кнопки ВПРАВО ВЛЕВО ВВЕРХ ВНИЗ робот Петька перемещается соответственно этим кнопкам. А как сделать так, чтобы Петька не...


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

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

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