欢迎来到天天文库
浏览记录
ID:30921968
大小:146.00 KB
页数:13页
时间:2019-01-04
《结构课程设计----集合的并、交和差运算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实习报告题目:编制一个演示集合的并、交和差运算的程序班级:95001姓名张三学号:9500101完成日期:2008-6-16一、需求分析1.木程序中,集合的元素限定为小写字母字符[工・N],集合的大小n<27o集合输入的形式为一个以”冋千符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去。输出的运算结果字符串中将不含重复字符或非法字符。2.演示程序以用户与计算机交互方式执行,即在计算机终端上显示”提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(滤去输入屮的非法字符)和运算结果显示在其后。3.程序执行的命令包括:(1)[1]―
2、reateset1〃构造集合1;(2)2一crea[t]eset2〃构造集合2;(3)求并集;(4)求交集;(5)求羌集;(6)结束。构造集合1和构造集合2吋,需以字符串的形式键入集合元素。4•测试数据(1)Setl=HmagazineH,Set2=npaperH,SetluSet2=negimnprzH,SellcSet2=naeH,Setl-Set2=ngimnzn(2)Setl=n0120per4a6tion89,Set2=nerrordata",SetluSet2=ndeinoprtn,Setlnset2=naeort",Setl-Set2=ninpn二、概要设计为实现上述程序功能
3、,应以有序链表表示集合。为此,需要两个抽象数据类型:有序表和集合。1.有序表的抽象数据类型立义为:ADTOrderedList数据对象:D={ajlaieCharSet,i=l,2,…,n,n>0}数据关系:Rl={lai_1,aieD,ai.14、,则返冋True,否则返冋FalseoGetElem(L,pos)初始条件:有序表L已存在。操作结果:若l5、后插入元素e。ListTraverse(q,visit())初始条件:有序表L已存在,q指示L屮一个元素。操作结果:依次对L中q指示的元素开始的每个元素调用函数visitQo}ADTOrderedList1.集合的抽象数据类型定义为:ADTSet{数据对象:D={ailai为小写英文字母且互不相同,i=l,2,...,n,06、:集合S1和S2存在。操作结果:生成一个由S1和S2的并集构成的集合T。Intersection(&T,SLS2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的交集构成的集合T。Difference(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个rtlS1和S2的差集构成的集合ToPrintset(T)初始条件:集合T已存在。操作结果:按字母次序顺序显示集合T的全部元素。}ADTSet1.本程序包含四个模块1)主程序模块voidmain(){初始化:do{接受命令;处理命令;}while(n命令”!二”退出”)主程序模块集合单元模块有序表单元模块结点结构7、单元模块1)集合单元模块实现集合的抽象数据类型;2)有序表单元模块实现有序表的抽象数据类型;3)结点结构单元模块定义有序表的结点结构。各模块之间的调用关系如下:三、详细设计1.元素类型、结点类型和指针类型typedefcharElemType;元素类型*/typedefstructNodeTypefElemTypedata;NodeType*next;}NodeType,LinkType;/*结点类型,指针类型*/sta
4、,则返冋True,否则返冋FalseoGetElem(L,pos)初始条件:有序表L已存在。操作结果:若l5、后插入元素e。ListTraverse(q,visit())初始条件:有序表L已存在,q指示L屮一个元素。操作结果:依次对L中q指示的元素开始的每个元素调用函数visitQo}ADTOrderedList1.集合的抽象数据类型定义为:ADTSet{数据对象:D={ailai为小写英文字母且互不相同,i=l,2,...,n,06、:集合S1和S2存在。操作结果:生成一个由S1和S2的并集构成的集合T。Intersection(&T,SLS2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的交集构成的集合T。Difference(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个rtlS1和S2的差集构成的集合ToPrintset(T)初始条件:集合T已存在。操作结果:按字母次序顺序显示集合T的全部元素。}ADTSet1.本程序包含四个模块1)主程序模块voidmain(){初始化:do{接受命令;处理命令;}while(n命令”!二”退出”)主程序模块集合单元模块有序表单元模块结点结构7、单元模块1)集合单元模块实现集合的抽象数据类型;2)有序表单元模块实现有序表的抽象数据类型;3)结点结构单元模块定义有序表的结点结构。各模块之间的调用关系如下:三、详细设计1.元素类型、结点类型和指针类型typedefcharElemType;元素类型*/typedefstructNodeTypefElemTypedata;NodeType*next;}NodeType,LinkType;/*结点类型,指针类型*/sta
5、后插入元素e。ListTraverse(q,visit())初始条件:有序表L已存在,q指示L屮一个元素。操作结果:依次对L中q指示的元素开始的每个元素调用函数visitQo}ADTOrderedList1.集合的抽象数据类型定义为:ADTSet{数据对象:D={ailai为小写英文字母且互不相同,i=l,2,...,n,06、:集合S1和S2存在。操作结果:生成一个由S1和S2的并集构成的集合T。Intersection(&T,SLS2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的交集构成的集合T。Difference(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个rtlS1和S2的差集构成的集合ToPrintset(T)初始条件:集合T已存在。操作结果:按字母次序顺序显示集合T的全部元素。}ADTSet1.本程序包含四个模块1)主程序模块voidmain(){初始化:do{接受命令;处理命令;}while(n命令”!二”退出”)主程序模块集合单元模块有序表单元模块结点结构7、单元模块1)集合单元模块实现集合的抽象数据类型;2)有序表单元模块实现有序表的抽象数据类型;3)结点结构单元模块定义有序表的结点结构。各模块之间的调用关系如下:三、详细设计1.元素类型、结点类型和指针类型typedefcharElemType;元素类型*/typedefstructNodeTypefElemTypedata;NodeType*next;}NodeType,LinkType;/*结点类型,指针类型*/sta
6、:集合S1和S2存在。操作结果:生成一个由S1和S2的并集构成的集合T。Intersection(&T,SLS2)初始条件:集合S1和S2存在。操作结果:生成一个由S1和S2的交集构成的集合T。Difference(&T,S1,S2)初始条件:集合S1和S2存在。操作结果:生成一个rtlS1和S2的差集构成的集合ToPrintset(T)初始条件:集合T已存在。操作结果:按字母次序顺序显示集合T的全部元素。}ADTSet1.本程序包含四个模块1)主程序模块voidmain(){初始化:do{接受命令;处理命令;}while(n命令”!二”退出”)主程序模块集合单元模块有序表单元模块结点结构
7、单元模块1)集合单元模块实现集合的抽象数据类型;2)有序表单元模块实现有序表的抽象数据类型;3)结点结构单元模块定义有序表的结点结构。各模块之间的调用关系如下:三、详细设计1.元素类型、结点类型和指针类型typedefcharElemType;元素类型*/typedefstructNodeTypefElemTypedata;NodeType*next;}NodeType,LinkType;/*结点类型,指针类型*/sta
此文档下载收益归作者所有