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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан список студентов и их оценки на четырех экзаменах... http://www.cyberforum.ru/cpp-beginners/thread576828.html
Помогите написать программу: Дан список студентов и их оценки на четырех экзаменах. По выбору пользователя программа выводит на экран список отличников или список неуспевающих, или список студентов, которым будет назначена стипендия. Каждый список формируется в отдельной подпрограмме.
C++ in_avail() всегда возвращает 0. #include <c++/4.4/iostream> #include <c++/4.4/streambuf> int main() { int i,k; i=k=0; std::cout<<"Enter two numbers"<<std::endl; std::cout<<std::cin.rdbuf()->in_avail()<<std::endl;//как и ожидалось 0 k=std::cin.get();//введя 12 http://www.cyberforum.ru/cpp-beginners/thread576825.html
Ошибка при компиляции в Borland C++ 5.02 C++
Есть код проги: #include <iostream> #include <stdio.h> #include <string.h> #include <conio.h> struct INF { char name; char pol; char rost; char ves;
C++ Заполнение массива 6х6 по диагонали
Заполнить массив 6х6 по диагонали (вложение) И вывести на экран. Я записал изменение адресации по порядку, получилось 11 этапов: 5,5 5,4 4,5 3,5
C++ Помогите пожалуйста, на срочно сдать лабу по Динамическим структурам данных http://www.cyberforum.ru/cpp-beginners/thread576771.html
Автоматизированная информационная система на ж/д вокзале содержит сведения об отправлении поездов дальнего сведения. Для каждого поезда указывается: - номер поезда;- станция назначения;- время отправления. Данные в информационной системе организованы в виде линейного списка. Составить программу, которая: обеспечивает первоначальный ввод данных в информационную систему и формирование...
C++ Вставить в строку 1 содержимое строки 2 (#C) <String.h> Задание: Ввести две символьных строки. Выполнить вставку второй строки в первую, с позиции, введенной с клавиатуры. Нашёл тут у нас много полезностей, но не удалось собрать программу... Помогите. char * insertSTR(char *str1, char *str2, int n) { int newSize = strlen(str1)+strlen(str2); char *newStr = new char; memset(newStr, '\0', newSize); подробнее

Показать сообщение отдельно
roma_kelt
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 5
16.05.2012, 19:55     Создание даты!
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. Необходимо выполнять следующие операции: сменить владельца счёта, снять некоторую сумму денег со счёта, положить деньги на счёт, начислить проценты, перевести сумму в доллары.
 
Текущее время: 20:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru