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

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

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

Создание даты! - C++

16.05.2012, 19:48. Просмотров 285. Ответов 2
Метки нет (Все метки)

Ребята, подскажите пожалуйста вот такой вопрос...
Вот например есть структура и с ней работает программа. Одно из полей этой структуры должна быть дата, которую я буду вводить... Вот как сделать это поле даты???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2012, 19:48     Создание даты!
Посмотрите здесь:

Создание обработки исключений на даты - C++
Доброго времени суток! Как создать обработку исключительных ситуаций на неверно введенные даты?

Создание структуры с последующей сортирокой даты, сортровка людей по полу и дате А здесь смотрели? - C++
Здравствуйте,помогите пожалуйста с данной задачей: создать структурный шаблон содержащий фамилию, имя, пол, рост, дату рождения...

На основе введенной даты рождения и текущей даты сообщить пользователю, сколько он прожил дней - C++
3. Написать программу, которая на основе введенной даты рождения и текущей даты сообщает пользователю, сколько он прожил дней. Принять во...

преобразование даты - C++
ребята подскажите как определить количество дней, прошедших от 01.01.0001

Разложение даты - C++
Как ввести дату в формате :ДД.ММ.ГГГГ Например:29.04.1995 И потом нужно обрабатывать день отдельно месяц отдельно и год отдельно . . . ...

Порядок даты - C++
Приветствую всех! Имеется следующий код: #include "stdafx.h" #include <fstream> #include <vector> #include <algorithm> ...

даты в реестре - C++
подскажите пожалуйста, как можно записать в реестр дату первого запуска программы и как сравнить текущую дату с этой датой первого запуска

Преобразование даты C++ - C++
Даны целые числа day, month, year. Проверьте возможность существования этой даты и в случае положительного результата выведите ее в...

Вывод даты С++. - C++
В общем как на С++, вывести текущую дату? Вопрос наверно глупый, тем более интерфейс реализован в командной строке. В справке VS нашел...

Ввод даты - C++
Здравствуйте! Помогите с идеями, как в консольном окне организовать ввод даты в формате год.месяц. дата.час через точку. Спасибо. ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
roma_kelt
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 5
16.05.2012, 19:55     Создание даты! #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
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
160
161
162
163
164
165
166
167
168
169
170
#include<iostream>
#include<fstream>
using namespace std;
struct Trio{
    int day;
    int month;
    int year;
    void init(int day,int month,int year){
        this->day=day;
        this->month=month;
        this->year=year;        
    }
    void read(){
        //не совсем понял, для чего эта функция
    }
    void display(){
        char buf[3][10];
        cout<<itoa(year,buf[0],10)<<((month/10==0)? ".0" :".")<<itoa(month,buf[1],10)<<((day/10==0)? ".0" :".")<<itoa(day,buf[2],10)<<endl;
    }
};
 
 
class Date{
private:
    Trio trio;
public:
    Date();
    Date(int,int,int);
    Date(Date&);
    void show();
    int getDay();
    int getMonth();
    int getYear();
    void setDay(int);
    void setMonth(int);
    void setYear(int);
    void initialize(char*);
    void dayPassed(int);
    friend ostream& operator<<(ostream& os,const Date&);
};
Date::Date(){
    trio.init(15,11,1994);
}
Date::Date(int day,int month,int year){
    trio.init(day,month,year);
}
Date::Date(Date& d){
    this->trio.day=d.trio.day;
    this->trio.month=d.trio.month;
    this->trio.year=d.trio.year;
}
ostream& operator<<(ostream& os,const Date& d){
    os<<d.trio.year<<((d.trio.month/10==0)? ".0" :".")<<d.trio.month<<((d.trio.day/10==0)? ".0" :".")<<d.trio.day;
        return os;
    }
void Date::show(){
    trio.display();
}
int Date::getDay(){
    return trio.day;
}
int Date::getMonth(){
    return trio.month;
}
int Date::getYear(){
    return trio.year;
}
void Date::setDay(int day){
    trio.day=day;
}
void Date::setMonth(int month){
    trio.month=month;
}
void Date::setYear(int year){
    trio.year=year;
}
void Date::initialize(char* str){
    char* st=new char[100];
    strcpy(st,str);
    char* s=".";
    char* w=strtok(st,s);
    trio.year=atoi(w);
    w=strtok(0,s);
    trio.month=atoi(w);
    w=strtok(0,s);
    trio.day=atoi(w);
    trio.display();
    delete[] st;
}
void Date::dayPassed(int d){
    //будем считать, что во всех месяцах 31 день
    trio.day+=d;
    trio.month+=trio.day/31;
    if(trio.day%31==0)
        trio.month--;
    trio.year+=trio.month/12;
    if(trio.month%12==0)
        trio.year--;
    (trio.day%31!=0)?(trio.day%=31):(trio.day=31);
    (trio.month%12!=0)?(trio.month%=12):(trio.month=12);
    trio.display();
}
 
class Account{
private:
    char* surname;
    int number;
    int percent;
    Date date;
    double sum;
public:
    Account(char*,int,int,Date,double);
    Account(){}
    void changeOwner(char*);
    void show();
    void drawOut(double);
    void deposit(double);
    void percents(int);
    double exchange(double);
};
Account::Account(char* surname,int number,int percent,Date date,double sum){
    this->surname=new char[50];
    strcpy(this->surname,surname);
    this->number=number;
    this->percent=percent;
    this->date=date;
    this->sum=sum;
}
void Account::changeOwner(char* owner){
    strcpy(surname,owner);
}
void Account::show(){
    cout<<surname<<" "<<number<<" "<<percent<<"% "<<date<<" "<<sum<<endl;
}
void Account::drawOut(double sum){
    if(this->sum>=sum)
        this->sum-=sum;
    else
        cout<<"error"<<endl;
 
}
void Account::percents(int per){
    this->sum+=sum*per/100;
}
void Account::deposit(double sum){
        this->sum+=sum;
}
double Account::exchange(double rate){
    return (double)(this->sum/rate);
}
int main(){
    setlocale(LC_ALL,".1251");
    Date d(15,12,2007);
    d.setDay(3);
    int f=d.getDay();
    cout<<f<<endl;
    d.show();
    d.initialize("2007.12.03");
    d.dayPassed(409);
    Account a("Иванов",2201,25,d,100);
    a.show();
    a.percents(20);
    a.show();
    a.deposit(30);
    a.show();
    a.drawOut(30);
    a.show();
    cout<<a.exchange(50)<<"$"<<endl;
    return 0;
}

В данном коде реализованы 2 задачи:

Задача 1
Реализовать структуру Trio c тремя полями (целыми без знака). В структуре реализовать методы init(), read() и display(). Реализовать класс Date, использовав в качестве поля объект типа Trio. В классе реализовать методы получения и изменения отдельных полей даты, метод инициализации строкой вида «год.месяц.день» (например, «2006.04.07»), метод вычисления даты через заданное количество дней.

Задача 2
Реализовать класс Account, представляющий собой банковский счёт. В классе должны быть пять полей: фамилия владельца, номер счёта, процент начисления, дата открытия счёта и сумма в рублях. Для представления даты использовать класс Date из задачи 4. Необходимо выполнять следующие операции: сменить владельца счёта, снять некоторую сумму денег со счёта, положить деньги на счёт, начислить проценты, перевести сумму в доллары.
sniperni
1 / 1 / 1
Регистрация: 28.11.2011
Сообщений: 49
16.05.2012, 20:08  [ТС]     Создание даты! #3
спасибо, попробую разобраться!
Ответ Создать тему
Опции темы

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