題目內容:設計一個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;
}