刷题c++:类与对象(设计person类,dog类,trapzium类,mytime类,weekday类)

设计person类

题目内容
设计一个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<iostream>
using namespace std;
class person
{
private:
 string name;
 int age;
 char sex;
public:
 void Register(string n,int a,char s);
 void ShowMe()
 {
  name=n;
  age=a;
  sex=s;
 }
};
int main()
{
 person person1;
 person person2;
 string CINname;
 int CINage;
 char CINsex;
 person1.Register(CINname,CINage,CINsex);
 person1.ShowMe();
 person2.Register("Zhang3",19,'m');
 person2.ShowMe();
 return 0;
}

设计Dog类

题目内容
设计一个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<iostream>
using namespace std;
class Dog
{
 private:
  string name;
  int age;
  char sex;
  double weight;
 public:
  void setdata(string n,int a,char s,double w);
  void GetName();
  void GetAge();
  void GetSex();
  void GetWeight();
};
void Dog::setdata(string n,int a,char s,double w)
{
 name=n;
 age=a;
 sex=s;
 weight=w;
 if(s=='m')
 sex='male';
 else
 sex='female';
 } 
 void Dog::GetName()
 {
  cout<<"Its name is"<<name<<'.'<<endl;
 }
 void Dog::GetAge()
 {
  cout<<"It is"<<age<<"years old"<<'.'<<endl;
 }
 void Dog::GetSex()
 {
  cout<<"It is"<<sex<<'.'<<endl;
 }
void Dog::GetWeight()
{
 cout<<"It is"<<weight<<"kg"<<'.'<<endl;
}
int main()
{
 Dog dog1;
 string CinName;
 int CinAge;
 char CinSex;
 double CinWeight;
 cin>>CinName>>CinAge>>CinSex>>CinWeight;
 dog1.setdata(CinName,CinAge,CinSex,CinWeight);
 cout<<"It is my dog.";
 dog1.GetName();
 dog1.GetAge();
 dog1.GetSex();
 dog1.GetWeight();
 return 0;
}

设计并测试Trapezium类

题目内容:
设计并测试一个名为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<iostream>
using namespace std;
class Trapezium
{
 private:
  int x1;
  int y1;
  int x2;
  int y2;
  int x3;
  int y3;
  int x4;
  int y4;
 public:
  void initial(int Trapeziumx1,int Trapeziumy1,int Trapeziumx2,int Trapeziumy2,int Trapeziumx3,int Trapeziumy3,int Trapeziumx4,int Trapeziumy4);
  int Area();
};
void Trapezium::initial(int Trapeziumx1,int Trapeziumy1,int Trapeziumx2,int Trapeziumy2,int Trapeziumx3,int Trapeziumy3,int Trapeziumx4,int Trapeziumy4)
{
 x1=Trapeziumx1;
 y1=Trapeziumy1;
 x2=Trapeziumx2;
 y2=Trapeziumy2;
 x3=Trapeziumx3;
 y3=Trapeziumy3;
 x4=Trapeziumx4;
 y4=Trapeziumy4;
}
int Trapezium::Area()
{
 int s;
 s=(x2-x1+x4-x3)*(y2-y4)/2;
 cout<<s<<endl;
}
int main()
{
 int x1;
 int y1;
 int x2;
 int y2;
 int x3;
 int y3;
 int x4;
 int y4;
 cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
    Trapezium t;
    t.initial(x1, y1, x2, y2, x3, y3, x4, y4);
    t.Area();
 return 0;
}

设计MyTime类

题目内容:
设计一个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<iostream>
using namespace std;
class MyTime
{
 private:
  int hour;
  int minute;
  int second;
 public:
  void SetTime(int h,int m,int s);
  void print_12();
  void print_24();
};
void MyTime::SetTime(int h,int m,int s)
{
 hour=h;
 minute=m;
 second=s;
}
void MyTime::print_12()
{
 int Hour;
 hour>=12?Hour=hour-12:Hour=hour;
 if(Hour<10)
 {
  cout<<'0';
 }
 cout<<Hour<<':';
 if(minute<10)
 {
  cout<<'0';
 }
 cout<<minute<<':';
 cout<<minute<<':';
    if(second<10){
        cout<<'0';
    }
    cout<<second;
    if(hour>12||((hour==12)&&((minute>0)||(second>0)))){
        cout<<" "<<"PM"<<endl;
    }else{
        cout<<" "<<"AM"<<endl;
    }
}
void MyTime::print_24()
{
    if(hour<10){
        cout<<'0';
    }
    cout<<hour<<':';
    if(minute<10){
        cout<<'0';
    }
    cout<<minute<<':';
    if(second<10){
        cout<<'0';
    }
    cout<<second<<endl;
}
int main()
{
    int h,m,s;
    cin>>h>>m>>s;
    MyTime mt;
    mt.SetTime(h, m, s);
    mt.print_12();
    mt.print_24();
    return 0;
}

设计WeekDay类

题目内容:
设计一个Weekday类,成员函数SetDay()设置星期几,IncDay()前进一天,NowDay()打印当前是星期几。

输入格式:
用户输入一个数字,0表示星期日,1表示星期一,类推,6表示星期六,用该数字初始化Weekday类

输出格式:
使用中文打印出从当日起连续3天是星期几(不够三天时,循环)

输入样例:
0

输出样例:
星期日
星期一
星期二

#include<iostream>
using namespace std;
class WeekDay
{
 private:
  int day;
  string s[7];
 public:
  WeekDay()
  {
   s[0]="星期日";
   s[1]="星期一";
   s[2]="星期二";
   s[3]="星期三";
   s[4]="星期四";
   s[5]="星期五";
   s[6]="星期六"; 
  }
  void SetDay(int d)
  {
   day=d;
  }
  void IncDay()
  {
   day=day+1;
  }
  void NowDay()
  {
   cout<<s[day%7]<<endl;
  }
};
int main()
{
 int n;
 cin>>n;
 WeekDay w;
 w.SetDay(n);
 w.NowDay();
 w.IncDay();
 w.NowDay();
 w.IncDay();
 w.NowDay();//只在nowday输出
}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值