设计整数类1
更新时间:2023-03-14 12:18:01 阅读量: 教育文库 文档下载
《高级语言程序设计II实验》实验报告三
学生姓名: 班级: 学号:
一 问题描述
定义一个集合类,有如下的功能: (1)输出两个集合的交集 (2)输出两个集合的并集
(3)判断一个元素是否属于这个集合 (4)往集合里插入一个元素 (5)判断两个集合是否相等 二、实验环境
在codeblock,等编译环境下都能用。
二 程序设计 (此处占分最重,请尽量详细描述) // 描述如何设计程序的文件结构,各文件中主要内容,对于自定义类可用UML图描述各个类的接口 如:
1. 文件结构及类描述
test1.cpp vehicle.h
主函数 main() jh p(3),y(4); (p-y).show(); (p+y).show(); (p<3).showcha(); jh q(3),w(3); (q>w).showdeng(); (q*8).showshu(); return 0; Vehicle接口 jh operator -(jh &p); jh operator +(jh &m); jh operator <(int y); jh operator >(jh &q); jh operator *(int u) ~jh(){}; Void showdeng();//show Void show(); void showcha(); void showshu() 实现 void jh::showcha() void jh::showshu() jh jh::operator *(int u) void jh::showdeng() jh jh::operator >(jh &q) jh::jh(int q) jh jh::operator <(int y) jh jh::operator -(jh &p) jh jh::operator +(jh &m) void jh::show() 2.主要算法描述; jh jh::operator >(jh &q) {
int j,k;
if(i!=q.i)//两个集合个数不相等 {
q.flag=0; }
if(i==q.i)//两个集合个数相等 {
for(j=0;j
for(k=0;k if(a[j]!=q.a[k])//如果第一个集合的元素和第二个集合的元素不相等 { q.flag=0; } else if(a[j]==q.a[k])//如果第一个集合的元素和第二个集合的元素相等,就填出循环 { q.flag=1; break; } } if(q.flag==0)//如果第一个集合中的某元素和第二个集合中任意一个都不相等,那就跳出整个循环 { break; } } } return q; } 三 程序代码 #include jh operator -(jh &p);//算出这两个集合的交集 jh operator +(jh &m);//算出这两个集合的并集 jh operator <(int y);//插入一个元素 jh operator >(jh &q);//判断两个集合是否相等 jh operator *(int u);//判断这个元素是否属于这个集合 ~jh(){}; void showdeng();//show出两个集合是否相等 void show();//输出集合的元素 void showcha();//show出插入元素是否属于这个集合或者show插入之后的新集合 void showshu();//show出这个元素是否属于这个集合 private: int a[100],i,flag;//flag用于多出的判断 }; void jh::showcha() { int j; if(flag==0) { cout<<\此集合已存在此元素\ } if(flag==1) { cout<<\新集合为S={\ i++;//通过i++来限制新加元素能否输出 for(j=0;j cout< cout<<\ } } void jh::showshu() { if(flag==1) { cout<<\这个元素属于这个集合\ } if(flag==0) { cout<<\这个元素不属于这个集合\ } } jh jh::operator *(int u) { int j; jh b; for(j=0;j if(u==a[j]) { b.flag=1; break;//找到这个元素与集合的任何一个元素相等之后终止循环 } else if(u!=a[j]) { b.flag=0;//此元素不属于这个集合通过flag来表示 } } return b; } void jh::showdeng() { if(flag==0) { cout<<\这两个集合不相等\ } if(flag==1) { cout<<\这两个集合相等\ } } jh jh::operator >(jh &q) { int j,k; if(i!=q.i)//两个集合个数不相等 { q.flag=0; } if(i==q.i)//两个集合个数相等 { for(j=0;j for(k=0;k if(a[j]!=q.a[k])//如果第一个集合的元素和第二个集合的元素不相等 { q.flag=0; } else if(a[j]==q.a[k])//如果第一个集合的元素和第二个集合的元素相等,就填出循环 { q.flag=1; break; } } if(q.flag==0)//如果第一个集合中的某元素和第二个集合中任意一个都不相等,那就跳出整个循环 { break; } } } return q; } jh::jh(int q)//集合的构造函数 { int j; i=q; for(j=0;j cout<<\输入集合的元素a[\ cin>>a[j]; } } jh jh::operator <(int y) { int j; jh b; b.i=i; b.a[b.i]=y;//把这个元素先给集合b for(j=0;j b.a[j]=a[j];//把集合中的元素给b } for(j=0;j if(y==a[j])//判断插入的集合是否属于集合 { b.flag=0; break; } else { b.flag=1; } } return b; } jh jh::operator -(jh &p) { int j,k; jh b; for(j=0;j for(k=0;k if(a[j]==p.a[k])//找出两个集合中相等的元素 { b.a[b.i]=a[j]; b.i++; } } } return b; } jh jh::operator +(jh &m) { jh b; int k,j,flag=2; for(j=0;j for(k=0;k if(a[j]==m.a[k])//先剔除两个集合中相同的元素 { flag=1; break; } } if(flag==2) { b.a[b.i]=a[j];//把不相等的元素存入b集合中 b.i++; } } for(k=0;k b.a[b.i]=m.a[k]; (b.i)++; } return b; } void jh::show() { int j; cout<<\此集合为a[\ for(j=0;j cout< cout<<\} int main() { jh p(3),y(4); (p-y).show(); (p+y).show(); (p<3).showcha(); jh q(3),w(3); (q>w).showdeng(); (q*8).showshu(); return 0; } 四 程序 运行结果 五 实验总结 // 描述实验过程中遇到的困难及解决办法;描述程序存在的不足及可能的改进方案; (1)灵活运用break语句; (2)在定义集合类的构造函数时要有一个无参数的来实现返回值; (3)在写集合的交集并集时解决私有成员i++的问题; (4)在插入一个元素和判断一个元素是否属于该集合时要注意简便的算法; (5)不能忘记写析构函数; (6)对运算符重载的符号运用不灵活。
正在阅读:
设计整数类103-14
2016尔雅辩论修养题库06-04
福建省泉州市泉港博文中学七年级数学上册《2.9 有理数的乘法3》导学案05-10
《尘世是唯一的天堂》读后感06-09
微后坐力自动炮转膛机构设计10-21
-教案-七年级地理下册:9.1《美国》01-14
“除数是整十数的口算和笔算”教学反思04-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 整数
- 设计
- 提高多坡屋面混凝土浇筑质量 - 图文
- 二年级数学下册《用方向和距离确定位置》教学设计
- 2018-2019优秀心得体会范文:新会计准则的学习心得体会-word范文模板(3页)
- 高中信息技术 信息技术全套教案 粤教版必修1 - 图文
- 2019版高考生物二轮复习高考重点冲关练21食物链网中的能量传递
- 高一化学必修1第三章《金属及其化合物》知识点、课堂练习 - 课后测试题(附答案)授课必备 - 强烈推荐
- 从走出文秘岗位无人喜爱困境引发的思考
- 好看好看
- 《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案
- 江苏重点项目-基本医疗卫生体系提升工程项目可行性研究报告
- 铁路揭开黑幕一角 - 图文
- 安徽省高等学校机构编制管理暂行办法
- 秋季版一年级语文上册课文13江南教学设计1新人教版
- 2018-2019年安顺市镇宁县本寨镇关山小学小学一年级上册语文模拟期末测试无答案
- 制动主缸与真空助力器结构及原理剖析-共14页
- 供配电施工组织设计
- 中级经济师考试(铁路实务真题)
- 生物化学 - 修志龙 - 综合习题测试一大连理工
- 12道法九上知识点
- 安徽省危险化学品救援技术竞赛