没有合适的资源?快使用搜索试试~ 我知道了~
西安交大c 程序设计第八章作业.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 87 浏览量
2022-06-17
17:11:59
上传
评论
收藏 1.06MB DOC 举报
温馨提示
试读
46页
西安交大c 程序设计第八章作业
资源推荐
资源详情
资源评论
西安交通大学实验报告
课程__计算机程序设计__实验名称_类与对象 _ _ _第 1 页 共 47 页
系 别_ __ __ ___ __ 实 验 日 期 2014 年 5 月 17 日
专业班级__ _ __ 组别_____________ 实 验 报 告 日 期 2014 年 5 月 18 日
姓 名__ _ _____ 学号_ _ 报 告 退 发 ( 订正 、 重做 )
同 组 人_________________________________ 教 师 审 批 签 字
一、 实验目的
掌握构造函数、析构函数的用法、类中数据对象初始化的不同
方法。
二、实验内容
(一)第一题: 设计并测试一个名为 Ellipse 的椭圆类,其属性
为其圆心坐标及半长轴和半短轴的长度。设计一个 构造函数对这
些属性进行初始化,并通过成员函数计算椭圆的面积。
1.源程序代码:
#include<iostream>
using namespace std;
class Ellipse
{
double a,b,x,y,s;
public:
Ellipse();
Ellipse(double,double,double,double);
void init(double,double,double,double);
void calculate();
void print();
};
Ellipse::Ellipse()
{
a=8;
b=5;
x=3.2;
y=9.6;
}
Ellipse::Ellipse(double m,double n,double p,double q)
{
init(m,n,p,q);
}
void Ellipse::calculate()
{
s=x*y*3.1415926;
}
void Ellipse::print()
{
cout<<"中心坐标为:("<<x<<","<<y<<")\n";
cout<<"面积为:"<<s<<endl;
}
void Ellipse::init(double m,double n,double p,double q)
{
a=m;
b=n;
x=p;
y=q;
}
int main()
{
Ellipse ellipse1,ellipse2(2.5,3.2,4.5,5.4);//依次为a,b,x,y;
cout<<"预设的是:a=8;b=5;x=3.2;y=9.6;\n";
cout<<"输入的是:ellipse1,ellipse2(2.5,3.2,4.5,5,4);\n";
double x,y,a,b;
cout<<"输入之前的值:"<<endl<<"ellipse1:\n";
ellipse1.calculate();
ellipse1.print();
cout<<"ellipse2:\n";
ellipse2.calculate();
ellipse2.print();
cout<<"请输入中心坐标:";
cin>>x>>y;
cout<<"请输入半长短轴:";
cin>>a>>b;
cout<<"写入后的结果:\n";
cout<<"ellipse2:\n";
ellipse2.init(a,b,x,y);
ellipse2.calculate();
ellipse2.print();
return 0;
}
2.实验结果:
(二)第二题: 仿照 Date 类设计一个 Time 类,设计多个重载的
构造函数,可以设置时间、进行时间的加减运算,按照可能的格式
输出时间。
1.源程序代码:
#include<iostream>
using namespace std;
class Time
{
int hour,minute,second;
public:
Time();
Time(int,int,int);
void init(int,int,int);
void plus(Time& t);//由此可以引用另一Time类中的成员
void minus(Time& t);
void print_hms();
void print_hsm();
void print_mhs();
void print_msh();
void print_shm();
void print_smh();
};
Time::Time(int h,int m,int s)
{
init(h,m,s);
}
Time::Time()
{
hour=12;
minute=0;
second=0;
}
void Time::init(int h,int m,int s)
{
second=s%60;
minute=(m+s/60)%60;
hour=(h+m/60)%24;
}
void Time::plus(Time& t)
{
hour=hour+t.hour;
minute=minute+t.minute;
second=second+t.second;
init(hour,minute,second);
}
void Time::minus(Time& t)
{
int sum=(second+60*minute+3600*hour)-
(t.second+60*t.minute+t.hour*3600);
second=sum%60;
minute=(sum/60)%60;
hour=(sum/3600)%24;
init(hour,minute,second);
}
void Time::print_hms()
{
cout<<hour<<"-"<<minute<<"-"<<second<<endl;
}
void Time::print_hsm()
{
cout<<hour<<"-"<<second<<"-"<<minute<<endl;
}
void Time::print_mhs()
{
cout<<minute<<"-"<<hour<<"-"<<second<<endl;
}
void Time::print_msh()
{
cout<<minute<<"-"<<second<<"-"<<hour<<endl;
}
void Time::print_shm()
{
cout<<second<<"-"<<hour<<"-"<<minute<<endl;
}
void Time::print_smh()
{
cout<<second<<"-"<<minute<<"-"<<hour<<endl;
}
int main()
{
Time time1,time2(12,34,56);
int h,m,s,h2,m2,s2;
cout<<"初始按照时分秒输出:\n";
time1.print_hms();
time2.print_hms();
cout<<"请输入时间(时、分、秒):\n";
cin>>h>>m>>s;
time1.init(h,m,s);
cout<<"输入时间为:\n";
cout<<" 时分秒:";
time1.print_hms();
cout<<" 时秒分:";
time1.print_hsm();
cout<<" 分时秒:";
time1.print_mhs();
cout<<" 分秒时:";
time1.print_msh();
剩余45页未读,继续阅读
资源评论
- vziyyds2023-05-21感谢资源主分享的资源解决了我当下的问题,非常有用的资源。
老帽爬新坡
- 粉丝: 83
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功