Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_zapiska.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.49 Mб
Скачать

Перелік джерел інформації

  1. Буч Г. Объектно-ориентированный анализ и проектирование. – СПб: Бином, Невский диалект, 2008.

  2. Архангельский А.Я. Программирование в С++ Builder 6. - М.: «Бином», 2003.

  3. Хортон А. Visual С++ 2005: базовый курс. – М: «Вильямс», 2007.

  4. Макконнелл С. Совершенный код. – СПб: Питер, 2007.

  5. Корн Г., Корн Т. Справочник по математике. – М: Наука, 1973.

  6. Уроки програмирования на С++ с нуля // [Електронний ресурс] // Режим доступа: https://code-live.ru/tag/cpp-manual/

  7. С++ для начинающих // [Електронний ресурс] // Режим доступа: http://valera.asf.ru/cpp/book/

  8. Язык программирования С++// [Електронний ресурс] // Режим доступа: http://cppstudio.com/

  9. Основы программирования на С / С++ (Си++) для начинающих и новичков // [Електронний ресурс] // Режим доступа: http://cppstudio.com/cat/274/

  10. . С++ // [Електронний ресурс] // Режим доступа: http://kvodo.ru/category/lessons/cplusplus

Додаток а блок – схема

Додаток б код програми

#include<iostream>

#include<Windows.h>

#include<string>

#include<conio.h>

#include<fstream>

#include<ctime>

using namespace std;

int const C = 15;

int const O = 30;

int const Y = 20;

class loger{

int sec, min, hour, day, mon, year, Viv;

public:

void timer(){

//Текущее время.

time_t t = time(0);

tm now;

localtime_s(&now, &t);

t = time(0);

localtime_s(&now, &t);

sec = (now.tm_sec);

min = (now.tm_min);

hour = (now.tm_hour);

day = (now.tm_mday);

mon = (now.tm_mon + 1);

year = (now.tm_year + 1900);

//------------------------------------------------------------------------------------------------------------

ofstream logg;

logg.open("logg.txt", ios::app);

logg << " " << day << "." << mon << "." << year << "|" << hour << ":" << min << ":" << sec << "" << endl;

logg.close();

}

void var(boolean &u){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "========================================================================" << endl;

timer();

logg << " Вывод мeню на экран." << endl;

logg.close();

}

void var(){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/" << endl;

timer();

logg << " Запуск класса." << endl << "Считывание из файлов." << endl << "Вычисление данных." << endl << "Создание экземпляров класса." << endl << "Вывод меню на экран" << endl << "Метод вызвавший событие - main" << endl;

logg.close();

}

void var(string wr){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "========================================================================" << endl;

timer();

logg << " Очистка экрана." << endl << " Выбран пункт " << wr << endl;

logg.close();

}

void var(int &bob){

ofstream logg;

logg.open("logg.txt", ios::app);

timer();

logg << " Выведено " << bob << " паспорт (а)(ов)." << endl << endl;

logg.close();

}

void var(char &V, int Viv){

ofstream logg;

logg.open("logg.txt", ios::app);

timer();

logg << " Выбран " << Viv << " экземпляр." << endl << " Вывод на экран экземпляра." << endl;

logg.close();

}

void var(int viv, int no){

ofstream logg;

logg.open("logg.txt", ios::app);

timer();

logg << " Выбранный возраст: " << viv << endl << " Вывод на экран экземпляра с номером " << no << endl << endl;

logg.close();

}

void var(int eks, string bon){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "========================================================================" << endl;

timer();

logg << " Выбран " << eks << " экземпляр." << endl;

timer();

logg << " Вывод на экран экземпляра." << endl << " Запрос ввода новой даты рождения." << endl;

logg.close();

}

void var(string bonny, int &ko){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "========================================================================" << endl;

timer();

logg << " Введенная дата: " << ko << "." << endl;

timer();

logg << " Вывод обновленного элемента." << endl;

logg.close();

}

void var(char &l, char &p){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "========================================================================" << endl;

timer();

logg << " Введено некорректное значение. => Возврат в меню." << endl;

logg.close();

}

void var(bool &seriy, bool &FI, bool &chy, bool &Me, bool &Yea, bool &Cit, bool &getvo, bool &setNewvo, bool &Vivo){

ofstream logg;

logg.open("logg.txt", ios::app);

if (seriy == true){

logg << endl << "Выведен экземпляр. Активированы такие методы:" << endl;

logg << "Метод 'seriya' - успешно выполнен " << endl;

}

if (FI == true){

logg << "Метод 'FIO' - успешно выполнен " << endl;

}

if (chy == true){

logg << "Метод 'ch' - успешно выполнен " << endl;

}

if (Me == true){

logg << "Метод 'Mes' - успешно выполнен " << endl;

}

if (Yea == true){

logg << "Метод 'Year' - успешно выполнен " << endl;

}

if (Cit == true){

logg << "Метод 'Cit' - успешно выполнен " << endl;

}

if (getvo == true){

logg << "Метод 'getvoz' - успешно выполнен " << endl;

}

if (setNewvo == true){

logg << "Метод 'setNewvoz' - успешно выполнен " << endl;

}

if (Vivo == true){

logg << "Метод 'Vivod' - успешно выполнен " << endl << endl;

}

logg.close();

}

void var(string &m, boolean &z){

ofstream logg;

logg.open("logg.txt", ios::app);

logg << "========================================================================" << endl;

timer();

logg << " Выход из программы." << endl;

logg << "/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~/" << endl;

logg.close();

}

};

