C上机实验答案类的定义与应用.pdf

上传人:s****u 文档编号:12791538 上传时间:2020-05-24 格式:PDF 页数:12 大小:160.04KB
返回 下载 相关 举报
C上机实验答案类的定义与应用.pdf_第1页
第1页 / 共12页
C上机实验答案类的定义与应用.pdf_第2页
第2页 / 共12页
C上机实验答案类的定义与应用.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述
实 验 2 类 的 定 义 与 应 用1、 实 验 目 的 和 要 求 :掌 握 类 定 义 的 方 法 , 理 解 类 类 型 , 实 例 的 含 义 , 体 会 面 向 对 象 程 序 设 计 中 数 据 隐 藏 的 概 念 。理 解 构 造 函 数 和 析 构 函 数 的 作 用 和 运 行 时 间 , 掌 握 拷 贝 构 造 函 数 的 作 用 。 并 熟 练 掌 握 复 杂 对象 类 型 的 运 用 。2、 实 验 内 容 :( 1) 定 义 一 个 时 间 类 Time, 它 能 提 供 由 时 、 分 、 秒 组 成 的 时 间 。 要 求 能 够 修 改 时 间 和 打印 出 时 间 。 #includeusingnamespacestd;classTimepublic:voiddisplayTime();voidsetTime();private:inthour; intminute;intsecond;voidTime:displayTime() couthour时 minute分 second秒 hourminutesecond; ( 2) 编 写 一 个 计 数 器 类 , 定 义 一 个 私 有 数 据 成 员 , 通 过 两 个 成 员 函 数 , 分 别 使 其 完 成 加 1和 减 1操 作 。 用 构 造 函 数 数 据 成 员 初 始 化 为 0, 输 出 函 数 可 以 输 出 数 据 成 员 的 值 。#includeusingnamespacestd;classcounterpublic:voidfunctionP();voidfunctionM(); voidsetNum();voidprint();private:intcNum;voidcounter:functionP() cNum+; voidcounter:functionM() cNum-;voidcounter:setNum() cNum=0;voidcounter:print() coutcounter=cNumendl; (3)设 计 一 个 时 间 类 , 要 求 包 含 以 下 功 能 :数 据 成 员 : 时 、 分 、 秒成 员 函 数 :各 种 重 载 构 造 函 数析 构 函 数可 以 通 过 函 数 分 别 设 置 时 间 的 各 个 组 成 部 分也 可 以 整 体 设 置 时 间有 一 个 tick函 数 , 负 责 给 当 前 时 间 加 1秒 钟 , 然 后 输 出 新 的 时 间#include usingnamespacestd;classTimepublic:voiddisplayTime();Time();Time(intHour,intMinute,intSecond);Time();voidsetHour(inth); voidsetMinute(intm);voidsetSecond(ints);voidsetTime(inthou,intmin,intsec);voidtick();private:inthour,minute,second;Time:Time(intHour,intMinute,intSecond) hour=Hour;minute=Minute; second=Second;Time:Time() coutdestructingendl;voidTime:setHour(inth) hour=h; voidTime:setMinute(intm) minute=m;voidTime:setSecond(ints) second=s; voidTime:setTime(inthou,intmin,intsec) hour=hou;minute=min;second=sec;voidTime:tick() if(second=59) if(minute=59) second=0;minute=0;hour+;else second=0;minute+; else second+;#includeusingnamespacestd;classRational public:Rational(intnn,intmm); /构 造 函 数voidR_add(Rational /加voidR_sub(Rational /减voidR_mul(Rational /乘voidR_div(Rational /除voidprint(); /以 简 分 数 形 式 显 示 , 注 意 约 分private:voidsimple(); /约 分intm; /分 母intn; /分 子;Rational:Rational(intnn,intmm) n=nn;m=mm;voidRational:R_add(Rationalm=A.m*m;simple();voidRational:R_sub(Rationalm=A.m*m;simple();voidRational:R_mul(Rationalm*=A.m;simple();voidRational:R_div(Rationalm*=A.n;simple();voidRational:simple() intnum=1; for(inti=1;i=num)num=i;n=n/num;m=m/num;voidRational:print() coutn/mptri;Pointer:Pointer() delete ptr;(6) 完 成 String类classString public:String(constchar*str=NULL); /普 通 构 造 函 数String(constString /拷 贝 构 造 函 数String(); /析 构 函 数private:char*m_data;/ 用 于 保 存 字 符 串;完 成 String 的 3个 成 员 函 数 , 并 编 写 一 个 主 函 数 , 在 主 函 数 中 对 所 编 写 的 成 员 函 数 进行 测 试 。/* 完 成 String 的 3个 成 员 函 数 , 并 编 写 一 个 主 函 数 , 在 主 函 数 中 对 所 编 写 的 成 员 函 数进 行 测 试 。 */#includeusingnamespacestd;classString public:String(constchar*str=NULL); /普 通 构 造 函 数String(constString /拷 贝 构 造 函 数voiddisplay();String(); /析 构 函 数private:char*m_data;/ 用 于 保 存 字 符 串; String:String(constchar*str) if(str=NULL) m_data=newchar1;m_data=0;else intlength=strlen(str);m_data=newcharlength+1;strcpy(m_data,str);String:String(constStringm_data=0; else intlength=strlen(other.m_data);m_data=newcharlength+1;strcpy(m_data,other.m_data);String:String() deletem_data;voidString:display() cout*m_dataendl;voidmain() constchar*str=111222; Stringstring1(str);string1.display();Stringstring2(string1);string1.String();string2.display();string2.String();( 7) 完 成 Array类 classArraypublic:Array(); /所 有 数 组 元 素 初 始 化 为 0 int /返 回 下 标 为 i的 数 组 元 素 的 引 用voidprint(); /打 印 出 所 有 数 组 元 素 的 值voidinput(); /对 所 有 数 组 元 素 进 行 输 入private:intm_data10;完 成 Array 的 成 员 函 数 , 并 编 写 一 个 主 函 数 , 在 主 函 数 中 对 所 编 写 的 成 员 函 数 进 行 测 试 。#includeusingnamespacestd;classArray public:Array();/所 有 数 组 元 素 初 始 化 为 0int/返 回 下 标 为 i的 数 组 元 素 的 引 用voidprint();/打 印 出 所 有 数 组 元 素 的 值voidinput();/对 所 有 数 组 元 素 进 行 输 入private:intm_data10;Array:Array() for(intnum=0;numm_datanum; voidArray:print()for(intnum=0;num10;num+)coutm_datanum;coutendl;voidmain()Arrayarr;arr.print(); arr.input(); arr.print();coutarr.getData(5)endl; (8) 定 义 圆 类 ( 由 圆 心 坐 标 点 类 和 半 径 组 成 ) , 利 用 友 元 函 数 判 断 两 个 圆 的 位 置 关 系 ( 圆间 关 系 包 括 相 交 、 相 切 、 相 离 ) 。(9) 定 义 类 Point.要 求 定 义 类 对 象 时 , 可 以 有 这 样 的 定 义 语 句 :#include usingnamespacestd;classPointpublic:Point(inta,intb)x=a;y=b;voidfun(Pointvoidfun(Point*p);private: intx,y;voidPoint:fun(Pointy=p.y;couty;coutFun(Point*p)endl;voidmain()Pointp(1,2),q(3,4);p.fun(q);q.fun(改 正 程 序 中 小 的 错 误 , 给 出 程 序 运 行 的 结 果 , 并 对 程 序 进 行 分 析 。 3、 思 考 题 :结 合 编 程 实 践 回 答 下 列 的 问 题 。( 1) 结 合 第 一 个 例 子 , 说 明 什 么 是 类 ? 什 么 是 对 象 ? 你 是 如 何 理 解 类 和 对 象 的 ?( 2) 面 向 对 象 的 程 序 设 计 与 结 构 化 程 序 设 计 有 何 不 同 ?( 3) 拷 贝 构 造 函 数 那 些 情 况 下 会 被 调 用 , 分 别 给 出 例 子 ?
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!