实验任务一:阅读并运行示例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课堂动手动脑相关推荐

  1. 计算机公开课课前互动小游戏,公开课前课堂小游戏

    引导语:一年级拼音教学小游戏玩是孩子的天性,游戏自然就会成为一年级拼音教学的常客!下面是yjbys小编收集了一些关于公开课前拼音课堂小游戏,希望对你有帮助. 篇一:公开课前课堂小游戏 适用范围: 用于 ...

  2. java part.inlimen_java字符串加密及动手动脑

    字串加密: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想:先输入一个字符串,调用toCharArray()函数将它转化为字符数组,在利 ...

  3. java跑动d小人_Java课堂练习5

    针对String作为一个基本类型来使用: 1.如果String作为一个基本类型来使用,那么我们视此String对象是String缓冲池所拥有的. 2.如果String作为一个基本类型来使用,并且此时S ...

  4. java课程课后作业04之动手动脑

    1.继承条件下的构造方法调用 先贴出实验需要的代码: 1 package TestJava; 2 3 class Grandparent 4 { 5 public Grandparent() 6 { ...

  5. java swing列表数据加监听,【Java Swing公开课|Java监听列表项选择事件怎么用,看完这篇文章你一定就会了】- 环球网校...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  6. java监听焦点事件_【Java Swing公开课|Java Swing焦点事件监听器怎么用,看完这篇文章你一定就会了】- 环球网校...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  7. java语言学术报告厅,文理学院举办java编程语言公开课

    为了拓宽学生视野,增强学生科技创新意识,引导学生进行职业生涯规划,9月12日19:30,文理学院学生会邀请恒智IT云计算的贾旺老师在学术报告厅举办了一场"关于Java编程语言发展前景及应用& ...

  8. 接口_公开课_课堂笔记

    一.什么是接口? 接口指的是实体或者软件提供给外界的一种服务 二.为什么需要接口? 因为接口能够使用我们的实体,软件的内部数据能够被外部修改. 硬件接口:USB接口:传输数据. 软件接口:API(ap ...

  9. java窗口弹出的位置_java的窗口弹出和动手动脑

    窗口弹出 //两数相加窗口弹出 张雪晴 2015/10/3 import javax.swing.JOptionPane; public class Addition { public static ...

最新文章

  1. java 获取utc,如何在Java 8中获取UTC + 0日期?
  2. 我的Android进阶之旅------Android项目目录结构分析
  3. 概述:机器学习和大数据技术在信贷风控场景中的应用
  4. Zjoi2010排列计数Perm
  5. CentOS中使用Docker+nginx部署Vue打包的dist项目
  6. python return返回值在计算机内的存储形式_Python如何执行存储过程,获取存储过程返回值...
  7. 正则表达式不包含某个字符串_JMeter必知必会系列(18) JMeter正则表达式提取器疑难分析...
  8. P2597 [ZJOI2012]灾难(top+lca)
  9. 课时77.序选择器(掌握)
  10. (68)zabbix windows性能计数器使用详解
  11. Android 10 发布
  12. 一个阿拉伯数字转中文数字的函数
  13. 【ExtJs】获取grid选中的records
  14. 压缩与解压缩 与多个安装文件的合并问题
  15. debian 修改apache2 https 端口为11443
  16. 使用nsenter进入Docker容器
  17. Rocket - tilelink - AtomicAutomata
  18. 物流企业matlab效率,基于DEA原理的物流企业综合效率评价
  19. acer switch 10 linux,acer switch 10好不好
  20. JAVA--计算长方体、四棱锥的表面积和体积

热门文章

  1. ARC079F - Namori Grundy(构造,基环树)
  2. P4592 [TJOI2018]异或
  3. P4716-[模板]最小树形图
  4. bzoj#2407-探险【最短路,二进制分组】
  5. 牛客练习赛79E-小G的数学难题【dp,单调队列】
  6. CF401C-Team【构造】
  7. jzoj4235-序列【斐波那契数列】
  8. jzoj4272-序章-弗兰德的秘密【树形dp】
  9. [CF850F] Rainbow Balls
  10. AtCoder Grand Contest 021 D - Reversed LCS(区间dp)