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

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

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

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

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

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

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

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

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

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты - C++
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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. Необходимо выполнять следующие операции: сменить владельца счёта, снять некоторую сумму денег со счёта, положить деньги на счёт, начислить проценты, перевести сумму в доллары.
0
sniperni
1 / 1 / 1
Регистрация: 28.11.2011
Сообщений: 49
16.05.2012, 20:08  [ТС] #3
спасибо, попробую разобраться!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2012, 20:08
Привет! Вот еще темы с ответами:

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

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

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

Подсчет даты - C++
Я наверное уже перегрелся за комом весь день писать код, но вот хоть тресни, видимо с математикой плохо. Помогите решить одну задачку. ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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