3-44
一个名为 CPerson 的类有如下属性:姓名、身份证号、性别和年龄,请用 C++语言定义 这个类,并为上述属性定义相应的方法。
#include
{
private:
char Name[10]; char ID[20]; char Sex[4]; int Age; public:
CPerson(char *na,char *id,char *se,int ag); void Show(); };
CPerson::CPerson(char *na,char *id,char *se,int ag)
{
strcpy(Name,na);
strcpy(ID,id); strcpy(Sex,se); Age=ag;
}
void CPerson::Show()
{
cout<<\姓名:\身份证:\cout<<\性别:\年龄:\
}
void main()
{
CPerson person(\王三\男 \
}
3-45 设计一个日期类 Date,该类用于表示日期值(年、月、日)。要求除了能够通过相应 得成
员函数设置和获取日期外,还能够实现将日期加一天的操作。
#include
int year; int month;
int day; bool flag; public:
date() {
year=0; month=0; day=0; }
date(int yr,int mo,int da); void setdate(); int getyear(); int getmonth(); int getday(); void addday(); void show(); };
date::date(int yr,int mo,int da)
{
flag=false; if(mo>=1&&mo<=12&&da>=1&&da<=31) {
year=yr; month=mo; day=da;
} else {
flag=true;
}
}
void date::setdate()
{
cout<<\请输入年分\
cout<<\请输入月份(1-12)\while(month<1||month>12) {
cout<<\输入有误,请重新输入月份 (1-12)\} cout<<\请输入日期(1-31)\cin>>day;
while(day<1||day>31) {
cout<<\输入有误,请重新输入日期 (1-31)\} flag=false;
}
void date::show()
{
if(!flag) cout< else cout<<\日期设置有误,不能输出\ } int date::getyear() { return year; } int date::getmonth() { return month; } int date::getday() { return day; } void date::addday() { day++; if(month==2)//判断是否是二月 { bool leapyear; leapyear=((year%4==0&&year0!=0)||(year@0==0));// 定义闰年 if(leapyear) { if(day>29)//若是闰年的二月当 Day 大于 29 时,Day=1,Mon 增加一个 day=1; month++; } } else { if(day>28)//若不是闰年的二月当 Day 大于 28 时,Day=1,Mon 增加一 个月 { day=1; month++; } } } else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if(day>31)//若不是二月月大时,Day=1,Mon 增加一个月 { day=1; month++; } } else { day=1; month++; if(day>30)//若不是二月月小时,Day=1,Mon 增加一个月 { }} if(month>12)//若月大于 12 则 Mon=1,Year 增加一年 { month=1; year++; }} void main() { date d1(1999,5,30); d1.show(); d1.setdate(); d1.show(); cout<<\日期增加一天后为:\d1.addday(); d1.show(); } 3-46 #include { private: double X; double Y; double length; double width; public: CRectangle(double s, double e, double l, double w) { X=s; Y=e; length=l; width=w; } ~CRectangle(){} void Move(double , double); void Size(double ,double); void Where(); void Area(); }; void CRectangle::Move(double x, double y) { cout<<\矩形按向量(\移动\现在矩形左上角所在的位置:\ } void CRectangle::Size(double cl, double cw) { cout<<\要更改的长和宽:\length=cl; width=cw; cout< void CRectangle::Where() { cout<<\现在矩形左上角所在的位置:\ } void CRectangle::Area() { double area; area=length*width; cout< } int main() { CRectangle cr(2,3,5,4); cr.Where(); cr.Area(); cr.Move(1,2); cr.Size(2,3); return 0; } 3-47 #include {