日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java动脑公开课_java课堂动手动脑

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java动脑公开课_java课堂动手动脑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗任務一:閱讀并運行示例PassArray.java.

1)源代碼:

package?demo;

//PassArray.java

//Passing arrays and individual array elements to methods

public?class?PassArray {

public?static?void?main(String[] args) {

int?a[] = { 1, 2, 3, 4, 5 };

String output = "The values of the original array are:\n";

for?(int?i = 0; i < a.length; i++)

output += " ??"?+ a[i];

output += "\n\nEffects of passing array "?+ "element call-by-value:\n"

+ "a[3] before modifyElement: "?+ a[3];

modifyElement(a[3]);

output += "\na[3] after modifyElement: "?+ a[3];

output += "\n Effects of passing entire array by reference";

modifyArray(a); // array a passed call-by-reference

output += "\n\nThe values of the modified array are:\n";

for?(int?i = 0; i < a.length; i++)

output += " ??"?+ a[i];

System.out.println(output);

}

public?static?void?modifyArray(int?b[]) {

for?(int?j = 0; j < b.length; j++)

b[j] *= 2;

}

public?static?void?modifyElement(int?e) {

e *= 2;

}

}

2)程序截圖:

使用引用傳遞時,方法中更改了數組元素的值,直接修改了原始的數組元素。 使用值傳遞時,方法體中修改的僅是原始數組元素的一個拷貝。

實驗任務二:閱讀QiPan.java示例程序了解如何利用二維數組和循環語句繪制五子棋盤。

源代碼:

package?demo;

import?java.io.*;

public?class?QiPan

{

//定義一個二維數組來充當棋盤

private?String[][] board;

//定義棋盤的大小

private?static?int?BOARD_SIZE?= 15;

public?void?initBoard()

{

//初始化棋盤數組

board?= new?String[BOARD_SIZE][BOARD_SIZE];

//把每個元素賦為"╋",用于在控制臺輸出棋盤

for?(int?i = 0 ; i < BOARD_SIZE?; i++)

{

for?( int?j = 0 ; j < BOARD_SIZE?; j++)

{

board[i][j] = "╋";

}

}

}

//在控制臺輸出棋盤的方法

public?void?printBoard()

{

//打印每個數組元素

for?(int?i = 0 ; i < BOARD_SIZE?; i++)

{

for?( int?j = 0 ; j < BOARD_SIZE?; j++)

{

//打印數組元素后不換行

System.out.print(board[i][j]);

}

//每打印完一行數組元素后輸出一個換行符

System.out.print("\n");

}

}

public?static?void?main(String[] args)throws?Exception

{

QiPan gb = new?QiPan();

gb.initBoard();

gb.printBoard();

//這是用于獲取鍵盤輸入的方法

BufferedReader br = new?BufferedReader(new?InputStreamReader(System.in));

String inputStr = null;

System.out.println("請輸入您下棋的座標,應以x,y的格式:");

//br.readLine():每當在鍵盤上輸入一行內容按回車,剛輸入的內容將被br讀取到。

while?((inputStr = br.readLine()) != null)

{

//將用戶輸入的字符串以逗號(,)作為分隔符,分隔成2個字符串

String[] posStrArr = inputStr.split(",");

//將2個字符串轉換成用戶下棋的座標

int?xPos = Integer.parseInt(posStrArr[0]);

int?yPos = Integer.parseInt(posStrArr[1]);

//把對應的數組元素賦為"●"。

gb.board[xPos - 1][yPos - 1] = "●";

/*

電腦隨機生成2個整數,作為電腦下棋的座標,賦給board數組。

還涉及

1.座標的有效性,只能是數字,不能超出棋盤范圍

2.如果下的棋的點,不能重復下棋。

3.每次下棋后,需要掃描誰贏了

*/

gb.printBoard();

System.out.println("請輸入您下棋的座標,應以x,y的格式:");

}

}

}

1)實驗結果截圖:

實驗任務三:請編寫一個程序將一個整數轉換為漢字讀法字符串。比如“1123”轉換為“一千一百二十三”。 更進一步,能否將數字表示的金額改為“漢字表達? 比如將“¥123.52”轉換為“壹佰貳拾叁元伍角貳分”。

1)程序設計思想:

2)源代碼:

package?demo;

import?java.util.Scanner;

