1课程实验报告课程名称Java应用技术班级实验日期2013.9.12姓名学号实验成绩实验名称实验1:Java语言程序设计基础实验目的及要求1.掌握Java语言的基本语法,基本数据类型;2.熟练运用选择、循环控制程序流程;3.掌握数组类型的声明和动态内存申请;4.掌握String类中的方法。实验环境操作系统:WindowsIDE:JDK或者MyEclipse实验内容(1)猜数字。编写一个Java应用程序,实现如下功能:A.随机分配给客户一个1~100之间的整数。B.用户从键盘输入自己的猜想。C.程序返回提示:”大了”,”小了”,”猜对了”。D.用户根据提示,再次输入猜想的数,直到猜对为止,显示”猜对了”,同时输出猜想的次数。(2)金额的中文大写形式。给定一个浮点数,将其转换为金额的中文大写形式的字符串。例如,123.45表示为“壹佰贰拾叁元肆角伍分”。注意以下几种情况:A.当金额为整数时,只表示整数部分,省略小数部分,并添加“整”字,例如123表示成“壹佰贰拾叁元整”。B.当金额中含有连续的0时,只需写一个“零”即可。例如10005表示为“壹万零伍元整”。C.10的省略表示。例如110表示为“壹佰壹拾元整”,而10表示为“拾元整”。D.100表示为“壹佰元整”,1000表示为“壹仟元整”等等。2调试过程及实验结果实验1实验210的省略表示100的表示3总结实验1通过对Pattern类的使用使程序的可执行性较高,能够良好有效的运行。实验2程序的编写耗费时间较长,对结果的优化不是特比理想,应该通过字符位置的查找判断进行优化,但实现较为困难。附录实验1publicclassNumber{publicstaticvoidmain(String[]args){System.out.println([猜想要求:1~100之间的整数]);//count1:符合规则的猜想次数//count2:总猜想次数intcount1=0,count2=0;Randomrandom=newRandom();//随机产生1~100之间的整数intnumber=random.nextInt(100)+1;for(;;){System.out.print([请输入你猜想的整数]:);//获取用户输入的整数Stringstringnumber=newScanner(System.in).next();//使用Pattern类的方法规范入户的输入格式,避免用户输入乱码时程序崩溃booleanb=Pattern.matches([1-9]|[1-9][1-9]|100,stringnumber);if(b){intenternumber=Integer.valueOf(stringnumber);count1++;if(enternumbernumber){System.out.println(***猜想数大于实际数,请继续努力***);}elseif(enternumbernumber){System.out.println(***猜想数小于实际数,请继续努力***);}else{System.out.println(***恭喜您,猜对了***);System.out.println(***规则猜想次数:+count1+***);System.out.println(***总计猜想次数:+(count1+count2)+***);break;}}//规则猜想else{System.out.println(***猜想失败,违反猜想要求***);count2++;}//非法猜想}4}}实验2publicclassTest{publicstaticvoidmain(String[]args){//用户输入的金额Stringm;String[]mychar;String[]number={0,1,2,3,4,5,6,7,8,9};String[]numbers={零,壹,贰,叁,肆,伍,陆,柒,捌,玖};String[]unit1={元整,拾,佰,仟,万,十万,百万,仟万,亿};String[]unit2={角,分};Stringmm1,mm2;System.out.println([金额要求:小数位不超过两位,整数位不超过十位]);for(;;){System.out.print([请输入金额]:);m=newScanner(System.in).nextLine();booleanb=Pattern.matches(\\d{0,10}|(\\d{0,10}.\\d{0,2}),m);if(b){//将数字的一般表示替换为汉字表示for(inti=0;i10;i++){m=m.replace(number[i],numbers[i]);}mm1=m;mychar=newString[m.length()];if(m.contains(.)){unit1[0]=元;//整数部分mm1=m.substring(0,m.length()-3);//小数部分mm2=m.substring(m.length()-2,m.length());//小数部分的转化for(inti=0;imm2.length();i++){mychar[mm1.length()+i]=mm2.charAt(i)+unit2[i];}}//整数部分的转化intj=mm1.length()-1;for(inti=0;imm1.length();i++){//零则不加单位if(String.valueOf(mm1.charAt(i)).equals(零)&&j!=0){mychar[i]=String.valueOf(mm1.charAt(i));5j--;}else{mychar[i]=mm1.charAt(i)+unit1[j--];}}Stringmystr=;for(inti=0;imychar.length;i++){if(mychar[i]!=null){mystr+=mychar[i];}}//除去多余的零for(inti=0;i6;i++){mystr=mystr.replaceAll(零零,零);}//其它修整mystr=mystr.replaceAll(零元,元);if(!mystr.contains(壹佰壹拾元)&&!mystr.contains(壹仟零)){mystr=mystr.replaceAll(壹拾,拾);}System.out.println([转换后的金额]:+mystr);break;}else{System.out.println([非法格式,请重新输入]);}}}}