形式系统

计算机专业教学
posts - 48, comments - 150, trackbacks - 0, articles - 10
  教师博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Java实验一

Posted on 2006-10-13 14:17 形式系统 阅读(746) 评论(4)  编辑 收藏 引用 网摘 所属分类: 编程开发

实验一 集成环境及语言基础

 

[实验目的]

1、        熟悉Eclipse(或JCreator)集成环境的使用

2、        学习Java程序的基本结构,类的定义及对象的创建。

3、        学习变量、表达式、控制流程、Math类的使用。

 

[实验内容]

1、  使用 Eclipse 创建工程。首先创建工作区( workspace ),然后创建工程( project ),最后创建包 mypack.math 。(工作区,工程名可任取,但包名考虑到以后的移植及重用,故规定。相关内容参考博客上的文章http://www.teachblog.net/yhspace/articles/481.html)。
或采用JCreator作为工具,内容与类似,可参考
 http://www.teachblog.net/yhspace/archive/2007/08/20/6834.html

2、  mypack.math 包下定义复数类( Complex )。分别构造方法实现复数的加、减、乘、除、求模运算。编写测试主程序测试。

3、  定义基于 y=ax2+bx+c 的二次曲线类 Curve1 。输入 x 值求 y ,输入 y 值求 x 其结构如下:

public class Curve1 {

         Curve1(float a, float b, float c){…}

         public EqualRoot getX(float y){…}

         public float getY(float x){…}

}

public class EqualRoot {

         public int rootCount;             // 方程根的个数

         public float x1;                     // 1 ,若无根则该项无效,下同。

         public float x2;                     // 2

}

实现该类并编写主程序类测试。

 

附: Math 类的部分方法:

public final class Math {

public static final double E=2.7182….;  //1. 符号常量的定义

public static final double PI=3.14….

public static double abs(double);       //2. 绝对值,多个重载版。

public static float abs(float);

public static native double sin(double); // 正弦,采用本地接口实现,速度的需要。

public static native double cos(double);// 余弦,默认情况,三角函数均用弧度。

public static native double tan(double);  // 正切

public static native double atan(double); // 余切

public static native double exp(double);// ex

public static native double log(double);  / 自然对数

                     public static native double sqrt(double);       // 开平方

                     public static native double pow(double,double);   // xy

                                          ……

}

Feedback

# re: Java实验一  回复  更多评论   

2006-10-28 19:13 by 韦双周



import java.io.*;
import java.math.*;

public class Curve1 {

double a,b,c;
public class EqualRoot {

public int rootCount; // 方程根的个数

public double x1; // 根 1 ,若无根则该项无效,下同。

public double x2; // 根 2

}
Curve1(double a, double b, double c)
{
this.a=a;
this.b=b;
this.c=c;
}

public EqualRoot getX(double y){
double r;
EqualRoot X;
X=new EqualRoot();
r=b*b-4*a*(c-y);
if(r==0)
{
X.rootCount=1;
X.x1=X.x2=((-b)+Math.sqrt(r))/2*a;
}
else
if(r<0)
{
X.rootCount=0;
System.out.println("方程无实数根");
}
else
{
X.rootCount=2;
X.x1=((-b)-Math.sqrt(r))/2*a;
X.x2=((-b)+Math.sqrt(r))/2*a;
}
return X;
}
public double getY(double x)
{
double y;
y=a*x*x+b*x+c;
return y;
}


/**
* @param args
*/
public static void main(String[] args) {

Curve1 m;
double n;
EqualRoot e;
// e=new EqualRoot();
m=new Curve1(1,-4,4);
e=m.getX(0);
n=m.getY(3);
System.out.println(e.rootCount+" "+e.x1+" "+e.x2+" "+" "+n);

}

}

# 计算x  回复  更多评论   

2007-10-25 12:36 by 张祖旺
import java.util.Scanner;
import javax.swing.JOptionPane;
public class CalculateX
{
private double a;
private double b;
private double c;
private double judgement;
String input;

public void setabcy()
{
input = JOptionPane.showInputDialog("please enter a");
a =Integer.parseInt(input);
input = JOptionPane.showInputDialog("please enter b");
b =Integer.parseInt(input);
input = JOptionPane.showInputDialog("please enter c");
c =Integer.parseInt(input);


}
public double getJudgement( )
{
judgement = b * b - 4 * a * c;
return judgement;

}
public void showGetX( )
{
double x1;
double x2;
if(getJudgement()>0)
{
x1=(-b+Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a);
x2=(-b-Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a);
System.out.println("The equation has two result");
System.out.printf("The first is:\n%.2f\n",x1);
System.out.printf("The second is:\n%.2f\n",x2);

}
else
if(getJudgement()<0)
System.out.println("The equation no result");
else
{

x1=(-b+Math.sqrt(Math.pow(b,2)-4*a*c))/(2*a);
System.out.println("The equation has one result");
System.out.printf("The result is:\n%f\n",x1);
}

}
}

# 计算y  回复  更多评论   

2007-10-25 12:36 by 张祖旺
import java.util.Scanner;
public class CalculateY
{
private double a;
private double b;
private double c;
private double x;

public void setabc()
{

Scanner input = new Scanner(System.in);

System.out.println("please input the a,b,c ,x value:");

a = input.nextDouble( );
b = input.nextDouble( );
c = input.nextDouble( );
x = input.nextDouble( );

}
public double getY( )
{
return a*x*x+b*x+c;
}
}

# 计算main( )  回复  更多评论   

2007-10-25 12:37 by 张祖旺
import javax.swing.JOptionPane;
public class Calculate
{


public static void main(String args[])
{
String input;
int select;

input=JOptionPane.showInputDialog("select 1 calculate y ,select 2 calculate 1" );
select = Integer.parseInt(input);
if(select==1)
{

CalculateY y = new CalculateY( );
y.setabc( );

System.out.printf("the y's value is:\n %.2f\n",y.getY( ));
}
else
{
CalculateX x= new CalculateX( );
x.setabcy( );
x.showGetX( );
}




}
}

只有注册用户登录后才能发表评论。