C++作业1:单个类的设计(验证型)

题目描述

合理设计一个类,该类需要对数据成员进行合法性验证、初始化、修改、获取、输出等基本操作外,还应能完成其他一些合理的功能操作(可以自行思考设计)。并在程序合适的位置中生成该类的对象,并让所设计的功能发挥作用。可以参考以下提示,选择一个参考项或自己进行拟定一个抽象的事物进行单个类的设计。

目的

1) 巩固类的定义,成员变量、成员方法的定义;

2) 巩固类的对象的定义,对象对成员变量、成员方法的访问;

要求

在main函数定义并使用对象、指针及引用三种方法完成完成员工的信息显示,并使用拷贝构造函数。

参考设计

参考1:员工类

数据成员:姓名,年龄,性别,身份证,工号,入职时间。

成员函数:显示员工信息,修改入职时间。

程序流程图

在这里插入图片描述

参考代码

// CStaff 员工类

#pragma once
#include <string>
using 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"
#include <bits/stdc++.h>

CStaff::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 <bits/stdc++.h>
#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("error\n"); break;
		}
	}
	else {
		return 0;
	}

}

运行结果

在这里插入图片描述

说明

个人能力有限,仅供参考,共同学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无奈清风吹过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值