Java课程设计建立复数对象公共方法有加、减、乘、除、求模

上传人:tia****nde 文档编号:36948494 上传时间:2018-04-04 格式:DOC 页数:6 大小:61.50KB
返回 下载 相关 举报
Java课程设计建立复数对象公共方法有加、减、乘、除、求模_第1页
第1页 / 共6页
Java课程设计建立复数对象公共方法有加、减、乘、除、求模_第2页
第2页 / 共6页
Java课程设计建立复数对象公共方法有加、减、乘、除、求模_第3页
第3页 / 共6页
Java课程设计建立复数对象公共方法有加、减、乘、除、求模_第4页
第4页 / 共6页
Java课程设计建立复数对象公共方法有加、减、乘、除、求模_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Java课程设计建立复数对象公共方法有加、减、乘、除、求模》由会员分享,可在线阅读,更多相关《Java课程设计建立复数对象公共方法有加、减、乘、除、求模(6页珍藏版)》请在金锄头文库上搜索。

1、Java 课程设计 1.建立复数对象,公共方法有加、减、乘、除、求模,重载 toString()输出;考虑静态方法 和动态方法。如有可能考虑操作符重载。 2.建立复数有序链表结构的集合(复数不能重复,按照模的大小排序) ,链表的操作有添加, 删除,查找。 3.对上面的复数链表集合,做一个方法从文本文件读取复数添加到有序链表,另一个方法 把链表导出到文本文件。注:文本文件的复数可以用逗号分隔。读取的文本文件的复数是 无序的。 3.考虑多线程的处理,对链表操作的添加和删除加锁,设置最大集合数量,如果链表为空, 不能删除,如果复数数量达到最大,不能添加。源代码如下: import java.util

2、.Scanner; public class fushu public float a,b; /定义成员变量fushu() /构造函数 1fushu(float x,float y) /构造函数 2a=x;b=y;public static void main(String args) /主函数System.out.println(“选择你要进行操作的序号:1.两个复数加;2.减;3.乘;4.除;5.求 模;n 输出你的选择,按回车。“);Scanner in=new Scanner(System.in); /从键盘获得选择int i=in.nextInt();System.out.print

3、ln(i);switch(i)case 1: /加System.out.println(“第一个实部:“)float a1=in.nextFloat();System.out.println(“第一个虚部:“);float b1=in.nextFloat();fushu c1=new fushu(a1,b1);System.out.println(“第 2 个实部:“);float a2=in.nextFloat();System.out.println(“第 2 个虚部:“);float b2=in.nextFloat();fushu c2=new fushu(a2,b2);fushu m=

4、jia(c1,c2);System.out.println(“结果为:“);print(m); break;case 2: /减System.out.println(“第一个实部:“);float a1=in.nextFloat();System.out.println(“第一个虚部:“);float b1=in.nextFloat();fushu c1=new fushu(a1,b1);System.out.println(“第 2 个实部:“);float a2=in.nextFloat();System.out.println(“第 2 个虚部:“);float b2=in.nextFl

5、oat();fushu c2=new fushu(a2,b2);fushu m=jian(c1,c2);System.out.println(“结果为:“);print(m);case 3: /乘System.out.println(“第一个实部:“);float a1=in.nextFloat();System.out.println(“第一个虚部:“);float b1=in.nextFloat();fushu c1=new fushu(a1,b1);System.out.println(“第 2 个实部:“);float a2=in.nextFloat();System.out.prin

6、tln(“第 2 个虚部:“);float b2=in.nextFloat();fushu c2=new fushu(a2,b2);fushu m=cheng(c1,c2);System.out.println(“结果为:“);print(m);case 4: /除System.out.println(“第一个实部:“);float a1=in.nextFloat();System.out.println(“第一个虚部:“);float b1=in.nextFloat();fushu c1=new fushu(a1,b1);System.out.println(“第 2 个实部:“);floa

