您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 集合运算-离散数学·实验报告
HUNANUNIVERSITY离散数学课程实验报告题目:集合运算学生姓名:学生学号:专业班级:完成日期:一.实验目的1.熟悉集合的交,并,差,对称差和直积等集合运算;2.使用c++语言工具解决集合的运算问题;二.实验内容编写程序实现集合的交,并,差,对称差和直积集合运算三.实验过程算法分析1.集合的交:使用两个字符串数组A和B存储两个集合,依次遍历两个数组,找到相同的元素,就输出该元素,直到两个数组都遍历完毕为止,输出的所有的元素就是这两个集合的交;2.集合的并:依次遍历这两个数组,在第二个数组中,若找到与第一个数组中的某个元素相同的元素时,在第二个数组中删除该元素,最后输出第一个数组和第二个数组的所有元素,得到的结果即集合的并;3.集合的差:遍历数组A和B,在数组A中,若找到与B中某一元素相同的元素,则在数组A中删除该元素,最后一次输出数组A即可;4.集合的对称差:定义一个新的字符串数组C,将A的值全部赋给C(C==A).。遍历数组A和B,若在A中找到与B中某一元素相同的元素,则在A中删除该元素;遍历C与B,若在B中找到与C中某一元素相同的元素,则删除B中的该元素,最后依次遍历输出数组A和B即可;5.集合的直积:从数组A的第一个元素开始,每输出A中的一个元素的同时,对应输出B中所有的元素,中间用,连接,直到A中所有元素都输出完毕。最后得到的序列便是A和B的直积流程图开始i=0j=0iPointNum?jPointNum?J++i++YNFun1(a,b);Fun2(a,b);Fun3(a,b);Fun4(a,b);Fun5(q,b)N输入a[i][j]输入b[i][j]结束Y实验数据和分析测试数据:请输入第一个集合:ab14请输入第二个集合:bg4两个集合的交为:b4两个集合的并为:ab14g第一个集合-第二个集合为:a1两个集合的对称差为:a1g两个集合的直积为:a,ba,ga,4b,bb,gb,41,b1,g1,44,b4,g4,4按照实验的算法设计程序,实现集合的各种基本运算。实验代码#includeiostreamusingnamespacestd;#includestdlib.hvoidfun1(char[],char[]);voidfun2(char[],char[]);voidfun3(char[],char[]);voidfun4(char[],char[]);voidfun5(char[],char[]);voidDelete(char[],intn);intmain(){chara[20],b[20],c;while(1){cin.sync();cout请输入集合一:\n;gets_s(a);cout请输入集合二:\n;gets_s(b);cout请选择:\n;coutA.集合的交B.集合的并C.集合的差D.集合的对称差E.集合的直积F.退出\n;cinc;if(c=='F')return0;cout其结果为:\n;switch(c){case'A':fun1(a,b);break;case'B':fun2(a,b);break;case'C':fun3(a,b);break;case'D':fun4(a,b);break;case'E':fun5(a,b);break;default:cout输入有误。;break;}coutendl;}};voidDelete(chara[],intn){ints1=strlen(a);for(inti=n;is1-1;i++){a[i]=a[i+1];};a[s1-1]='\0';};voidfun1(chara[],charb[]){ints1=strlen(a);ints2=strlen(b);inti=0,j=0;for(i=0;is1;i++){for(j=0;js2;j++){if(a[i]==b[j])couta[i];}}};voidfun2(chara[],charb[]){ints1=strlen(a);ints2=strlen(b);inti,j;for(i=0;is2;i++){for(j=0;js1;j++){if(b[i]==a[j])Delete(b,i);}}for(i=0;is1;i++)couta[i];for(j=0;jstrlen(b);j++)coutb[j];};voidfun3(chara[],charb[]){ints1=strlen(a);ints2=strlen(b);inti,j;for(i=0;is1;i++){for(j=0;js2;j++){if(a[i]==b[j])Delete(a,i);}}for(i=0;istrlen(a);i++)couta[i];};voidfun4(chara[],charb[]){inti,j;charc[20];for(i=0;istrlen(a);i++){c[i]=a[i];}for(i=0;istrlen(a);i++){for(j=0;jstrlen(b);j++)if(a[i]==b[j])Delete(a,i);}for(i=0;istrlen(c);i++){for(j=0;jstrlen(b);j++)if(c[i]==b[j])Delete(b,j);}for(i=0;istrlen(a);i++)couta[i];for(j=0;jstrlen(b);j++)coutb[j];}voidfun5(chara[],charb[]){ints1=strlen(a);ints2=strlen(b);inti,j;for(i=0;is1;i++){for(j=0;js2;j++){printf(%c,%c,a[i],a[j]);cout;}}}
本文标题:集合运算-离散数学·实验报告
链接地址:https://www.777doc.com/doc-4696837 .html