资源描述:
《java实现复数,有序链表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、java实现复数,有序链表1.建立复数对象,公共方法有加、减、乘、除、求模,重载toString()输出(重写);考虑静态方法和动态方法???。如有可能考虑操作符重载。2.建立复数有序链表结构的集合(复数不能重复,按照模的大小排序),链表的操作有添加,删除,查找。3.对上面的复数链表集合,做一个方法从文本文件读取复数添加到有序链表,另一个方法把链表导出到文本文件。注:文本文件的复数可以用逗号分隔。读取的文本文件的复数是无序的。4.考虑多线程的处理,对链表操作的添加和删除加锁,设置最大集合数量,如果链表为
2、空,不能删除,如果复数数量达到最大,不能添加。packagecom.adu.vo;//复数类,及其加减乘除方法,方法中有静态的和非静态的publicclassComplexNumb{privatedoublereal;//实部privatedoubleimg;//虚部privatedoublezmod;//模//构造方法publicComplexNumb(){real=0;img=0;}publicComplexNumb(doubler,doublei){real=r;img=i;//zmod=Math
3、.hypot(real,img);}//static修饰的静态方法,+-*/需要如insert(1,ComplexNumb.add(c1,c2))publicComplexNumb(ComplexNumbcomplex){this(complex.getReal(),complex.getImg());}publicdoublegetReal(){returnreal;}publicvoidsetReal(doublereal){this.real=real;}publicdoublegetImg(){
4、returnimg;}publicvoidsetImg(doubleimg){this.img=img;}//重写tostring方法publicStringtoString(){return""+this.real+"+"+this.img+"i";}//求模publicvoidsetZMode(){zmod=Math.hypot(real,img);}publicstaticdoublesetZMode(doublereal,doubleimg){returnMath.hypot(real,img)
5、;}publicdoublegetZMod(){setZMode();returnzmod;}//+-*/addsubtractmultiplydivide可以写成静态的如下,是全局所有类共有,占有一片内存publicComplexNumbadd(ComplexNumbc1){ComplexNumbcm=newComplexNumb(0,0);cm.real=c1.real+this.real;cm.img=c1.img+this.img;cm.zmod=setZMode(cm.real,cm.img)
6、;//cm.toString();returncm;}publicstaticComplexNumbincrease(ComplexNumbc1,ComplexNumbc2){ComplexNumbcm=newComplexNumb(0,0);cm.real=c1.real+c2.real;cm.img=c1.img+c2.img;cm.zmod=setZMode(cm.real,cm.img);//cm.toString();returncm;}publicComplexNumbsubtract(Co
7、mplexNumbc2){ComplexNumbcm=newComplexNumb(0,0);cm.real=this.real-c2.real;cm.img=this.img-c2.img;cm.zmod=setZMode(cm.real,cm.img);//cm.toString();returncm;}publicstaticComplexNumbmultiply(ComplexNumbc1,ComplexNumbc2){ComplexNumbcm=newComplexNumb(0,0);cm.r
8、eal=c1.real*c2.real-c1.img*c2.img;cm.img=c1.img*c2.real+c2.img*c1.real;cm.zmod=setZMode(cm.real,cm.img);//cm.toString();returncm;}publicComplexNumbdivide(ComplexNumbc2){ComplexNumbcm=newComplexNumb(0,0);doublem1=(this.real