欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    JAVA程序设计报告+集合运算.doc

    • 资源ID:82432756       资源大小:387.50KB        全文页数:18页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA程序设计报告+集合运算.doc

    JAVA程序设计报告-集合的运算(交并差)学生: 学号: 专业:信息工程(系统工程方向)院系:信息与控制学院实习时间:三周;指导老师:陈金辉 目录实验目的-试验设计-实验源程序-程序设计调试-不足及改进-如何美观-第一章 程序设计目的本次课程设计报告主要是老师对学生综合编程能力的一次评测,在掌握c,java语言的基础上,学会自主的编制一些基本的程序。本次的实验课题是对集合的运算进行实验。在java平台上开发出集合运算的程序。 第二章 程序设计思路一:集合的运算,我们要求的是集合的交并差。首先了解集合的交并差是如何让运算的。掌握运算的思路才能把程序设计思路调试出来。1:集合的交 对于给定的两个集合,要求出给定的两个集合的交集,交集和就是将其中都相同的元素找出来,将之放入第三个集合里,输出第三集合里的元素。如A=1,2,3,4;B=2,4,5,6; C=AB; C=2,4;需要中间变量C需要定义新的数组,int C=new int20; 2:集合的差 对于给定的两个集合,集合的差就是找出A集合中不同于B集合里面的元素,并将之存入第三集合C中,同样也需要引入第三集合,但是寻找A集合中不同于集合B中的方法不是很容易想到。需要先定义一个标记,从标记入手,依次寻找。将在下一章中重点介绍。A=1,2,3,4;B=2,4,5,6;,;3:集合的并 对于给定的两个集合,集合的并就是将A集合与B集合中的所有的元素都找一遍,相同的元素的只将其赋一次值于第三集合里。主要思想是在集合差的基础上,再做一次赋值运算就可以了,由于集合差的运算中,已经找到了中异于中的元素,然后再将中的元素再赋值于第三集合就可以了。A=1,2,3,4;B=2,4,5,6;,;,;二:主要思想:以数组的形式来代替集合,通过数组的运算来进行集合的运算。首先定义数组,再在数组中进行定义一个类,再定义成员变量,构造成员方法,成员方法是对数组也就是集合来进行操作的一种手段。由于是直接赋值了,我们找不到类。我们需要先进行定义一个类NewMain A=new NewMain();A.Aarray=c; A.Barray=d;通过地址调用来完成对数组的调用以及修改,因为我们不仅需要对整形数组进行交并差的运算,还要对实型数组,字符型数组进行运算。为了美化和方便程序,为了能实现一个友好的人机界面,就必须以多种方法的形式出现在你的java程序中。之前,我也试过了将多个函数模块写在主方法中,发现了如下问题:1. 在主方法中要用来存储第A,B中相异的元素的第三集合需要定义很多,和比较的中间变量也比较多。使程序看起来一是冗杂,而是出现问题很多,很难进行调试。2. 难以实现用户的自主性,因为在同一个主方法中,所有的函数都是按照顺序从上往下执行的不能选择性的跳过。这就增加函数的选择的难度。所以想到用多方法定义集合运算,在个定义了一个抽象的数据类型后,还需为这个类型的对象定义相应的操作。分别是整形的,实型的,字符型的交并差的方法。public static void intjihe();public void charjihe(char Aarray,char Barray)等等。其中三种集合的操作都是一样的。只是在形式上以及操作类型上出现一些细微的差别。但是算法本质上没有很大的差别。初始时想通过找到A,B集合中的A异于B的元素于是编出java函数代码。for(i=0;i<Aarray.length;i+) for(j=0;j<Barray.length;j+) if(Aarrayi!=Barrayj) Carray.k+=Aarrayi;结果发现这段函数根本实现不了其所期望的功能,根本原因在于他只是找到一个与B中第一个不一样的元素就输出,终止了操作。其结果肯定是不行的。以下附上正确的源代码:outer: for(i=0;i<Aarray.length;i+) for(j=0;j<Barray.length;j+) if(Aarrayi=Barrayj) continue outer; Carrayk+=Aarrayi;这是在函数还标记了一个位置好让函数在找到不同的元素,还能继续遍历下一个元素直至找到A中所有的元素不同于B的元素,能实现我们的目的。下面附上完整和美化后的函数源代码(函数的功能标记注释):import java.util.Scanner;public class NewMain static int Aarray; static int Barray;/*定义成员变量*/ static char Darray;/='a','b','c','d'/进行函数的测试 static char Earray;/='c','h','j' static double Garray; static double Harray;public static void intjihe()/整形集合的运算方法int Carray=new int20;int Darray=new int20;/开辟中间函数的空间 int i,j,k=0,l,t=0,m,n,r=0,b; outer: for(i=0;i<Aarray.length;i+) for(j=0;j<Barray.length;j+) if(Aarrayi=Barrayj) continue outer;/如果找到相同的返回函数头 继续做 Carrayk+=Aarrayi; t=k; /找到相同的符号(字母,数字,实型): /System.out.println("t="+t);/用于检查t是否进行正确操作 if(t=0) System.out.print("该集合的差集为空集"); else System.out.println("集合减的结果是 :"); System.out.println(); System.out.print("A-B="); System.out.print(" "); for(int g=0;g<t;g+) System.out.print(Carrayg+" ,");/输出集合减的结果 System.out.print(" "); for(j=0;j<Barray.length;j+) Carrayk+=Barrayj; /System.out.println(k);/*检测k赋值多少即是找到A,B中相同的数字多少*/ System.out.println(); System.out.println(); System.out.print("集合并的结果是:"); System.out.println(); System.out.print("AuB="); System.out.print(" "); for(l=0;l<k;l+) System.out.print(Carrayl+" ; "); System.out.print(" "); System.out.println(); System.out.println();/换行 用于美化 for(m=0;m<Aarray.length;m+) for(n=0;n<Barray.length;n+) if(Aarraym=Barrayn) Darrayr+=Aarraym; if(r=0) System.out.print("集合没有交集 !请重新检查输入是否合法!"); else System.out.print("集合交的结果:");/输出集合交的结果 System.out.print("AB=:"); System.out.println(); System.out.print("AB="); System.out.print(" "); for(b=0;b<r;b+) System.out.print(Darrayb+", "); System.out.print(" "); public void charjihe(char Aarray,char Barray)/字符型集合运算的方法 int i,j,k=0,l,t=0,m,n,r=0,b; char Carray=new char20; char Darray=new char20; outer: for(i=0;i<Aarray.length;i+) for(j=0;j<Barray.length;j+) if(Aarrayi=Barrayj) continue outer;/如果找到相同的返回函数头 继续做 Carrayk+=Aarrayi; t=k; /System.out.println("t="+t); if(t=0) System.out.print("该集合的差集为空集"); System.out.println("集合减的结果是:"); System.out.println(); System.out.print(" "); for(int g=0;g<t;g+) System.out.print(Carrayg+" ,"); System.out.print(" "); for(j=0;j<Barray.length;j+) Carrayk+=Barrayj; /System.out.println(k);/*检测k赋值多少即是找到A,B中相同的数字多少*/ System.out.println(); System.out.println(); System.out.print("集合并的结果是:");/找到不相同的目标后,把另外一个数组的元素调进去 System.out.println(); System.out.println(); System.out.print(" "); for(l=0;l<k;l+) System.out.print(Carrayl+" "); System.out.print(" "); System.out.println(); System.out.println(); for(m=0;m<Aarray.length;m+) for(n=0;n<Barray.length;n+) if(Aarraym=Barrayn) Darrayr+=Aarraym; if(r=0) System.out.print("集合没有交集 !请重新检查输入是否合法!"); else System.out.print("AB交集的结果是 :"); System.out.print("AB=:"); System.out.println(); System.out.println(); System.out.print(" "); for(b=0;b<r;b+) System.out.print(Darrayb+", "); System.out.print(" "); public void doublejihe(double Aarray,double Barray)/double型数据处理 int i,j,k=0,l,t=0,m,n,r=0,b; double Darray=new double20; double Carray=new double20; outer: for(i=0;i<Aarray.length;i+) for(j=0;j<Barray.length;j+) if(Aarrayi=Barrayj) continue outer; Carrayk+=Aarrayi; t=k; /寻找异于B中的数 /System.out.println("t="+t);/用于检查t是否进行正确操作 if(t=0) System.out.print("该集合的差集为空集"); else System.out.println("集合减的结果是:"); System.out.println(); System.out.print(" "); for(int g=0;g<t;g+) System.out.print(Carrayg+" ,"); System.out.print(" "); for(j=0;j<Barray.length;j+)/转移操作 Carrayk+=Barrayj; System.out.println(); System.out.println(); System.out.print("AB并的结果是:"); System.out.println(); System.out.println(); System.out.print(" "); for(l=0;l<k;l+) System.out.print(Carrayl+" "); System.out.print(" "); System.out.println(); System.out.println(); for(m=0;m<Aarray.length;m+) for(n=0;n<Barray.length;n+) if(Aarraym=Barrayn) Darrayr+=Aarraym; if(r=0) System.out.print("集合没有交集 !请重新检查输入是否合法!"); else System.out.print("集合交的结果是:"); System.out.print("AB=:"); System.out.println(); System.out.println(); System.out.print(" "); for(b=0;b<r;b+) System.out.print(Darrayb+", "); System.out.print(" "); public static void main(String args) NewMain A=new NewMain(); int c=1,2,3,4; int d=2,3,5,6; char e='a','b','c','d' /变量赋值操作 char f='c','h','j' double g=1.1,1.3/*/,1.7,2.1,4.0/*/; double h=1.0,1.2/*/,1.4,1.5/*/;/用于修改调试 A.Aarray=c; A.Barray=d; System.out.println("请输入你的选择 按下面提示操作 : "); System.out.println("1 :整形数组 ! 2 : 字符型数组!3 : 字符型数组 !"); Scanner a=new Scanner(System.in);/输入函数选择操作 int b=a.nextInt(); switch(b) case 1:A.intjihe();break; case 2: A.charjihe(e,f);break; case 3: A.doublejihe(g,h); java程序运行结果展示,运用NetBeans Ide 6.9.1软件运行:

    注意事项

    本文(JAVA程序设计报告+集合运算.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开