设计一个date类,包括年月日三个int类型数据成员,再设计一个person类 包括学号(int)、生日(date类型)、 英语(double)和数学(doub

qq_33398504 2016-01-12 05:21:13
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------

题目:设计一个date类,包括年月日三个int类型数据成员,再设计一个person类
包括学号(int)、生日(date类型)、
英语(double)和数学(double)成绩四个数据成员以及相关的函数成员,主函数已给出,
设计完成上述两个类。
输出结果见图:样张.JPG
-------------------------------------------------------*/
#include <iostream>
#include <cstring>
using namespace std;

/**********Program**********/
class date
{
int year;
int month;
int day;
public:
date(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
date();
void setdate(int y,int m,int d)
{year=y;month=m;day=d;}
int getyear(){return year;}
int getmonth(){return month;}
int getday(){return day;}
};
class person
{
int ID;
date birthday;
double english;
double math;
public:
void setperson(int num,date d,double eng,double cal)
{
ID=num;
birthday=d;
english=eng;
math=cal;
}
double avg()
{
double sum;
sum=english+math;
double ave;
ave=sum/2;
return ave;
}
void disp();
};
/********** End **********/
void person::disp()
{cout<<"学号:"<<ID<<endl;
cout<<"生日:"<<birthday.getyear()
<<"-"<<birthday.getmonth()<<'-'<<birthday.getday()<<endl;
cout<<"英语:"<<english<<endl;
cout<<"数学:"<<math<<endl;
}

void main()
{
date d(1998,3,27),d1;
person p(1001,d,89,90),p1;
d1.setdate(1992,1,1);
p1.setperson(1002,d1,98,99);
cout<<"p人员信息:"<<endl;
p.disp();
cout<<"平均成绩:"<<p.avg()<<endl;
cout<<endl;
cout<<"p1人员信息:"<<endl;
p1.disp();
cout<<"平均成绩:"<<p1.avg()<<endl;
}
Exam\52003103\BC\927\Prog1.CPP(71) : error C2661: 'person::person' : no overloaded function takes 4 parameters
执行 cl.exe 时出错.
哪里错了?
...全文
1802 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33398504 2016-01-13
  • 打赏
  • 举报
回复
引用 2 楼 paschen的回复:
看你的意思应该是要:先Person p; 然后调用p.setperson函数
可是我设置了构造函数(有参的)以后它说p2(无参的)没有构造函数,再设默认构造函数时date类不知道要怎么初始化,怎么将setperson里的数据给变量成员赋值?
qq_33398504 2016-01-13
  • 打赏
  • 举报
回复
可是我设置了构造函数(有参的)以后它说p2(无参的)没有构造函数,再设默认构造函数时date类不知道要怎么初始化,怎么将setperson里的数据给变量成员赋值?
paschen 版主 2016-01-12
  • 打赏
  • 举报
回复
person p(1001, d, 89, 90) 你person就没有匹配的构造函数
paschen 版主 2016-01-12
  • 打赏
  • 举报
回复
看你的意思应该是要:先Person p; 然后调用p.setperson函数

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