Добавить 11.cpp

This commit is contained in:
2025-11-25 19:34:13 +02:00
parent ad94106e74
commit 51b37f16be

327
11.cpp Normal file
View File

@@ -0,0 +1,327 @@
//#pragma warning(disable:4996)
//#include <iostream>
//#include <stdio.h>
//#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 <iostream>
#include <stdio.h>
#define MAX_SIZE 50
#define MAX_L 4096
using namespace std;
class Student {
public:
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);
~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;
void input();
const char* studentToString() const;
private:
int id;
char name[MAX_SIZE];
char birthDate[MAX_SIZE];
char phone[MAX_SIZE];
char city[MAX_SIZE];
char country[MAX_SIZE];
char university[MAX_SIZE];
char group[MAX_SIZE];
};
Student::Student() : id(0), name("NoName"), birthDate("01/01/1970"), phone("0000000000"),
city("NoCity"), country("NoCountry"), university("NoUniversity"), group("NoGroup") {
cout << "\n Create student: " << this << endl;
}
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) {
strncpy(this->country, country, MAX_SIZE - 1);
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;
cout << student.studentToString() << endl;
Student student1{ 1, "Alice", "02/03/2000", "1234567890", "New York", "USA", "Harvard", "CS101" };
cout << student1.studentToString() << endl;
Student* pStud = new Student(2, "Bob", "15/08/1999", "9876543210", "Los Angeles", "USA", "Stanford", "CS102");
cout << pStud->studentToString() << endl;
delete pStud;
return 0;
}