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

Наследование классов - C++

Восстановить пароль Регистрация
 
Алексей199
1 / 1 / 1
Регистрация: 03.04.2013
Сообщений: 14
12.04.2013, 14:22     Наследование классов #1
Здравствуйте всем!
Классы и наследования еще не изучил а задали решить задачу. Просьба может у кого - нибудь есть что -то подобное(или находили в сети) или может какая нибудь литература где подробно смогу изучить классы и наследование; дайте ссылку или скиньте сюда.
Заранее спасибо!

Условия задачи:

Используя класс Bill(плательщик) реализовать класс ListPlayer.

Класс содержит:
- список плательщиков за телефонные услуги,
- дату создания списка,
- номер списка.

После одного элемента списка - это: плательщик класс Bill,
- признак оплаты,
- дата платежа,
- сумма платежа

Реализовать:
- методы добавления плательшика в список и удаления из него;
- метод поиска плательщика
1.по номеру телефона
2.по фамилии
3. по дате платежа.
- метод вычисления полной стоимости платежей всего списка.

Реализовать операцию объединения и операцию пересечения списков.

Реализоватть операцию генерации конкретного объекта Group(группа), сожержащего список плательщиков из объектов типа listPlayer.

Должна быть возможность выбирать группу плательщиков :
-по признаку оплаты,
- по атрибутам
- по дате платежа
- по номеру телефона.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 14:22     Наследование классов
Посмотрите здесь:

Наследование классов C++
C++ Наследование классов.
Наследование классов C++
C++ Наследование классов
C++ Наследование Классов с++
C++ Наследование классов
C++ Наследование классов
Наследование классов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Алексей199
1 / 1 / 1
Регистрация: 03.04.2013
Сообщений: 14
17.04.2013, 10:29  [ТС]     Наследование классов #2
Вот ребят я сделал если кому-нибудь понадобится!

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
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
 
const int N = 5;
 
class bill
{
    std::string number, first_name, last_name;
 
public:
    bill(std::string number, std::string first_name, std::string last_name)
    {
        this->number = number;
        this->first_name = first_name;
        this->last_name = last_name;
    }
 
    std::string getNumber()
    {
        return number;
    }
 
    std::string getFirst_name()
    {
        return first_name;
    }
 
    std::string getLast_name()
    {
        return last_name;
    }
};
 
struct list_el
{
    std::string number, first_name, last_name, date;
    int po, sum;
};
 
class listPlayer : bill
{
    int n;
    std::string date;
    std::vector<list_el> list;
 
public:
    listPlayer(std::string number, std::string first_name, std::string last_name, int n, int date) : bill(number, first_name, last_name)
    {
        this->n = n;
        this->date = date;
    }
 
    void addBill(bill el, std::string date, int po, int sum)
    {
        list_el l;
 
        l.number = el.getNumber();
        l.first_name = el.getFirst_name();
        l.last_name = el.getLast_name();
        l.date = date;
        l.po = po;
        l.sum = sum;
 
        list.push_back(l);
    }
 
    void delBill(int num)
    {
        if (list.size() >= num)
            list.erase(list.begin() + num);
    }
 
    std::vector<list_el> findNumber(std::string number)
    {
        std::vector<list_el> v;
        for (int i = 0; i < list.size(); i++)
            if (list[i].number == number)
                v.push_back(list[i]);
        return v;
    }
 
    std::vector<list_el> findLastName(std::string last_name)
    {
        std::vector<list_el> v;
        for (int i = 0; i < list.size(); i++)
            if (list[i].last_name == last_name)
                v.push_back(list[i]);
        return v;
    }
 
    std::vector<list_el> findDate(std::string date)
    {
        std::vector<list_el> v;
        for (int i = 0; i < list.size(); i++)
            if (list[i].date == date)
                v.push_back(list[i]);
        return v;
    }
 
    int sum()
    {
        int t = 0;
 
        for (int i = 0; i < list.size(); i++)
            t += list[i].sum;
        return t;
    }
};
 
int main()
{
    listPlayer list("", "", "", 1, 0000);
 
    std::fstream f("in.txt");
 
    for (int i = 0; i < N; i++)
    {
        std::string number, date, first_name, last_name;
        int po, sum;
 
        f >> number >> date >> po >> sum >> first_name >> last_name;
        list.addBill(bill(number, first_name, last_name), date, po, sum);
    }
 
    std::vector<list_el> l1 = list.findNumber("112233");                                               // поиск по номеру телефона
 
    for (int i = 0; i < l1.size(); i++)
        std::cout << l1[i].first_name << std::endl;
 
    std::cout << std::endl;
 
    std::vector<list_el> l2 = list.findLastName("Qwe");                                              // поиск по фамилии
 
    for (int i = 0; i < l2.size(); i++)
        std::cout << l2[i].first_name << std::endl;
 
    std::cout << std::endl << list.sum();                                                             // вывод суммы
 
    getchar();
}
Yandex
Объявления
17.04.2013, 10:29     Наследование классов
Ответ Создать тему
Опции темы

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