欢迎来到天天文库
浏览记录
ID:61725515
大小:16.88 KB
页数:9页
时间:2021-03-11
《姜志达实验十报告.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)编写一个集合类,重载+(并集)、-(差集)、*(交集)、<<(输出)、>
14、t<15、分别将二进制数按位取反、数按位与及按位或。(2)编写一个集合类,重载+(并集)、-(差集)、*(交集)、<<(输出)、>
15、分别将二进制数按位取反、数按位与及按位或。(2)编写一个集合类,重载+(并集)、-(差集)、*(交集)、<<(输出)、>
此文档下载收益归作者所有