程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++數據的抽象與封裝:類與對象(1)

C++數據的抽象與封裝:類與對象(1)

編輯:關於C++
題目內容:設計一個Person類,包含name、age、sex屬性以及對這些屬性操作的方法。實現並測試這個類。//根據類的封裝性要求,把name、age、sex聲明為私有的數據成員,聲明公有的成員函數Register()。
//1設計Person類(20分)
//題目內容:
//設計一個Person類,包含name、age、sex屬性以及對這些屬性操作的方法。實現並測試這個類。
//根據類的封裝性要求,把name、age、sex聲明為私有的數據成員,聲明公有的成員函數Register()、ShowMe()來訪問這些屬性,在Register()函數中對數據成員進行初始化。person1通過cin來得到信息,person2通過Register("Zhang3",
//19, 'm') 來得到信息。
//
//輸入格式 :
//person1的信息
//
//輸出格式:
//person1和person2的信息
//
//輸入樣例:
//Li4 18 f
//
//輸出樣例:
//Li4 18 f
//Zhang3 19 m

#include
#include "string.h"
using namespace std;

class person
{
private:
	char name[5];
	int age;
	char sex;
public:
	void Register(char* _name, int _age, char _sex);
	void ShowME();
};

void person::Register(char* _name, int _age, char _sex)
{
	strcpy(name, _name);
	age = _age;
	sex = _sex;
}

void person::ShowME()
{
	cout << name << " " << age << " " << sex << endl;
}
int main()
{
	person person1, person2;
	person2.Register("Zhang3", 19, 'm');
	char name[5];
	int age;
	char sex;
	cin >> name >> age >> sex;
	person1.Register(name, age, sex);
	person1.ShowME();
	person2.ShowME();
	system("pause");
	return 0;
}

//2設計Dog類(20分)
//題目內容:
//設計一個Dog類,包含name、age、sex和weight等屬性以及對這些屬性操作的方法。實現並測試這個類。
//根據類的封裝性要求,把name、age、sex和weight聲明為私有的數據成員,編寫公有成員函數setdata()對數據進行初始化,GetName()、GetAge()、GetSex()和GetWeight()獲取相應屬性。初始化數據由用戶輸入。
//
//輸入格式 :
//Dog類對象的初始化數據
//
//輸出格式:
//根據Dog類對象的初始化數據輸出一句話,請嚴格按照格式輸出,句末有點號。
//
//輸入樣例:
//ahuang 3 m 2.4
//
//輸出樣例:
//It is my dog.
//Its name is ahuang.
//It is 3 years old.
//It is male.
//It is 2.4 kg.
#include 
#include "string.h"
using namespace std;
class Dog
{
public:
	Dog();
	~Dog();
	void setdata(char* name, int age,char sex,float weight);
	void GetName();
	void GetAge();
	void GetSex();
	void GetWeight();
private:
	char name[20];
	int age;
	char sex;
	float weight;
};

Dog::Dog()
{
}

Dog::~Dog()
{
}

void Dog::setdata(char* _name, int _age, char _sex, float _weight)
{
	strcpy(name, _name);
	age = _age;
	sex = _sex;
	weight = _weight;
}

void Dog::GetAge()
{
	cout << "It is " << age << " years old" <<"." <> _name >> _age >> _sex >> _weight;
	dog.setdata( _name, _age,  _sex, _weight);
	cout << "It is my dog." << endl;
	dog.GetName();
	dog.GetAge();
	dog.GetSex();
	dog.GetWeight();
	system("pause");
	return 0;
}

//3設計並測試Trapezium類(20分)
//題目內容:
//設計並測試一個名為Trapezium的梯形類,其屬性為梯形的四個頂點的坐標。該梯形上邊和下邊均和x軸平行。
//根據類的封裝性要求,在類的聲明中用8個私有的整型變量表示4個點的坐標值,聲明成員函數initial(int, int, int, int, int, int, int, int)初始化數據成員,函數GetPosition(int&, int&, int&, int&, int&, int&, int&, int&)讀取坐標值,函數Area()計算面積。
//
//輸入格式 :
//梯形四個頂點的坐標,
//
//輸出格式:
//梯形的面積,依次為左上(x1, y1)、右上(x2, y2)、左下(x3, y3)和右下(x4, y4)角的頂點。
//
//輸入樣例:
//3 2 5 2 1 - 4 7 - 4
//
//輸出樣例:
//24
#include 
using namespace std;
class Trapezium
{
public:
	Trapezium();
	~Trapezium();
	void initial(int, int, int, int, int, int, int, int);
	void GetPosition(int&, int&, int&, int&, int&, int&, int&, int&);
	void Area();
private:
	int xul, yul, xur, yur, xdl, ydl, xdr, ydr;
};

void Trapezium::initial(int _xul, int _yul, int _xur, int _yur, int _xdl, int _ydl, int _xdr, int _ydr)
{
	xul = _xul;
	yul = _yul;
	xur = _xur;
	yur = _yur;
	xdl = _xdl;
	ydl = _ydl;
	xdr = _xdr;
	ydr = _ydr;
}

void Trapezium::GetPosition(int& a, int& b, int& c , int& d , int& e , int& f , int& g , int& h)
{
	cout << a << " " << b << " " << c << " " << d << " " << e << " " << f << " " << g << " " << h << endl;
}

void Trapezium::Area()
{
	float s;
	s = (xur - xul + xdr - xdl)*(yur - ydr) / 2;
	cout << s << endl;
}
Trapezium::Trapezium()
{
}

Trapezium::~Trapezium()
{
}

int main()
{
	int _xul, _yul, _xur, _yur, _xdl, _ydl, _xdr, _ydr;
	cin >> _xul>> _yul>> _xur>>_yur>>_xdl>> _ydl>> _xdr>> _ydr;
	Trapezium T1;
	T1.initial(_xul, _yul, _xur, _yur, _xdl, _ydl, _xdr, _ydr);
	T1.Area();
	system("pause");
	return 0;
}

//設計MyTime類(20分)
//題目內容:
//設計一個MyTime類,成員函數SetTime()設置時間,print_12()以12(0 - 11)小時制顯示時間(AM上午,PM下午),print_24()以24(0 - 23)小時制顯示時間。
//
//輸入格式 :
//所需設置時間的時、分、秒
//
//輸出格式:
//按照12小時制和24小時制依次顯示時間, 注意時間格式中的冒號是英文冒號, 時分秒都是兩位,AM, PM前有一個空格,晚上12 : 00是00 : 00 : 00 AM,中午十二點是00 : 00 : 00 PM。
//
//輸入樣例:
//13 23 34
//
//輸出樣例:
//01:23 : 34 PM
//13 : 23 : 34
#include 
using namespace  std;

class Mytime
{
public:
	Mytime();
	~Mytime();
	void SetTime(int _h,int _m,int _s);
	void print12();
	void print24();
private:
	int h, m, s;
};

void Mytime::SetTime(int _h, int _m, int _s)
{
	h = _h; m = _m; s = _s;
}

void Mytime::print12()
{
	int h_temp;
	(h - 12) > 0 ? h_temp = h - 12 : h_temp = h;
	if (h_temp<10)
	{
		cout << '0';
	}
	cout << h_temp << ':';
	if (m<10)
	{
		cout << '0';
	}
	cout << m << ':';
	if (s<10)
	{
		cout << '0';
	}
	cout << s << ' ';
	if ((h - 12>0) || ((h==12)&&((m!=0)||(s!=0))))
	{
		cout << "PM" << endl;
	}
	else  
	{
		cout << "AM" << endl;
	}
}

void Mytime::print24()
{
	if (h < 10)
	{
		cout << '0';
	}
	cout << h << ':';
	if (m < 10)
	{
		cout << '0';
	}
	cout << m << ':';
	if (s < 10)
	{
		cout << '0';
	}
	cout << s;
	cout << endl;
}

Mytime::Mytime()
{
}

Mytime::~Mytime()
{
}

int main()
{
	Mytime time1;
	int _h, _m, _s;
	cin >> _h >> _m >> _s;
	time1.SetTime(_h, _m, _s);
	time1.print12();
	time1.print24();
	system("pause");
	return 0;

}

//5設計Weekday類(20分)
//題目內容:
//設計一個Weekday類,成員函數SetDay()設置星期幾,IncDay()前進一天,NowDay()打印當前是星期幾。
//
//輸入格式 :
//用戶輸入一個數字,0表示星期日,1表示星期一,類推,6表示星期六,用該數字初始化Weekday類
//
//輸出格式:
//使用中文打印出從當日起連續3天是星期幾(不夠三天時,循環)
//
//輸入樣例:
//0
//
//輸出樣例:
//星期日
//星期一
//星期二
#include 
using namespace std;
class Weekday
{

public:
	Weekday();
	~Weekday();
	void SetDay(int _today);
	void IncDay();
	void NowDay();
private:
	int today;
};

void Weekday::NowDay()
{
	switch (today)
	{
	case 0:
	{
			  cout << "星期日" << endl;
			  break;
	}
	case 1:
	{
			  cout << "星期一" << endl;
			  break;
	}
	case 2:
	{
			  cout << "星期二" << endl;
			  break;
	}
	case 3:
	{
			  cout << "星期三" << endl;
			  break;
	}
	case 4:
	{
			  cout << "星期四" << endl;
			  break;
	}
	case 5:
	{
			  cout << "星期五" << endl;
			  break;
	}
	case 6:
	{
			  cout << "星期六" << endl;
			  break;
	}
	default:
		break;
	}
}
void Weekday::SetDay(int _today)
{
	today = _today;
}
void Weekday::IncDay()
{
	today = (today + 1) % 7;
}

Weekday::Weekday()
{
}

Weekday::~Weekday()
{
}


int main()
{
	int _today;
	Weekday data1;
	cin >> _today;
	data1.SetDay(_today);
	data1.NowDay();
	data1.IncDay();
	data1.NowDay();
	data1.IncDay();
	data1.NowDay();
	system("pause");
	return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved