2021年面向对象A面向对象习题

上传人:c**** 文档编号:208464902 上传时间:2021-11-07 格式:PDF 页数:29 大小:104.60KB
返回 下载 相关 举报
2021年面向对象A面向对象习题_第1页
第1页 / 共29页
2021年面向对象A面向对象习题_第2页
第2页 / 共29页
2021年面向对象A面向对象习题_第3页
第3页 / 共29页
2021年面向对象A面向对象习题_第4页
第4页 / 共29页
2021年面向对象A面向对象习题_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《2021年面向对象A面向对象习题》由会员分享,可在线阅读,更多相关《2021年面向对象A面向对象习题(29页珍藏版)》请在金锄头文库上搜索。

1、学习必备欢迎下载第 8 章习题:8-1、设计 Date类,输出合法日期。#include using namespace std; /类定义 / class Date int year; /存储日期的年份int month;/存储日期的月份int day;/存储日期的天数public: bool setDate(const int,const int,const int); void display(void); char * getMonth(const int); ; /类的实现 / /设置成员变量 / /mm:月份,dd:天数,yy:年份/ /返回值:如果成功赋值则返回true,否则返回

2、 false。/ char* Date:getMonth(const int m ) if(m=1) return January; else if(m=2) return February; else if(m=3) return March; else if(m=4) return April; else if(m=5) return May; else if(m=6) return June; else if(m=7) return July; else if(m=8) return August; else if(m=9) 精品学习资料 可选择p d f - - - - - - - -

3、 - - - - - - 第 1 页,共 29 页 - - - - - - - - -学习必备欢迎下载return September; else if(m=10) return October; else if(m=11) return November; else return December; /设置成员变量 / /参数: mm:月份 ,dd:天数 ,yy:年份 / /返回值:如果成功赋值则返回true,否则返回 false/ bool Date:setDate(const int mm,const int dd,const int yy) if(mm12) return false;

4、 if(dd31) return false; year=yy; month=mm; day=dd; return true; /在屏幕上显示日期 / void Date:display(void) / 按照12-25-2004的形式输出日期coutmonth-day-yearn; / 按照December 25,2004的形式输出日期coutgetMonth(month) day, yearn; / 按照25 December 2004的形式输出日期coutday getMonth(month) yearn; void main(void) Date myDate;/存储日期while(tr

5、ue) int year;/临时存储年份int month;/临时存储月份int day;/临时存储天数coutyear; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 29 页 - - - - - - - - -学习必备欢迎下载coutmonth; coutday; if(myDate.setDate(month,day,year) break; else cout日期输入错误 ,请重新输入 !endl; cout您输入的日期是 :n; myDate.display(); 8-2、设计一个人口类 Population,存储某年的人数、

6、 出生的人数和死亡人数,其函数成员能返回出生率和死亡率。#include using namespace std; /类定义 / class Population int pnum; /存储某年的人数int birthnum;/存储出生的人数int deadnum;/存储死亡的人数public: bool setData(const int,const int,const int); float birthrate()return birthnum/float(pnum); float deadrate()return deadnum/float(pnum); int getpnum()ret

7、urn pnum; int getbirthnum()return birthnum; int getdeadnum()return deadnum; ; /返回值:如果成功赋值则返回true,否则返回 false/ bool Population:setData(const int p,const int b,const int d) if(pp|bp|d0) return false; pnum=p; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 29 页 - - - - - - - - -学习必备欢迎下载birthnum=b; d

8、eadnum=d; return true; void main(void) Population people; int pn,bn,dn; while(true) coutpn; coutbn; coutdn; if(people.setData(pn,bn,dn) break; else cout输入错误 ,请重新输入 !endl; cout出生率是 : people.birthrate()endl; cout死亡率是 : people.deadrate()endl; 8-3、设计一个类,具有一个float 指针成员,且函数成员如下:1)构造函数具有一个整型参数count,为指针成员分配

9、count个元素空间;2)析构函数释放该空间;3)向指针指向的空间存储数据的函数;4)返回空间中这些数的平均值的函数。#include #include using namespace std; class DataArray int length; /存储数组元素个数float *fltData;/ 存储数据public: 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,共 29 页 - - - - - - - - -学习必备欢迎下载DataArray(int =1); /构造函数DataArray();/析构函数bool setData(

