parent
2ce480443b
commit
73498b9b57
@ -0,0 +1,8 @@ |
||||
# Default ignored files |
||||
/shelf/ |
||||
/workspace.xml |
||||
# Editor-based HTTP Client requests |
||||
/httpRequests/ |
||||
# Datasource local storage ignored files |
||||
/dataSources/ |
||||
/dataSources.local.xml |
@ -0,0 +1,14 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false"> |
||||
<serverData> |
||||
<paths name="remote_linux (563cc454-127a-4c53-a847-5bf281087bb1)"> |
||||
<serverdata> |
||||
<mappings> |
||||
<mapping local="$PROJECT_DIR$" web="/" /> |
||||
</mappings> |
||||
</serverdata> |
||||
</paths> |
||||
</serverData> |
||||
</component> |
||||
</project> |
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="Encoding"> |
||||
<file url="file://$PROJECT_DIR$/date" charset="GBK" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,4 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" /> |
||||
</project> |
@ -0,0 +1,8 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="ProjectModuleManager"> |
||||
<modules> |
||||
<module fileurl="file://$PROJECT_DIR$/.idea/work20220330.iml" filepath="$PROJECT_DIR$/.idea/work20220330.iml" /> |
||||
</modules> |
||||
</component> |
||||
</project> |
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="VcsDirectoryMappings"> |
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,2 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<module classpath="CMake" type="CPP_MODULE" version="4" /> |
@ -0,0 +1,6 @@ |
||||
cmake_minimum_required(VERSION 3.21) |
||||
project(work20220330) |
||||
|
||||
set(CMAKE_CXX_STANDARD 14) |
||||
|
||||
add_executable(work20220330 main.cpp Leader.cpp Leader.h Staff.cpp Staff.h date/Date.h date/Date.cpp Teacher.cpp Teacher.h DbTeacher.cpp DbTeacher.h) |
@ -0,0 +1,24 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#include <sstream> |
||||
#include "DbTeacher.h" |
||||
|
||||
|
||||
DbTeacher::DbTeacher(const Staff &staff, const std::string &title, const std::string &job, |
||||
int salary) : Teacher(staff, title), Leader(staff, job), Staff(staff), salary(salary) {} |
||||
|
||||
DbTeacher::DbTeacher(const DbTeacher &dbTeacher) : Teacher(dbTeacher), Leader(dbTeacher), Staff(dbTeacher), |
||||
salary(dbTeacher.salary) {} |
||||
|
||||
std::string DbTeacher::toString() { |
||||
std::stringstream output; |
||||
output |
||||
<< "--> as leader:" << '\n' |
||||
<< Leader::toString() << '\n' |
||||
<< "--> as teacher:" << '\n' |
||||
<< Teacher::toString() << '\n' |
||||
<< "in DbTeacher:\nsalary:" << salary; |
||||
return output.str(); |
||||
}; |
@ -0,0 +1,24 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#ifndef WORK20220330_DBTEACHER_H |
||||
#define WORK20220330_DBTEACHER_H |
||||
|
||||
|
||||
#include "Leader.h" |
||||
#include "Teacher.h" |
||||
|
||||
class DbTeacher : public Teacher, public Leader{ |
||||
private: |
||||
int salary; |
||||
|
||||
public: |
||||
DbTeacher(const Staff &staff, const std::string &title, const std::string &job, int salary); |
||||
DbTeacher(const DbTeacher &dbTeacher); |
||||
DbTeacher() = delete; |
||||
std::string toString(); |
||||
}; |
||||
|
||||
|
||||
#endif //WORK20220330_DBTEACHER_H
|
@ -0,0 +1,21 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#include <sstream> |
||||
#include "Leader.h" |
||||
|
||||
Leader::Leader(const std::string &name, char sex, const std::string &phone, const Date &birthday, |
||||
const std::string &job) : Staff(name, sex, phone, birthday), job(job) {} |
||||
|
||||
Leader::Leader(const Staff &staff, const std::string &job) : Staff(staff), job(job) {} |
||||
|
||||
std::string Leader::toString() { |
||||
std::stringstream out; |
||||
out |
||||
<< Staff::toString() << '\n' |
||||
<< "job: " << job << '\n'; |
||||
return out.str(); |
||||
} |
||||
|
||||
Leader::Leader(const Leader &leader) : Staff(leader), job(leader.job) {} |
@ -0,0 +1,27 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#ifndef WORK20220330_LEADER_H |
||||
#define WORK20220330_LEADER_H |
||||
|
||||
|
||||
#include "Staff.h" |
||||
|
||||
class Leader : virtual public Staff { |
||||
protected: |
||||
std::string job; |
||||
|
||||
public: |
||||
|
||||
Leader(const std::string &name, char sex, const std::string &phone, const Date &birthday, const std::string &job); |
||||
|
||||
Leader(const Staff &staff, const std::string &job); |
||||
|
||||
Leader(const Leader &leader); |
||||
|
||||
std::string toString(); |
||||
}; |
||||
|
||||
|
||||
#endif //WORK20220330_LEADER_H
|
@ -0,0 +1,23 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#include <sstream> |
||||
#include "Staff.h" |
||||
|
||||
Staff::Staff(const std::string &name, char sex, const std::string &phone, const Date &birthday) : |
||||
name(name), sex(sex), phone(phone), |
||||
birthday(birthday) {} |
||||
|
||||
Staff::Staff(const Staff &staff) : name(staff.name), sex(staff.sex), phone(staff.phone), birthday(staff.birthday) {} |
||||
|
||||
std::string Staff::toString() { |
||||
std::stringstream output; |
||||
output |
||||
<< "name: " << name << '\n' |
||||
<< "sex: " << sex << '\n' |
||||
<< "phone: " << phone << '\n' |
||||
<< "birthday: " << birthday.toString(); |
||||
return output.str(); |
||||
} |
||||
|
@ -0,0 +1,28 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#ifndef WORK20220330_STAFF_H |
||||
#define WORK20220330_STAFF_H |
||||
|
||||
#include <string> |
||||
#include "date/Date.h" |
||||
|
||||
class Staff { |
||||
protected: |
||||
std::string name; |
||||
char sex; |
||||
std::string phone; |
||||
Date birthday; |
||||
public: |
||||
Staff(const std::string &name, char sex, const std::string &phone, const Date &birthday); |
||||
|
||||
Staff(const Staff &staff); |
||||
|
||||
Staff() = delete; |
||||
|
||||
std::string toString(); |
||||
}; |
||||
|
||||
|
||||
#endif //WORK20220330_STAFF_H
|
@ -0,0 +1,19 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#include <sstream> |
||||
#include "Teacher.h" |
||||
|
||||
Teacher::Teacher(const Staff &staff, const std::string &title) : Staff(staff), title(title) {} |
||||
|
||||
std::string Teacher::toString() { |
||||
std::stringstream out; |
||||
out |
||||
<< Staff::toString() << '\n' |
||||
<< "title: " << title << '\n'; |
||||
|
||||
return out.str(); |
||||
} |
||||
|
||||
Teacher::Teacher(const Teacher &teacher) : Staff(teacher), title(teacher.title) {} |
@ -0,0 +1,23 @@ |
||||
//
|
||||
// Created by lensferno on 2022/3/30.
|
||||
//
|
||||
|
||||
#ifndef WORK20220330_TEACHER_H |
||||
#define WORK20220330_TEACHER_H |
||||
|
||||
|
||||
#include "Staff.h" |
||||
|
||||
class Teacher : public virtual Staff { |
||||
protected: |
||||
std::string title; |
||||
public: |
||||
Teacher(const Staff &staff, const std::string &title); |
||||
|
||||
Teacher(const Teacher &teacher); |
||||
|
||||
std::string toString(); |
||||
}; |
||||
|
||||
|
||||
#endif //WORK20220330_TEACHER_H
|
@ -0,0 +1,30 @@ |
||||
#include <sstream> |
||||
#include "Date.h" |
||||
|
||||
Date::Date(int year, int month, int day) : year(year), month(month), day(day) {} |
||||
|
||||
Date::Date(const Date &date) : year(date.year),month(date.month), day(date.day) {} |
||||
|
||||
int Date::getYear() const { |
||||
return year; |
||||
} |
||||
|
||||
int Date::getMonth() const { |
||||
return month; |
||||
} |
||||
|
||||
int Date::getDay() const { |
||||
return day; |
||||
} |
||||
|
||||
void Date::setDate(int year, int month, int day) { |
||||
Date::year = year; |
||||
Date::month = month; |
||||
Date::day = day; |
||||
} |
||||
|
||||
std::string Date::toString() const { |
||||
std::stringstream output; |
||||
output << year << '-' << month << '-' << day; |
||||
return output.str(); |
||||
} |
@ -0,0 +1,30 @@ |
||||
#ifndef WORK20220325_DATE_H |
||||
#define WORK20220325_DATE_H |
||||
|
||||
#include <string> |
||||
|
||||
class Date { |
||||
private: |
||||
int year; |
||||
int month; |
||||
int day; |
||||
public: |
||||
Date(int year, int month, int day); |
||||
|
||||
Date() = delete; |
||||
|
||||
Date(const Date &date); |
||||
|
||||
int getYear() const; |
||||
|
||||
int getMonth() const; |
||||
|
||||
int getDay() const; |
||||
|
||||
void setDate(int year, int month, int day); |
||||
|
||||
std::string toString() const; |
||||
}; |
||||
|
||||
|
||||
#endif //WORK20220325_DATE_H
|
@ -0,0 +1,9 @@ |
||||
#include <iostream> |
||||
#include "DbTeacher.h" |
||||
|
||||
int main() { |
||||
Staff basicInformation("dbt", 'M', "17388293849", Date(2002, 6, 9)); |
||||
DbTeacher dbTeacher(basicInformation, "unknown title", "unknown job", 11234); |
||||
std::cout << dbTeacher.toString(); |
||||
return 0; |
||||
} |
Loading…
Reference in new issue