- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学号
《》
课程设计报告
集合的并、交和差运算 专业: 计算机科学与技术 班级: 14计科(1)班 姓名: 张婷婷 指导教师: 王峻 成绩:
计算机学院
2015年11月13日
目录
1设计内容及要求 1
1.1 设计内容 1
1.2 设计要求 1
2概要设计 1
2.1?有序表的抽象数据类型的定义? 1
2.2?集合的定义? 1
2.3?基本操作? 1
2.4?调用关系? 2
3详细设计 3
3.1 具体算法流程 3
3.2?具体的程序功能实现? 4
3.3?伪码算法? 4
4设计结果与分析 7
4.1?调试过程中遇到的问题 7
4.2?算法的时空分析? 8
4.3 测试结果 8
5 总结? 10
6 参考文献 11
附录 11
1设计内容及要求
1.1 设计内容
编制一个能演示执行集合的并、交和差运算的程序。
1.2 设计要求
(1)?集合的元素限定为小写字母字符?[‘a’..’z’]?。??
(2)?演示程序以用户和计算机的对话方式执行。
2概要设计
为实现上述程序功能,应以有序链表表示集合。为此,需要两个抽象数据类型:有序表和集合。
2.1.?有序表的抽象数据类型定义为?
typedef?struct?LNode?
{
??char?data;?
struct?LNode?*next;?
}
LinkList;?
2.2.??集合的定义为?
char?set1[maxsize],set2[maxsize];?
2.3.??基本操作?
void?GreatListR(LinkList?*L,char?a[],int?n)??//尾插法建表?
void?InitList(LinkList?*L)??//初始化线性表?
void?DestroyList(LinkList?*L)?//销毁线性表
void?DispList(LinkList?*L)?//输出线性表?
void?sort(LinkList?*L)?//元素排序?
void?bingji(LinkList?*L,LinkList?*N,LinkList?*M)?//并集运算?
void?dels(LinkList?*M)????//删除相同元素??仅留一个 ?
void?jiaoji(LinkList?*M,LinkList?*L,LinkList?*N)??//交集运算?
void?chayunsuan(LinkList?*L,LinkList?*M,LinkList*K)?//集合差运算
int?main()?//为设计程序主页面的函数,并且使用了所有的函数
?
2.4.?调用关系?
InitList(L);?
InitList(N);?
GreatListR(L,set1,i);?
GreatListR(U,set1,i);?
sort(U);?//元素排序?
dels(U);??//删除相同元素??仅留一个?
sort(L);?//元素排序
dels(L);??//删除相同元素??仅留一个?
printf(请输入集合set2=);?
for(j=0;jmaxsize;j++)?
{
??scanf(%c,set2[j]);?
if(set2[j]==\n)???
break;?
}?
?????GreatListR(N,set2,j);??
????sort(N);?//元素排序?
dels(N);??//删除相同元素??仅留一个
bingji(L,N,M);?//集合合并?
dels(M);??//删除相同元素??仅留一个?
?DispList(M);???
jiaoji(M,L,N);?//交集运算?
DispList(M);??
chayunsuan(U,M,K);?//集合差运算?
DispList(K);?
char?n;?
printf(\n是否退出运算?\n);?
scanf(%c,n);?
if(n==e)??
exit(0);?
DestroyList(L);?
DestroyList(N);?
DestroyList(U);
?DestroyList(M);?
DestroyList(K);?
system(PAUSE);
3详细设计
3.1具体算法流程
Y
N
3.2.?具体的程序功能实现?
(1)利用c++引用类型,对线性表LinkList?*L,*N?进行初始化,并用for循环将将集合set1[maxsize],set2[maxsize]分别存入线性表L和?K。?
(2)
您可能关注的文档
- 屋面创优施工方案汇总.doc
- 元宵节灯谜分类及解答.doc
- 园林笔试解答.doc
- 园林草坪学复习解答.doc
- 园林复习解答.doc
- 园林工程花卉苗木预算价格表解答.doc
- 园林景观中如何运用小景造园更自然解答.doc
- 园林论文2解答.doc
- 无创和有创机械通气中的湿化汇总.doc
- 无错误完美版云南2012年行测真题及汇总.doc
- Unit 6 Get Close to Nauture Lesson 22 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 23 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025食品饮料行业AI转型白皮书-2025食品饮料行业数智化转型领先实践.pdf
- Unit 7 Be Together Lesson 24 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 25 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 26 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025年广州体育职业技术学院单招职业倾向性考试题库完美版.docx
- 软件公司员工考勤异常处理.doc
- 2025年土地登记代理人之土地登记相关法律知识题库500道及完整答案【有一套】.docx
- 2025年四平职业大学单招职业适应性考试题库含答案.docx
文档评论(0)