zoukankan      html  css  js  c++  java
  • 第六次课堂作业

    一:动手动脑: 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照。

    可以得到:

    按引用传递与按值传送数组类型方法参数的最大关键在于:使用前者时,如果方法中有代码更改了数组元素的值,实际上是直接修改了原始的数组元素。使用后者则没有这个问题,方法体中修改的仅是原始数组元素的一个拷贝

    二:

    阅读QiPan.java示例程序了解如何利用二维数组和循环语句绘制五子棋盘。

    代码:

    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(" ");
    }
    }
    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的格式:");
    }
    }
    }

    截图:

    三:请编写一个程序将一个整数转换为汉字读法字符串。比如“1123”转换为“一千一百二十三”。 更进一步,能否将数字表示的金额改为“汉字表达? 比如将“¥123.52”转换为“壹佰贰拾叁元伍角贰分”。

    代码:


    import java.util.Scanner;
    public class Zhuanhuan
    {
    private String[] hanArr = {"零" , "一" , "二" , "三" , "四" ,
    "五" , "六" , "七" , "八" , "九"};
    private String[] unitArr = {"十" , "百" , "千","万","十万","百万"};



    /**
    * 把一个四位的数字字符串变成汉字字符串
    * @param numStr 需要被转换的四位的数字字符串
    * @return 四位的数字字符串被转换成的汉字字符串。
    */
    private String toHanStr(String numStr)
    {
    String result = "";
    int numLen = numStr.length();
    //依次遍历数字字符串的每一位数字
    for (int i = 0 ; i < numLen ; i++ )
    {
    //把char型数字转换成的int型数字,因为它们的ASCII码值恰好相差48
    //因此把char型数字减去48得到int型数字,例如'4'被转换成4。
    int num = numStr.charAt(i) - 48;
    //如果不是最后一位数字,而且数字不是零,则需要添加单位(千、百、十)
    if ( i != numLen - 1 && num != 0)
    {
    result += hanArr[num] + unitArr[numLen - 2 - i];
    }
    //否则不要添加单位
    else
    {

    //上一个数是否为“零”,不为“零”时就添加
    if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')
    continue;
    result += hanArr[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.println("请输入整数:");
    String num= in.next();
    System.out.println("汉字读法为:"+nr.toHanStr(num));
    }
    }

    截图:

     四:随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中

    思路:

    使用random随机产生10个数,存入数组中使用for循环把结果存入一个String对象中使用for循环求出数组中所有元素的和使用JTextArea和JOptionPane输出数组的内容

    流程图:

    代码:

    package 实验6;
    import javax.swing.*;

    public class InitArray {
    public static void main( String args[] )
    {
    String output = "";
    int num=0;

    int n[] = new int[10];
    for(int i=0;i<n.length;i++){
    n[i]=(int)(Math.random()*100+1);
    }

    output += "Subscript Value ";

    for ( int i = 0; i < n.length; i++ ){
    output += i + " " + n[ i ] + " ";
    num+=n[i];
    }

    JTextArea outputArea = new JTextArea( 11, 10 );
    outputArea.setText( output );

    JOptionPane.showMessageDialog( null, outputArea,
    "Initializing an Array with a Declaration",
    JOptionPane.INFORMATION_MESSAGE );
    JOptionPane.showMessageDialog(null,num,"数组中所有元素的和:",
    JOptionPane.INFORMATION_MESSAGE);

    System.exit( 0 );
    }
    }

    截图:

  • 相关阅读:
    sp2010 升级sp2013 用户无法打开网站
    powerviot install in sharepoint 2013
    can not connect cube in performancce dashboard
    westrac server security configure user info
    添加报表服务在多服务器场
    sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法
    delete job definition
    目前付款申请单内网打开慢的问题
    item style edit in sharepoint 2013
    Could not load file or assembly '$SharePoint.Project.AssemblyFullName$'
  • 原文地址:https://www.cnblogs.com/ever1961211/p/6034775.html
Copyright © 2011-2022 走看看