class Zapasp

{ //Заполнение паспорта.

int Nomer, o, p, mes, NumPas, God, chi, i, MasY;

int DataD[12];

int nDay, nMon, nYea, Godik;

string LNa5me, Name, SName;

string familia, imy, otchestvo, Bukvi, goro;

void Godiko(){

if (nDay < chi || nMon < mes){

Godik = nYea - MasY - 1;

cout << " ( Возраст " << Godik << " )" << endl;

}

else{

Godik = nYea - MasY;

cout << " ( Возраст " << Godik << " )" << endl;

}

}

public:

static loger *tg;

bool seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo;

static int cnt;

Zapasp(){

int NomPas;

string famil[C];

string imya[C];

string otch[C];

string gorod[C];

cnt++;

Nomer = cnt;

NumPas = 0;

//------------------------------------------------------------------------------------------------------------

//Фамилия.

ifstream Famil;

Famil.open("Famil.txt");

for (o = 0; o < C; o++){

Famil >> famil[o];

}

o = rand() % 15;

familia = famil[o];

//------------------------------------------------------------------------------------------------------------

//Имя.

ifstream Imya;

Imya.open("Imya.txt");

for (o = 0; o < C; o++){

Imya >> imya[o];

}

o = rand() % 15;

imy = imya[o];

//------------------------------------------------------------------------------------------------------------

// Отчество.

ifstream Otchestvo;

Otchestvo.open("Otchestvo.txt");

for (o = 0; o < C; o++){

Otchestvo >> otch[o];

}

o = rand() % 15;

otchestvo = otch[o];

string Bukv[O]; //Серия паспорта.

//------------------------------------------------------------------------------------------------------------

//Буквы.

ifstream Lat;

Lat.open("Lat.txt");

for (o = 0; o < O; o++){

Lat >> Bukv[o];

}

o = rand() % 15;

p = rand() % 15;

Bukvi = Bukv[o] + Bukv[p];

//------------------------------------------------------------------------------------------------------------

//Цифры.

for (int i = 0; i < 6; i++)

{

NomPas = rand() % 10;

for (int j = i + 1; j < 6; j++){

NomPas *= 10;

}

NumPas += NomPas;

}

//------------------------------------------------------------------------------------------------------------

//Месяц.

i = 0;

for (i; i < 12; i++)

{

DataD[i] = rand() % 12 + 1;

}

mes = DataD[rand() % 12];

ch(chi, i);

//------------------------------------------------------------------------------------------------------------

//Дата.

MasY = rand() % 80;

MasY = MasY + 1920;

//------------------------------------------------------------------------------------------------------------

//Город.

ifstream City;

City.open("City.txt");

for (o = 0; o < C; o++){

City >> gorod[o];

}

o = rand() % 15;

goro = gorod[o];

//------------------------------------------------------------------------------------------------------------

//Текущее время.

time_t t = time(0);

tm now;

localtime_s(&now, &t);

t = time(0);

localtime_s(&now, &t);

nDay = (now.tm_mday);

nMon = (now.tm_mon + 1);

nYea = (now.tm_year + 1900);

//------------------------------------------------------------------------------------------------------------

}

void seriya(){

cout << "===================================" << Bukvi << " ";

cout << NumPas;

cout << "================================";

cout << "№ " << Nomer << endl;

seriy = true;

tg -> var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void FIO(){

cout << " " << familia << " ";

cout << imy << " ";

cout << otchestvo << " " << endl << endl << " ";

seriy = false;

FI = true;

tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void ch(int & chi, int & i){

if (mes == 1, 3, 5, 7, 8, 10, 12){

chi = rand() % 31 + 1;

}

else{

if (mes == 2){

chi = rand() % 29 + 1;

}

else{

if (mes == 4, 6, 9, 11){

chi = rand() % 30 + 1;

}

}

}

FI = false;

chy = true;

//tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void Mes(){

cout << chi << " ";

switch (mes){

case 1:

cout << "Января "; // 31

break;

case 2:cout << "Февраля "; // 29

break;

case 3:cout << "Марта "; // 31

break;

case 4:cout << "Апреля "; // 30

break;

case 5:cout << "Мая "; // 31

break;

case 6:cout << "Июня "; // 30

break;

case 7:cout << "Июля "; // 31

break;

case 8:cout << "Августа "; // 31

break;

case 9:cout << "Сентября ";// 30

break;

case 10:cout << "Октября ";// 31

break;

case 11:cout << "Ноября "; // 30

break;

case 12:cout << "Декабря ";// 31

break;

}

chy = false;

Me = true;

tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void Year(){

cout << MasY << " года.";

Me = false;

Yea = true;

tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void City(){

cout << endl << " город " << goro << endl << " Харьковской области." << endl;

Yea = false;

Cit = true;

tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

int getvoz(){

return Godik;

Cit = false;

getvo = true;

tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void setNewvozr(int &newvoz){

MasY = newvoz;

getvo = false;

setNewvo = true;

tg->var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

void Vivod(){

seriya();

FIO();

Mes();

Year();

Godiko();

City();

setNewvo = false;

Vivo = true;

}

~Zapasp(){

Vivo = false;

Nomer--;

}

};

void menus(Zapasp classi[20], loger log, int &x){

string wr, bonny, bon, m;

boolean u, z;

char V, l, p;

int VibNom2, VibNom3, VibNom4, menu, he, t, newvoz, stvoz, bob, nome, Viv, no, viv, eks, ko;

for (int i = 1; i > 0;){

log.var(u);

cout << "======================================МЕНЮ======================================" << endl;

cout << " 1: Вывести все паспорта." << endl << " 2: Вывод на экран желаемый экземпляр." << endl << " 3: Вывод на экран экземпляра старше заданного возраста." << endl << " 4: Смена возраста выбранного паспорта." << endl << " Esc: Выйти из программы." << endl;

while (1){

menu = _getch();

switch (menu){

case (49) :

wr = "Первый. (Вывести все паспорта.) \n";

log.var(wr);

system("cls");

for (i = 0; i < Y;){

for (int l = 0; l < 2; l++){

classi[i].Vivod();

cout << endl;

i++;

}

system("pause");

bob = i;

log.var(bob);

}

system("cls");

menus(classi, log, x);

break;

//2------------------------------------------------------------------------------------------------------------

case (50) : system("cls");

wr = "Второй. (Вывод на экран желаемый экземпляр.) \n";

log.var(wr);

cout << "Выберите экземпляр который хотите вывести: ";

nome = 2;

cin >> VibNom2;

if (VibNom2 > 20 || VibNom2 == 0){

log.var(l, p);

for (i = 3; i > 0; i--){

system("cls");

cout << "Такого экземпляра не существует." << endl;

cout << "Возврат в меню: " << i;

Sleep(1000);

}

system("cls");

menus(classi, log, x);

}

else{

classi[VibNom2 - 1].Vivod();

Viv = VibNom2;

log.var(V, Viv);

//log.var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

system("pause");

system("cls");

menus(classi, log, x);

break;

//3------------------------------------------------------------------------------------------------------------

case (51) : system("cls");

wr = "Третий. (Вывод на экран экземпляра старше заданного возраста.) \n";

log.var(wr);

cout << "Введите желаемый возраст: ";

cin >> VibNom3;

if (VibNom3 >= 97|| VibNom3 <= 15){

log.var(l, p);

for (i = 3; i > 0; i--){

system("cls");

cout << "Экземпляра с таким возрастом не существует." << endl;

cout << "Возврат в меню: " << i;

Sleep(1000);

system("cls");

}

system("cls");

menus(classi, log, x);

}

else{

for (i = 0; i < Y; i++){

classi[i].getvoz();

int vozr = classi[i].getvoz();

if (classi[i].getvoz() > VibNom3){

classi[i].Vivod();

system("pause");

no = i;

no++;

viv = VibNom3;

log.var(viv, no);

//log.var(seriy, FI, chy, Me, Yea, Cit, getvo, setNewvo, Vivo);

}

}

}

system("pause");

system("cls");

menus(classi, log, x);

break;

//4------------------------------------------------------------------------------------------------------------

case (52) : system("cls");

wr = "Четвертый. (Смена возраста выбранного паспорта.) \n";

log.var(wr);

cout << "Выберите экземпляр который хотите изменить: ";

cin >> VibNom4;

eks = VibNom4;

log.var(eks);

if (VibNom4 > 20 || VibNom4 == 0){

log.var(l, p);

for (i = 3; i > 0; i--){

system("cls");

cout << "Такого экземпляра не существует." << endl;

cout << "Возврат в меню: " << i;

Sleep(1000);

system("cls");

}

system("cls");

menus(classi, log, x);

}

else{

classi[VibNom4 - 1].Vivod();

cout << endl << "Введите новый год рождения владельца:" << endl;

cin >> newvoz;

if (newvoz < 1919 || newvoz > 1999){ cout << "Недопустимый возраст!" << endl; log.var(l, p); Sleep(1500); system("cls"); menus(classi, log, x); }

ko = newvoz;

log.var(bonny, ko);

classi[VibNom4 - 1].setNewvozr(newvoz);

classi[VibNom4 - 1].Vivod();

system("pause");

system("cls");

}

system("cls");

menus(classi, log, x);

break;

//Esc------------------------------------------------------------------------------------------------------------

case (27) : log.var(m,z); exit(0);;

break;

}

}

}

system("cls");

}

int Zapasp::cnt = 0;

loger *Zapasp::tg;

void main(){

int x;

srand(time(0));

loger log;

log.var();

setlocale(LC_CTYPE, "rus");

Zapasp classi[20];

Zapasp::tg = &log;

x = 0;

x--;

menus(classi, log, x);

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]