当前位置:首页 » 编程语言 » java编程题及答案

java编程题及答案

发布时间: 2024-07-31 02:50:00

1. java编程题 本人新手,求详解。

先看下最终的结果吧,是不是你想要的?

其中,Student是父类,PostGraate是子类,继承自父类Student,Main是主类,用于创建对象以及把这些对象的功能调用起来。

---------------------------Student代码如下:------------------------------

/**

* 学生类

* @author 逍遥

*

*/

public class Student {

//学号

private int sId;

//姓名

private String sName;

//数学成绩

private double mathScore;

//计算机成绩

private double computerScore;

/**

* 获取学号

* @return

*/

public int getsId() {

return sId;

}

/**

* 设置学号

* @param sId

*/

public void setsId(int sId) {

this.sId = sId;

}

/**

* 获取姓名

* @return

*/

public String getsName() {

return sName;

}

/**

* 设置姓名

* @param sName

*/

public void setsName(String sName) {

this.sName = sName;

}

/**

* 获取数学成绩

* @return

*/

public double getMathScore() {

return mathScore;

}

/**

* 设置数学成绩

* @param mathScore

*/

public void setMathScore(double mathScore) {

this.mathScore = mathScore;

}

/**

* 获取计算机成绩

* @return

*/

public double getComputerScore() {

return computerScore;

}

/**

* 设置计算机成绩

* @param computerScore

*/

public void setComputerScore(double computerScore) {

this.computerScore = computerScore;

}

/**

* 输出成员变量(4个成员变量)的信息。

*/

public void print(){

System.out.println("学号:"+sId);

System.out.println("姓名:"+sName);

System.out.println("计算机成绩:"+mathScore);

System.out.println("数学成绩:"+computerScore);

}

}

---------------------------Student代码结束------------------------------

---------------------------PostGraate代码如下:------------------------------

/**

* 研究生类

* @author 逍遥

*

*/

public class PostGraate extends Student{

//导师姓名

private String tName;

//研究方向

private String ResearchDirection;

/**

* 获取导师姓名

* @return

*/

public String gettName() {

return tName;

}

/**

* 设置导师姓名

* @param tName

*/

public void settName(String tName) {

this.tName = tName;

}

/**

* 获取研究方向

* @return

*/

public String getResearchDirection() {

return ResearchDirection;

}

/**

* 设置研究方向

* @param researchDirection

*/

public void setResearchDirection(String researchDirection) {

ResearchDirection = researchDirection;

}

/**

* 研究生类重写父类的void print()方法,功能是输出成员变量(6个成员变量)的信息

*/

@Override

public void print() {

// TODO Auto-generated method stub

super.print();

System.out.println("导师姓名:"+tName);

System.out.println("研究方向:"+ResearchDirection);

}

}

---------------------------PostGraate代码结束------------------------------

---------------------------Main代码如下:------------------------------

import java.util.Scanner;


/**

* 主类

* @author 逍遥

*

*/

public class Main {


/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//用于获取从键盘上输入的信息

Scanner input=new Scanner(System.in);

//创建一个Student类的对象

Student student=new Student();

//从键盘上输入其属性信息

System.out.print("请输入学生的学号:");

student.setsId(input.nextInt());

System.out.print("请输入学生的姓名:");

student.setsName(input.next());

System.out.print("请输入学生的数学成绩:");

student.setMathScore(input.nextDouble());

System.out.print("请输入学生的计算机成绩:");

student.setComputerScore(input.nextDouble());

//并且通过其print方法输出这些信息;

student.print();

//创建一个PostGraate类的对象

PostGraate postGraate=new PostGraate();

//从键盘上输入其属性信息

System.out.print("请输入研究生的学号:");

postGraate.setsId(input.nextInt());

System.out.print("请输入研究生的姓名:");

postGraate.setsName(input.next());

System.out.print("请输入研究生的数学成绩:");

postGraate.setMathScore(input.nextDouble());

System.out.print("请输入研究生的计算机成绩:");

postGraate.setComputerScore(input.nextDouble());

System.out.print("请输入研究生的导师姓名:");

postGraate.settName(input.next());

System.out.print("请输入研究生的研究方向:");

postGraate.setResearchDirection(input.next());

//并且通过其print方法输出这些信息。

postGraate.print();

}


}

---------------------------Main代码结束------------------------------

=================知识点的简单总结=================

本题考察的知识点是面向对象的三大特性之一:继承。

Student为父类,包含了学号、姓名、数学成绩和计算机成绩4个属性,以及一个print()方法。

PostGraate 继承父类的时候,继承了父类中的所有方法,因为方法我都是用的public,而属性继承不了,因为我在父类中用了封装,所有属性都用private修饰了,想访问属性的话,必须通过get、set方法,这里,我重写了父类中的print方法,通过super.print();调用了父类中的print()方法。

最后就是Main类,提供了main方法作为入口函数,用于按要求声明这些对象以及去调用对象中的方法。

2. java简单编程题,有追加分