public?class?ZhuanHuan {

private?String[] a={"零","壹","貳","叁","肆","伍","陸","柒","捌","玖"};

private?String[] b={"十","百","千","萬","十萬?","百萬"};

private?String[] c={"元","角","分"};

private?String Change(String str)

{

String result="";

int?numLen=str.length();

for(int?i=0;i

{

int?num=str.charAt(i)-48;

if(i!=numLen-1&&num!=0)

{

result+=a[num]+b[numLen-2-i];

}

else

{

if(result.length()>0&&a[num].equals("零")&&result.charAt(result.length()-1)=='零')

continue;

result+=a[num];

}

}

if(result.length()==1)

return?result;

int?index=result.length()-1;

while(result.charAt(index)=='零')

{

index--;

}

if(index!=result.length()-1)

return?result.substring(0,index+1);

else?{

return?result;

}

}

public?static?void?main(String args[])

{

ZhuanHuan nr=new?ZhuanHuan();

Scanner in=new?Scanner(System.in);

System.out.print("輸入整數:");

String x=in.next();

System.out.print("轉換后為:"+nr.Change(x));

}

}

進一步,金額的源代碼:

package?demo;

import?java.util.Scanner;

public?class?ZhuanHuan {

private?String[] a={"零","壹","貳","叁","肆","伍","陸","柒","捌","玖"};

private?String[] b={"十","百","千","萬"};

private?String[] c={"元","角","分"};

private?String Change(String str)

{

String result="";

int?p=0;

int?numLen=str.length();

for(int?i=0;i

{

if(str.charAt(i)=='.')

{

p=i;

break;

}

}

for(int?i=0;i

int?num=str.charAt(i)-48;

if(i!=p-1&&num!=0)

{

result+=a[num]+b[p-2-i];

}

else

{

if(result.length()>0&&a[num].equals("零")&&result.charAt(result.length()-1)=='零')

continue;

result+=a[num];

}

}

result+=c[0];

for(int?i=p+1;i

{

int?num1=str.charAt(i)-48;

if(num1!=0)

{

result+=a[num1]+c[numLen-p-2];

}

else

result+=a[num1];

p--;

}

int?index=result.length()-1;

while(result.charAt(index)=='零')

{

index--;

}

if(index!=result.length()-1)

return?result.substring(0,index+1);

else?{

return?result;

}

}

public?static?void?main(String args[])

{

ZhuanHuan nr=new?ZhuanHuan();

Scanner in=new?Scanner(System.in);

System.out.print("輸入金額:");

String x=in.next();

System.out.print("轉換后為:"+nr.Change(x));

}

}

4)實驗結果截圖:

實驗任務四:大數

(1)?源代碼:

package?demo;

import?java.util.Scanner;

public?class?BigNum{

public?static?int[]add(int?[]a,int?[]b){

int?wei=0;

int[]c=new?int[a.length];

for(int?i=a.length-1;i>=0;i--)

{

c[i]=a[i]+b[i]+wei;

if(c[i]<10)

wei=0;

else

{

c[i]=c[i]-10;

wei=1;

}

}

return?c;

}

public?static?int?[]sub(int?[]a,int[]b,int?w)

{

int?wei=0;

int[]c=new?int[a.length];

for(int?i=a.length-1;i>=0;i--)

{

if(w<=0)

{

c[i]=b[i]-a[i]-wei;

if(c[i]>=0)

{ ??wei=0;}

else

{

c[i]=c[i]+10;

wei=1;

}

}

else

{

c[i]=a[i]-b[i]-wei;

if(c[i]>=0)

{wei=0;}

else

{

c[i]=c[i]+10;

wei=1;

}

}

}

return?c;

}

public?static?void?main(String[]args){

int?a[]=new?int[100];

int?b[]=new?int[100];

int?m=0;

int?n=0;

int?s=0;

int?t=0;int?u=0;

Scanner in=new?Scanner(System.in);

System.out.println("請輸入第一個數:");

String aa=in.next();

System.out.println("請輸入第二個數:");

String bb=in.next();

m=a.length-aa.length();

n=b.length-bb.length();

if(aa.length()>bb.length())

{

u=1;

}

else?if?(aa.length()

{

u=-1;

}

else

{u = aa.compareTo(bb);}

for?(int?i = 0; i < aa.length(); i++)

{

a[m++] = aa.charAt(i) - 48;

}

for?(int?j = 0; j < bb.length(); j++)

{

b[n++] = bb.charAt(j) - 48;

}

int[] c = BigNum.add(a, b);

for?(int?k = 0; k < c.length; k++)

{

if?(c[k] > 0)

{

s = k;

break;

}

}

System.out.print("相加的結果為:");

for?(int?i = s; i < c.length; i++) {

System.out.print(c[i]);

}

System.out.println();

int[] d = BigNum.sub(a, b, u);

for?(int?k = 0; k < d.length; k++)

{

if?(d[k] > 0)

{

t = k;

break;

}

}

System.out.print("相減的結果為:");

if?(u < 0)

System.out.print("-");

for?(int?i = t; i < d.length; i++)

{

System.out.print(d[i]);

}

System.out.println();

System.out.println();

System.out.println();

System.out.println();

}

}

(2)?程序截圖

實驗任務五:隨機生成10個數,填充一個數組,然后用消息框顯示數組內容,接著計算數組元素的和,將結果也顯示在消息框中。

(1)?程序設計思路:先定義一個數組,用random算法產生隨機數,利用for循環將隨機數導入數組中,遍歷計算數組元素的和,然后輸出即可。

(2)?源代碼:

package?demo;

import?javax.swing.JOptionPane;

public?class?ArrayAdd {

public?static?void?main(String args[]){

int?[]a=new?int[10];

int?sum=0;

String str="10個隨機數為:"+"\n";

for(int?i=0;i

{

int?m=(int)(Math.random()*100);

a[i]=m;

str+=a[i]+"\n";

sum+=a[i];

}

str+="隨機數的和為:"+sum;

JOptionPane.showMessageDialog(null,str,"結果",JOptionPane.INFORMATION_MESSAGE);

}

}

程序截圖:

(5)編程總結:學會了利用循環將隨機數賦給數組,然后計算數組元素的和,遍歷并輸出,把問題從大化小,由繁化簡,逐步分析,完成項目。

總結

以上是生活随笔為你收集整理的java动脑公开课_java课堂动手动脑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。