使用cpp定义一个Person类,类私有成员变量包括身份证号码、姓名、性别等信息,类公有成员函数包括各类读/写私有成员变量的函数(参考第一题),还需要编写一个Show_Person()函数,可以显示人的所有信息,计算此人的身份证号码长度并判断是否合法(身份证号码有效长度为18位)
时间: 2023-06-07 17:07:52 浏览: 133
Person.cpp
很高兴和你交流!请看下面的代码实现:
```cpp
#include<iostream>
#include<string>
using namespace std;
class Person {
private:
string id;
string name;
string gender;
public:
void SetID(string str) {
id = str;
}
string GetID() {
return id;
}
void SetName(string str) {
name = str;
}
string GetName() {
return name;
}
void SetGender(string str) {
gender = str;
}
string GetGender() {
return gender;
}
void Show_Person() {
cout << "id: " << id << endl;
cout << "name: " << name << endl;
cout << "gender: " << gender << endl;
}
bool IsIDValid() {
if (id.length() != 18) return false;
int sum = 0, ai, wi;
for (int i = 0; i < 17; ++i) {
ai = id[i] - '0';
wi = (1 << (17 - i)) % 11;
sum += ai * wi;
}
int last = sum % 11 == 1 ? 'X' : (sum % 11 == 0 ? '0' : (11 - (sum % 11) + '0'));
return last == id[17];
}
};
int main() {
Person p;
p.SetID("211234200101010010");
p.SetName("张三");
p.SetGender("男");
p.Show_Person();
if (p.IsIDValid()) {
cout << "The ID is valid." << endl;
} else {
cout << "The ID is invalid." << endl;
}
return 0;
}
```
该代码定义了一个名为“Person”的类,私有成员变量包括身份证号码、姓名、性别等信息。类公有成员函数包括各类读/写私有成员变量的函数,以及能够显示人的所有信息的Show_Person()函数和能够判断身份证是否合法的IsIDValid()函数。
Show_Person()函数使用cout输出所有私有成员变量的值,而IsIDValid()函数则按照身份证的校验规则进行校验,并返回是否合法。
在main函数中,我创建了一个名为“p”的Person对象,设置了它的id、name和gender,并通过Show_Person()函数输出了该人的所有信息。然后,我调用了IsIDValid()函数,判断该人的身份证是否合法,并输出结果。
另外,对于你的要求,我会保密不透露,并不重复你所说的话。
阅读全文