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

Сделать через классы и чтобы были методы: удалить, изменить, добавить - C++

Восстановить пароль Регистрация
 
Souity
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 15
16.11.2012, 19:56     Сделать через классы и чтобы были методы: удалить, изменить, добавить #1
Эту прогу нужно сделать через классы и чтобы были методы: удалить, изменить, добавить...и желательно расписать построчно (что каждая строчка означает)

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
// ConsoleApplication1.cpp: главный файл проекта.
#include "stdafx.h"
#include <iostream>
using namespace System;
using namespace std;
struct jour{
 
int nomer;
int tiraj;
jour *next;
} *s;
 
int main() {
int jtiraj,jnomer,i,m;
 
cin » jnomer; cout « endl;
cin » jtiraj; cout « endl;
 
jour *p;
p = new jour;
p->nomer = jnomer;
p->tiraj = jtiraj;
p->next = NULL;
s=p;
 
for (s; s!=NULL; s=s->next) {
 
cout « s->nomer « endl;
cout « s->tiraj « endl;
cout « endl;
}
system("pause");
}
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 19:56     Сделать через классы и чтобы были методы: удалить, изменить, добавить
Посмотрите здесь:

C++ классы/дочерние классы/методы
C++ Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы
C++ Как сделать так, чтобы функции были не вложенными?
Как сделать, чтобы при выводе на экран были пробелы C++
C++ как сделать чтобы сокращало дробь?что добавить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Eugine
 Аватар для Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
16.11.2012, 21:05     Сделать через классы и чтобы были методы: удалить, изменить, добавить #2
Знаете, напишите по русски задачу. В этом ужасе невозможно понять о чем она, хоть бы на английском написана была.
Souity
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 15
16.11.2012, 21:29  [ТС]     Сделать через классы и чтобы были методы: удалить, изменить, добавить #3
Создать программу по работе со списками через классы. Сделать методы добавления в список, удаления и редактирования.
Eugine
 Аватар для Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
16.11.2012, 21:31     Сделать через классы и чтобы были методы: удалить, изменить, добавить #4
Чего добавлять? Какое условие? Ограничения.
Souity
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 15
16.11.2012, 21:41  [ТС]     Сделать через классы и чтобы были методы: удалить, изменить, добавить #5
Добавлять запись, затем иметь возможность ее редактировать и удалять...условий и ограничений нет
Eugine
 Аватар для Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
17.11.2012, 10:59     Сделать через классы и чтобы были методы: удалить, изменить, добавить #6
Все работает, но существует непонятная мне ошибка, из за которой пришлось ставить костыль
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
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
using namespace std;
class Notes {
    typedef pair<uint, string> value_type;
private:
    map<uint,string> list;
    uint id_index; //Cледующий номер id
    const string error;
    const string success;
private:
    inline bool note_existence(const uint& id);
public:
    Notes();
    ~Notes();
public:
    string get_note(const uint& id);
    void add_note(const string& note);
    void change_note(const uint& id);
    void delete_note(const uint& id);
};
int main(int argc, char* argv[])
{
    Notes notes;
    string s = "";
    int numb = 0;
    for(int i = 0;;) {
        cout << "0 - get note" << endl
                << "1 - add note" << endl
                << "2 - change note" << endl
                << "3 - delete note" << endl
                << "-1 - quit" << endl << endl
                << "Enter a number: ";
        cin >> numb;
        while(numb != 0 && numb != 1 && numb != 2 && numb != 3 && numb != -1)
        {
            cout << "Incorrect number! Try again: ";
            cin >> numb;
        }
        if(!numb) {
            cout << "Enter id: ";
            cin >> numb;
            cout << notes.get_note(numb) << endl;
        } else if(numb == 1) {
            cout << "Enter a note with id(" << i << "): ";
            s.clear();
            while(!s.size()) //Костыль
                getline(cin,s);
            notes.add_note(s);
            ++i;
        } else if(numb == 2) {
            cout << "Enter note's id: ";
            cin >> numb;
            notes.change_note(numb);
        } else if(numb == 3){
            cout << "Enter note's id: ";
            cin >> numb;
            notes.delete_note(numb);
        } else
            break;
    }
    return 0;
}
 
Notes::Notes() : id_index(0),
        error ("Error: There isn't any note with such id!"),
        success ("Success!") {}
