1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 9
1

Помогите пожалуйста дописать программу по теме ООП, Классы

03.06.2015, 21:03. Показов 774. Ответов 1
Метки нет (Все метки)

Помогите новичку в программирование подогнать программу под требования,выручите пожалуйста
вот требования:
Класс Паспорт
Скрытые поля:
• Номер по порядку (назначается автоматически);
• ФИО владельца (составляется случайным образом, из заготовленных вариантов фамилий имён и отчеств, считанных из трёх разных файлов);
• Месяц рождения (гарнируется случайным образом, в диапазоне 1-12);
• Число рождения (генерируется случайным образом, в диапазоне, зависящем от месяца)
• Год рождения (генерируется случайным образом, не позже 2000г.);
• Серия паспорта (две заглавные русские буквы, генерирующиеся случайно);
• Номер паспорта (переменная из 6 случайных цифр, генерируемых по-отдельности);
• Возраст владельца (вычисляется, исходя из предыдущих данных используя сегодняшнюю дату).
Публичные поля:
• Статический счётчик количества экземпляров.
Скрытые методы:
• Вычисление возраста владельца паспорта.
Публичные методы:
• Конструктор (присваивает значения всем полям);
• Деструктор (уменьшает статический счётчик);
• Ручная смена года рождения в выбранном паспорте (с пересчётом возраста владельца);
• Вывод на экран всех полей (кроме статических);
Программа:
Создать массив экземпляров класса из 20 элементов. Затем предложить пользователю меню, позволяющее запускать публичные методы (кроме конструктора и деструктора), выводить данные на экран в таких режимах:
• Вывод на экран всего списка;
• Вывод на экран одного экземпляра с заданным порядковым номером;
• Вывод на экран всех экземпляров старше выбранного возраста;
а также выйти из программы. Меню зациклить. После выполнения каждого пункта очищать экран. Предусмотреть максимальное количество ошибок пользователя.





программный код,знаю что криво
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include <iostream>
#include <string>
#include <Windows.h>
#include <ctime> 
#include <fstream>
 
 
using namespace std;
 
class Pasport
{
    int num, chislo, mes, god,  vozr, random,nom_pasp;
    int real_god = 2015;
    string name = "", ser,seri;
    string first_name[10], second_name[10], last_name[10], nam;
     
    int Vozr()
    {
        vozr = real_god - vozr;
 
            return 0;
    }
    int Ser()
    {
        string ser[10] = {
            "И", "П", "С",
            "А", "Е", "В",
            "Г", "Р", "К", "Ч"
        };
        for (int i = 0; i < 10; i++)
 
        {
            seri = ser[i];
 
        }
 
        return 0;
    }
 
    string FIO()
    {
        ifstream txt, txt2, txt3;
        txt.open("Имена.txt");
        txt2.open("Отчества.txt");
        txt3.open("Фамилии.txt");
        for (int i = 0; i < 10; i++)
        {
            txt >> first_name[i];
        }
        for (int i = 0; i < 10; i++)
        {
            txt2 >> second_name[i];
        }
        for (int i = 0; i < 10; i++)
        {
            txt3 >> last_name[i];
        }
        random = rand() % 10;
        name = first_name[random] +" " + name;
        random = rand() % 10;
        name = second_name[random] +" " + name;
        random = rand() % 10;
        name = last_name[random] +" " + name;
        return name;
    }
    
public:
    static int cn;
    static Log *p;
    Pasport()
    {
    cn++;
    num = cn;
        nam = FIO();
        nom_pasp = rand() % 999999 + 111111;
        chislo = rand() % 31 +1;
        mes = rand() % 12 + 1;
        god = rand() % 2000;
        vozr = real_god - god;
 
    }
    ~Pasport()
    {
        cnt--;
        
 
 
    }
    int GETgod()
    {
        return god;
    }
 
    void zamena1()
    {
        cout << "Выберите год рождения который вы хотите изменить:";
        cin >> god;
        
 
    }
 
    void vivid()
        
