数据结构课设_集合的并、交和差运算的程序详解.doc

数据结构课设_集合的并、交和差运算的程序详解.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录 1.需求分析 1 1.1问题描述: 1 1.2基本要求: 1 1.3测试数据: 1 2.概要设计 1 2.1.集合的数据类型定义为: 1 2.2.各种函数的功能: 2 3.详细设计 2 4.编码实现 4 5.调试分析 6 5.1程序运行界面如下图: 6 5.2遇到的问题以及解决方法: 7 6.课设总结 7 7.参考文献 8 1.需求分析概要设计1.数据类型定义为:{ int num; bool hash[30]; } num为集合的元素个数 hash为利用哈希表,用来储存集合的元素。 2.2.各种函数的功能: 1.void InitSet(Set Res) 操作结果:初始化集合的函数,函数参数为引用类型。 2.Set DealSet(char *s) 初始条件:指针s不为空 操作结果:将字符串处理成集合,生成的集合为函数返回值。 3.void PriSet(Set s) 操作结果:打印集合s。 4.Set Jiao(Set sa,Set sb) 操作结果:实现集合交集的函数,交集为函数返回值。 5.Set Bing(Set sa,Set sb) 操作结果:实现集合并集的函数,并集为函数返回值。 6.Set Cha(Set sa,Set sb) 操作结果:实现集合差的函数,差集为函数的返回值。 7.int main() 操作结果:主函数,调用以上的各函数,实现系统界面的功能。 3.详细设计’a’-‘z’之间,则加入hash数组之中,并将元素个数增加。 3.void PriSet(Set s): 输出集合s,首先输出左花括号’{’,之后使用for循环遍历整个hash数组,如果hash数组的值为真,则说明该集合包含此项元素,输出该元素加空格,之后再输出右花括号’}’。 4.Set Jiao(Set sa,Set sb) 定义两个形参集合sa和sb,遍历两个集合的hash数组,如果两个hash数组的值同时为真,则说明sa和sb集合都含有该元素,则将该元素加入函数之中定义的Res集合,并将Res集合的元素个数加一。在程序最后返回Res集合的值。 5.Set Bing(Set sa,Set sb) 和Jiao()函数类似,同样遍历hash数组,唯一不同的是判断hash数组的语句,只要sa和sb其中有一个的值为真,则加入到Res中。 6.Set Cha(Set sa,Set sb) 同样和Jiao()函数类似,判断语句改为如果sa的hash为真并且sb的hash不为真,则加入到Res中 7.int main() 为设计程序主页面的函数,并且使用了所有的函数。 具体算法流程图为: 4.编码实现 主要的代码为: #includeiostream #includecstring #includecstdlib #includecstdio using namespace std; struct Set //定义集合类型 { int num;//集合元素个数 bool hash[30];//集合使用哈希表进行保存 } MySet[10];//集合数组 void InitSet(Set Res)//初始化集合的函数 { memset(Res.hash,false,sizeof(Res.hash));//把哈希表所有值赋值为false Res.num=0;//元素个数为0 } Set DealSet(char *s)//将字符串处理成集合 { Set Res;//函数返回的集合 InitSet(Res);//初始化集合 for (int i=0;istrlen(s);i++)//遍历整个字符串 { if (s[i]=a s[i]=z)//在a到z之间,才符合集合元素范围 { Res.hash[s[i]-a]=true;//加入哈希表 Res.num++;//集合元素增加 } } return Res;//函数返回集合 } void PriSet(Set s)//打印集合 { if (!s.num)//集合为空,输出为空集 { cout空集!endl; return; } cout{ ;//不为空,输出所有元素 for (int i=0;i27;i++) if (s.hash[i]) cout(char)(i+a) ; cout}; } Set Jiao(Set sa,Set sb) //实现集合交集的函数 { Set Res;//返回的集合 Ini

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档