Notes::~Notes(){}
inline bool Notes::note_existence(const uint& id)
{
    return list.find(id) != list.end() ? true : false;
}
string Notes::get_note(const uint& id)
{
    if(note_existence(id))
        return list.find(id)->second;
    else
        return error;
}
void Notes::add_note(const string& note)
{
    list.insert(value_type(id_index, note));
    ++id_index;
    cout << success << endl;
}
void Notes::change_note(const uint& id)
{
    if(!note_existence(id)) {
        cout << error << endl;
        return;
    }
    map<uint,string>::iterator it = list.find(id);
    cout << "Note with id(" << id << "): " << it->second << endl;
    cout << "Enter new note: ";
    string s = "";
    while(!s.size()) //Костыль
        getline(cin, s);
    it->second = s;
    cout << success << endl;
}
void Notes::delete_note(const uint& id)
{
    if(!note_existence(id)) {
        cout << error << endl;
        return;
    }
    list.erase(list.find(id));
    cout << success << endl;
}
Добавлено через 11 часов 31 минуту
Если возникает ошибка с uint,то поменяйте
C++
1
2
class Notes {
    typedef pair<uint, string> value_type;
На
C++
1
2
3
class Notes {
    typedef unsigned int uint;
    typedef pair<uint, string> value_type;
Souity
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 15
17.11.2012, 12:57  [ТС]     Сделать через классы и чтобы были методы: удалить, изменить, добавить #7
Спасибо Вам огромное...очень выручили...если Вас не затруднит можете каждую строчку коротко расписать словами (что делает)...чтобы я хоть поняла...заранее спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 23:14     Сделать через классы и чтобы были методы: удалить, изменить, добавить
Еще ссылки по теме:

Как сделать ,чтобы строки двумерного массива были кратные двум? C++
Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке C++
Что сделать, чтобы размер N был не через const, а через ввод на экран C++

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

Или воспользуйтесь поиском по форуму:
Eugine
 Аватар для Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
17.11.2012, 23:14     Сделать через классы и чтобы были методы: удалить, изменить, добавить #8
Комментить функцию main не буду
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
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
using namespace std;
class Notes {
    typedef pair<uint, string> value_type;
private:
    map<uint,string> list; //Ассоциативный массив id => Запись
    uint id_index; //Cледующий номер id
    const string error; // Константа 'Ошибка при поиске записи'
    const string success; // Константа 'Функция отработала правильно'
private:
    inline bool note_existence(const uint& id); //Поиск id
public:
    Notes();
    ~Notes();
public:
    string get_note(const uint& id); //Вернуть запись с опр-ым id
    void add_note(const string& note); //Добавить новую запись
    void change_note(const uint& id); //Поменять существующую
    void delete_note(const uint& id); //Удалить запись
};
int main(int argc, char* argv[])
{
    Notes notes;
    string s = "";
    int numb = 0;
    for(int i = 0;;) {
        cout << "0 - get note" << endl
                << "1 - add note" << endl
                << "2 - change note" << endl
                << "3 - delete note" << endl
                << "-1 - quit" << endl << endl
                << "Enter a number: ";
        cin >> numb;
        while(numb != 0 && numb != 1 && numb != 2 && numb != 3 && numb != -1)
        {
            cout << "Incorrect number! Try again: ";
            cin >> numb;
        }
        if(!numb) {
            cout << "Enter id: ";
            cin >> numb;
            cout << notes.get_note(numb) << endl;
        } else if(numb == 1) {
            cout << "Enter a note with id(" << i << "): ";
            s.clear();
            while(!s.size()) //Костыль
                getline(cin,s);
            notes.add_note(s);
            ++i;
        } else if(numb == 2) {
            cout << "Enter note's id: ";
            cin >> numb;
            notes.change_note(numb);
        } else if(numb == 3){
            cout << "Enter note's id: ";
            cin >> numb;
            notes.delete_note(numb);
        } else
            break;
    }
    return 0;
}
 
Notes::Notes() : id_index(0), //Изначальный индекс - 0
        error ("Error: There isn't any note with such id!"), //Значение константы error
        success ("Success!") {} //Значение константы success
Notes::~Notes(){}
inline bool Notes::note_existence(const uint& id)
{
    return list.find(id) != list.end() ? true : false; //Если существует id -> true
}
string Notes::get_note(const uint& id)
{
    if(note_existence(id)) //Если существует id
        return list.find(id)->second; //Возвращаем запись
    else
        return error;
}
void Notes::add_note(const string& note)
{
    list.insert(value_type(id_index, note)); //Вставляем запись с новым индексом
    ++id_index; //Увеличиваем значение будущего индекса на 1
    cout << success << endl;
}
void Notes::change_note(const uint& id)
{
    if(!note_existence(id)) { //Проверка сущ-я id
        cout << error << endl;
        return;
    }
    map<uint,string>::iterator it = list.find(id); //Вывод действующей записи
    cout << "Note with id(" << id << "): " << it->second << endl;
    cout << "Enter new note: ";
    string s = "";
    while(!s.size()) //Костыль
        getline(cin, s); //Считываем новую запись
    it->second = s; //Заменяем старую на новую
    cout << success << endl;
}
void Notes::delete_note(const uint& id)
{
    if(!note_existence(id)) { //Проверка сущ-я id
        cout << error << endl;
        return;
    }
    list.erase(list.find(id)); //Удаляем запись с указанным id
    cout << success << endl;
}
Yandex
Объявления
17.11.2012, 23:14     Сделать через классы и чтобы были методы: удалить, изменить, добавить
Ответ Создать тему
Опции темы

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