    {
        cout <<endl<< "№" << num << " " << nam<<endl ;
        cout << "Серия паспорта:" << ser << " Номер паспорта:" << nom_pasp << " Дата рождения:" << chislo << "." << mes << "." << god << " Возраст " << vozr << endl;
    }    
 
};
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    srand(time(0));
    Pasport g[20];
 
    bool d = true;
    int q, a;
    int gam = 0;
    int r = 0;
    string qwe;
 
    {
        while (d)
            
        {
            system("cls");
            cout << "Выберите пункт меню" << endl; cout << "==================================" << endl;
            cout << "1.Вывод на экран всего списка" << endl;
            cout << "2.Вывод на экран одного экземпляра с заданным порядковым номером" << endl;
            cout << "3.Вывод на экран всех экземпляров старше выбранного возраста" << endl;
            cout << "4.Заменить год рождения" << endl;
            cout << "5.Выход из программы " << endl;
            cout << "=============================" << endl;
            cin >> a;
            switch (a)
            {
            case 1: { 
                system("cls");
                cout << "1.Вывод на экран всего списка" << endl;
                for (int i = 0; i < 20; i++)
                {
                    g[i].vivid();
 
                }
                system("pause");
                break;
 
 
            case 2:
                system("cls");
                cout << "Какой экземпляр вы хотите вывести?\n";
                cin >> q;
                g[q - 1].vivid();
                system("pause");
                break;
                case 3:
                    system("cls");
                    cout << "Старше какого возраста вы хотите вывести?\n";
                    cin >> q;                   
                    g[q - 1].vivid();
                    system("pause");
                    break;
 
                case 4:
 
                    system("cls");
                    cout << "Введите № экземпляра,возраст которого вы хотите заменить.\n ";
                    cin >> r;
                    system("cls");
                    g[r - 1].zamena1();
            
                    break;
 
                 case 5:
                    d = false;
                     break;
 
                 default:
                  cout << "Вы ввели не верное число попробуйте  ещо раз.\n";
 
 
            }
            }
            cout << "Спасибо за внимание.\n";
        
 
        }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2015, 21:03
Ответы с готовыми решениями:

Помогите пожалуйста дописать программу перевода чисел 5->7 с.с
Всем привет. Помогите пожалуйста дописать программу перевода чисел из пятеричной системы счисления...

Помогите пожалуйста с тестом по ООП
Помогите пожалуйста с тесттом! What does OOP stand for? Object-Oriented Programming...

Помогите пожалуйста переделать код в ООП
Здравствуйте. Помогите пожалуйста переделать данный код в ООП. Начал только учить js, к тому ООП...

Сделайте пожалуйста программу по теме файлы
Задание: Даны символьные файлы f и g. Записать в файл h все начальные совпадающие компоненты файлов...

1
Модератор
Эксперт С++
12104 / 9775 / 5910
Регистрация: 18.12.2011
Сообщений: 26,246
03.06.2015, 21:47 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
#include <iostream>
#include <string>
#include <Windows.h>
#include <ctime> 
#include <fstream>
 
using namespace std;
 
string FIO();
 
class Pasport
{
    int num; // id
    int chislo, mes, god; // дата рождения
    int vozr; // возраст
    string PassSer,PassNumber; // паспортные данные
    string FullName; // ФИО
 
public:
    static int cn;
    //static Log *p;
    Pasport()
    {
        cn++;
        num = cn;
        FullName = FIO();
        chislo = rand() % 31 +1;
        mes = rand() % 12 + 1;
        god = rand() % 2000;
        struct tm   *newTime;
        time_t      szClock;
        // Get time in seconds
        time( &szClock );
        // Convert time to struct tm form 
        newTime = localtime( &szClock );
        vozr = newTime->tm_year+1900-god;
        PassSer="АБ";
        PassNumber="123456";
    }
    ~Pasport()
    {
        cn--;
    }
    void Print()
    {
        cout <<endl<< "№" << num <<' '<<FullName<<endl ;
        cout << "Серия паспорта:" << PassSer << " Номер паспорта:" << PassNumber<< " Дата рождения:" << chislo << "." << mes << "." << god << " Возраст " << vozr << endl;
    }    
};
int Pasport::cn=0;
string FIO()
{
    const int N=10;
    string first_name[N],second_name[N],last_name[N];
    ifstream txt;
    txt.open("Имена.txt");
    for (int i = 0; i < N; i++)
    {
        txt >> first_name[i];
    }
    txt.close();
    txt.open("Отчества.txt");
    for (int i = 0; i < N; i++)
    {
        txt >> second_name[i];
    }
    txt.close();
    txt.open("Фамилии.txt");
    for (int i = 0; i < N; i++)
    {
        txt >> last_name[i];
    }
    txt.close();
    int random = rand() % N;
    string name = first_name[random] +" ";
    random = rand() % N;
    name = second_name[random] +" " + name;
    random = rand() % N;
    name = last_name[random] +" " + name;
    return name;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2015, 21:47
Помогаю со студенческими работами здесь

Напишите пожалуйста программу по теме работа с файлами
Создать файл произвольных символов (символы вводятся с клавиатуры). Вывести в один файл цифры в...

Помогите написать программу по теме массивы
Извините если не там пишу, но я в отчаянии, я плохо знаю массивы, да и работал только на паскале. А...

Помогите дописать программу
Дано натуральное число N. Определить цифры данного числа и подсчитать их количество данную...

Помогите дописать программу
вот код программы, но работает только первая часть из файла в массив, как теперь собрать её чтобы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru