课程设计报告(集合的交并差运算)

课程设计报告(集合的交并差运算)

ID:28496496

大小:247.54 KB

页数:13页

时间:2018-12-10

上传者:U-991
课程设计报告(集合的交并差运算)_第1页
课程设计报告(集合的交并差运算)_第2页
课程设计报告(集合的交并差运算)_第3页
课程设计报告(集合的交并差运算)_第4页
课程设计报告(集合的交并差运算)_第5页
资源描述:

《课程设计报告(集合的交并差运算)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

LongqiaoCollegeOfLanzhouCommercialCollege兰州商学院陇桥学院工学系课程设计报告设计题i:集合的交、并、差运算系别:工学系专业(方向):信息管理与信息系统年级、班:20XX级(X)班学生姓名:张某某学生学号:000000000000指导教师:王某某 20xx年00月000 目录一、系统开发的竹景1二、系统分析与设计1(一)系统功能要求11、输入集合1屮的元素;12、输入集合2中的元素;13、执行交集、并集、差集运算;1(二)系统模块结构设计11、集合的交集运算,12、集合的并集运算,23、集合的差集运算,2三、系统的设计与实现2(一)集合的交集运算:VOTDJTAOO2(二)集合的并集运算:VOIDBING()3(三)集合的差集运算:VOIDCIIAO4四、系统测试5(一)测试MAIN()函数5(二)测试VOTDJTAO()函数5(三)测试VOIDBING()函数5(四)测试VOIDC11AO函数5五、总结6六、附件(代码、部分图表)7 集合的交、并、差运算一、系统开发的背景为丫演示执行集合的交、并和差运算的程序,因此设计了这个程序。二、系统分析与设计(一)系统功能要求可以对键盘输入的集合元素进行反序输出,然后对输入的集合进行交集,并集,差集的运算。1、输入集合1中的元素;2、输入集合2中的元素;3、执行交集、并集、差集运算;(二)系统模块结构设计通过对系统功能的分析,集合交并差系统功能如图1所示。集合的交并差运算系统1SBis图1集合的交并差运算系统功能图通过上图的功能分析,把整个系统划分为3个模块:1、集合的交集运算,该模块主要实现:找出集合1与集合2中相同的 7匕素并输出,借助函数voidjiao()来实现;2、集合的并集运算,该模块主要实现:将集合1与集合2中的元素集中于一起,并且全部输出,借助函数voidbingO来实现;3、集合的差集运算,该模块主要实现:集合1减去集合2输出所得结果;集合2减去集合1输出所得结果,借助函数voidcha()来实现三、系统的设计与实现(一)集合的交集运算:voidjiao()分析:首先输出集合1与集合2的元素,然后输出集合1与集合2中相同的元素。流程图如图2所示。图2:jiao(pointer*headl,pointer*head2,pointer朴ead3)流程图该模块的具体代码如下所示。voidjiao(pointer氺headl,pointer氺head2,pointer*head3){pointer氺pl,氺p2,氺p3;pl=headl->link;while(pl!=NULL){p2=head2->1ink;while((p2!=NULL)&&(p2-〉data!=pl-〉data)){p2二p2-〉link;}if((p2!=NULL)&&(p2-〉data=p卜〉data)){p3=(pointer*)malloc(sizeof(structpointer));p3->data=pl~>data;p3->1ink=heac!3-〉link;head3->1ink=p3;pi二pl-〉link; (二)集合的并集运算:voidbingO分析:首先输出集合1与集合2的元素,然后输出集合1与集合2中的全部元素。流程图如图3所示。图3:bing(pointer*headl,pointer*head2,pointer*head3)'流程图该模块的具体代码如下所示。voidbing(pointer*headl,pointer*head2,pointer*head3)pointer氺pl,氺p2,氺p3;pi二headl-〉link;while(pl!=NULL){p3=(pointer*)malloc(sizeof(structpointer));p3-〉data=pl-〉data;p3->1ink=head3->1ink;head3~>link=p3;pl=pl->link;}p2=head2->1ink;while(p2!=NULL){pl=headl-〉link;while((pl!=NULL)&&(pl->data!=p2->data))pl=pl-〉link;if(pi:■丄){p3=(pointer*)malloc(sizeof(structpointer));p3->data=p2->data;p3-〉1ink=head3->link;head3->link=p3;p2=p2->link;}}(三)集合的差集运算:voidcha() 分析:首先输出集合1减去集合2的结果,然后输出集合2减去集合1中的结果。流程图如图4所示。图4:cha(pointer*headl,pointer*head2,pointer*head3)流程图该模块的具体代码如下所示。voidcha_l(pointer*headl,pointer氺head2,pointer*head3){pointer氺pl,氺p2,氺p3;pl=headl->link;while(pl!=NULL){p2=head2->1ink;while((p2!=NULL)&&(p2->data!=pl-〉data)){p2二p2-〉link;}if(p2==NULL){p3=(pointer*)malloc(sizeof(structpointer));p3->data=pl->data;p3-〉1ink=head3~>link;head3->link=p3;}pl=pl->link; 、系统测试(一)测试main()函数测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果★★★★★★★★★★★★★★===================下面开堆热厅學帝歩寧=========—★境飄入集盒〈MA/气养不结束〉请論入数痛:图5系统界面(二)测试voidjiao()函数测试该函数执行集合交集运算的执行结果dfghjS集合1是:gfdsa集合2是=jbgfd集合1与集合2交的值为dfg阁6交集执行结果(三)测试voidbing()函数测试该函数执行集合并集运算的执行结果。合1是:Lfdsa合2是:jhgfd合i与集合2并的值为ijasdfg阁7并集执行结果(四)测试voidcha()函测试该函数执行集合并集运算的执行结果 茱苜1是:gfdsa集合2是=jbgfd集合i与集合2差的值为:as集合2与集合i差的值为:hjas图8差集执行结果五、总结系统完成了执行计算集合的交集、并集以及差集的功能。系统虽然完整运行,但也有不足。系统的设计未能考虑到集合元素的唯一性,从键盘输入的集合元素在原样输出时,未能将重复元素剔除;再者,系统未能实现选择性操作,即输入集合1与集合2中的元素以后,按Enter便输出交集、并集与差集的全部结果。我的收获:通过课程设计,我学习到了许多内容。首先是对已学过的内容的尤其是上学期C++有了更深入的理解。其次,在程序编译过程中,我遇到Y许许多多的问题,这些问题大多数都是小问题,主要是对问题思考的不够全面的结果。但是在自己的反复检查、实验,以及老师的帮助下,这些问题都一一解决了。而在解决问题的过程中,我能够了解到我设计中的不足之处。程序编辑过程中,我也认识到了自己的不足,对已学过的知识是有所理解,也能够合理地运用,但对细节方面有所忽略,这也正是刚开始时发现程序无法正常运行却不知错在哪的原因。因此这让我懂得了,在学习的过程中要认真仔细。最后,程序设计让我将以学过的知识综合运用,我感觉编译程序确实很有意思。因为它不仅是一门课程,也是一门语言,我们要学好这门语言, 就要了解这门语言的“语法结构”,只有把话说清楚了,才能明白意思•,也只有把“话”说正确了,程序才能执行。六、附件(代码、部分图表)#include#includetypedefstructpointer{chardata;structpointer*link;}pointer;voidreaddata(pointer氺head){pointer氺p;chartmp;printf(〃t(输入’0’表示结束) 〃);printf(〃t请输入数掘: ");scanf(〃%c",&tmp);while(tmp!=’0’){p=(pointer*)malloc(sizeof(structpointer));p-〉data=tmp;p-〉link二head_〉link;head->link二p;scanf(〃%c〃,&tmp);voiddisp(pointer水head){pointer*p;p=head->link;while(p!=NULL)f1printf(〃%c〃,p->data);p=p->link;voidjiao(pointer氺headl,pointer*head2,pointer氺head3){pointer氺pl,氺p2,氺p3;pl=headl-〉link;while(pl!=NULL)p2=head2->link;while((p2!=NULL)&&(p2->data!=pl->data)) {p2=p2->1ink;}if((p2!=NULL)&&(p2->data=pl->data)){p3=(pointer*)malloc(sizcof(structpointer));p3-〉data=pl-〉data;p3->1ink=hea<13->1ink;head3->link=p3;pl=pl->link;voidbing(pointer*headl,pointer*head2,pointer*head3){pointer氺pi,氺p2,氺p3;pl=headl->link;while(pi!二NULL){p3=(pointer*)malloc(sizeof(structpointer));p3-〉data=pl-〉data;p3->1ink=head3->1ink;head3->link=p3;pl=pl->link;p2=head2->1ink;while(p2!=NULL){pl=headl->link;while((pl!=NULL)&&(pl->data!=p2-〉data))pl=pl->link;if(pl==NULL){p3=(pointer*)malloc(sizeof(structpointer));p3-〉data=p2-〉data;p3->link=head3->1ink;head3->link=p3;p2=p2->link;voidcha_l(pointer氺headl,pointer*head2,pointer*heacI3){pointer氺pl,氺p2,氺p3;pl=headl->link;while(pl!=NULL){p2=head2->link;while((p2!=NULL)&&(p2->data!=pl->data)){ p2=p2->link;}if(p2==NULL){p3=(pointer*)malloc(sizeof(structpointer));p3->data=pl->data;p3->1ink=head3->1ink;hcad3->link=p3;}pl=p卜〉link;voidcha2(pointer*headl,pointer*head2,pointer氺head3){pointer氺pl,氺氺p2=head2->1ink;while(p2!=NULL){pl=headl-〉link;while((pl!=NULL)&&(p卜〉data!=p2->data)){pl=pl-〉link;if(pl==NULL){p3=(pointer*)mal1oc(sizeof(structpointer));p3-〉data=p2->data;p3->1ink=head3->1ink;head3->link=p3;}p2二p2-〉link;mainO{pointer*headl,*head2,*head3;headl=(pointer*)malloc(sizeof(structpointer));headl->link=NULL;head2=(pointer*)malloc(sizeof(structpointer));head2->link=NULL;head3=(pointer*)malloc(sizeof(structpointer));head3-〉1ink=NL.LL;printfC’ ");printf(" ");printf(〃★★★★★★★★★★集合的交、并、差运算系统★★★★★★★★ 〃)printfC★==================请根据提示进行操作================★ 。printf(" printf(,z★=================下面开始执行操作步骤===============★rT)printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★、!!")printf(〃t请输入集合1: 〃);readdata(headl);printf(〃t请输入集合2: 〃);readdata(head2);printf(〃集合1是: 〃);disp(headl);printf(〃 集合2是An");disp(head2);printf(" 集合1与集合2交的值为: ");jiao(headl,head2,head3);disp(head3);head3->link=NULL;printf(" 集合1与集合2并的值为: ");bing(headl,head2,head3);disp(head3);head3-〉link二NULL;printfC 集合1与集合2差的值为:什");cha1(headl,head2,head3);disp(head3);printf(" 集合2与集合1差的值为: ");cha_2(headl,head2,head3);disp(head3);getchO;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