欢迎来到天天文库
浏览记录
ID:23592611
大小:371.50 KB
页数:17页
时间:2018-11-09
《java语言课程设计--集合的并、交和差运算》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计课程名称Java语言课程设计题目名称集合的并、交和差运算学生学院应用数学学院专业班级_______学号____________学生姓名_______________指导教师2013年10月28日目录一、程序介绍1、程序界面2、主要功能二、实验方案及主要代码1、结点类2、链表类2.1构造方法2.2链表元素异常检测2.3增加元素2.4显示链表2.5链表排序2.6String链表排序2.7集合交运算2.8集合并运算2.9集合差运算3、窗口类3.1集合元素类型(单选框按钮组)3.2集合交、并、差运算按钮3.3Rese
2、t按钮3.4Search按钮3.5排序按钮三、实验总结1.我负责的工作2.问题及讨论2.1结点元素的数据类型object与泛型2.2集合元素的分类及其优点2.3集合并交差算法的时间复杂度3.实验总结一、程序介绍1、程序界面:2、主要功能有:1)集合的元素类型有三个选择,分别是Integer、Double、String。2)通过编辑框输入链表,鼠标移到编辑框会提示“输入集合元素,以空白符隔开”,从而实现整条链表一起输入。3)如果编辑框输入元素与已选择的操作不同或元素输入重复,便会分别弹出对话框提示“集合中元素类型
3、不合法”、“元素不可重复”。4)按钮Union、Intersec、Difference分别实现集合的交、并、差运算。5)按钮Reset重置文本编辑框。6)点击按钮Search会弹出搜索替换对话框,选择需替换的链表(collection1或collection2),输入搜索元素和替换元素,点击Ensure替换。7)对话框底层的按钮可实现对result编辑框进行升序(降序)排序。3、数据处理集合并运算交运算:差运算:降序排序:查找替换:一、实验方案及主要代码程序有三个类,分别是节点类(泛型)、链表类、和窗体类。1.节点类
4、classNode{//结点类Tdata;Nodenext;}节点类运用了泛型,里面有两个成员变量,分别是结点存放的数据data,结点所指向的下一个结点next。2.链表类链表类类名:ListLink有两个成员变量:Nodehead;//指向链表的头引用intlength;//链表的长度主要的方法有:2.1构造方法以整形为例,三个类型的元素都有自己的构造方法无形参的构造方法,头结点为空,长度为0.publicListLink(intt){//intt仅为实现方法的重构,无实际作用head=newNode5、eger>();head.next=null;length=0;}用编辑框的字符串初始化链表publicListLink(StringstrT,intt)throwsException{//参数intt仅为实现方法的重构,无实际作用//从文本框中获取字符串strT,并用其来生成一个集合Nodep;head=newNode();String[]str=strT.split("\s");if(!checkRepeat(str)){thrownewException("整数集合不可有重6、复的元素!");}if(!checkIntAbnormal(str)){thrownewException("整数集合中元素类型不合法");}length=str.length;head.next=null;for(inti=length-1;i>=0;i--){p=newNode();p.data=Integer.parseInt(str[i]);p.next=head.next;head.next=p;}}Double型和String型的构造方法同理.Double型:Node改成Node7、ble>Integer.parseInt(str[i])改成Double.parseDouble(str[i]);String型:Node改成Nodep.data=Integer.parseInt(str[i]);改成p.data=str[i];2.1链表元素异常检测由集合的知识可知,集合的元素不可重复,故在初始化链表时,需检测集合里的元素是否重复。检测重复代码如下:publicbooleancheckRepeat(Stringstr[]){for(inti=0;i8、th;i++){for(intj=(i+1);j
5、eger>();head.next=null;length=0;}用编辑框的字符串初始化链表publicListLink(StringstrT,intt)throwsException{//参数intt仅为实现方法的重构,无实际作用//从文本框中获取字符串strT,并用其来生成一个集合Nodep;head=newNode();String[]str=strT.split("\s");if(!checkRepeat(str)){thrownewException("整数集合不可有重
6、复的元素!");}if(!checkIntAbnormal(str)){thrownewException("整数集合中元素类型不合法");}length=str.length;head.next=null;for(inti=length-1;i>=0;i--){p=newNode();p.data=Integer.parseInt(str[i]);p.next=head.next;head.next=p;}}Double型和String型的构造方法同理.Double型:Node改成Node7、ble>Integer.parseInt(str[i])改成Double.parseDouble(str[i]);String型:Node改成Nodep.data=Integer.parseInt(str[i]);改成p.data=str[i];2.1链表元素异常检测由集合的知识可知,集合的元素不可重复,故在初始化链表时,需检测集合里的元素是否重复。检测重复代码如下:publicbooleancheckRepeat(Stringstr[]){for(inti=0;i8、th;i++){for(intj=(i+1);j
7、ble>Integer.parseInt(str[i])改成Double.parseDouble(str[i]);String型:Node改成Nodep.data=Integer.parseInt(str[i]);改成p.data=str[i];2.1链表元素异常检测由集合的知识可知,集合的元素不可重复,故在初始化链表时,需检测集合里的元素是否重复。检测重复代码如下:publicbooleancheckRepeat(Stringstr[]){for(inti=0;i8、th;i++){for(intj=(i+1);j
8、th;i++){for(intj=(i+1);j
此文档下载收益归作者所有