10、const float,const int); /设置成员变量float getAverage(void); /计算并返回平均值; /构造函数 / /count:希望创建的动态数组元素个数。/ DataArray:DataArray(int count) cout调用构造函数 .0) length=count; fltData=new floatlength; else length=1; fltData=new floatlength; for(int i=0;ilength;i+) fltDatai=0; /析构函数 / DataArray:DataArray() cout调用析构函数 .

11、length) return false; else fltDatasubscript=tData; return true; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 29 页 - - - - - - - - -学习必备欢迎下载/计算并返回平均值 / /返回值:返回数组所存储的数据的平均值。/ float DataArray:getAverage(void) float sum=0; for(int i=0;ilength;i+) sum+=fltDatai; return(sum/length); void main(void)

12、 /对 DataArray 类进行测试cout创建 DataArray 对象并初始化 .endl; DataArray Obj(3); cout给 DataArray 对象赋值: endl; for(int i=0;i3;i+) / 产生一个随机数float temp=(float)rand()/10; Obj.setData(temp,i); cout第(i+1) 个值为: tempendl; cout平均值为: Obj.getAverage()endl; 8-4、设计一个薪水类 Payroll,数据成员包括单位小时工资、 已经工作的小时数、本周应付工资数。在主函数定义一个具有10 个元素的

13、对象数组( 10 个雇员) ,询问每个雇员本周已经工作的小时数,然后显示应得的工资。输入有效性检验:每周工作的小时数不能大于60,也不能为负数。#include #include using namespace std; /薪水类声明 / class Payroll float pay_per_hour;/存储每小时的工钱float hours;/存储雇员工作时间float total_pay;/存储雇员应得工资public: Payroll(const float =0); /构造函数精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 29

14、 页 - - - - - - - - -学习必备欢迎下载bool setHours(const float);/设置工作时间float getPayment(void); /获取应得工资; /构造函数 / /hour:雇员工作时间。 / Payroll:Payroll(const float hour) pay_per_hour=5.0f; hours=0; total_pay=0; /设置工作时间 / /hour:雇员工作时间 / /返回值:如果变量赋值成功则返回true,否则返回 false。/ bool Payroll:setHours(const float hour) /判断工作时间

15、是否介于0 至 60之间if(hour=0 & hour=60) hours=hour; total_pay=pay_per_hour * hours; return true; else return false; /获取应得工资 / /返回值:返回计算得到的雇员应得的工资/ float Payroll:getPayment(void) return total_pay; void main(void) Payroll employee10;/雇员对象数组/对 10 个雇员对象进行赋值for(int i=0;i10;i+) float tHour; cout请输入第 setw(2)(i+1)

16、tHour; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 29 页 - - - - - - - - -学习必备欢迎下载if(employeei.setHours(tHour) break; else cout您输入的数据不正确,请重新输入!endl; /显示每个雇员应得的工资for(i=0;i10;i+) cout第setw(2)(i+1) 个雇员应得工资 setiosflags(ios:fixed)setprecision(2) employeei.getPayment()元endl; 8-5、设计 InvoiceItem 类和商品销售类,完成如下功能:1)询问客户购买的商品名称和数量;2)从 InvoiceItem 对象获得每个商品的成本价;3)在成本价基础上加上30利润,得到每个商品的单价;4)将商品单价与购买数量相乘,得到商品小计;5)将商品小计乘以6,得到商品的零售税;6)将商品小计加上零售税得到该商品的销售额;7)显示客户本次交易购买商品的小计、零售税和销售额。有效性检验:商品数量不能为负数。#include us

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号