From 6d6eacab6770b901d1d6ffb418ccaaf9d7678b45 Mon Sep 17 00:00:00 2001 From: Misha Date: Tue, 25 Nov 2025 20:50:58 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=202.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.cpp | 317 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 2.cpp diff --git a/2.cpp b/2.cpp new file mode 100644 index 0000000..2693805 --- /dev/null +++ b/2.cpp @@ -0,0 +1,317 @@ +//#pragma warning(disable:4996) +//#include +//#include +//#define MAX_SIZE 50 +//#define MAX_L 4096 +//using namespace std; +//struct StudentStruct { +// //public +// int id{ 0 }; +// void setId(int id) { +// if(this->id ==0) this->id = id; +// } +//}; +// +//class Student { +// +//public: +// void setId(int id); +// +// void setName(char* name_); +// +// void setInform(const char* inf); +// +// int getId()const; +// +// const char* getName()const; +// +// //char* getInform()const { +// // return (inform != nullptr) ? inform : new char[MAX_SIZE] {"NoInform"}; +// //} +// const char* getInform()const; +// +// +// +// +// void show()const; +// +// const char* studentToString()const; +////protected: +// // Student(){} +// // +// //Student(){ +// // id = 0; +// // strcpy(name, "NoName"); +// // inform = nullptr; +// //} +// +// Student(); +// +// Student(int id, const char* name_); +// +// Student(int id, const char* name_, const char* inf); +// +// ~Student(); +//private: +// int id;// { 0 }; +// char name[MAX_SIZE];// {"NoName"}; +// char* inform;// { nullptr }; +//}; +// +//inline void Student::setId(int id) { +// if (this->id == 0) this->id = id; +//} +// +//inline void Student::setName(char* name_) {//(const char*) +// if (name_ == nullptr) return; +// strcpy_s(name, strlen(name_) + 1, name_); +//} +// +//inline void Student::setInform(const char* inf) { +// if (inf == nullptr) return; +// if (inform != nullptr) delete[] inform;//? +// inform = new char[strlen(inf) + 1]; +// strcpy_s(inform, strlen(inf) + 1, inf); +//} +// +//inline int Student::getId()const { +// return id; +//} +// +//inline const char* Student::getName()const { +// char* str = new char[MAX_L] { "" }; +// strcpy(str, name); +// return str; +//} +// +//inline const char* Student::getInform()const { +// if (inform == nullptr) return "NoInform"; +// char* str = new char[MAX_L] { "" }; +// strcpy(str, inform); +// return str; +//} +// +// +// +// +//inline void Student::show()const { +// cout << "Id= " << id +// << "\nName " << name +// << "\nInform " << getInform()// ((inform != nullptr) ? inform : "NoInform") +// << endl; +//} +// +//inline const char* Student::studentToString()const { +// char* str = new char[MAX_L] { "" }; +// //strcat_s(str, "Id= "); +// sprintf(str, "Id = %d \nName %s \nInform %s ", id, name, getInform()); +// //%d %i - int +// //%f %e %g -float double +// //%s - string const char* char* +// return str; +//} +// +// +//Student::Student() :id{ 0 }, name{ "NoName" }, inform{ nullptr }{ +// cout << "\n Create student: " << this << endl; +//} +// +//Student::Student(int id, const char* name_) :id{ id }, inform{ nullptr }{ +// /* if (name_ == nullptr) return; +// strcpy_s(name, strlen(name_) + 1, name_);*/ +// cout << "\n Create student: " << this << endl; +// setName((char*)name_); +//} +// +//Student::Student(int id, const char* name_, const char* inf) :id{ id } { +// /* if (name_ == nullptr) return; +// strcpy_s(name, strlen(name_) + 1, name_); +// if (inf == nullptr) return; +// inform = new char[strlen(inf) + 1]; +// strcpy_s(inform, strlen(inf) + 1, inf);*/ +// cout << "\n Create student: " << this << endl; +// setName((char*)name_); +// setInform(inf); +//} +// +//Student::~Student() { +// cout << "\n Delete student: " << this << endl; +// if (inform != nullptr) delete[] inform; +//} +// +//int main() { +// //int a; +// //a = 5; +// //int b{ 5 }; +// //auto c = 5; +// { +// Student student; +// cout << "\nStudent( create):\n" +// << student.studentToString() +// << endl; +// Student student1{2, "Olya" }; +// student1.show(); +// Student* pStud = new Student(3, "Sasha"); +// pStud->show(); +// Student student3{ 12,"Ivan","Good student"}; +// cout << "\nStudent: " << student3.studentToString() << endl; +// delete pStud; +// }//~Student() +// +// cout << "End program" << endl; +// //system("pause"); +// system("pause"); +//} + +#pragma warning(disable:4996) +#include +#include +#define MAX_SIZE 50 +#define MAX_L 4096 +#define PHONE 15 +#define BIRTDATE 20 +using namespace std; + +class Student { +public: + Student(int id = 0, const char* name = "NoName", const char* birthDate = "NoDate", const char* phone = "0000000000", + const char* city = "NoCity", const char* country = "NoCountry", const char* university = "NoUniversity", const char* group = "NoGroup"); + ~Student(); + + void setId(int id); + int getId() const; + + void setName(const char* name); + const char* getName() const; + + void setBirthDate(const char* birthDate); + const char* getBirthDate() const; + + void setPhone(const char* phone); + const char* getPhone() const; + + void setCity(const char* city); + const char* getCity() const; + + void setCountry(const char* country); + const char* getCountry() const; + + void setUniversity(const char* university); + const char* getUniversity() const; + + void setGroup(const char* group); + const char* getGroup() const; + + const char* studentToString() const; + +private: + int id; + char name[MAX_SIZE]; + char birthDate[BIRTDATE]; + char phone[PHONE]; + char city[MAX_SIZE]; + char country[MAX_SIZE]; + char university[MAX_SIZE]; + char group[MAX_SIZE]; +}; + +Student::Student(int id, const char* name, const char* birthDate, const char* phone, + const char* city, const char* country, const char* university, const char* group) : id(id) { + setName(name); + setBirthDate(birthDate); + setPhone(phone); + setCity(city); + setCountry(country); + setUniversity(university); + setGroup(group); + cout << "\n Create student: " << this << endl; +} + +Student::~Student() { + cout << "\n Delete student: " << this << endl; +} + +void Student::setId(int id) { + this->id = id; +} + +int Student::getId() const { + return id; +} + +void Student::setName(const char* name) { + strncpy(this->name, name, MAX_SIZE - 1); + this->name[MAX_SIZE - 1] = '\0'; +} +const char* Student::getName() const { + return name; +} + +void Student::setBirthDate(const char* birthDate) { + strncpy(this->birthDate, birthDate, MAX_SIZE - 1); + this->birthDate[MAX_SIZE - 1] = '\0'; +} +const char* Student::getBirthDate() const { + return birthDate; +} + +void Student::setPhone(const char* phone) { + strncpy(this->phone, phone, MAX_SIZE - 1); + this->phone[MAX_SIZE - 1] = '\0'; +} +const char* Student::getPhone() const { + return phone; +} + +void Student::setCity(const char* city) { + strncpy(this->city, city, MAX_SIZE - 1); + this->city[MAX_SIZE - 1] = '\0'; +} +const char* Student::getCity() const { + return city; +} + +void Student::setCountry(const char* country) { + strcpy_s(this->country, country); + //this->country[MAX_SIZE - 1] = '\0'; +} +const char* Student::getCountry() const { + return country; +} + +void Student::setUniversity(const char* university) { + strncpy(this->university, university, MAX_SIZE - 1); + this->university[MAX_SIZE - 1] = '\0'; +} +const char* Student::getUniversity() const { + return university; +} + +void Student::setGroup(const char* group) { + strncpy(this->group, group, MAX_SIZE - 1); + this->group[MAX_SIZE - 1] = '\0'; +} +const char* Student::getGroup() const { + return group; +} + +const char* Student::studentToString() const { + static char str[MAX_L]; + sprintf(str, "ID: %d\nName: %s\nBirth Date: %s\nPhone: %s\nCity: %s\nCountry: %s\nUniversity: %s\nGroup: %s\n", + id, name, birthDate, phone, city, country, university, group); + return str; +} + +int main() { + Student student{ 1, "Vova"}; + cout << student.studentToString() << endl; + + Student student1{ 2, "Alice", "02/03/2000" }; + cout << student1.studentToString() << endl; + + Student* pStud = new Student(3, "Bob", "15/08/1999", "9876543210", "Los Angeles", "USA", "Stanford", "CS102"); + cout << pStud->studentToString() << endl; + delete pStud; + + return 0; +}