第一题,x和n从命令行作为参数输入:
public class Test1{
public static void main(String[] args){
int argLen = args.length;
//判断是否至少传入了两个参数
if (argLen < 2){
System.out.println("请输入两个整型参数");
return;
}

int x = 0;
int n = 0;

//转换传递进来的参数,如果输入的参数不合法,不能转换为int型,则Integer.parseInt方法会抛出NumberFormatException异常
try{
x = Integer.parseInt(args[0]);
n = Integer.parseInt(args[1]);
}
catch(NumberFormatException e)
{
System.out.println("输入的参数不是整数");
System.exit(1);
}

//判断x和n的值是否是正数
if (x<=0 || n<=0)
{
System.out.println("不能输入负值或0,请输入两个正整数");
System.exit(1);
}

//打印转换后的x和n
System.out.println("你输入的x和n分别为: " + x + ", " + n);

/*
y=1+x/1+x*x*x/3+......+x^n/n
根据公式计算结果。由于公式中y增长的很快,所以我们定义一个double型的变量存储结果的值。但仍然很有可能溢出。必要的话可以使用math包中的类来进行任意长度和精度的处理,但这里就不麻烦了。
*/
double y = 1.0;
for (int i=1; i<=n; i+=2)
{
y += Math.pow(x, i)/(double)i;
}

//打印结果
System.out.println("根据公式y=1+x/1+x*x*x/3+......+x^n/n所计算出的结果为: " + y);

} // main()

} /* Test1 */

第二题,需要的test11.html文件内容如下:
<html>
<head>
<title>Test11 demo</title>
</head>

<body>
<applet width="300" height="400" code="Test11.class"></applet>
</body>
</html>

然后使用appletviewer test11.html浏览小应用程序(在浏览器中可能不能正常运行)。

java代码如下:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Label;

public class Test11 extends Applet{

//定义文字所在位置与顶部的距离
private int posY = 200;

private Label textsLabel = new Label("我猜你将看到这句话一直在滚动");

public void init()
{
textsLabel.setBounds(50, 200, 200, 30);
this.add(textsLabel);

//启动新线程
SecThread st = new SecThread();
st.start();
} // init()

public void paint(Graphics g){
super.paint(g);
} //paint()

//定义一个内部类,以启动一个新的线程
private class SecThread extends Thread{
public void run()
{
while(true){
//让当前线程休眠50毫秒,注意sleep方法会抛出InterruptedException异常
try{
Thread.sleep(50);
}
catch(InterruptedException e){
System.out.println("执行过程中出错");
System.exit(1);
}

//设置文字的新位置
posY -= 5;
//判断是否小于0(即已经到达顶部),如果小于0则重置为400
posY = (posY<=0?400:posY);
textsLabel.setBounds(50, posY, 200, 30);
Test11.this.repaint();
}
}
}

} /* Test2 */

3, 4两题实在很简单,略过了。

找到你的帖子了!
将3,和4也写一下:

3.运行方法看2:

import java.applet.Applet;
import java.awt.Graphics;

public class Test111 extends Applet
{
public void paint(Graphics g)
{
for (int i=1; i<=10; i++) //画横线
{
g.drawLine(20, i*20, 200, i*20);
}

for (int j=1; j<=10; j++) //画竖线
{
g.drawLine(j*20, 20, j*20, 200);
}
}
}

4. 代码如下:(你说已经写好的程序怎么改成applet。记住一点,applet在运行时自动调用init、start和paint方法,而通常的应用程序调用main方法。只要将main方法中的内容妥善地移到这三个方法中就可以了。但修改的时候要注意,不要引入错误。)

//任意输入三个数,可以有小数,然后比较它们的大小
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;

public class Test1111 extends Applet
{

public void paint(Graphics g)
{
this.setLayout(null);
Button btn = new Button("开始输入");
btn.setBounds(100, 130, 100, 30);
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
sort();
}
});

this.add(btn);
}

private void sort()
{
//3个元素的字符串数组,存放输入的数
String[] numberStrs = new String[3];

for (int i=0; i<numberStrs.length; i++)
{
//如果输入时按了取消按钮,则继续提示输入
while(numberStrs[i] == null)
{
numberStrs[i] = JOptionPane.showInputDialog("请输入第 " + (i+1) + " 个数");
}
}

//定义3个元素的double型数组,存放转换后的值
double[] numbers = new double[3];
try
{
for (int j=0; j<numbers.length; j++)
{
numbers[j] = Double.parseDouble(numberStrs[j]);
}
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null, "输入的不是数字!"
, "ERROR", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}

String result = "";

result += "你输入的数字为: ";
for (int k=0; k<numbers.length-1; k++)
{
result += numbers[k] + ", ";
}

result += numbers[numbers.length-1] + "\n";

//简单点,使用冒泡排序
for (int i=1; i<numbers.length; i++)
{
for (int j=0; j<numbers.length-1; j++)
{
if (numbers[j] > numbers[j+1])
{
double temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}

result += "排序后的数字为: ";
for (int k=0; k<numbers.length-1; k++)
{
result += numbers[k] + ", ";
}

result += numbers[numbers.length-1];

//输出结果
JOptionPane.showMessageDialog(null, result, "Result", JOptionPane.PLAIN_MESSAGE);
}
}

热点内容
怎么制作ftp软件 发布:2024-11-26 01:45:41 浏览:567
算法m是谁 发布:2024-11-26 01:40:35 浏览:44
h1z1文件夹安装 发布:2024-11-26 01:40:28 浏览:23
电话加密 发布:2024-11-26 01:39:09 浏览:28
hotspot源码 发布:2024-11-26 01:33:05 浏览:282
日本电报密码是多少 发布:2024-11-26 01:33:00 浏览:441
雷电缓存目录 发布:2024-11-26 01:30:05 浏览:951
androidcanvas缩放 发布:2024-11-26 01:21:36 浏览:239
微信商家扫我为什么输入密码 发布:2024-11-26 01:20:40 浏览:661
移动光猫无线路由器密码多少 发布:2024-11-26 01:18:35 浏览:854