离散数学(集合的运算)实验报告.pdfVIP

  • 0
  • 0
  • 约5.19千字
  • 约 10页
  • 2026-02-14 发布于河南
  • 举报

大连民族学院

计算机科学与工程学院实验报告

实验题目:集合的运算

课程名称:离散数学

实验类型:□演示性□验证性□操作性□设计性□综合性

专业:网络工程班级:网络111班

学生姓名:张山学号:2011083123

实验日期:2013年12月22日实验地点:I区实验机房

实验学时:8小时实验成绩:

指导教师签字:年月日

老师评语:

1

实验题目:集合的运算

实验原理:

1、实验内容与要求:

实验内容:本实验求两个集合间的运算,给定两个集合A、B,求集合A与集合

B之间的交集、并集、差集、对称差集和笛卡尔乘积。

实验要求:对于给定的集合A、B。用C++/C语言设计一个程序(本实验采用

C++),该程序能够完成两个集合间的各种运算,可根据需要选择输出某种运算结果,

也可一次输出所有运算结果。

2、实验算法:

实验算法分为如下几步:

(1)、设计整体框架

该程序采取操作、打印分离(求解和输出分开)的思想。即先设计函数求解各部

分运算并将相应结果传入数组(所求集合)中,然后根据需要打印运算结果。

(2)、建立一个集合类(Gather)

类体包括的数组a、b、c、d、e、f、g分别存储集合A、B以及所求各种运算的

集合。接口(实现操作的函数)包括构造函数,菜单显示函数,求解操作函数,打印

各种运算结果等函数。

(3)、设计类体中的接口

构造函数:对对象进行初始化,建立集合A与集合B。

菜单显示函数:设计提示选项,给使用者操作提示。

操作函数:该函数是程序的主题部分,完成对集合的所有运算的求解过程,并将

结果弹入(存入)对应数组(集合)中,用于打印。

具体操作如下:

2

1*求交集:根据集合中交集的定义,将数组a、b中元素挨个比较,把共同元素

选出来,并存入数组c(交集集合)中,即求得集合A、B的交集。

2*求并集:根据集合中并集的定义,先将数组a中元素依次存入数组g(并集集

合)中,存储集合A中某元素前,先将其与已存入g中的元素依次比较,若相同则

存入下一个元素,否则直接存入g中,直到所有A中元素存储完毕。接着把b中元

素依次存入数组g(并集集合)中,存储前将b中每个元素依次与已存入数组g中的

集合A的元素比较,若数组g中没有与该元素相同的元素,则将该元素存入g(并集

集合)中,否则进行下一次比较,直到所有b中元素比较并存储完毕,即求得A与B

的并集。

3*求差集:根据集合中差集的定义知,差集分为两部分,A对B的差集(数组d)

和B对A的差集(e)。设计求解A对B的差集,将集合A中元素依次与B中元素比

较,若B中无元素与该元素相同,则将其存入数组d中(同时删除d中相同的元素,

操作方法与求并集时删除相同元素类似),否则进行下一轮比较,直到A中所有元素

比较完毕,即求得A对B的差集(数组d)。求解B对A的差集方法与求解A对B

的差集类似,这里不再重复。

4*求对称差:根据集合中对称差集的定义,将3*中所求两部分差集求并集并存

入数组f中即可。操作过程与求并集相似,这里不再重复。

5*求笛卡尔乘积:根据集合中笛卡尔乘积集的定义,分为A*B和B*A。先设计

A*B是我算法,将a中元素循环依次与b中元素配对即可。求B*A与求A*B类似,

这里不再重复。

实验步骤:

一、分析实验

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档