面向对象技术C++平时作业_第1页
面向对象技术C++平时作业_第2页
面向对象技术C++平时作业_第3页
面向对象技术C++平时作业_第4页
面向对象技术C++平时作业_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

平时作业共平时作业共 2 次次 平时作业平时作业 1 定义 实现并测试表示由整型数元素组成的集合类型 IntSetIntSet 需提供的操作至少应包括 构造函数 析构函数 拷贝构造函数 插入元素 删除元素 清空集合 集合并 集合交 集合差 集合显示输出 集合显示输出的格式为 元素1 元素2 空集的输出为 intset h ifndef INTSET H define INTSET H class IntSet int cursize maxsize int x bool member int t const public IntSet int m 100 构造函数 IntSet const IntSet 拷贝构造函数 IntSet 析构函数 void insert int t 插入元素 void remove int t 删除元素 void clear 清空集合 void print 集合显示输出 IntSet setunion const IntSet 集合并 IntSet setdifference const IntSet 集合差 IntSet setintsection const IntSet 集合交 endif intset cpp include stdafx h include include using namespace std include intset h IntSet IntSet int m if m 1 exit 1 cursize 0 x new int maxsize m IntSet IntSet delete x IntSet IntSet const IntSet x new int maxsize m maxsize for int i 0 i cursize i x i m x i bool IntSet member int t const int l 0 int u cursize 1 while l u int m u l 2 if tx m l m 1 else return true return false void IntSet insert int t if member t return if cursize maxsize exit 1 x cursize t for int i cursize 1 i 0 i if x i x i 1 int temp x i x i x i 1 x i 1 temp else break void IntSet remove int t int flag 0 int pos for int i 0 i cursize i if t x i flag 1 pos i if flag 0 cout 该集合中不存在 t 这个元素 删除失败 endl else int temp x cursize x new int cursize for int j 0 j pos j x j temp j for int i pos i cursize i x i temp i 1 void IntSet clear if cursize 0 return x new int maxsize cursize 0 void IntSet print cout 0 for int i 0 i cursize i cout x i if i cursize 1 cout cout IntSet IntSet setdifference const IntSet for int i 0 i cursize i if anotherset member x i r insert x i return r IntSet IntSet setunion const IntSet for int i 0 i cursize i if anotherset member x i r insert x i return r IntSet IntSet setintsection const IntSet for int i 0 i cursize i if anotherset member x i r insert x i return r 平时作业平时作业 2 第第 1 1 题题 定义 HugeInt 类 计算并显示出 5000 阶乘的值和它的位数 5000 的值是多少 测试示例主程序测试示例主程序 f5000 cpp include include using namespace std include hugeint h int main HugeInt product 1 long N cout N 运行时输入运行时输入 5000 for long idx 1 idx N idx product product idx cout endl N product endl return 0 hugeint h include const int MAXLEN 200000 class HugeInt public HugeInt HugeInt const int friend std ostream HugeInt operator HugeInt HugeInt operator int R int Len return m len private int m sign 符号 int m len 长度 char m num MAXLEN 存储空间 hugeint cpp include stdafx h include hugeint h include include include include using namespace std HugeInt HugeInt memset m num 0 sizeof char MAXLEN m sign 0 m len 0 HugeInt HugeInt const int if ioperand 0 if ioperand 0 m sign 1 else m sign 1 int i 0 k 1 int abs R abs ioperand do i m num i abs R 10 abs R 10 while abs R m len i else m num 1 0 m len 1 m sign 1 HugeInt HugeInt operator int R HugeInt hInt R return this hInt HugeInt HugeInt operator HugeInt Result m sign this m sign R m sign char muti1 muti2 result Result m num int len1 len2 if this m len R Len muti1 this m num muti2 R m num len1 this m len len2 R m len else muti1 R m num muti2 this m num len2 this m len len1 R m len int i 1 j 1 k 1 carry 0 while j len2 i 1 k j while i len1 result k muti1 i muti2 j carry carry result k 10 result k 10 k if carry 0 result k carry Result m len k carry 0 else Result m len k 1 j return Result std ostream if R m sign 1 out for i R m len i 0 i out R m num i 0 out std endl return out 第第 2 2 题题 改进第一次作业中的 IntSetIntSet 分别使用运算符 和 表示集合并 集合交 集合差和集合输出 必须上机验证必须上机验证 intset h ifndef INTSET H define INTSET H class IntSet int cursize maxsize int x bool member int t const public IntSet int m 100 构造函数 IntSet const IntSet 拷贝构造函数 IntSet 析构函数 void insert int t 插入元素 friend ostream IntSet operator const IntSet 集合差 IntSet operator const IntSet 集合并 IntSet operator const IntSet 集合交 endif intset cpp include stdafx h include include using namespace std include intset h IntSet IntSet int m if m 1 exit 1 cursize 0 x new int maxsize m IntSet IntSet delete x IntSet IntSet const IntSet x new int maxsize m maxsize for int i 0 i cursize i x i m x i bool IntSet member int t const int l 0 int u cursize 1 while l u int m u l 2 if tx m l m 1 else return true return false void IntSet insert int t if member t return if cursize maxsize exit 1 x cursize t for int i cursize 1 i 0 i if x i x i 1 int temp x i x i x i 1 x i 1 temp else break ostreami is cursize i os is x i if i is cursize 1 os cout return os IntSet IntSet operator const IntSet for int i 0 i cursize i if anotherset member x i r ins

温馨提示

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

评论

0/150

提交评论