- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 冀教版六年级上册英语Lesson 10《How Many Are There》教学课件.pptx
- 雷军英文简历.ppt
- 钢管落地式卸料平台施工方案.doc VIP
- 纳布啡:术后镇痛泵中的高效药物.docx
- 电动垂直起降航空器(eVTOL)起降场 技术要求.docx VIP
- 2023-中国农业大学介绍(完整版).pptx
- 小学残疾儿童送教上门教案(40篇).pdf
- 2024新外研版英语三年级上册 Unit 1 Let's be friends! 自测题(含答案).docx
- 2024年河北省继续医学教育公共必修课参考答案.pdf VIP
- GB/T 10781.8-2021白酒质量要求 第8部分:浓酱兼香型白酒.pdf
文档评论(0)