Java第二次实验作业(山东大学)

【实验目的】

Java Applet程序学习

【实验要求】

  1. 编写一个简单的Java Applet程序,并在Java Applet中写两行文字: “这是一个Java Applet程序”和“我改变了字体”.

实验后的练习:

1) 程序中的主类如果不用public修饰,编译能通过吗?

2) 程序中的主类如果不用public修饰,程序能正确运行吗?

3) 程序将paint方法误写成Paint,编译能通过么?

4) 程序将paint方法误写成Paint,运行时能看到有关的输出信息吗?

  1. 在Eclipse平台中实现下列简单的程序:
    1)、编写控制台程序输出1–200之间的所有素数。
    2)、嵌套循环(for + while)实现1!+2!+3!+ … 9!即阶乘之和。(如果能采用递归算法实现阶乘,再调用此函数实现求和,更妙)
    3)、尝试用applet编写程序实现摄氏温度和华氏温度的转换。
    4)、利用if语句实现阶梯电费的问题:用电量240度以下(包含240度)每度电0.55元,用电量在240-540度之间,超出240度电的部分按0.70元计算,用电量超过540度电,超出540度电的部分按照0.95元计算。(仅保留小数点后两位)
    注:可利用swing.JOptionPane来实现

【实验具体内容】


实验1


编写一个简单的Java Applet程序,并在Java Applet中写两行文字: “这是一个Java Applet程序”和“我改变了字体”
(1)实验源代码:

import java.applet.*;
import java.awt.*;

public class MyFirstApplet extends Applet
{
    public void paint (Graphics g)
    {
        g.setColor(Color.blue);
        g.drawString ("这是一个Java Applet程序", 25, 50);
        g.setColor(Color.red);
        g.setFont(new Font("宋体",Font.BOLD,36));
        g.drawString ("我改变了字体", 25, 100);
    }
}

(2)实验代码、过程、相应结果(截图)并对实验进行说明和分析:
IDEA运行后结果如下:

实验后的练习:

1) 程序中的主类如果不用public修饰,编译能通过吗?

答:能通过

2) 程序中的主类如果不用public修饰,程序能正确运行吗?

答:不能运行

3) 程序将paint方法误写成Paint,编译能通过么?

答:可以编译

4) 程序将paint方法误写成Paint,运行时能看到有关的输出信息吗?

答:可以运行,但运行时没有输出信息.

实验2.(1)


编写控制台程序输出1–200之间的所有素数。
(1).实验源代码:

package Second;

public class SuShu {
    public static void main(String[] args){
        boolean flag=false;
        for(int i=2;i<=200;i++){
            for(int j=2;j<=Math.sqrt(i);j++){
                if(i%j==0){
                    flag=true;
                    break;
                }
            }
            if(flag==false){
                System.out.println(i);
            }
            flag=false;
        }
    }
}

(2)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

实验结果如下:

实验2.(2)

嵌套循环(for + while)实现1!+2!+3!+ … 9!即阶乘之和

(1)实验源代码:

(2)	import java.util.Scanner;
(3)	
(4)	public class JieCheng{
(5)	    public static int Sum(int n) {
(6)	        int sum = 0;
(7)	        int number = 1;
(8)	        for(int i = 1; i <= n;i++) {
(9)	            number = number*i;
(10)	            sum += number;
(11)	        }
(12)	        return sum;
(13)	    }
(14)	    public static void main(String[] args) {
(15)	        System.out.println("输入所要求的1-x的阶乘之和,例如1-9的阶乘之和,则输入9");
(16)	        // 从键盘接收数据
(17)	        Scanner scan = new Scanner(System.in);
(18)	        // 接收整数
(19)	        int n = scan.nextInt();
(20)	        //输出结果
(21)	        System.out.println("1-"+n+"各个数的阶乘之和为:");
(22)	        System.out.println(Sum(n));
(23)	    }
(24)	}

(2)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

实验2.(3)

尝试用applet编写程序实现摄氏温度和华氏温度的转换。

(1)实验源代码:

(1)	package Second;
(2)	
(3)	import java.applet.Applet;
(4)	import java.awt.event.*;
(5)	import java.awt.*;
(6)	// 继承 Applet 同时实现接口 ActionListener
(7)	public class WenDu extends Applet implements ActionListener {
(8)	    //TextField 对象是允许编辑单行文本的文本组件。
(9)	    TextField temperature1,temperature2;
(10)	    //标签对象
(11)	    Label lab1,lab2;
(12)	    //按钮
(13)	    Button button1,button2;
(14)	    //dimension是Java的一个类,封装了一个构件的高度和宽度
(15)	    Dimension preferredSize1,preferredSize2;
(16)	    //动作执行函数
(17)	    public void actionPerformed(ActionEvent evt) {
(18)	        if(temperature1.getText().equals("")&&evt.getSource()==button1)
(19)	        {
(20)	            String fah=temperature2.getText();
(21)	            Double fah1=Double.valueOf(fah).doubleValue();
(22)	            Double cel2=(fah1-32)/1.8;
(23)	            float cel3=(float)(Math.round(cel2*100))/100;
(24)	            temperature1.setText(cel3+"℃");
(25)	        }
(26)	        else
(27)	        if(temperature2.getText().equals("")&&evt.getSource()==button1)
(28)	        {
(29)	            String cel=temperature1.getText();
(30)	            Double cel1=Double.valueOf(cel).doubleValue();
(31)	            Double fah2=1.8*cel1+32;
(32)	            float fah3=(float)(Math.round(fah2*100))/100;
(33)	            temperature2.setText(fah3+"℉");
(34)	        }
(35)	
(36)	        if(evt.getSource()==button2)
(37)	        {
(38)	            temperature1.setText("");
(39)	            temperature2.setText("");
(40)	        }
(41)	
(42)	    }
(43)	    public void init() {
(44)	        //调用Label类的构造函数实例化lab1,lab2
(45)	        lab1 = new Label("摄氏温度:");
(46)	        lab2 = new Label("华氏温度:");
(47)	        //实例化temperature1,temperature2
(48)	        temperature1 = new TextField(10);
(49)	        temperature2 = new TextField(10);
(50)	        //宽50,高30,这里的宽和高是按钮的宽和高
(51)	        preferredSize1=new Dimension(50, 30);
(52)	        preferredSize2=new Dimension(50, 30);
(53)	        //第一个按钮,内容为"转换",颜色为绿色
(54)	        button1 = new Button("转换");
(55)	        button1.setBackground(Color.GREEN);
(56)	        button1.setPreferredSize(preferredSize1);
(57)	        //第二个按钮,内容为"替换",颜色为黄色
(58)	        button2 = new Button("清空");
(59)	        button2.setBackground(Color.YELLOW);
(60)	        button2.setPreferredSize(preferredSize2);
(61)	        //将下面这些对象都添加到容器中
(62)	        add(lab1);
(63)	        add(temperature1);
(64)	        add(lab2);
(65)	        add(temperature2);
(66)	        add(button1);
(67)	        add(button2);
(68)	        //增加监听
(69)	        temperature1.addActionListener(this);
(70)	        temperature2.addActionListener(this);
(71)	        button1.addActionListener(this);
(72)	        button2.addActionListener(this);
(73)	    }
(74)	
(75)	}
(76)	

(2)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

程序执行后

输入摄氏温度37

清空后输入华氏温度98.6

实验2.(4)

利用if语句实现阶梯电费的问题:用电量240度以下(包含240度)每度电0.55元,用电量在240-540度之间,超出240度电的部分按0.70元计算,用电量超过540度电,超出540度电的部分按照0.95元计算。(仅保留小数点后两位)

(1)

实验源代码1:

(1)	package Second;
(2)	
(3)	import javax.swing.plaf.synth.SynthEditorPaneUI;
(4)	import java.util.Scanner;
(5)	
(6)	public class DianFei {
(7)	    public static void main(String args[]) {
(8)	        double bill = 0, a = 0.55, b = 0.70, c = 0.95;
(9)	        System.out.println("输入用电量");
(10)	        Scanner scan = new Scanner(System.in);
(11)	        //接收输入的用电量
(12)	        double x=scan.nextDouble();
(13)	        if(x<=240&&x>=0){
(14)	            bill=x*a;
(15)	            System.out.println("电费为"+bill+"元");
(16)	        }
(17)	        else if(x<=540){
(18)	            bill=240*a+(x-240)*b;
(19)	            System.out.println("电费为"+bill+"元");
(20)	        }
(21)	        else {
(22)	            bill=240*a+300*b+(x-540)*c;
(23)	            System.out.println("电费为"+bill+"元");
(24)	        }
(25)	
(26)	    }
(27)	}

实验源代码2:

package Second;

import javax.swing.JOptionPane;

public class DianFeiSwing {
    public static void main(String[] args) {
        //声明变量dianliang
        String dianliang;
        //声明变量bill
        double bill=0;
        //用JOptionPane.showInputDialog运行弹出可输入对话框,对话框标题为“输入”,内容为“请输入你的实际用电量(度):”,图标为问号,且获取输入对话框中的字符串
        dianliang=JOptionPane.showInputDialog(null,"输入用电量(度):\n","输入",JOptionPane.QUESTION_MESSAGE);
        //用Integer.parseInt将dianliang转换为整型
        int du=Integer.parseInt(dianliang);
        //计算电费
        if(du<=240)
            bill=0.55*du;
        else
        if(du<=540)
            bill=0.55*240+(du-240)*0.7;
        else
        if(du>540)
            bill=0.55*240+(540-240)*0.7+(du-540)*0.95;
        JOptionPane.showMessageDialog(null,"你的电费为(元):"+bill,"输出",JOptionPane.PLAIN_MESSAGE);
    }
}

(2)实验代码、过程、相应结果(截图)并对实验进行说明和分析:

实验源代码1的运行结果;

实验源代码2的运行结果:

© 版权声明
THE END
喜欢就支持以下吧
点赞6赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容