动手动脑,第六次Tutorial——数组和随机数数组输出及求和
作业课后作业1
阅读QiPan.java示例程序了解如何利用二维数组和循环语句绘制五子棋盘。
首先,定义string类型的二维数组,它和类的数组不一样,类的数组分配了空间后不能直接for循环赋值,string类型的数组可以,不会出现赋值给地址的事情。
循环赋值后循环打印。这就是一个15*15的五子棋盘。
取键盘输入的数用inputStr.split(",")把,前的赋给a【0】,后的赋给a【1】,再用Integer.parseInt()函数强制把char类型转成int型。得到横纵坐标。
请编写一个程序将一个整数转换为汉字读法字符串。比如“1123”转换为“一千一百二十三”。
更进一步,能否将数字表示的金额改为“汉字表达? 比如将“¥123.52”转换为“壹佰贰拾叁元伍角贰分”。
可以,就像这样。
//此程序由。。。师傅座下得意弟子朱峰所写。 //此乃第6次动手动脑银行钱的转换 import java.util.Scanner; public class dierge { static String a,a1,a2; static void daozhelai (String b) { for(int i=0;b.length()>i;i++) { switch(b.charAt(i)) { case '1':System.out.print("壹");break; case '2':System.out.print("贰");break; case '3':System.out.print("叁");break; case '4':System.out.print("肆");break; case '5':System.out.print("伍");break; case '6':System.out.print("陆");break; case '7':System.out.print("柒");break; case '8':System.out.print("捌");break; case '9':System.out.print("玖");break; case '0':System.out.print("零");break; } switch(b.length()-1-i) { case 0:System.out.print("元");break; case 1:System.out.print("十");break; case 2:System.out.print("百");break; case 3:System.out.print("千");break; case 4:System.out.print("万");break; case 5:System.out.print("十");break; case 6:System.out.print("百");break; case 7:System.out.print("千");break; case 8:System.out.print("亿");break; case 9:System.out.print("十");break; } } } static void buzhidaoa (String b) { for(int j=0;b.length()>j;j++) { switch(b.charAt(j)) { case '1':System.out.print("壹");break; case '2':System.out.print("贰");break; case '3':System.out.print("叁");break; case '4':System.out.print("肆");break; case '5':System.out.print("伍");break; case '6':System.out.print("陆");break; case '7':System.out.print("柒");break; case '8':System.out.print("捌");break; case '9':System.out.print("玖");break; case '0':System.out.print("零");break; } switch(j) { case 0:System.out.print("角");break; case 1:System.out.print("分");break; case 2:System.out.print("厘");break; case 3:System.out.print("毫");break; } } } public static void main(String[] args) { Scanner in=new Scanner(System.in); a=in.nextLine(); a1=new String(); a2=new String(); if (a.indexOf('.')!=-1) { a1=a.substring(0,a.indexOf('.')); a2=a.substring(a.indexOf('.')+1); daozhelai(a1); buzhidaoa(a2); } else daozhelai(a); } }
前面几讲介绍过JDK所提供的BigInteger能完成大数计算,如果不用它,直接使用数组表达大数,你能实现相同的功能吗?
要求:
(1)用你的大数类实现加和减两个功能
(2)阅读BigInteger类源码,弄清楚它是使用什么算法实现加减乘除四种运算的?
(3)通过互联网查找大数运算的相关资料,给你的大数类添加乘、除、求阶乘等其它功能。
略
作业课后作业2
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中。
要求将设计思路、程序流程图、源程序代码、结果截图、编程总结等发表到博客园,并备份到课堂派。
//此程序由。。。师傅座下得意弟子朱峰所写。 //乃 import javax.swing.*; public class meiyoumingzi { public static void main(String[] args) { int a[]=new int[10]; double s=0; String b=new String(); for (int i=0;i<10;i++) { a[i]=(int) (Math.random()*10); s+=a[i]; b+=a[i]+" "; } JOptionPane.showMessageDialog(null,b+"和为:"+s,"随机数数组输出及求和",JOptionPane.CLOSED_OPTION); } }