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

класс дата - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ CodeLite - отсутствуют библиотеки http://www.cyberforum.ru/cpp-beginners/thread344179.html
Здравствуйте, дорогие форумчане. Необходима кросcплатформенная среда разработки C++. На рабочем компе через центр приложений (Ubuntu) поставил CodeLite. Столкнулся с проблемой отсутствия инклудов windows.h, conio.h и т.д. Проекты просто не запускаются. На домашнем ПК пользуюсь Visual Studio, поэтому с подобной проблемой никогда не сталкивался. В инете манов по это поводу не нашел. Прошу...
C++ Получить список студентов с указанием среднего балла имеется информация о студентах группы: Ф.И.О., результаты экзаменационной сессии. Мне надо получить список студентов с указанием среднего балла. Для решения данной задачи мне надо использовать массив структур или можно как-то по другому сделать? Если да, то как? http://www.cyberforum.ru/cpp-beginners/thread344176.html
Код ждёт ввода следующей строчки - цикл повторяется бесконечно. C++
В учебнике написано, что вот этот код #include <iostream> #include <string> using namespace std; int main() { string word; while (cin >> word) cout << "прочитано слово: " << word << "\n";
C++ смена IP-адреса
день добрый. не подскажите как программно заставить венду сменить IP ?
C++ Немного о динамическом выделении памяти ... http://www.cyberforum.ru/cpp-beginners/thread344113.html
объявление данных в классе: class Employee {.......... private: char *firstName; char *lasrName; }
C++ помогите с islower() и setfill() 1)Библиотечная функция islower() принимает в качестве аргумента один символ (букву) и возвращает ненулевое целое значение в том случае, если буква является строчной, и нулевое, если буква является заглавной.Описание функции хранится в файле CTYPE.H.Напишите программу, которая принимает букву от пользователя, а затем выводит нулевое или ненулевое значение в зависимости он того, является буква... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
04.09.2011, 11:55     класс дата
Цитата Сообщение от Nadinka______ Посмотреть сообщение
Создать класс типа - дата с полями: день (1-31), месяц (1-12), год(целое число).Класс имеет конструктор:с параметрами, без параметров,копирования; деструктор; функции-члены получения дня,месяца и года,а также две функции-члены печати по шаблону: "5 января 1997 года" и "05.01.1997"; функции-члены должны проверять корректность задаваемых параметров.
- Предлагаю свой класс data, в классе предусмотрена проверка введенных параметров + печать по шаблону

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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#ifndef DATE_H
#define DATE_H
 
#include <stdio.h>
 
int LongMonth[] = {1,3,5,7,8,10,12};
char * sMonth[] = 
{
    "января",
    "февраля",
    "марта",
    "апреля",
    "мая",
    "июня",
    "июля",
    "августа",
    "сентября",
    "октября",
    "ноября",
    "декабря"
};
 
class date
{
private:
    int day, month, year;
    bool bChangeDay,bChangeMonth,bChangeYear;//Флаги указывающие на корректировку 
    char sDate[256];//Дата в строковом формате
public:
    date();                               //конструктор без параметров
    date(int iDay, int iMonth, int iYear);//конструктор с параметрами
    date(const date &val);                //конструктор копирования
    ~date();                              //деструктор
 
    int getDay()    {return day;}
    int getMonth()  {return month;}
    int getYear()   {return year;} 
 
    void setDay(int iDay); 
    void setMonth(int iMonth);
    void setYear(int iYear); 
    //Сигнализируют пользователя о некрректности ввода даты
    bool IsChangeDay(){return bChangeDay;}
    bool IsChangeMonth(){return bChangeMonth;}
    bool IsChangeYear(){return bChangeYear;}
 
    char * ShowDate(int ifmt);
};
 
date::date()
{
    day   = 1;
    month = 1;
    year  = 1900;
    
    bChangeDay   = false;
    bChangeMonth = false;
    bChangeYear  = false;
 
    sDate[0] = '\0';
}
 
date::date(int iDay, int iMonth, int iYear)
{
    bChangeDay   = false;
    bChangeMonth = false;
    bChangeYear  = false;
 
    setDay(iDay);
    setMonth(iMonth);
    setYear(iYear);
 
    sDate[0] = '\0';
}
 
date::date(const date &val)
{
    day   = val.day;
    month = val.month;
    year  = val.year;
 
    sDate[0] = '\0';
}
 
date::~date()
{
    //Память не выделяли так что думаю, 
    //кроме установки дефалтных значений 
    //ничего сделать и не можем
    day   = 1;
    month = 1;
    year  = 1900;
 
    sDate[0] = '\0';
}
 
void date::setDay(int iDay)
{
    if(iDay < 1 || 31 < iDay)
        bChangeDay   = true;
    if(bChangeDay)
        day = 1;
    day = iDay;
}
 
void date::setMonth(int iMonth)
{
    int i, nMonth = sizeof(LongMonth)/sizeof(int);
    if(iMonth < 1 || 12 < iMonth)
        bChangeMonth = true;
    if(bChangeMonth)
        month = 1;
    //Если месяц не 31-дневный, 
    //а day == 31,
    //то устанавливаем day == 1
    if(day == 31)
    {
        for(i = 0; i < nMonth; i++)
        {
            if(iMonth == LongMonth[i])
                break;
        }
        if(nMonth <= i)
            bChangeDay = true;
    }
    if(bChangeDay)
        day = 1;
    month = iMonth;
}
 
void date::setYear(int iYear)
{
    if(iYear < 1)
        bChangeYear = true;
    if(bChangeYear)
        iYear = 1;
    if(28 < day && month == 2)
    if(iYear % 4 != 0)
        bChangeDay = true;
    if(bChangeDay)
        day = 1;
    year = iYear;
}
 
char * date::ShowDate(int ifmt)
{
    switch(ifmt)
    {
        case 1 :
            sprintf(sDate,"%02d %s %04d\r\n",day,sMonth[month - 1],year);
            break;
        default :
            sprintf(sDate,"%02d.%02d.%04d\r\n",day,month,year);
            break;
    }
    return &sDate[0];
}
 
#endif
Миниатюры
класс дата  
Вложения
Тип файла: rar date.rar (1.7 Кб, 108 просмотров)
 
Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru