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

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

Войти
Регистрация
Восстановить пароль
 
HomBro
1 / 1 / 1
Регистрация: 14.12.2015
Сообщений: 58
#1

Использование виртуальных функций - C++

24.05.2016, 12:20. Просмотров 114. Ответов 5
Метки нет (Все метки)

Программа берет данные из двух файлов, в которых есть дата и количество проданных билетов, и высчитывает среднее количество проданных билетов за месяц. Кароч вот программа
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
#include<iostream>
#include<fstream>
#include<clocale>
using namespace std;
 
class read {
protected:
    ifstream file;
    int i, b[31], summ, sr_zn;
public:
 
    read() : summ(0) {
    }
 
    void set() {
        file.open("1mounth.txt");
        for (i = 0; i < 31; i++) {
            file.ignore(11);
            file >> b[i];
            summ += b[i];
        }
        file.close();
        sr_zn = summ / 31;
    }
 
    void set1() {
        file.open("2mounth.txt");
        for (i = 0; i < 30; i++) {
            file.ignore(11);
            file >> b[i];
            summ += b[i];
        }
        file.close();
        sr_zn = summ / 30;
 
    }
 
    void show() {
        cout << summ << endl;
    }
 
    void show1() {
        cout << "Среднее количество билетов продаваемое в день за месяц - " << sr_zn << endl;
    }
};
 
class peregruzka : public read {
public:
    peregruzka operator- (const peregruzka&rv) {
        peregruzka res;
        res.summ = summ - rv.summ;
        if (res.summ < 0) {
            res.summ *= -1;
        }
        return res;
    }
};
 
class output : public read {
private:
    ofstream file1;
public:
    void out() {
        file1.open("out.txt", ios_base::app);
        file1 << sr_zn << endl;
        file1.close();
    }
};
 
int main() {
    setlocale(LC_CTYPE, "rus");
    output b1, b2;
    peregruzka a1, a2, a3;
    ofstream file;
 
    file.open("out.txt", ios_base::trunc);
    file.close();
 
    a1.set();
    a1.show1();
    a2.set1();
    a2.show1();
    a3 = a1 - a2;
    a3.show();
 
    b1.set();
    b1.out();
    b2.set1();
    b2.out();
    system("pause");
}
Нужно преобразовать программу с использованием виртуальных функций.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2016, 12:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование виртуальных функций (C++):

Использование виртуальных функций - C++
Дан класс &quot;треугольник&quot;, который определяется длиной одной из сторон и значениями прилегающих двух углов. Создать соответствующие...

Использование свойства полиморфизма и исследование механизма виртуальных функций - C++
Создайте класс Matr, определите в нем виртуальную функцию-член matrica(int n), которая определяет произведение элементов квадратной...

функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. - C++
функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д.

Вызов виртуальных функций - C++
Доброго времени суток, форумчане! Стоит такая задача: Есть класс, который содержит три чисто виртуальные функции, назовём его IClass. ...

Таблица виртуальных функций - C++
объясните плиз кто разбирается.. есть абстрактный класс с двумя виртуальными функциями, от него наследуются два класса реализующие эти...

