版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机学院 Java程序设计课程设计报告学号2015-2016学年 第2学期1308210204Java程序设计课程设计报告题目:集合运算专业:计算机科学与技术班级:13(3)姓名:指导教师:时慧琨成绩:计算机学院2016年3月8日3目录一、设计内容及要求21.1运用java语言实现两个集合的交、并、差运算2二、概要设计2三、设计过程或程序代码33.1流程图33.2程序代码3四、设计结果与分析74.1运行结果74.2程序分析84.3总结12五、参考文献13一、设计内容及要求1.1运用java语言实现两个集合的交、并、差运算(1) 输出两个集合的交集(2) 输出两个集合的并集(3) 输出两个集合
2、的差集二、概要设计集合的运算是常用的数学计算,为了更加方便的进行此类运算,在此设计了一个简单的集合运算java程序,用于对集合间的交、并、差运算。本程序运用数组代表集合,主要运用循环语句和方法调用,通过对集合元素间的逐个比较,输出符合条件的元素,从而实现运算结果输出。该java程序简单,清晰,明了,用户易懂易用,能较好得实现集合间的简单运算。三、设计过程或程序代码3.1流程图输出方法交集方法并集方法差集方法输出开始定义并初始化数组结束图3.1.13.2程序代码 public class Collect private int arr1,arr2; public Collect(int arra
3、yNumber1,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;ilen-1;i+) System.out.print(arri+,);/除最后一个元素外,其他每个元素后面应该加一个逗号以示间隔 System.out.println(arri);/最后一个元素不要加逗号 Public void methodJiaoj
4、i(intarrayFirst,intarraySecond) int k=0; int newArray; newArray=new int20; for(int i=0;iarrayFirst.length;i+) for(int j=0;jarraySecond.length;j+) if(arraySecondj=arrayFirsti) newArrayk+=arraySecondj; methodPrint(newArray,k); public void methodBingji(int arrayFirst,int arraySecond) int k=0; int newAr
5、ray; newArray=new int20; boolean yes; for(int i=0;iarrayFirst.length;i+) newArrayk+=arrayFirsti; for(int i=0;iarraySecond.length;i+) yes=true; for(int j=0;jarrayFirst.length;j+) if(arraySecondi=arrayFirstj) yes=false; break; if(yes) newArrayk+=arraySecondi; methodPrint(newArray,k); public void metho
6、dChaji(int arrayFirst,int arraySecond) int k=0; int newArray; newArray=new int20; boolean yes; for(int i=0;iarrayFirst.length;i+) yes=true; for(int j=0;jarraySecond.length;j+) if(arraySecondj=arrayFirsti) yes=false; break; if(yes) newArrayk+=arrayFirsti; methodPrint(newArray,k); public static void m
7、ain(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;iarray1.length;i+) System.out.print(array1i+ ); System.out.println(); System.out.print(集合B为:); /*输出集合B*/ for(j=0;ja
8、rray2.length;j+) System.out.print(array2j+ ); System.out.println(); System.out.print(交集AB为:); /*输出集合AB*/ number.methodJiaoji(array1,array2); System.out.print(并集AB为:); /*输出集合AB*/ number.methodBingji(array1,array2); System.out.print(差集A-B为:); /*输出集合A-B*/ number.methodChaji(array1,array2); System.out.p
9、rint(差集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类,然后定义了两个
10、私有的类对象。然后定义个两个不同参数的Collect类的构造方法。(2)程序:public static void methodPrint(int arr,int len) int i; for(i=0;ilen-1;i+) System.out.print(arri+,); /除最后一个元素外,其他每个元素后面应该加一个逗号以示间隔 System.out.println(arri); /最后一个元素不要加逗 功能:编写了一个methodPrint方法,以数组名arr和数组实际元素的个数len为参数,用于输出数组,即输出集合。(3)程序:public static void methodJia
11、oji(int arrayFirst,int arraySecond) int k=0; int newArray; newArray=new int20; for(int i=0;iarrayFirst.length;i+) for(int j=0;jarraySecond.length;j+) if(arraySecondj=arrayFirsti) newArrayk+=arraySecondj; methodPrint(newArray,k); 功能:编写方法methodJiaoji,用于实现两个集合的交运算。实现方法为先定义一个新数组,然后用第一个数组的每一个元素去和第二个数组的所有
12、元素比较,如果能在第二个数组中找到此元素,就把这个元素赋给新数组,最后调用方法输出新数组。(4)程序:public static void methodBingji(int arrayFirst,int arraySecond) int k=0; int newArray; newArray=new int20; boolean yes; for(int i=0;iarrayFirst.length;i+) newArrayk+=arrayFirsti; /先把第一个数组赋到新数组中 for(int i=0;iarraySecond.length;i+) yes=true; for(int j
13、=0;jarrayFirst.length;j+) if(arraySecondi=arrayFirstj) yes=false; break; if(yes) newArrayk+=arraySecondi; methodPrint(newArray,k); 功能:编写方法methodBingji,用于实现两个集合的并运算。实现方法为先定义一个新数组,先把第一个数组中的元素全部赋到新数组中。然后用第二个数组的每一个元素去和第一个数组的所有元素比较,如果第一个数组中没有该元素,就把这个元素继续接着赋给新数组,最后调用方法输出新数组。(5)程序: public static void metho
14、dChaji(int arrayFirst,int arraySecond) int k=0; int newArray; newArray=new int20; boolean yes; for(int i=0;iarrayFirst.length;i+) yes=true11for(int j=0;jarraySecond.length;j+) if(arraySecondj=arrayFirsti) yes=false; break; if(yes)newArrayk+=arrayFirsti; methodPrint(newArray,k); 功能:编写方法methodChaji,用于
15、实现两个集合的差运算。实现方法为先定义一个新数组,然后用第一个数组的每一个元素去和第二个数组的所有元素比较,如果第二个数组中没有该元素,就把这个元素继续接着赋给新数组,如果第二个数组中有该元素则不赋值,break跳出直接进行下一个循环。最后调用方法输出新数组。(6)程序: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); Sys
16、tem.out.print(集合A为:); /*输出集合A*/ for(i=0;iarray1.length;i+) System.out.print(array1i+ ); System.out.println(); System.out.print(集合B为:); /*输出集合B*/ for(j=0;jarray2.length;j+) System.out.print(array2j+ ); System.out.println(); System.out.print(交集AB为:); /*输出集合AB*/ number.methodJiaoji(array1,array2); Syst
17、em.out.print(并集AB为:); /*输出集合AB*/ 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);功能:编写main函数,实例化两个数组,然后先以集合的形式输出这两个数组,然后通过调用之前编写的类方法,实现并输出集合的交、并、差运算。4.3总结 在这大半个学期里,我在专
18、业老师的带领下进行了Java课程及上机实验的学习。在这之前,因为我们已经学过C语言和计算机基础这两门课程,对编程有了一定的了解,所以相对而言Java上手得还比较快。再加上Java没有指针,我觉得这门语言更好学也更实用了。 程序的理解和调试有时还是很复杂的,我一开始弄得有点烦躁,可后来在通过自己的慢慢摸索,错误越来越少的时候,我越来越能体会到其中的乐趣,也越来越有信心了,所以这学期的上机实验课我总是尽力在课堂内就完成了,很开心啊! 这次做集合的运算我也是折腾了好久,一开始老是调用方法不成功,还有把在整个数组作为参数传递给方法不会用,后来在java考试复习中才从课外书上看到了相关的方法,顿时豁然开朗,问题也迎刃而解了!所以以后要想把一门
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024幼儿园租赁合同(包括幼儿园特色课程开发及教学成果展示)3篇
- 2016-2020年印度尼西亚投资环境分析及前景预测报告
- 出差管理制度及出差标准
- 2024年租房付款条款3篇
- 2025年度离婚协议书定制与婚姻财产分割法律援助合同3篇
- 2024版消防安装工程施工合同书
- 重庆旅游职业学院《病原微生物学实验》2023-2024学年第一学期期末试卷
- 2025年度15%股权转让与市场推广服务合同2篇
- 山西大学《航空计算机组成与结构》2023-2024学年第一学期期末试卷
- 2025年度餐厅智能化改造承包经营合同3篇
- 变电一次设备标准缺陷库
- 通风设施标准
- 酒店市场营销教案
- 宠物智能用品项目计划书【模板范文】
- 药厂生产车间现场管理-PPT课件
- 轴与孔标准公差表
- 防火门施工方案
- 你比划我猜题目大全
- 人教PEP版2022-2023六年级英语上册期末试卷及答案(含听力材料)
- 社区护理学教学设计教案
- (完整word版)师徒结对活动记录表
评论
0/150
提交评论