新作业:20220330

main
lensfrex 3 years ago
parent 2ce480443b
commit 73498b9b57
Signed by: lensfrex
GPG Key ID: 947ADABD8533C476
  1. 8
      work20220330/.idea/.gitignore
  2. 14
      work20220330/.idea/deployment.xml
  3. 6
      work20220330/.idea/encodings.xml
  4. 4
      work20220330/.idea/misc.xml
  5. 8
      work20220330/.idea/modules.xml
  6. 6
      work20220330/.idea/vcs.xml
  7. 2
      work20220330/.idea/work20220330.iml
  8. 6
      work20220330/CMakeLists.txt
  9. 24
      work20220330/DbTeacher.cpp
  10. 24
      work20220330/DbTeacher.h
  11. 21
      work20220330/Leader.cpp
  12. 27
      work20220330/Leader.h
  13. 23
      work20220330/Staff.cpp
  14. 28
      work20220330/Staff.h
  15. 19
      work20220330/Teacher.cpp
  16. 23
      work20220330/Teacher.h
  17. 30
      work20220330/date/Date.cpp
  18. 30
      work20220330/date/Date.h
  19. 9
      work20220330/main.cpp

@ -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…
Cancel
Save