Перегрузка виртуальных функций - C++
please HELP! перегружаю виртуальную функцию в абстрактном классе. class ONE { virtual std::string FUN(const std::string&amp;...

5
Nike1995
3 / 3 / 0
Регистрация: 14.10.2012
Сообщений: 288
24.05.2016, 12:24 #2
Создай базовый класс
C++
1
2
3
4
class Base{
public:
    virtual /* функция, например void set()*/ = 0;
}
и производные от него, где ты будешь переопределять виртуальные функции
0
HomBro
1 / 1 / 1
Регистрация: 14.12.2015
Сообщений: 58
24.05.2016, 12:36  [ТС] #3
А можно поподробнее?
0
Nike1995
3 / 3 / 0
Регистрация: 14.10.2012
Сообщений: 288
24.05.2016, 12:43 #4
Можешь нормально задание написать, тут легче написать, чем переписать
0
HomBro
1 / 1 / 1
Регистрация: 14.12.2015
Сообщений: 58
24.05.2016, 12:50  [ТС] #5
1 лаба
В текстовом файле фиксируется дата и количество пассажиров купивших билет междугородний автобус (исходя из расписания, согласно которому каждый день автобус выполняет несколько рейсов в течение суток). Подготовить два файла данных для двух месяцев.
Создать класс, реализующий: 1) чтение данных из файла; 2) вычисление среднего количества проданных билетов в сутки; 3) вывод результатов на экран; 4) вывод результатов в файл;
Создать перегруженную операцию -, которая будет вычислять разницу количества проданных билетов в текущем и прошлом месяце.
2 лаба
Пересмотреть проект, разработанный при выполнении лабораторной работы №1. Разработать и программно реализовать иерархию классов. При необходимости обосновать целесообразность использования объемлющих классов.
И наконец третья
Пересмотреть проект, разработанный при выполнении лабораторной работы №1. Разработать и программно реализовать иерархию классов с использованием виртуальных функций.
0
HomBro
1 / 1 / 1
Регистрация: 14.12.2015
Сообщений: 58
24.05.2016, 14:20  [ТС] #6
Есть такое задание
1) В текстовом файле фиксируется дата и количество пассажиров купивших билет междугородний автобус (исходя из расписания, согласно которому каждый день автобус выполняет несколько рейсов в течение суток). Подготовить два файла данных для двух месяцев.
Создать класс, реализующий: 1) чтение данных из файла; 2) вычисление среднего количества проданных билетов в сутки; 3) вывод результатов на экран; 4) вывод результатов в файл;
Создать перегруженную операцию -, которая будет вычислять разницу количества проданных билетов в текущем и прошлом месяце.
2) Потом преобразовать программу с использованием наследования классов.
3) И снова преобразовать программу с использованием виртуальных функций.
Первые 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
#include<iostream>
#include<fstream>
#include<clocale>
using namespace std;
 
class read {
protected:
    ifstream file;
    int i, b[31], summ, sr_zn;
public:
 
    read() : summ(0) {
    }
 
    void set() {
        file.open("1mounth.txt");
        for (i = 0; i < 31; i++) {
            file.ignore(11);
            file >> b[i];
            summ += b[i];
        }
        file.close();
        sr_zn = summ / 31;
    }
 
    void set1() {
        file.open("2mounth.txt");
        for (i = 0; i < 30; i++) {
            file.ignore(11);
            file >> b[i];
            summ += b[i];
        }
        file.close();
        sr_zn = summ / 30;
 
    }
 
    void show() {
        cout << summ << endl;
    }
 
    void show1() {
        cout << "Среднее количество билетов продаваемое в день за месяц - " << sr_zn << endl;
    }
};
 
class peregruzka : public read {
public:
    peregruzka operator- (const peregruzka&rv) {
        peregruzka res;
        res.summ = summ - rv.summ;
        if (res.summ < 0) {
            res.summ *= -1;
        }
        return res;
    }
};
 
class output : public read {
private:
    ofstream file1;
public:
    void out() {
        file1.open("out.txt", ios_base::app);
        file1 << sr_zn << endl;
        file1.close();
    }
};
 
int main() {
    setlocale(LC_CTYPE, "rus");
    output b1, b2;
    peregruzka a1, a2, a3;
    ofstream file;
 
    file.open("out.txt", ios_base::trunc);
    file.close();
 
    a1.set();
    a1.show1();
    a2.set1();
    a2.show1();
    a3 = a1 - a2;
    a3.show();
 
    b1.set();
    b1.out();
    b2.set1();
    b2.out();
    system("pause");
}
0
24.05.2016, 14:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2016, 14:20
Привет! Вот еще темы с ответами:

Механизм виртуальных функций - C++
Всем привет! Имею базовый абстрактный класс: class Interface { public: //функция детектирования устройства true - если команда...

Таблица виртуальных функций - C++
Доброго дня! Не могу найти, подскажите, пожалуйста, таблица виртуальных функций же только одна для класса? И каждый его объект имеет...

ООП перезагрузка виртуальных функций - C++
Помогите, пожалуйста. Задание: &quot;Создать абстрактный базовый класс Матрица с виртуальной функцией поиска максимального значения в массиве....

В чем смысл виртуальных функций? - C++
Читаю книгу Джесс Либерти 'С++ за 21 день', не смотря на глупое название, книга очень грамотная и мне очень нравится... но прочитав...


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

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

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