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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В своей области построить из отрезков прямых линий контуры своего объекта http://www.cyberforum.ru/cpp-beginners/thread970395.html
Задание: 1. В своей области построить из отрезков прямых линий контуры своего объекта. Для задания координат концов отрезков использовать мировые координаты, которые выбрать следующим образом: максимальная сторона области = 12(м, мм, км). 2. Изменить программу построения объекта, добавив перемещение объекта (области) в заданном направлении на заданную величину. При этом должно происходить...
C++ Проблемы с Аффинным шифром Всем привет! У меня возникли проблемы при реализации программы, которая должна брать исходный текстовый файл и шифровать/дешифровать его Аффинным шифром. Главные проблемы: 1) программа шифрует(не уверен что правильно), но не может дешифровать(скорее всего проблема в моей формуле дешифровки-плохо разбираюсь с модулями) 2) Проблема с русской буквой Я. Доходя до я программа считает что файл... http://www.cyberforum.ru/cpp-beginners/thread970391.html
C++ Построить контуры своей области и заполнить её заданными наклонными линиями
Задание: 1. Построить контуры своей области и заполнить её заданными наклонными линиями.. 2. В своей области построить из отрезков прямых линий контуры заданного объекта. 1 и 2 задание выполнить в двух вариантах: с использованием стандартной функцию line BorlandC и собственной функции, написанной по алгоритму Брезенхейма. 1)Из нижнего левого угла сначала вправо, потом налево. 2)Из нижнего...
Работа с изображениями в GIT C++
Более подходящего раздела для этой темы на форуме не нашел, поэтому пишу здесь. Сегодня зарегистрировался на github и встал такой вопрос. Git хранит не сами файлы, а их изменения. Так вот, если загрузить изображение, то получается, если есть много версий этого изображения, то гит хранит каждую версию? Он ведь не может запоминать изменения для изображений, как для текста, где он просто...
C++ Последовательно заполнить заданную прямоугольную область экрана точками по заданному алгоритму http://www.cyberforum.ru/cpp-beginners/thread970383.html
Задание: 1. Последовательно заполнить заданную прямоугольную область экрана точками по заданному алгоритму (схема заполнения области). Для вывода точки в каждом режиме использовать: - А) стандартную функцию языка программирования; - Б) прямую запись в видеопамять. 2. Предложить 5 вариантов изменения цвета точки таким образом, что бы получить различные рисунки заполнения области. 3. Сделать...
C++ почему clrser(); не работает #include<stdio.h> #include<conio.h> main() { int i,n,result=1; clrser(); printf("Vvedit n:"); scanf("%d",&n); подробнее

Показать сообщение отдельно
dkg_C
8 / 8 / 1
Регистрация: 17.09.2012
Сообщений: 144
06.10.2013, 19:12  [ТС]     Наследование
MAnton, занятно.
Под катом программа. Покажите где что поменять/дописать. Ибо не работает
Кликните здесь для просмотра всего текста

stud.h
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
#ifndef _STUD_H_
#define _STUD_H_
 
using namespace std;
 
class Stud {
public:
    string surname;
    int semester;
    size_t marks[4];
 
    bool flag_GoodStudent;
 
    static size_t const min_semester = 1;
    static size_t const max_semester = 20;
    static size_t const min_mark = 0;
    static size_t const max_mark = 10;
 
public:
    Stud(): surname("<-unknown->"), semester(min_semester) { fill_n(marks, 4, min_mark); flag_GoodStudent = false; } 
    Stud(const Stud &St);
    ~Stud() {}
    void get();
    void set();
    friend void exam (Stud &St); 
};
 
class Ball : public Stud {
private:
    float averageMark;
public:
    Ball();
    void get_Average();
};
#endif
stud.cpp
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
#include <iostream>
#include <string>
#include <exception>
#include <algorithm>
#include <functional>
#include <cstdint>
 
#include "stud.h"
 
using namespace std;
 
void Stud::set() { 
    //ввод фамилии и семестра 
    string bad_symbol = "1234567890+^-";    // Строка плохих символ для фамилии студента                                    
    int index_bad=-1;                   // Индекс плохого символа в фамилии
    while(1)                            // цикл для ввода и проверки фамилии
    {
        cout << "Фамилия студента ";
         cin >> surname;
        for( unsigned  i=0; i<bad_symbol.length(); i++) // Просмотр плохих символов
        {
            index_bad = surname.find(bad_symbol[i]);        // поиск плохого символа в фамилии
            if( index_bad != -1)                        // нашли в фамилии плохой символ            
            {
                cout << "Введите фамилию верно." << endl;
                _flushall();            // очистка буфера клавиатуры
                cin.clear();            // сброс флагов ошибки потока ввода 
                break;
            }
        }
        if( index_bad == -1 )           // В фамилии нет плохих символов (закончили ввод фамилии)
            break;
    }
 
    do {
        cout << "Семестр студента ";
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    } while (!(cin >> semester) || semester < min_semester || semester > max_semester );
}
 
void exam(Stud &St) { //ввод оценок (friend-функция)
    for (size_t i = 0; i < 4u; ++i) {
        do {
            cout << "Введите " << i + 1 << " оценку - ";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        } while ( !(cin >> St.marks[i]) || St.marks[i] < St.min_mark || St.marks[i] > St.max_mark );
    }
    cout << "=======ВВОД ЗАКОНЧЕН======" << endl;
}
 
void Stud::get() { //вывод объекта 
    cout << "Фамилия - " << surname << " " << endl;
    cout << "Оценки:" << endl;
    for (int i = 0; i < 4; i++)
        cout << "Оценка " << i + 1 << " равна " << marks[i] << endl;
    cout << "Семестр " << semester << endl;
    cout << "=====ВЫВОД ЗАКОНЧЕН=======" << endl;
}
 
Stud::Stud(const Stud &St): surname(St.surname), semester(St.semester) { //копирование
    copy_n(St.marks, 4, marks);
}
 
void Ball::get_Average() {
    float S;
    for (int i = 0; i < 4; i++)
        marks[4]+=S;
    averageMark = S/4;
    cout << "Средняя оценка студента: " << averageMark;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
#include "stud.h"
 
using namespace std;
 
int main() {
    setlocale(LC_ALL, "RUS");
    Stud FIRST_TRY;
    FIRST_TRY.set();
    exam(FIRST_TRY);
    FIRST_TRY.get();
    Ball.get_Average(FIRST_TRY);
    system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru