姜志达实验十报告.docx

姜志达实验十报告.docx

ID:61725515

大小:16.88 KB

页数:9页

时间:2021-03-11

姜志达实验十报告.docx_第1页
姜志达实验十报告.docx_第2页
姜志达实验十报告.docx_第3页
姜志达实验十报告.docx_第4页
姜志达实验十报告.docx_第5页
资源描述:

《姜志达实验十报告.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验十实验报告——姜志达1.实验目的(1)掌握运算符重载的定义及实现。(2)掌握具有运算符重载的应用。2.实验设备硬件环境:微型计算机软件环境:操作系统:Windows语言环境:VisualC++3.预习要求学习教材有关运算符重载的内容,对基本运算符重载及特殊运算符重载有充分的理解。对实验基本要求应在上机实验前仔细阅读,程序应事先编制完成,上机时录入调试,同时还应设计相应的测试用例集,检查程序的正确性、可靠性、完备性和容错能力。4.实验内容(1)将一个16位二进制数表示成0和1的字符序列,即用一

2、个字符数组来存放这个二进制数。在这个类中设置两个构造函数,一个是传递整数参数的,另一个是传递字符串参数的。因为用户在创建对象时传递的二进制数,可能是以整数形式给出,也可能是以数字串形式给出,系统应该都能接受。另外有一个类型转换函数int(),用来将类类型向整型转换。程序中的两个重载运算符“+”,“-”,用来完成两个二进制数之间的加减运算。#include"iostream.h"#include"string.h"#include"conio.h"classbinary{//定义二进制类charb

3、its[16];//public:binary(char*);//binary(int);//二进制字模数组字符串参数构造函数整型参数构造函数friendbinaryoperator+(binary,binary);//friendbinaryoperator-(binary,binary);//operatorint();//类类型转换函数voidprint();重载“+”重载“-”};binary::binary(char*num){intisrc=strlen(num)-1;//int

4、idest=15;while(isrc>=0&&idest>=0)bits[idest--]=(num[isrc--]=='0'?'0':'1');while(idest>=0)bits[idest--]='0';//字符串长度//-1为最低位逐位赋值空高位值0}binary::binary(intnum){for(inti=15;i>=0;i--){bits[i]=((1)num>>=1;//);//求余数移位,相当于整除2}}binaryoperator+(binaryn1,b

5、inaryn2){unsignedcarry=0;unsignedvalue;binaryres="0";for(inti=15;i>=0;i--){value=(n1.bits[i]=='0'?0:1)+((2))+carry;res.bits[i]=(value%2==0?'0':'1');carry=value>>1;}returnres;}binaryoperator-(binaryn1,binaryn2){unsignedborrow=0;intvalue;binaryres="0

6、";for(inti=15;i>=0;i--){value=(n1.bits[i]=='0'?0:1)-(n2.bits[i]=='0'?0:1)+borrow;res.bits[i]=(value==-1

7、

8、value==1?'1':'0');borrow=(value==-1

9、

10、borrow!=0&&(value==0

11、

12、value==1)?1:0);}returnres;}binary::operatorint(){unsignedvalue=0;for(inti=0;i<=15;i++)

13、value=((3))+(bits[i]=='0'?0:1);returnvalue;}voidbinary::print(){charstr[17];strncpy(str,bits,16);str[16]='';cout<

14、t<

15、分别将二进制数按位取反、数按位与及按位或。(2)编写一个集合类,重载+(并集)、-(差集)、*(交集)、<<(输出)、>

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。