用java写一个程序?

用java写一个程序?,第1张

JAVA程序计算素数

设计JAVA application程序,计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件,

以下是一个使用Java语言编写的程序,可以计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件:

javaCopy code

import java.io.FileOutputStreamimport java.io.IOExceptionpublic class PrimeNumberCalculator { public static void main(String[] args) { int start = 20000000int end = 300000000String filename = "primefile.dat"try (FileOutputStream fileOutputStream = new FileOutputStream(filename)) { for (int i = starti <= endi++) { if (isPrime(i)) { fileOutputStream.write(String.valueOf(i).getBytes())fileOutputStream.write(System.lineSeparator().getBytes())} } } catch (IOException e) { e.printStackTrace()} } private static boolean isPrime(int n) { if (n <= 1) { return false} for (int i = 2i <= Math.sqrt(n)i++) { if (n % i == 0) { return false} } return true} }

该程序首先定义了起始数字和终止数字,以及文件名。接下来,在main方法中,程序使用for循环迭代从start到end之间的每个数字。对于每个数字,程序调用isPrime方法来判断它是否为素数。如果是素数,程序将该数字写入文件中,每个数字占一行。

isPrime方法使用了一个简单的算法来判断一个数字是否为素数:如果数字小于或等于1,那么它不是素数。否则,程序从2开始,一直到该数字的平方根之间的每个数字进行除法运算。如果该数字能被任何一个这些数字整除,那么它不是素数。

请注意,在此程序中,我们使用了Java 7引入的"try-with-resources"语句来自动关闭文件输出流。这样可以确保即使在发生异常的情况下,文件输出流也会被正确关闭,以避免文件被损坏。

可以使用Java编写一个类来计算立方体的体积。下面是一个示例程序:

public class Cube {

double width

double height

double depth

public Cube(double width, double height, double depth) {

this.width = width

this.height = height

this.depth = depth

}

public double getVolume() {

return width * height * depth

}

public static void main(String[] args) {

Cube cube = new Cube(20, 10, 5)

System.out.println("Cube volume is: " + cube.getVolume())

}

}

程序实现了Cube类,类的构造器初始化宽度,高度和深度,并且类中有一个getVolume方法来计算立方体的体积。在main方法中,我们创建一个Cube对象,并调用getVolume方法来计算立方体的体积。

在运行这个程序后,你会得到一个输出:

Cube volume is: 1000.0

这个输出表示,这个立方体的体积是1000立方单位。

打开IED:打开自己java编程的软件,采用的是eclipse软件。

建立java工程。

编写类。

编写类的详细步骤

1.类的基本结构:

由于这里用到了界面,所以要进行窗口界面的编程,按钮事件的处理,和计算处理界面;

package MyCaculator

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class MyCaculator extends JFrame {

private int add=1,sub=2,mul=3,div=4

private int op=0

boolean ifOp

private String output="0"

private Button[] jba=new Button[]{new Button("7"),new Button("8"),

new Button("9"),new Button("+"),

new Button("4"),new Button("5"),new Button("6"),new Button("-"),

new Button("1"),new Button("2"),new Button("3"),new Button("*"),

new Button("0"),new Button("."),new Button("="),new Button("/")}

private JPanel jpt=new JPanel()

private JPanel jpb=new JPanel()

private JTextField jtf=new JTextField("")

private MyCaculator(){

}

private void operate(String x){

}

public String add(String x){

return output

}

public String subtract(String x){

return output

}

public String multiply(String x){

return output

}

public String divide(String x){

return output

}

public String Equals(String x){

return output

}

public void opClean(){

}

class setOperate_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

}

}

class setLabel_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

}

}

public static void main(String[] args) {

}

}

2.建立构造方法:

所谓构造方法就是,对自己的主类进行初始化,代码如下:

private MyCaculator(){

jpt.setLayout(new BorderLayout())

jpt.add(jtf)

this.add(jpt,BorderLayout.NORTH)

jpb.setLayout(new GridLayout(4,4))

for(int i=0i<jba.lengthi++){

jpb.add(jba[i])

if(i==3||i==7||i==11||i==15||i==14)

jba[i].addActionListener(new setOperate_Act())

else

jba[i].addActionListener(new setLabel_Act())

}

this.add(jpb,BorderLayout.CENTER)

this.setSize(250, 200)

this.setResizable(false)

this.setVisible(true)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

3.建立数据计算方法

这里的数据计算方法有6个,一个是主方法其他几个是加减乘除的处理方法,代码如下:

private void operate(String x){

double x1=Double.valueOf(x)

double y=Double.valueOf(output)

switch(op){

case 0:output=xbreak

case 1:output=String.valueOf(y+x1)break

case 2:output =String.valueOf(y-x1)break

case 3:output =String.valueOf(y*x1)break

case 4:

if(x1!=0) output=String.valueOf(y/x1)

else output="不能为0"

break

}

}

public String add(String x){

operate(x)

op=add

return output

}

public String subtract(String x){

operate(x)

op=sub

return output

}

public String multiply(String x){

operate(x)

op=mul

return output

}

public String divide(String x){

operate(x)

op=div

return output

}

public String Equals(String x){

operate(x)

op=0

return output

}

public void opClean(){

op=0

output ="0"

}

4.事件处理方法

这里的时间处理方法,没有建立一个整体的方法,二是在为了便于处理的方法,将按钮事件分成两个部分,并采用两个子类来实现,这两个类时内部类要写在主类内部的,代码如下:

class setOperate_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

if(e.getSource()==jba[3]){

jtf.setText(add(jtf.getText()))

ifOp=true

}

else if(e.getSource()==jba[7]){

jtf.setText(subtract(jtf.getText()))

ifOp=true

}

else if(e.getSource()==jba[11]){

jtf.setText(multiply(jtf.getText()))

ifOp=true

}

else if(e.getSource()==jba[15]){

jtf.setText(divide(jtf.getText()))

ifOp=true

}

else if(e.getSource()==jba[14]){

jtf.setText(Equals(jtf.getText()))

ifOp=true

}

}

}

class setLabel_Act implements ActionListener{

public void actionPerformed(ActionEvent e) {

Button tempb=(Button)e.getSource()

if(ifOp){

jtf.setText(tempb.getLabel())

ifOp=false

}else {

jtf.setText(jtf.getText()+tempb.getLabel())

}

}

}

5.建立main方法:

要想实现我们的代码,我们需在main方法中,实例化我们的对象。

public static void main(String[] args) {

new MyCaculator()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12067950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存