实验二ClassesADeeperLookPart2_第1页
实验二ClassesADeeperLookPart2_第2页
实验二ClassesADeeperLookPart2_第3页
实验二ClassesADeeperLookPart2_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二: Classes: A Deeper Look, Part 2实验目的1掌握类的定义和操作(包括常成员函数)2掌握对常量对象的访问3掌握使用友元访问对象的私有数据成员4掌握静态数据成员和成员函数实验作业作业一(习题 10.7,Date 类)1. 问题描述( 英文 ) Modify class Date in Fig.10.10 to have the followingcapabilities:a.Output the date in multiple formats such asb.DDD YYYYc.MM/DD/YYd.June 14, 1992e.Use overloaded

2、constructorsto createDate objectsinitializeddates of the formats in part (a).withf. Create a Date constructor that reads the system date using thestandard library functions of the <ctime> header and sets the Date members.(中文 )用下列条件生成Date 类:a)用多种格式输出日期,例如:DDD YYYY (YYYY 年的第 DDD 天) MM/DD/YYJunel

3、 4,l 992b)用重载的构造函数生成Date 对象,用a)中的日期格式初始化。c)生成一个 Date 构造函数,用 <ctime>头文件的标准库函数读取系统日期和设置 Date 成员。d) 测试各个成员函数2. 实验提示1)类定义示例:#ifndef DATE_H#define DATE_H#include <string>using std:string;class Datepublic:Date(); / default constructor uses <ctime> functions to set date Date( int, int );

4、/ constructor using ddd yyyy formatDate( int, int, int ); / constructor using dd/mm/yy formatDate( string, int, int ); / constructor using Month dd, yyyy formatvoid setDay( int ); / set the dayvoid setMonth( int ); / set the monthvoid print() const; / print date in month/day/year format void printDD

5、DYYYY() const; / print date in ddd yyyy format void printMMDDYY() const; / print date in mm/dd/yy formatvoid printMonthDDYYYY() const; / print date in Month dd, yyyy format Date(); / provided to confirm destruction orderprivate:int month; / 1-12 (January-December)int day; / 1-31 based on monthint ye

6、ar; / any year;#endif2) 使用 <ctime>头文件读取系统日期示例(要求自学该内容):#include <ctime>using std:time;using std:localtime;using std:tm;using std:time_t;Date:Date()struct tm *ptr;time_t t = time( 0 );ptr = localtime( &t );day = ptr->tm_mday;month = 1 + ptr->tm_mon;year = ptr->tm_year + 1900;

7、3)测试函数要求测试出各种情况。4. 结果示例作业二(习题 10.8,SavingAccount类)1. 问题描述2. 类定义参考#ifndef SAVINGS_ACCOUNT_H #define SAVINGS_ACCOUNT_H class SavingsAccountpublic:/ constructor sets balance to value greater than or equal to zero SavingsAccount( double b )savingsBalance = ( b >= 0.0 ? b : 0.0 ); / end SavingsAccount

8、 constructorvoid calculateMonthlyInterest(); / calculate interest; add to balance static void modifyInterestRate( double );void printBalance() const;private:double savingsBalance; / the account balancestatic double annualInterestRate; / the interest rate of all accounts; / end class SavingsAccount#e

9、ndif3. 结果输出示例作业三(习题 10.9,IntegerSet 类)1问题描述2 类定义参考#ifndef INTEGER_SET_H#define INTEGER_SET_Hclass IntegerSetpublic:/ default constructor IntegerSet()emptySet(); / set all elements of set to 0 / end IntegerSet constructorIntegerSet( int , int ); / constructor that takes an initial setIntegerSet union

10、OfSets( const IntegerSet& );IntegerSet intersectionOfSets( const IntegerSet& );void emptySet(); / set all elements of set to 0void inputSet(); / read values from uservoid insertElement( int );void deleteElement( int );void printSet() const;bool isEqualTo( const IntegerSet& ) const;privat

11、e:int set 101 ; / range of 0 - 100/ determines a valid entry to the set int validEntry( int x ) constreturn ( x >= 0 && x <= 100 ); / end function validEntry; / end class IntegerSet#endif3结果输出示例作业四(习题 10.10, Time 类)1问题描述图 10.1810.19 的 Time 类可以在内部将时间表示为从午夜算起的秒数而不是三个整数值 hour, minute 和 se

12、cond。客户可以用相同的 public 方法并取得相同结果。修改 Time 类、将时间表示为从午夜算起的秒数,让类的客户看不到功能性的变化。2 类定义参考#ifndef TIME_H #define TIME_H class Timepublic:Time( int = 0, int = 0, int = 0 ); / default constructor/ set functions (the Time & return types enable cascading) Time &setTime( int, int, int ); / set hour, minute,

13、second Time &setHour( int ); / set hourTime &setMinute( int ); / set minute Time &setSecond( int ); / set second/ get functions (normally declared const)int getHour() const; / return hourint getMinute() const; / return minuteint getSecond() const; / return second/ print functions (normal

14、ly declared const)void printUniversal() const; / print universal timevoid printStandard() const; / print standard timeprivate:int totalSeconds; / number of seconds since midnight; / end class Time#endif3. 测试函数示例 int main()Time t;t.setHour( 18 ).setMinute( 30 ).setSecond( 22 );/ output time in universal and standard formats cout << "Universal time: " t.pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论