1、 1 集合的并、交和差运算集合的并、交和差运算 实习报告实习报告 题目:编制一个演示集合的并、交和差运算的程序题目:编制一个演示集合的并、交和差运算的程序 一、需求分析一、需求分析 1.本演示程序中,集合的元素限制在小写字母本演示程序中,集合的元素限制在小写字母a-z之间。集合的大小不限制,之间。集合的大小不限制,集合的集合的 输入形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复输入形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复 字符或非法字符,程序运用时自动过滤去,输出的运算结果中将不含重复字符和非法字符。字符或非法字符,程序运用时自动过
2、滤去,输出的运算结果中将不含重复字符和非法字符。 2.演示程序以用户和计算机对话的形式进行,即在计算机终端中显示提示信息之后,有演示程序以用户和计算机对话的形式进行,即在计算机终端中显示提示信息之后,有 用户自行选择下一步命令,相应输入数据和运算结果在其后显示。用户自行选择下一步命令,相应输入数据和运算结果在其后显示。 3.程序的执行程序的执行命令有:命令有:1)选择操作)选择操作 2)任意键清屏)任意键清屏 4.数据测试数据测试 (1) Set1=”magazine”, Set2=paper”, Set1SetSet2=2=”aegimnprzaegimnprz”,Set1,Set1Set2
3、=Set2=”aeae”,Set1,Set1- -Set2=Set2=”gimnzgimnz”; ; (2) Set1=(2) Set1=”012oper4a6tion89012oper4a6tion89”,Set2=,Set2=”error dataerror data”, , Set1Set1Set2=Set2=”adeinoprtadeinoprt”,Set1,Set1SetSet2=2=”aeortaeort”, , Set1Set1- -Set2=Set2=”inpinp”. . 二、概要设计二、概要设计 为实现上述功能为实现上述功能,需要顺序表,需要顺序表这这个抽象数据类型。个抽象
4、数据类型。 1.顺序表抽象数据类型定义顺序表抽象数据类型定义 ADT sqlist 数据对象:数据对象:D=ai|ai iElemset,i=1,2,3,Elemset,i=1,2,3,n,n=0n,n=0 数据关系:数据关系:R1=|ai- -1,ai1,aiD,i=2,D,i=2, nn 基本操作:基本操作: InitList( /返回状态类型 typedef char ElemType; /元素类型 typedef struct ElemType *elem; int length; int listsize; SqList; Status InitList(SqList if(!L.e
5、lem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK; int ListLength(SqList 3 Status ListInsert(SqList if(L.length=L.listsize) ElemType *newbase = (ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType); if(!newbase)exit(OVERFLOW); L.elem = newbase; L.listsize+=LISTIN
6、CREMENT; ElemType *q= for(ElemType *p = p=q;-p) *(p+1)=*p; *q=e; +L.length; return OK; Status CreatSqList(SqList for(int i=0;i=a return OK; Status GetElem(SqList L,int i,ElemType else e=*(L.elem+i-1); return OK; Status ListDelete(SqList ElemType *p = e=*p; ElemType *q=L.elem+L.length-1; for(+p;p=q;+p) *(p-1)=*p; -L.length; return OK; void paichu(SqList l=ListLength(L); ElemType e,u; for(i=1;i=l-