第十四次

 目录

1. 课本上P.222~224  4.定义并实现地址类Address,包括姓名、所居住的街道地址、城市和邮编等变量以及改变对象姓名的Changename函数、显示地址信息的Display函数。并使用主函数定义其对象来完成测试。

2. 课本上P.222~224  8.定义并实现一个公民类Citizen,该类包括的特征信息有:身份证号id、姓名name、性别gende、年龄age、籍贯birthplace、家庭住址familyAddress等属性以及构造函数、输入公民信息函数input以及输出公民信息函数output,要求能够对该类对象进行初始化、输入和输出操作。

3. 课本上P.222~224  9.定义并实现Time类,包括设置时间、进行时间的加减、按照各种可能的格式输出时间,要求设计多个重载的构造函数。


1. 课本上P.222~224  4.定义并实现地址类Address,包括姓名、所居住的街道地址、城市和邮编等变量以及改变对象姓名的Changename函数、显示地址信息的Display函数。并使用主函数定义其对象来完成测试。

 

#include<iostream>
#include<cstring>
using namespace std;
//1.课本上P.222~224
//定义并实现地址类Address,包括姓名、所居住的街道地址、城市和邮编等变量以及改变对象姓名的Changename函数
//显示地址信息的Display函数。并使用主函数定义其对象来完成测试。
class Address
{
	private:
		char name[20];
		char place[30];
		char city[20];
		char postcode[10];
	public:
		Address()
		{
			strcpy(name,"XXX");//这种char*赋值只能用strcpy 
			strcpy(place,"XXX");
			strcpy(city,"XXX");
			strcpy(postcode,"000");
		}
		void display()
		{
			cout<<name<<endl;
			cout<<place<<endl;
			cout<<city<<endl;
			cout<<postcode<<endl;
		}
		void changename(char*NewName)
		{
			strcpy(name,NewName);
		}
		void set(char* N,char*Pl,char*C,char*Po)
		{
			strcpy(name,N);
			strcpy(place,Pl);
			strcpy(city,C);
			strcpy(postcode,Po);
		}
};
int main()
{
	Address p1;
	p1.set("王刚","安庆","安徽","123456");
	p1.display();
	cout<<"改名后"<<endl;
	p1.changename("王强");
	p1.display();
	 
}

2. 课本上P.222~224  8.定义并实现一个公民类Citizen,该类包括的特征信息有:身份证号id、姓名name、性别gende、年龄age、籍贯birthplace、家庭住址familyAddress等属性以及构造函数、输入公民信息函数input以及输出公民信息函数output,要求能够对该类对象进行初始化、输入和输出操作。

 

#include<iostream>
#include<cstring>
using namespace std;
//2.课本上P.222~224 8.定义并实现一个公民类Citizen,
//该类包括的特征信息有:身份证号id、姓名name、性别gende、年龄age、籍贯birthplace、家庭住址familyAddress等属性
//以及构造函数、输入公民信息函数input以及输出公民信息函数output
//要求能够对该类对象进行初始化、输入和输出操作。
//有构造函数就可以在定义对象的时候进行初始化操作 
class Citizen
{
	private:
		char id[20];
		char name[10];
		char gende[5];
		int age;
		char birthplace[10];
		char familyAddress[10];
	public:
		Citizen()
		{
			strcpy(id,"000");
			strcpy(name,"XXX");
			strcpy(gende,"X");
			age=999;
			strcpy(birthplace,"XXX");
			strcpy(familyAddress,"XXX");
		}
		void input(char*I,char*N,char*G,int A,char*B,char*F)
		{
			strcpy(id,I);
			strcpy(name,N);
			strcpy(gende,G);
			strcpy(birthplace,B);
			strcpy(familyAddress,F);
			age=A;
		}
		void output()
		{
			cout<<"name:"<<name<<endl;
			cout<<"id:"<<id<<endl;
			cout<<"gende:"<<gende<<endl;
			cout<<"age:"<<age<<endl;
			cout<<"birthplace:"<<birthplace<<endl;
			cout<<"familyAddress:"<<familyAddress<<endl;
		}
		
 };
 int main()
 {
 	Citizen person;
 	person.output();
 	person.input("123456","小兰","女",18,"安徽","陕西西安");
	person.output();
	return 0; 
 }

3. 课本上P.222~224  9.定义并实现Time类,包括设置时间、进行时间的加减、按照各种可能的格式输出时间,要求设计多个重载的构造函数。

#include<iostream>
#include<cstring>
//3.课本上P.222~224? 9.定义并实现Time类
//包括设置时间、进行时间的加减、按照各种可能的格式输出时间
//时间的加减是是加上另外一个对象 
//要求设计多个重载的构造函数。
using namespace std;
class Time
{
	private:
	int hour,minute,second;
	public:
	Time():hour(0),minute(0),second(0){}
	Time(int h,int m,int s){
		hour=(h>=0&&h<=23)?h:0;
		minute=(m>=0&&m<60)?m:0;
		second=(s>=0&&s<60)?s:0;		
	}
	void set(int h,int m,int s)
	{
		hour=(h>=0&&h<=23)?h:0;
		minute=(m>=0&&m<60)?m:0;
		second=(s>=0&&s<60)?s:0;
	}
	void show_hms()
	{
		cout<<hour<<'-'<<minute<<'-'<<second<<endl;
	}
	void show_hm()
	{
		cout<<hour<<'-'<<minute<<endl;
	}
	Time operator + (Time x)
	{
		Time temp;//对于时间,有进位的 
		temp.second=second+x.second;
		temp.minute=minute+x.minute;
		temp.hour=hour+x.hour;
		if(temp.second>=60)
		{
			temp.second-=60;
			temp.minute+=1;
		}
		if(temp.minute >=60)
		{
			temp.minute-=60;
			temp.hour+=1;
		}
		if(temp.hour>=24)
		{
			temp.hour=0;
		}
	return temp;	
	}
	
};
int main()
{
	Time t1(12,55,40);
	t1.show_hms();
	Time t2;
	t2.show_hms();
	t2.set(5,6,30);
	t2.show_hms();
	Time t3;
	t3=t1+t2;
	t3.show_hms();
	return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值