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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Действие с камерой, OpenGL http://www.cyberforum.ru/cpp-beginners/thread699697.html
В общем, взял курс по OpenGl, прослушал формулы по повороту векторов. Потом дали задание (Код, в котором нужно дописать ф-и). Подскажите, пожалуйста, литературу, желательно с примерами. Кусок кода: Для Transform.cpp // Transform.cpp: implementation of the Transform class. #include "Transform.h"
C++ Ошибка в типе данных недавно начала учиться программировать в си++, не могу понять в чем ошибка: нужно написать программу,которая бы считала среднее геометрическое 10 введенных чисел. Когда пишу так, то программа работает, но округляет числа #include "stdafx.h" #include <stdio.h> #include <math.h> int main() { int dig; http://www.cyberforum.ru/cpp-beginners/thread699692.html
Разсчитать значение даной функции C++
Доброго времени суток. Прошу вашей помощи. Необходимо написать программу(через цикл), которая разсчитывает значение ф-ции y=cos5x, период для Х , шаг 0.01 и разсчитывает среднее значение всех значений ф-ции при определенном Х. Буду очень вам признателен. Значение х вводится с клавиатуры ( от 0 до 1 включая)
C++ Поразрядные операции, получение максимального числа
Добрый вечер, помогите написать. В задаче даны два int-числа: N1 = АBCD и N2 = EFGH, где AB…GH – 16-ричные цифры, ПОп – Поразрядная Операция. Найти ПОп, в результате которой из чисел N1 и N2 получается максимальное число. Подсчитать число единиц в этом числе.
C++ Перевести с C на C++ http://www.cyberforum.ru/cpp-beginners/thread699679.html
нашёл код C, нужно перевести с C на C++ /*...*/ int z; int z = 42; void foo(x, y) float y, int a; { } хоть я и шарю в C++, но этот синтаксис C я не могу разобрать. Кто может переделать, и я увижу наконец что это значит?
C++ односвязный список все доброго вечера, у меня такое задание нужно из текстового файла прочитать данные(небольшой текст не важно содержание) и записать их в односвязный список, все реализовать с помощью класса и конструктора... подробнее

Показать сообщение отдельно
Eugine
 Аватар для Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
17.11.2012, 23:14     Сделать через классы и чтобы были методы: удалить, изменить, добавить
Комментить функцию 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;
}
 
Текущее время: 21:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru