资源描述:
《集合的并、交、差集运算的设计【最新资料】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:计算机科学与技术学生姓名:刘文泽班级计算133学号:201207091题目:集合的并、交、差集运算的设计_____起迄日期:_2015.6.29~2015.7.10设计地点:计算机学院机房指导教师:巩玉玺、林孟达完成日期:2015年7月10日目录一、需求分析1.选做此课题或项的目的2.程序所实现的功能3.问题解决方案二、内容设计1.根据所选题目,给出模块图2.编写程序关键代码三、调试分析1.实际完成的情况说明2.程序的性能分析。3.上机过程中出现的问题及其解决方案4.程序中可以改进的地方说明。四、用户手册
2、五、设计总结六、参考文献七、附录61一、需求分析1.选做此课题或项的目的用c++实现集合的并、交、差集运算。2.程序所实现的功能(1)用户能够输入两个集合元素;(2)能够额按成集合的交、并、差运算;(3)集合的元素类型可以为整数、字符串和小数。(4)输入运算结果。(5)使用链表来表示集合,完成集合的合并,求交集等。3、问题解决方案根据系统功能需求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及他们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成
3、员函数的定义;61二、内容设计1.根据所选题目,给出模块图通过对系统功能的分析,集合交并差系统功能如图所示:(一)集合的交集运算:分析:首先输出集合1与集合2的元素,然后输出集合1与集合2中相同的元素。流程图如图所示:(二)集合的并集运算:分析:首先输出集合1与集合2的元素,然后输出集合1与集合2中的全部元素。流程图如图所示:61(三)差集的运算首先输出集合1减去集合2的结果,然后输出集合2减去集合1中的结果。流程图如图所示:2.编写程序关键代码typedefstructnode{intdata;structnode*next;}lnode,*linklist;lnode
4、*init_lnode();voidinput(linklistl);voidjiaoji(linklistA,linklistB,linklistC);voidheji(linklistA,linklistB,linklistC);voidchaji(linklistA,linklistB,linklistC);voidoutput(linklistl);voidmain(){lnode*A,*B,*C;A=init_lnode();B=init_lnode();C=init_lnode();printf("求AB集合的交集和并集");printf("请输入A集合的
5、元素:");input(A);61printf("请输入B集合的元素:");input(B);printf("输入完成");printf("按任意键进入主菜单:");getch();intsel;do{charmenu[]={"-----☆1.交集运算☆---------""---------☆2和集运算☆---------""---------☆3.差集运算☆---------""---------☆0.退出☆---------"};printf("%s",menu);printf("请在0-3中选择:")
6、;scanf("%d",&sel);switch(sel){case1:printf("AB集合的交集是:");jiaoji(A,B,C);output(C);C->next=NULL;break;case2:printf("AB的合集是:");heji(A,B,C);output(C);C->next=NULL;break;case3:chaji(A,B,C);break;case0:break;}}while(sel!=0);}/*主函数结束*//**********初始化函数***************/61lnode*init_lnode(){lnode*l;l
7、=(lnode*)malloc(sizeof(lnode));l->next=NULL;returnl;}/***************录入函数********************/voidinput(linklistl){lnode*s;intx;scanf("%d",&x);while(x!=0){s=(lnode*)malloc(sizeof(lnode));s->data=x;s->next=l->next;l->next=s;scanf("%d",&x);}}/************交集函数*********