當前位置:首頁 » 編程語言 » 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);
}
}

熱點內容
銀線存儲 發布:2024-11-25 23:37:44 瀏覽:623
教孩子學編程python 發布:2024-11-25 23:31:05 瀏覽:911
如何開啟伺服器埠8008 發布:2024-11-25 23:30:27 瀏覽:805
python字典中文key 發布:2024-11-25 23:30:11 瀏覽:996
nosql資料庫與關系型資料庫 發布:2024-11-25 23:19:43 瀏覽:676
刀具資料庫 發布:2024-11-25 23:06:04 瀏覽:534
androidchrome瀏覽器 發布:2024-11-25 23:02:07 瀏覽:572
python提示符 發布:2024-11-25 22:53:28 瀏覽:494
超低溫疫苗存儲冰櫃生產廠家 發布:2024-11-25 22:32:58 瀏覽:537
x86linux 發布:2024-11-25 22:09:24 瀏覽:450