7、t a2=in.nextFloat();System.out.println(“第 2 个虚部:“);float b2=in.nextFloat();fushu c2=new fushu(a2,b2);if(b2=0break;elsefushu m=chu(c1,c2);System.out.println(“结果为:“);print(m); break;case 5: /暂时为实现模运算方法public static fushu jia(fushu c1,fushu c2) /实现加运算方法fushu c=new fushu();c.a=c1.a+c2.a;c.b=c1.b+c2.b;re

8、turn c;public static void print(fushu c) /实现输出一个复数形式的方法if(c.a!=0)if(c.b0)System.out.println(c.a+“+“+c.b+“i“); / “a+bi”else if(c.b=0)System.out.println(c.a); /”a”elseSystem.out.println(c.a+“-“+(-c.b)+“i“); /”a-bi”elseif(c.b0)System.out.println(c.b+“i“); /”bi”else if(c.b=0)System.out.println(c.a); /”0

9、”elseSystem.out.println(c.b+“i“); /”-bi”public static fushu jian(fushu c1,fushu c2) /减运算方法fushu c=new fushu();c.a=c1.a-c2.a;c.b=c1.b-c2.b;return c;public static fushu cheng(fushu c1,fushu c2) /乘运算方法fushu c=new fushu();c.a=(c1.a*c2.a)-(c1.b*c2.b);c.b=c2.a*c1.b+c1.a*c2.b;return c;public static fushu c

10、hu(fushu c1,fushu c2) /除运算方法fushu c=new fushu();c.a=(c1.a*c2.a+c1.b*c2.b)/(c2.a*c2.a+c2.b*c2.b);c.b=(c2.a*c1.b-c1.a*c2.b)/(c2.a*c2.a+c2.b*c2.b);return c;/*public static float mo(fushu c) /模运算,暂时不知如何根号运算float n=*/ 调式运行中遇到的错误及解决方法调式运行中遇到的错误及解决方法:1.“ ushu.java:50: 需要 )System.out.println(c.a+“-“(-c.b)+“

11、i“);”少了连接的“+” ,添上。 2.“D:javajavac fushu.java fushu.java:22: 已在 main(java.lang.String) 中定义 inScanner in=new Scanner(System.in);”不可多次重复定义,只定义一次即可。 3. fushu.java:33: 无法从静态上下文中引用非静态 方法 jia(fushu,fushu)fushu m=jia(c1,c2); fushu.java:35: 无法从静态上下文中引用非静态 方法 print(fushu)print(m); 在”jia”和”print”方法前加 static. 程

12、序存在的的一些问题及改进程序存在的的一些问题及改进: 1.为实现模运算,查书得 Math.sqrt()方法。 Switch 部分获取输入的复数部分存在许多的代码重复,可以将获取复数写成一个单独的成 员方法加以改进,在改变过程中,只需改变 switch 部分以及添加成员方法 chushi(),其余成 员方法无需改变,代码 2 如下: import java.util.Scanner; public class fushu2 public float a,b;fushu2()fushu2(float x,float y)a=x;b=y;static fushu2 chushi() /添加的用于从键

13、盘获得复数的方法 float x,y;Scanner in=new Scanner(System.in);System.out.println(“实部 a:“);x=in.nextFloat();System.out.println(“虚部 b:“);y=in.nextFloat();fushu2 w=new fushu2(x,y);return w;public static void main(String args)System.out.println(“选择你要进行操作的序号:1.两个复数加;2.减;3.乘;4.除;5.求 模;n 输出你的选择,按回车。“);Scanner in=ne

14、w Scanner(System.in);int i=in.nextInt();System.out.println(i);switch(i)case 1:System.out.println(“第 1 个虚数:“);fushu2 c1=chushi();/调用类方法,也可 fushu2.chushi()System.out.println(“第 2 个虚数:“);fushu2 c2=chushi();fushu2 m=jia(c1,c2);System.out.println(“结果为:“);print(m);break;case 2:System.out.println(“第 1 个虚数:

15、“);fushu2 c1=chushi();System.out.println(“第 2 个虚数:“);fushu2 c2=chushi();fushu2 m=jian(c1,c2);System.out.println(“结果为:“);print(m);break;case 3:System.out.println(“第 1 个虚数:“);fushu2 c1=chushi();System.out.println(“第 2 个虚数:“);fushu2 c2=chushi();fushu2 m=cheng(c1,c2);System.out.println(“结果为:“);print(m);break;case 4:System.out.println(“第 1 个虚数:“);fushu2 c1=chushi();System.out.println(“第 2 个虚数:“);fushu2 c2=chushi();if(c2.b=0break;el

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号