设计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()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)