java语言交集并集差集的程序设计报告.doc_第1页
java语言交集并集差集的程序设计报告.doc_第2页
java语言交集并集差集的程序设计报告.doc_第3页
java语言交集并集差集的程序设计报告.doc_第4页
java语言交集并集差集的程序设计报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 课程名称 Java语言课程设计 题目名称 集合的并、交和差运算 学生学院 应用数学学院 专业班级_ 11信息安全(2)_学 号 3111008245 学生姓名 吴辰修 指导教师 刘科峰 2013 年 10 月 28 日一、课程设计的内容用Java语言实现单链表的基本操作,并实现集合的并、交和差运算。多人合作的要使用图形界面进行数据输入、输出。二、课程设计的要求与数据所写报告要表达清楚,让老师明白你做了哪些工作,掌握了哪些知识。你所做的课程设计有何特点和优点。三、程序设计思想、源代码 通过单链表实现集合的交、并、差运算。主要有三部分:节点的构造、单链表的建立、集合的三个运算。 /* * To change this template, choose Tools | Templates * and open the template in the editor. */package set;class LNode char data; LNode next; LNode() data= ; next=null; LNode(char data1,LNode next1) /节点的构造方法(特殊的重载) data = data1; next = next1; public void setData(char data1) data = data1; public char getData() return data; public void setNext(LNode next1) next = next1; public LNode getNext() return next; public class Set LNode head; / 头结点 int length; / 长度 Set() /链表的构造方法 head = new LNode(); /调用子类的构造方法 length = 0; public void Initset(char data1) /用char数组创建集合链; for (int i = 0; i data1.length; +i) Inset(data1i); public void Inset(char item) /用char类型数据插入节点的方法 LNode LNode = new LNode(item, null); /创建一个节点LNode LNode temp = head; /增加一个节点 LNode.setNext(head.getNext(); head.setNext(LNode); length+; public void delete(int n) /在指定位置删除节点方法; if(nlength) System.out.print(位置不存在!); LNode temp = head; for(int i=0; in-1;i+) temp = temp.getNext(); temp.setNext(temp.getNext().getNext(); length-; public void print() /遍历所有节点,输出每个节点数据; LNode temp = head; System.out.print(); while (temp.getNext() != null) System.out.print(temp.getNext().getData() + ,); temp = temp.getNext(); System.out.print(); System.out.println(链表长度为:+length); public Set jiaoji(Set set1, Set set2) Set set3 ; set3=new Set(); LNode temp1 = set1.head.getNext(); /temp1引用链表set1的第一个结点 LNode temp2 = set2.head.getNext(); /temp2引用链表set2的第一个结点 while (temp1 != null & temp2 != null) while (temp2 != null) if (temp1.getData() = temp2.getData() set3.Inset(temp1.getData(); temp2 = temp2.getNext(); /引用不断往后移 temp1 = temp1.getNext(); /当前引用不断往下移 temp2 = set2.head; / 回到头结点 System.out.printf(两集合的交集为: ); return set3; public Set bingji(Set set1, Set set2) Set set4; set4=new Set(); LNode temp1 = set1.head.getNext(); /指向头结点的下一个结点 LNode temp2 = set2.head.getNext(); while (temp1 != null) /相当于求差集; while (temp2 != null) if (temp1.getData() = temp2.getData() break; temp2 = temp2.getNext(); if (temp2 = null) set4.Inset(temp1.getData(); temp2 = set2.head.getNext(); temp1 = temp1.getNext(); while (temp2 != null) /插入set2数据; set4.Inset(temp2.getData(); temp2 = temp2.getNext(); System.out.printf(两集合的并集为:); return set4; public Set chaji(Set set1, Set set2) Set set5; set5=new Set(); LNode temp1 = set1.head.getNext(); /set1当前的位置 LNode temp2 = set2.head.getNext(); while (temp1 != null & temp2 != null) while (temp2 != null) if (temp1.getData() = (temp2.getData() /两数据相同,则跳出该循环; break; temp2 = temp2.getNext(); if (temp2 = null) /插入temp1的数据到set5;即得到集合1中与集合2不同的数据; set5.Inset(temp1.getData(); temp1 = temp1.getNext(); temp2 = set2.head; System.out.printf(集合1减去集合2的差集为:); return set5; public static void main(String args) Set set1 = new Set(); Set set2 = new Set(); Set set3 = new Set(); Set set4 = new Set(); Set set5 = new Set(); char ch1=1,2,3,4,; char ch2=2,3,4,5 ; set1.Initset(ch1); set2.Initset(ch2); System.out.printf(集合1为: ); set1.print(); System.out.printf(集合2为: ); set2.print(); set3=set1.jiaoji(set1, set2); set3.print(); set4=set1.bingji(set1, set2); set4.print(); set5=set1.chaji(set1, set2); set5.print(); 运行结果: 4、 问题探讨与总结 这次为期一周的Java语言课程设计对我印象极为深刻,开始时,我还感到比较的迷茫,仅仅可以用一些基本的知识来写一些基本的语句,而对于集合运算整个程序的设计却是非常迷茫,经过一周的学习,加上同学的请教等现在对于自己的程序达到了完全的理解,在以后同样的问题上,我相信自己就可以很轻松的解决了。在这期间我们也遇到了好多的困难,但是通过老师的教导和对一些文献的参考等,使得我对知识有了更加深入的了解,这对我们以后的工作有很大的帮助,在这里向老师表示由衷的感谢。一周的Java语言课程设计结束了。原计划的设计思想也基本实现,回首整个过程,我深刻的体会到了学无止境的道理,不仅加深了我对数据结构知识的了解和掌握,而且对程序的设计也有了更加深入的体会。与此同时,我的设计报告仍然有一些不足之处,一些集合元素判断问题等没有设计。因此不是很完美,但是学习的真正目的在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论