【上机作业】【java】2010.5.19 java上机测试题
程序填空题:
1.完成两个整数的输入,两个整数为:
最后按确定键退出程序。
给定源程序:
//计算两个整数的乘法
import javax.swing.joptionpane;
public class java_1 {
public static void main( string args[] ) {
int x, y, result;
string xval, yval;
xval = joptionpane.showinputdialog( “输入第1个整数:” );
yval = joptionpane.showinputdialog( “输入第2个整数:” );
//*********found********
x = integer.parseint( ________ xval __________ );
y = integer.parseint( yval );
result = x * y;
//*********found********
joptionpane._______ showMessageDialog__________________( null, “两个数的积: ” + result );
system.exit( 0 );
}
}
2. import java.io.*;
public class java_2{
//*********found********
public static void main(string args[]) ____ throws _______ exception{
long filepoint = 0 ;
string s;
randomaccessfile file = new randomaccessfile(“java_2.java”,”r”);
long filelength = file.length();
while (filepoint<filelength){
//*********found********
s = _____ file ______.readline();
system.out.println(s);
filepoint = file.getfilepointer();
}
file.close();
}
}
3. import java.awt.*;
import java.awt.event.*;
public class Java_2 extends Frame {
public Java_2(String s){
super(s);
}
public static void main(String args[]){
Java_2 fr = new Java_2(“Testing”);
Button b=new Button(“Please press me!”);
//*********Found********
b.addActionListener(________this_________);
fr.add(b);
fr.setSize(200,200);
fr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//*********Found********
fr.setVisible(_____true_______);
}
}
class HandleButton implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println(“The button is pressed!”);
}
}
二、判断题
1.一个Java源文件中可以包含多个类。 ___T____
2.在java源文件中的每个类都被编译为一个独立的字节码文件. ___T____
3.一个break语句只能用在一个循环中. ___F___
4.可以在同一个类中定义两个具有相同名称和相同参数列表的方法. ___F___
5.每个Java类中必须包含一个main方法. ___T___
6.默认的构造方法没有参数. ___T___
7.总是可以成功地把一个子类对象向上转型为它的某个父类对象. ___F___
8.如果一个对象是类A的一个实例, 并且A是B的子类, 那么该对象也是B的一个实例. ___T___
9.Java语言中任何一个对象都是Object类的实例. ___T___
10.一个子类不可以有多个父类,但是可以实现任意数量的接口. ___T___
三、编程题
1.将一个按钮加入到容器当中,编写程序使得每按一次按钮,按钮上的数字加1,设按钮上的初始值为0.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class testbutton extends JFrame implements ActionListener{
JButton b=new JButton("0");
int i=0;
public testbutton(){
super("按钮");
this.add(b);
b.addActionListener(this);
this.setSize(100,100);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
JButton b1=(JButton)e.getSource();
if(b1==b){
i++;
b.setText(Integer.toString(i));
}
}
public static void main(String []args){
testbutton tb=new testbutton ();
}
}
2. 企业发放的奖金根据利润提成。利润(I)低于或等于20万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
import java.util.Scanner;
import java.text.DecimalFormat;
class jiangjin{
public static void main(String []args){
double i;
DecimalFormat format=new DecimalFormat(“#.000”);
Scanner s=new Scanner(System.in);
System.out.print(“输入利润(单位:万元):”);
i=s.nextDouble();
System.out.println(“奖金(单位:万元):”+format.format(compute(i)));
}
static double compute(double d){
if(d<=10)
return 10*0.1;
else
if(d<=20){
return compute(10)+(d-10)*0.075;
}
else if(d<=40){
return compute(20)+(d-20)*0.05;
}
else if(d<=60){
return compute(40)+(d-40)*0.03;
}
else if(d<=100){
return compute(60)+(d-60)*0.015;
}
else {
return compute(100)+(d-100)*0.01;
}
}
}