C++编程问题我们的上机实验

来源:百度知道 编辑:UC知道 时间:2024/09/23 12:08:31
1. 实验目的
(1) 学习使用数组数据对象。
(2) 学习字符串数据的组织和处理。
(3) 掌握指针的使用方法。
(4) 联系通过Debug观察指针及所指对象的内容。
(5) 学习通过动态内存分配实现动态数组。
2. 实验任务
(3) 声明一个People类,属性有:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday为日期类内嵌对象、身份证号id[19]。,要求包括:构造函数、拷贝构造函数、析构函数、内联成员函数、类的聚集。在main()中声明People类的对象数组,录入数据并显示。
(3) 在People.h头文件中声明Date类有整型数据成员Y、M、D,构造函数有默认初始值,实现对Y、M、D的初始化。声明People类,具有数据成员姓名、编号、性别、生日、身份证号。构造函数、拷贝构造函数、实现数据成员的初始化(strcpy函数实现字符串拷贝)。析构函数定义为内联成员函数,显示“析构一个对象”。SetData成员函数(函数体写在类外)对数据成员进行修改。Display对数据成员进行显示。
(4) 在main()中声明People类的对象数组p[3],使用循环语句接收每个数组元素的成员值。用SetData成员函数对p[2]的成员改值。再用循环语句逐个显示数组元素的各成员值。

#include <iostream>
#include <string.h>
using namespace std;

class Date
{
int year;
int month;
int day;
public:
Date() { year=2008; month=1; day=1;}
Date(const Date& d) { year = d.year;month = d.month;day=d.day;}
void set(int y=2008,int m=1,int d=1) { year = y; month = m; day = d;}
};

class People
{
char name[11];//姓名
char number[7];//编号
char sex[3];//性别
Date birthday;//生日
char id[19];//身份证号
public:
People();
People(const People&);
void SetData();
void Display();
~People();
};
People::People()
{
SetDate();
}

People::People(const People& p):birthday(p.birthday)
{
strcpy(id, p.id);
strcpy(name,p.name);
strcpy(number,p.number);
strcpy(sex,p.sex);
}

void People::SetData()
{
cout<<"姓名:\n";
char temp[20];