合理设计一个类,该类需要对数据成员进行合法性验证、初始化、修改、获取、输出等基本操作外,还应能完成其他一些合理的功能操作(可以自行思考设计)。并在程序合适的位置中生成该类的对象,并让所设计的功能发挥作用。可以参考以下提示,选择一个参考项或自己进行拟定一个抽象的事物进行单个类的设计。
目的1) 巩固类的定义,成员变量、成员方法的定义;
2) 巩固类的对象的定义,对象对成员变量、成员方法的访问;
要求在main函数定义并使用对象、指针及引用三种方法完成完成员工的信息显示,并使用拷贝构造函数。
参考设计参考1:员工类
数据成员:姓名,年龄,性别,身份证,工号,入职时间。
成员函数:显示员工信息,修改入职时间。
程序流程图 参考代码// CStaff 员工类
#pragma once #includeusing namespace std; class CStaff { private: string m_nName;//姓名 string m_nAge;//年龄 string m_nGender;//性别 string m_nID;//身份证 string m_nNumber;//工号 string m_nEnTime;//入职时间 string m_nPosition;//职位 public: CStaff(); CStaff(string Name, string Age, string Gender, string ID, string Number, string EnTime, string Position); void SetAllinformation(string Name, string Age, string Gender, string ID, string Number, string EnTime, string Position); void SetName(string nName); void SetAge(string Age); void SetGender(string Gender); void SetID(string ID); void SetNumber(string Number); void SetTime(string EnTime); void SetPosition(string Position); string ShowInformation(); ~CStaff(); };
//员工类实现
#include "CStaff.h" #includeCStaff::CStaff() { } CStaff::CStaff(string Name, string Age, string Gender, string ID, string Number, string EnTime, string Position) { this->m_nName = Name; this->m_nAge = Age; this->m_nGender = Gender; this->m_nID = ID; this->m_nNumber = Number; this->m_nEnTime = EnTime; this->m_nPosition = Position; } void CStaff::SetAllinformation(string Name, string Age, string Gender, string ID, string Number, string EnTime, string Position) { this->m_nName = Name; this->m_nAge = Age; this->m_nGender = Gender; this->m_nID = ID; this->m_nNumber = Number; this->m_nEnTime = EnTime; this->m_nPosition = Position; } void CStaff::SetName(string nName) { this->m_nName = nName; } void CStaff::SetAge(string Age) { this->m_nAge = Age; } void CStaff::SetGender(string Gender) { this->m_nGender = Gender; } void CStaff::SetID(string ID) { this->m_nID = ID; } void CStaff::SetNumber(string Number) { this->m_nNumber = Number; } void CStaff::SetTime(string EnTime) { this->m_nEnTime = EnTime; } void CStaff::SetPosition(string Position) { this->m_nPosition = Position; } string CStaff::ShowInformation() { cout << "姓名:" << this->m_nName << endl << "年龄:" << this->m_nAge << endl << "性别:" << this->m_nGender << endl << "身份证号:" << this->m_nID << endl << "工号:" << this->m_nNumber << endl << "入职时间:" << this->m_nEnTime << endl; return string(); } CStaff::~CStaff() { }
//主函数
#include "CStaff.h" #include运行结果 说明#include "CCompany.h" //"小明",20,"男", "12345678987654321","512020xxxx","2020-09-01" //= new CStaff(nName, nAge, nGender, nID, nNumber, nEnTime, nPosition) using namespace std; string nName;//姓名 string nAge;//年龄 string nGender;//性别 string nID;//身份证 string nNumber;//工号 string nEnTime;//入职时间 string nPosition;//职位 int main() { CCompany Future; int s; int ChangeInformation(int s, CStaff & staff); cout << "请输入姓名: "; cin >> nName; cout << "请输入年龄: "; cin >> nAge; cout << "请输入性别: "; cin >> nGender; cout << "请输入身份证号: "; cin >> nID; cout << "请输入工号: "; cin >> nNumber; cout << "请输入入职时间: "; cin >> nEnTime; cout << "请输入职位:"; cin >> nPosition; cout << endl; CStaff* staff = new CStaff();//指针 //CStaff staff(nName, nAge, nGender, nID, nNumber, nEnTime, nPosition);//用对象 staff->SetAllinformation(nName, nAge, nGender, nID, nNumber, nEnTime, nPosition); cout << "该员工信息为:" << endl; staff->ShowInformation(); cout << endl; cout << "如需修改信息请输入:1,退出输入:0" << endl; cin >> s; if (s) { ChangeInformation(s, *staff); cout << endl; cout << "修改后的信息为:" << endl; staff->ShowInformation(); } delete staff; return 0; } int ChangeInformation(int s, CStaff& staff) { if (s) { cout << "修改:" << endl << "1.姓名" << endl << "2.年龄" << endl << "3.性别" << endl << "4.身份证" << endl << "5.工号" << endl << "6.入职时间" << endl << "7.职位" << endl; int t; cin >> t; cout << "请输入:"; switch (t) { case 1:cin >> nName; staff.SetName(nName); break; case 2:cin >> nAge; staff.SetAge(nAge); break; case 3:cin >> nGender; staff.SetGender(nGender); break; case 4:cin >> nID; staff.SetID(nID); break; case 5:cin >> nNumber; staff.SetNumber(nNumber); break; case 6:cin >> nEnTime; staff.SetTime(nEnTime); break; case 7:cin >> nPosition; staff.SetPosition(nPosition); break; default:printf("errorn"); break; } } else { return 0; } }
个人能力有限,仅供参考,共同学习!



