当前位置:文档之家› 集合运算Java课程设计报告

集合运算Java课程设计报告

《Java程序设计》课程设计报告题目:集合运算专业:计算机科学与技术班级:13(3)姓名:指导教师:时慧琨成绩:计算机学院2016年3月8日目录一、设计内容及要求 (2)1.1运用java语言实现两个集合的交、并、差运算 (2)二、概要设计 (2)三、设计过程或程序代码 (3)3.1流程图 (3)3.2程序代码 (3)四、设计结果与分析 (7)4.1运行结果 (7)4.2程序分析 (8)4.3总结 (12)五、参考文献 (11)一、设计内容及要求1.1运用java语言实现两个集合的交、并、差运算(1) 输出两个集合的交集(2) 输出两个集合的并集(3) 输出两个集合的差集二、概要设计集合的运算是常用的数学计算,为了更加方便的进行此类运算,在此设计了一个简单的集合运算java程序,用于对集合间的交、并、差运算。

本程序运用数组代表集合,主要运用循环语句和方法调用,通过对集合元素间的逐个比较,输出符合条件的元素,从而实现运算结果输出。

该java程序简单,清晰,明了,用户易懂易用,能较好得实现集合间的简单运算。

三、设计过程或程序代码3.1流程图图3.1.13.2程序代码public class Collect {private int arr1[],arr2[];public Collect(int arrayNumber1[],int arrayNumber2[]){arr1=arrayNumber1;arr2=arrayNumber2;}Collect(Collect d){arr1=d.arr1;arr2=d.arr2;}public static void methodPrint(int[] arr,int len){int i;for(i=0;i<len-1;i++)System.out.print(arr[i]+",");//除最后一个元素外,其他每个元素后面应该加一个逗号以示间隔System.out.println(arr[i]);//最后一个元素不要加逗号}Public void methodJiaoji(int[]arrayFirst,int[]arraySecond){int k=0;int newArray[];newArray=new int[20];for(int i=0;i<arrayFirst.length;i++){for(int j=0;j<arraySecond.length;j++){if(arraySecond[j]==arrayFirst[i]){newArray[k++]=arraySecond[j];}}} methodPrint(newArray,k);}public void methodBingji(int[] arrayFirst,int[] arraySecond){int k=0;int newArray[];newArray=new int[20];boolean yes;for(int i=0;i<arrayFirst.length;i++){newArray[k++]=arrayFirst[i];}for(int i=0;i<arraySecond.length;i++){yes=true;for(int j=0;j<arrayFirst.length;j++){if(arraySecond[i]==arrayFirst[j]){yes=false;break;}}if(yes)newArray[k++]=arraySecond[i];}methodPrint(newArray,k);}public void methodChaji(int[] arrayFirst,int[] arraySecond){ int k=0;int newArray[];newArray=new int[20];boolean yes;for(int i=0;i<arrayFirst.length;i++){yes=true;for(int j=0;j<arraySecond.length;j++){if(arraySecond[j]==arrayFirst[i]){yes=false;break; }}if(yes)newArray[k++]=arrayFirst[i];}methodPrint(newArray,k);}public static void main(String[] args){int array1[]={1,2,3,4,5,6,7,8,9,10};int array2[]={5,6,7,8,9,10,11,12,13,14,15};int i,j;Collect number=new Collect(array1,array2);System.out.print("集合A为:"); /*输出集合A*/ for(i=0;i<array1.length;i++)System.out.print(array1[i]+" ");System.out.println();System.out.print("集合B为:"); /*输出集合B*/ for(j=0;j<array2.length;j++)System.out.print(array2[j]+" ");System.out.println();System.out.print("交集A∩B为:"); /*输出集合A∩B*/ number.methodJiaoji(array1,array2);System.out.print("并集A∪B为:"); /*输出集合A∪B*/number.methodBingji(array1,array2);System.out.print("差集A-B为:"); /*输出集合A-B*/number.methodChaji(array1,array2);System.out.print("差集B-A为:"); /*输出集合B-A*/number.methodChaji(array2,array1);}}四、设计结果与分析4.1运行结果图4.1.14.2程序分析(1)程序:public class Collect {private int arr1[],arr2[];public Collect(int arrayNumber[],int arrayNumber2[]){arrayNumber1=arr1;arrayNumber2=arr2; }Collect(Collect d){arr1=d.arr1;arr2=d.arr2; }功能:首先定义一个Collect类,然后定义了两个私有的类对象。

然后定义个两个不同参数的Collect类的构造方法。

(2)程序:public static void methodPrint(int[] arr,int len){int i;for(i=0;i<len-1;i++){ System.out.print(arr[i]+","); //除最后一个元素外,其他每个元素后面应该加一个逗号以示间隔}System.out.println(arr[i]); //最后一个元素不要加逗}功能:编写了一个methodPrint方法,以数组名arr[]和数组实际元素的个数len为参数,用于输出数组,即输出集合。

(3)程序:public static void methodJiaoji(int[] arrayFirst,int[] arraySecond){int k=0;int newArray[];newArray=new int[20];for(int i=0;i<arrayFirst.length;i++){for(int j=0;j<arraySecond.length;j++){if(arraySecond[j]==arrayFirst[i]){newArray[k++]=arraySecond[j];}}} methodPrint(newArray,k);}功能:编写方法methodJiaoji,用于实现两个集合的交运算。

实现方法为先定义一个新数组,然后用第一个数组的每一个元素去和第二个数组的所有元素比较,如果能在第二个数组中找到此元素,就把这个元素赋给新数组,最后调用方法输出新数组。

(4)程序:public static void methodBingji(int[] arrayFirst,int[] arraySecond){int k=0;int newArray[];newArray=new int[20];boolean yes;for(int i=0;i<arrayFirst.length;i++){ newArray[k++]=arrayFirst[i];} //先把第一个数组赋到新数组中for(int i=0;i<arraySecond.length;i++){ yes=true;for(int j=0;j<arrayFirst.length;j++){ if(arraySecond[i]==arrayFirst[j]){ yes=false;break;}}if(yes) newArray[k++]=arraySecond[i];}methodPrint(newArray,k);}功能:编写方法methodBingji,用于实现两个集合的并运算。

实现方法为先定义一个新数组,先把第一个数组中的元素全部赋到新数组中。

然后用第二个数组的每一个元素去和第一个数组的所有元素比较,如果第一个数组中没有该元素,就把这个元素继续接着赋给新数组,最后调用方法输出新数组。

(5)程序:public static void methodChaji(int[] arrayFirst,int[] arraySecond){int k=0;int newArray[];newArray=new int[20];boolean yes;for(int i=0;i<arrayFirst.length;i++){ yes=true10for(int j=0;j<arraySecond.length;j++){ if(arraySecond[j]==arrayFirst[i]){ yes=false;break;}}if(yes)newArray[k++]=arrayFirst[i];}methodPrint(newArray,k);}功能:编写方法methodChaji,用于实现两个集合的差运算。

相关主题