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

Инкапсуляция. Создание класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на списки (считать из файла и выписать список) http://www.cyberforum.ru/cpp-beginners/thread839842.html
Вообщем, нужно считать из файла и выписать список тех, у кого есть хотя бы одна 2 (еще средний балл) . Набросал немного, но почему считает местами не правильно и немогу правильно поставить if. Помогите, чем сможете) заранее спасибо. #include <stdio.h> #include <conio.h> const int A = 20, B = 11, C = 4; struct STUDENT { char fio; char oc; int a;
C++ Найти корни квадратного уравнения Найти корни квадратного уравнения ax^2+bx+c=0 заданого своими коэффициентами, с положительным дискриминантом; подстановкой в уравнение найти погрешность вычислений. http://www.cyberforum.ru/cpp-beginners/thread839818.html
печатная машинка на с++ C++
поиск не помог и решил обратиться к вам нужна программа при нажатии на клавиши должен издаваться звук печатной машинки заранее спасибо!
За что отвечает каждая из библиотек? C++
за что отвечает каждая из библиотек? #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <locale.h>
C++ график функцыи http://www.cyberforum.ru/cpp-beginners/thread839796.html
помогите с заданием
C++ Пользовательские битовые флаги Заинтересовала следующая конструкция: если: 1 - Девушка 2 - Мужчина 3 - Красивый(ая) 4 - Интересный(ая) Как передать статус объекта через 1011 ( Мужчина красивый и интересный ), как реализовать такую конструкцию чтобы каждый битовый флаг обозначался конкретный тип и после можно было при задании определенного типа делать:object.settype( MAN | NICE | CLEVER ); // в лучших традициях winAPI подробнее

Показать сообщение отдельно
Praud
7 / 7 / 3
Регистрация: 25.02.2013
Сообщений: 237
16.05.2013, 14:31     Инкапсуляция. Создание класса
Ап теме. Такое же задание

Вот моя реализация класса:
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
class СSemCalendar
{
    int m_beg_year;
    int m_beg_month;
    int m_beg_day;
    int m_month_days[12];
 
    int SetDay(int);       
    int SetMonth(int);   
    int SetYear(int);
 
public:
    СSemCalendar();
    ~СSemCalendar();
 
    void GetDate (char *buf); 
    int  GetDay  ();      
    int  GetMonth();       
    int  GetYear ();     
 
    void SetBeginningDate(int AYear,int AMonth,int ADay);
 
    int Up(int,int,int);
    int Low(int,int,int);
    int Week(int,int,int);
};
А теперь cpp
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
112
113
114
115
116
117
118
119
#include "stdafx.h"
#include "stdio.h"
#include <cmath>
#include <stdlib.h>
#include "SemCalendar.h"
 
СSemCalendar::СSemCalendar()
{
    m_beg_year=1;
    m_beg_month=1;
    m_beg_day=1;
 
    m_month_days[0]=31;
    m_month_days[1]=28;
    m_month_days[2]=31;
    m_month_days[3]=30;
    m_month_days[4]=31;
    m_month_days[5]=30;
    m_month_days[6]=30;
    m_month_days[7]=31;
    m_month_days[8]=30;
    m_month_days[9]=31;
    m_month_days[10]=30;
    m_month_days[11]=31;
}
 
СSemCalendar::~СSemCalendar()
{}
 
 
int Up(int Add,int Amm,int Ayy)
{
 
}
 
int Low(int Add,int Amm, int Ayy)
{
 
}
 
int Week(int Add, int Amm, int Ayy)
{
    
}
 
 
//  ************Get Методы************ 
 
void СSemCalendar::GetDate (char *buf)
{
      //здесь не проверяем, чтобы в переданном буфере было достаточно
        //  памяти: передать правильный буфер должна программа,
        //  которая вызвала этот метод;
        //как известно, сама функция sprintf исходит из тех же соображений
        sprintf(buf,"%02d.%02d.%04d",m_beg_day,m_beg_month,m_beg_year);
}
 
// Взять номер дня
int СSemCalendar::GetDay()
{
return m_beg_day;  
}
// Взять номер месяца
int СSemCalendar::GetMonth()
{
    return m_beg_month;
}
// Взять номер года
int  СSemCalendar::GetYear ()
{
    return m_beg_year;
}
 
//************Set Методы************
 
// Установить день по его номеру
int СSemCalendar::SetDay  (int ADay)
      {
        //проверяем корректность исходных данных
        if(ADay>=1&&ADay<=m_month_days[m_beg_month-1])
        { //данное корректно - устанавливаем его
          m_beg_day=ADay;
          return 1;
        }
        else
          return 0; //данное содержит в себе ошибку
      }
 //установить месяц по его номеру
 
int СSemCalendar::SetMonth(int AMonth)
      {
        //проверяем корректность исходных данных
        if(AMonth>=1&&AMonth<=12)
        { //данное корректно - устанавливаем его
          m_beg_month=AMonth;
          return 1;
        }
        else
          return 0; //данное содержит в себе ошибку
      }
 
 //установить год по его номеру
int СSemCalendar::SetYear (int AYear)
      {
        //проверяем корректность исходных данных
        if(AYear>=1&&AYear<=9999)
        { //данное корректно - устанавливаем его
          m_beg_year=AYear;
          //в зависимости от того, является ли текущий год високосным,
          //  нужно установить количество дней в феврале месяце
          if(m_beg_year%4==0&&m_beg_year%100!=0||m_beg_year%400==0)
            m_month_days[1]=29; //високосный
          else
            m_month_days[1]=28; //обычный
          return 1;
        }
        else
          return 0;  //данное содержит в себе ошибку
      }
Что писать в методах Up, week, Low?
Помогите их описать с объяснениями.
 
Текущее время: 13:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru