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

Определить базовый класс и на его основе производные классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ что делает оператор? http://www.cyberforum.ru/cpp-beginners/thread806257.html
Добрый день. Подскажите пожалуйст, что делает следующий оператор: *b=(char *) malloc(1000000);
C++ Проблемы с кодировками Имеется имя файла, считанное с текущей директории (папки Windows). В имени присутствуют пробелы и кирилица. Как переименовать или удалить такой файл? Ведь при подстановке переменной-имени типа char* в system del файл либо не обнаруживается (из-за различия кодировок кирилицы) либо читает неверный синтксис системной команды del (из-за пробелов). Подобная ситуация и при подстановке имени файла в... http://www.cyberforum.ru/cpp-beginners/thread806241.html
C++ Поиск файлов в каталоге Linux
Здравствуйте, мне нужно найти все файлы в опр. каталоге (на Linux), не подскажите, как это осуществить? Я это осуществил на OC Windows, а на Linux не выходит. Добавлено через 1 час 37 минут Упс, я и сам разобрался :) Спасибо за внимание, если что.
Code::Blocks мульки с дебагом C++
Доброго времени суток. Проблема в следующем-поставил Code::Blocks после прочтения пары хороших рецензий, а он не хочет "строить"("Build") файл. В итоге не могу дебагать, создать экзешник, ну и вообще. Пытаюсь запустить или "построить"-выдаёт сбщ(http://***********/view3/4257993/53f3fdf36ba12002b8064bccb8b02df4/) -тыкаю да, ничего не строиться(просто пропадает окно), нет-запускаеться консоль с...
C++ Алгоритми статистичної обробки цифрових даних http://www.cyberforum.ru/cpp-beginners/thread806219.html
в ворд файле
C++ побитовые операции, не могу разобраться Есть такой псевдокод var int MT // состояние генератора (тип данных int должен быть 32-битным, беззнаковому) var int index = 0 / / Начальная инициализация - заполнение массива состояния генератора function initialiseGenerator ( int seed ) { MT := seed for i from 1 to 623 { MT := 1812433253 * (MT bitwise_xor right_shift_by_30_bits(MT)) + i подробнее

Показать сообщение отдельно
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
30.10.2013, 00:13     Определить базовый класс и на его основе производные классы
students.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
36
37
38
39
40
41
42
43
44
#ifndef _STUDENT_H_
#define _STUDENT_H_
 
#include <string>
#include <vector>
#include <iostream>
 
using namespace std;
 
class student{
protected:
    string m_name;
    int m_year_of_admission;
    short m_course;
    short m_group_number;
    short m_pay;
    vector <float> marks;//collection of marks
    float aver_mark;//average mark 
public:
    student (string name, int year_of_admission, short course, short group_number, short pay);
    virtual ~student();
    virtual void show();
    friend void GPA(student *st[]);// average mark
};
 
class social : public student{
    string m_social_work;
    float m_percent;
public:
    social(string name, int year_of_admission, short course, short group_number, short pay,
        string social_work, float percent);
    ~social();
    virtual void show();
};
 
class sport : public student{
    string m_kind_of_sport;
public:
    sport(string name, int year_of_admission, short course, short group_number, short pay, string kind_of_sport);
    ~sport();
    virtual void show();
};
 
#endif//end of _STUDENT_H_
students.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "student.h"
 
extern int students = 3;
 
student::student(string name, int year_of_admission, short course, short group_number, short pay):
    m_name(name), m_year_of_admission(year_of_admission), m_course(course), m_group_number(group_number), m_pay(pay){
    cout<<"Would you like to add marks for "<<m_name<<"? (1 for Yes, 0 for No)"<<endl;
    bool answer = false;
    cin>>answer;
    if (answer == true){
        do{
            answer = false;
            float mark;
            cout<<"Enter mark"<<endl;
            cin>>mark;
            marks.push_back(mark);
            cout<<"Add a new ? (1 for Yes, 0 for No)"<<endl;
            cin>>answer;
        }
        while (answer == true);
    }//if end
    aver_mark = 0;
}
 
student::~student(){
}
 
void student::show(){
    cout<<"Student name: "<<m_name<<endl
        <<"year of admission: "<<m_year_of_admission<<endl
        <<"course: "<<m_course<<endl
        <<"group number: "<<m_group_number<<endl
        <<"scollarship: "<<m_pay<<endl
        <<"AV MARK: "<<aver_mark<<endl;
}
 
social::social(string name, int year_of_admission, short course, short group_number, short pay, 
               string social_work, float percent) : 
               student(name, year_of_admission, course, group_number, pay){
    m_social_work = social_work;
    m_percent = percent;
}
 
social::~social(){
}
 
void social::show(){
        student::show();
        cout<<"social work: "<<m_social_work<<endl
        <<"%: "<<m_percent<<endl;
}
 
sport::sport(string name, int year_of_admission, short course, short group_number, short pay, string kind_of_sport):
        student(name, year_of_admission, course, group_number, pay){
    m_kind_of_sport = kind_of_sport;
}
 
sport::~sport(){
}
 
void sport::show(){
    student::show();
    cout<<"sport: "<<m_kind_of_sport<<endl;
}
 
void GPA (student *st[]){//count averege mark of all stud, and out name of stud which have max mark 
    float sum = 0;
 
    if (students == 0){
        cerr<<"Error: no students"<<endl;
        return;
    }
 
    for(int i = 0; i < students; i++){
        if (st[i]->marks.size() > 0){
            for(int j = 0; j < st[i]->marks.size(); j++){ 
                sum += st[i]->marks[j];
            }
            st[i]->aver_mark = sum / st[i]->marks.size();
            sum = 0;//set sum to zero
        }//if end
    }//end of stud block
 
    float max = st[0]->aver_mark;
    for (int i = 1; i < students; i++){
        if (st[i]->aver_mark > st[i-1]->aver_mark) 
            max = st[i]->aver_mark;
    }
    cout<<"MAX mark !!!!!!!!"<<max<<endl;
    for (int i = 0; i<students; i++)
        if(st[i]->aver_mark == max)
            cout<<st[i]->m_name<<" have the most high averge mark "<<st[i]->aver_mark<<endl;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "student.h"
 
const int students = 3;//number of students
 
int main(){
    student *coll[students];
    coll[0] = new student("standart student", 2010, 3, 306, 500);
    coll[1] = new social("social student", 2011, 2, 202, 600, "shop steward", 10.0);
    coll[2] = new sport("sport student", 2009, 4, 401, 650, "boxing");
    for(int i = 0; i<students; i++)
        coll[i]->show();
    GPA(coll);
    system("pause");
    return 0;
}
 
Текущее время: 19:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru