数据结构----集合运算课程设计报告(C++).

上传人:最**** 文档编号:116746390 上传时间:2019-11-17 格式:DOC 页数:17 大小:137KB
返回 下载 相关 举报
数据结构----集合运算课程设计报告(C++)._第1页
第1页 / 共17页
数据结构----集合运算课程设计报告(C++)._第2页
第2页 / 共17页
数据结构----集合运算课程设计报告(C++)._第3页
第3页 / 共17页
数据结构----集合运算课程设计报告(C++)._第4页
第4页 / 共17页
数据结构----集合运算课程设计报告(C++)._第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据结构----集合运算课程设计报告(C++).》由会员分享,可在线阅读,更多相关《数据结构----集合运算课程设计报告(C++).(17页珍藏版)》请在金锄头文库上搜索。

1、 数据结构 课程设计报告题 目: 集 合 运 算 学生姓名: 童 侃 学 号: 200917010241 专业班级: 计科09102班 指导教师: 邹汉斌 设计时间: 2011年上学期第2周 指导老师意见: 评定成绩: 签名: 日期:1、程序简介 此程序是解决集合运算的一个程序。它使用链表来表示集合,并完成集合的一些操作,其中包括交集运算、并集运算以及差集运算。 程序采用多文件的方式构成,包括主函数、界面操作、链表的建立与输出以及三个操作函数。主函数主要起对其他文件中的函数调用的作用;界面操作主要包含主界面及一个选择函数,起到对操作函数的调用作用;链表的建立和输出函数是对题目要求的满足,为操作

2、函数分配空间等作用;三个操作函数分别为:交际运算、并集运算、差集运算。 构成图操作函数链表界面主函数2、系统实现(1)主函数:#include#define MAXSIZE 10 /最大集合个数static int COUNT=0; /记录集合个数using namespace std;#include11.h#include12.h#include13.hint main()output(); /输出数据menu (); /主菜单return 0;( 2 ) 主界面:void select ()int i,k;cout 请注意,下面开始进入系统!endl;cout endl;cout * 集

3、合的运算 *endl;cout endl;cout *endl;cout * 1.交集运算 *endl;cout * 2.并集运算 *endl;cout * 3.差集运算 *endl;cout * 4.退出 *endl;cout *endl;cout endl;coutk; if(k4) coutendl2)for(i=2;i2)for(i=2;i2)for(i=2;iCOUNT;i+)H=Subtract(H,Li);printf(H);select ();break;case 4: return; (3)链表及输出函数typedef struct LNodeint data; /数据str

4、uct LNode *next; /指针LNode;LNode *LMAXSIZE,*H;LNode * Linklist(LNode *L) /建立链表LNode *q;int i;L=NULL;cout 请您输入集合数据:i;while(i!=0)q= (LNode*)malloc(sizeof(LNode);while(!q)cout分配内存失败!data =i;q-next=L;L=q;cini; q=NULL;return L;void printf(LNode *L) /输出链表 LNode *q;int count=0;q=L;if(q=NULL)cout集合为空!endl;co

5、ut集合数据:;while(q)coutdatanext ;+count;cout数据元素个数:countendl;void output()int i;couti;COUNT=i;cout!输入数据时,输入0表示输入结束endl;while(i)cout集合data=q1-data)q= (LNode*)malloc(sizeof(LNode);q-data=q2-data;q-next=L;L=q;break;q2=q2-next;q1=q1-next;return L;【2】并集运算LNode * Union(LNode *L1,LNode *L2)LNode *q1,*q2,*L,*q

6、;int frag=0;L=NULL;q1=L1;while(q1!=NULL)q= (LNode*)malloc(sizeof(LNode);q-data=q1-data;q-next=L;L=q;q1=q1-next; q2=L2;while(q2!=NULL)q1=L1;frag=0;if(q1!=NULL)while(q1)if(q1-data=q2-data)frag=1;break;q1=q1-next;if(frag!=1)q= (LNode*)malloc(sizeof(LNode);q-data=q2-data;q-next=L;L=q;q2=q2-next;return L

7、;【3】差集运算LNode * Subtract(LNode *L1,LNode *L2)LNode *L,*p,*q,*test;int flag=0;p=L1;q=L2;L=NULL;while(p)/ 直接除掉L1中包含在L2中的元素flag=0;while(q)if(p-data=q-data)flag=1;break;q=q-next;if(flag=0)test= (LNode*)malloc(sizeof(LNode);test-data=p-data;test-next=L;L=test;p=p-next;return L; 3、系统测试 主界面交集运算并集运算4、心得体会 通

8、过本次的课程设计,我进一步加深了对数据结构的了解和认识。虽然我选的题目不是很难,但是正因为这个题目,它让我更好地巩固了以前所学的知识,扎实了基础。前一次的课程设计告诉我的经验是团队的重要性,而此次给我的启示是:对待一个问题应该先做好分析工作,只有正确的分析问题才能找出好的方法,否则会误入歧途。俗话说磨刀不误砍柴工,应该充分分析问题的工作。还有就是,无论是什么问题,只有耐心的做下去,要有坚持不懈的精神。5、参考文献1 刘振安等编著. C+程序设计课程设计. 机械工业出版社 20042 谭浩强著. C语言程序设计. 清华大学出版社 20073 陈维兴等著. C+面向对象程序设计教程. 清华大学出版社 20074严蔚敏、吴伟民编著.数据结构(c语言版)。清华大学出版社2007

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号