2018年自考《Java语言程序设计》综合练习题五
五、使用Java语言编写程序。
1. 编写一个字符界面的Java Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。
答:参考程序如下:
import java.io.*;
public class SUM
{
public static void main (String[] args)
{
int i , n=-1 , sum=0 ;
while ( n<1)
try {
BufferedReader br =
new BufferedReader( new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine( ));
} catch ( IOException e ) { } ;
for ( i =1 ; i<=n; i++ ) sum += i;
System.out.println(sum);
}
}
2. 编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
答:参考程序如下:
import java.io.* ;
public class abc
{
public static void main(String args[ ])
{ int i , n = 10 , max = 0 , min = 0 , temp = 0;
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
max = min = Integer.parseInt(br.readLine( ));
} catch ( IOException e ) { } ;
for ( i = 2 ; i <= n ; i ++ ) {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
temp = Integer.parseInt(br.readLine( ));
if (temp > max ) max=temp;
if (temp < min) min=temp;
} catch ( IOException e ) { } ;
}
System.out.println("max="+max+" min="+min);
}
}
3. 编写一个完整的Java Applet 程序使用复数类Complex验证两个复数 1+2i 和3+4i 相加产生一个新的复数 4+6i 。
复数类Complex必须满足如下要求:
(1) 复数类Complex 的属性有:
RealPart : int型,代表复数的实数部分
ImaginPart : int型,代表复数的虚数部分
(2) 复数类Complex 的方法有:
Complex( ) : 构造函数,将复数的实部和虚部都置0
Complex( int r , int i ) : 构造函数,形参 r 为实部的初值,i为虚部的初值。
Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别为实部和虚部的数据。
答:参考程序如下:
import java.applet.* ;
import java.awt.* ;
public class abc extends Applet
{
Complex a,b,c ;
public void init( )
{
a = new Complex(1,2);
b = new Complex(3,4);
c = new Complex();
}
public void paint(Graphics g)
{
c=a.complexAdd(b);
g.drawString("第一个复数:"+a.toString(),10,50);
g.drawString("第二个复数:"+b.toString(),10,70);
g.drawString("两复数之和:"+c.toString(),10,90);
}
}
class Complex
{
int RealPart ; // 复数的实部
int ImaginPart ; // 复数的虚部
Complex() { RealPart = 0 ; ImaginPart = 0 ; }
Complex(int r , int i)
{ RealPart = r ; ImaginPart = i ; }
Complex complexAdd(Complex a)
{
Complex temp = new Complex( ); // 临时复数对象
temp.RealPart=RealPart+a.RealPart;
temp.ImaginPart=ImaginPart+a.ImaginPart;
return temp;
}
public String toString( )
{ return ( RealPart+" + "+ImaginPart+" i "); }
}
4. 编写一个学生类 Student ,要求:
(1) 学生类 Student 属性有:
id : long型,代表学号
name : String类对象,代表姓名
age : int型,代表年龄
sex : boolen型,代表性别(其中:true表示男,false表示女)
phone : String类对象,代表联系电话
(2) 学生类 Student的方法有:
Student(long i , String n , int a , boolean s , long p)
: 有参构造函数,形参表中的参数分别初始化学号、姓名、
年龄、性别和联系电话。
int getAge() ( ) : 获取年龄作为方法的返回值。
boolean getSex( ) ( ) : 获取性别作为方法的返回值。
long getPhone ( ) : 获取联系电话作为方法的返回值。
public String toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。
答:参考程序段如下:
class Student {
long id;
String name;
int age;
boolean sex;
long phone;
Student( long i , String n , int a , boolean s , long p ){
id = i;
name = n;
age = a;
sex = s;
phone = p;
}
int getAge(){ return age; }
boolean getSex(){ return sex; }
long getPhone() { return phone; }
public String toString(){ return name+" : "+phone; }
}
5. 编写Applet程序:求三个整数的最小值。
答:参考程序如下:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class FindMin extends Applet implements ActionListener
{
Label result;
TextField in1,in2,in3;
Button btn1,btn2;
int a=0,b=0,c=0,min;
public void init()
{
result=new Label("请先输入三个待比较的整数");
in1=new TextField(5);
in2=new TextField(5);
in3=new TextField(5);
btn1=new Button("比较");
btn2=new Button("关闭");
add(in1);
add(in2);
add(in3);
add(btn1);
add(btn2);
add(result);
btn1.addActionListener(this);
btn2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==btn1)
{ a=Integer.parseInt(in1.getText());
b=Integer.parseInt(in2.getText());
c=Integer.parseInt(in3.getText());
min=a;
if (b min=b; if(c min=c; result.setText("三数中最小值是:"+min); } else System.exit(0); } } 6. 编写图形界面下的Java Applet程序,接受用户输入的两个数据为上、下限,然后10个一行输出上、下限之间的所有素数。 答:参考程序如下: //输入上限与下限,输出范围内的素数 import java.applet.*; import java.awt.*; import java.awt.event.*; public class Sushu extends Applet implements ActionListener { Label lb1,lb2,result; TextField in1,in2; TextArea out1; Button btn1,btn2; int a=0,b=0; String s=""; public void init() { result=new Label(" 输出框"); lb1=new Label("上限"); lb2=new Label("下限"); in1=new TextField(5); in2=new TextField(5); out1=new TextArea(); out1.setEditable(false);//设为不可编辑 btn1=new Button("输出素数"); btn2=new Button("关闭"); add(lb1); add(in1); add(lb2); add(in2); add(btn1); add(btn2); add(result); add(out1); btn1.addActionListener(this); btn2.addActionListener(this); } public void actionPerformed(ActionEvent e) { int k=0;//设计数器 if (e.getSource()==btn1)//响应按钮"输出素数"的动作 { out1.setText("
");//新行输出 a=Integer.parseInt(in1.getText()); b=Integer.parseInt(in2.getText()); //判断是否素数,是则计数并加入输出子串s Loop: