zoukankan      html  css  js  c++  java
  • 课堂作业(数组)

    一、阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结。

      运行结果:

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

    二、请编写一个程序将将数字表示的金额改为汉字表达

    
    

    import javax.swing.JOptionPane;

    
    

    public class NumRmb
    {
     private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" ,
      "伍" , "陆" , "柒" , "捌" , "玖"};
     private String[] unitArr = {"十" , "百" , "千","万","十万","百万"};

    
    

     

    
    

     /**
      * 把一个四位的数字字符串变成汉字字符串
      * @param numStr 需要被转换的四位的数字字符串
      * @return 四位的数字字符串被转换成的汉字字符串。
      */
     private String toHanStr(String numStr)
     {
      String result = "";int i = 0;
      int numLen = numStr.length();
      //依次遍历数字字符串的每一位数字
      for ( ; i < numLen ; i++ )
      { 
       if((i==numLen-1)&&(numStr.charAt(i)!='.')){
       //把char型数字转换成的int型数字,因为它们的ASCII码值恰好相差48
       //因此把char型数字减去48得到int型数字,例如'4'被转换成4。
        for(i=0;i<numLen;i++){
        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];}
         }
        result +="元";
       }
       else if(numStr.charAt(i)=='.'){
        for(int j=0;j<i;j++)
        {
         int num = numStr.charAt(j) - 48;
          if ( j != i - 1 && num != 0){
          result += hanArr[num] + unitArr[i -2- j];
           }
          else{
          if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')
           continue;
          result += hanArr[num];
           }
        }
        if(i<numStr.length())
        {int num = numStr.charAt(i+1) - 48;result +="元"+hanArr[num]+"角";
         num = numStr.charAt(i+2) - 48;result +=hanArr[num]+"分";}
         break;
       }
      
      }
        
      
     
      //只有个位数,直接返回
      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)
        {       
      NumRmb nr = new NumRmb();
      String num=JOptionPane.showInputDialog("输入钱数");
      JOptionPane.showMessageDialog(null, nr.toHanStr(num),"转化后",JOptionPane.CLOSED_OPTION);
      
        }
    }

    
    

    三、十个随机数求和 

    1、设计思想:

    创建类,定义方法产生随机数,定义方法求和,主方法调用,并输出结果

    2、流程图

    3、源代码

     1 import javax.swing.*;
     2 public class Suijihe {
     3     public static void main(String[]args){
     4         int[] num=new int[10];String s="";
     5         suiji(num);
     6         for(int i=0;i<num.length;i++)
     7             s+=num[i]+" ";
     8         int sum=qiuhe(num);
     9         JOptionPane.showMessageDialog(null,s+"
    "+sum,"一到十之间十个随机数和",JOptionPane.CLOSED_OPTION);
    10     }
    11     
    12     public static void suiji(int a[]){
    13         for(int i=0;i<a.length;i++){
    14             a[i]=(int)(1+Math.random()*10);
    15         }
    16     }
    17     
    18     public static int qiuhe(int a[]){
    19         int sum=0;
    20         for(int i=0;i<a.length;i++)
    21             sum+=a[i];
    22         return sum;
    23     }
    24 }

    4、运行结果截图

     

  • 相关阅读:
    jquery mobile pages之间的跳转
    Javascript中this、prototype、constructor的理解
    javaScript的引号使用
    javaScript的事件
    我的css
    HTML5 canvas的事件
    java动态代理
    (转)面向对象的 JavaScript 编程:dojo.declare 详解
    Speex手册编解码介绍 中文翻译
    Android修改自己程序字体
  • 原文地址:https://www.cnblogs.com/ghs1065248758/p/6034841.html
Copyright © 2011-2022 走看看