作业1—java基础实验——参考答案
java基础作业1附答案

1.X (x<1)Y= 2x-1 (1<x<10)3x-11 (x>10) 要求输入x值后,输出y值。
package student.xiaoqiao.day01;import java.util.Scanner;public class Yi {public static void main(String[] args) {System.out.println("请输入一个数");Scanner sc = new Scanner(System.in);int x = sc.nextInt();if (x < 1) {System.out.println("y=" + x);}if (x > 1 & x < 10) {System.out.println("y=" + (2 * x - 1));}if (x > 10) {System.out.println("y=" + (3 * x - 11));}}}2.输入一个年份判断year是否是闰年package student.xiaoqiao.day01;import java.util.Scanner;public class Er {public static void main(String[] args) {System.out.println("请输入年份");Scanner sc=new Scanner(System.in);int year=sc.nextInt();if((year%4==0&year%100!=0)|(year%400==0)) System.out.println("是闰年");elseSystem.out.println("不是闰年");}}3.任意输入a,b,c 3个数判断a,b,c大小package student.xiaoqiao.day01;import java.util.Scanner;public class San {public static void main(String[] args) {System.out.println("请输入三个数(加空格或回车):");Scanner sc = new Scanner(System.in);int x = sc.nextInt();int y = sc.nextInt();int z = sc.nextInt();if (x > y & x > z) {System.out.println(x);} else if (x < y & z < y) {System.out.println(y);} else if (x < z & y < z) {System.out.println(z);}}}4_1输出图形*********package student.xiaoqiao.day01;public class Si_1 {public static void main(String[] args) {int temp = 3;for (int i = 1; i <= temp; i++) {for (int j = 1; j <= temp - i; j++) {System.out.print(" ");}for (int k = 1; k <= 2 * i - 1; k++) {System.out.print("*");}System.out.print('\n');}}}4_2输出图形*********package student.xiaoqiao.day01;public class Si_1 {public static void main(String[] args) {int temp = 3;for (int i = 1; i <= temp; i++) {for (int j = 1; j <= temp - i; j++) {System.out.print(" ");}for (int k = 1; k <= 2 * i - 1; k++) {System.out.print("*");}System.out.print('\n');}}}4_3输出图形任意输入n当输入n值为1时,输出 *当输入n值为2时,输出当输入n值为3时,输出.。
java基础练习及参考答案

java基础练习及参考答案java基础练习编程结构:1.如果一个数从左边念和从右边念都就是同一个数,就称作回文数.比如:686就是一个回文数.编程找到1000以内所有的回文数.packagetext01;importjava.util.*;publicclasst1{publicstaticvoidmain(stringargs[]){inti,n,m,count=0;system.out.p rintln(\);for(i=1;i<=1000;i++){n=i;m=0;while(n!=0){m=m*10+n;n/=10;}if(m==i){sy stem.out.println(m);count++;}}}}2.一位妇女在河边洗碗.邻居们问:\家里去了多少个客人?\她提问:\每两个客人氰化钠一个菜碗,每三个客人氰化钠一个汤碗,每四个客人氰化钠一个饭碗,共用碗65个\反问共去了多少客人?packaget1;publicclasst2{publicstaticvoidmain(stringargs[]){intx=0;while(x<65){inti=x/2;i ntj=x/3;intm=x/4;if(i+j+m==65){system.out.println(x);}x++;}}}字符串:1/51.给定一个字符串“abc123abc”,求:1)将字串全部转为大写abc123abcpackagetext01;importjava.util.*;publicclasst1{publicstaticvoidmain(stringargs[]){stringstr=\;stringstr1=str.to uppercase();system.out.println(str1);}}2)截取字串的前3个字符abcpackagetext01;importjava.util.*;publicclasst1{publicstaticvoidmain(stringargs[]){stringstr=\;stringa[]=str.split(\);system.out.println(a[0]);}}3)去掉字符中两头的空格abc123abcpackagetext01;publicclasst2{publicstaticvoidmain(string[]args){stringstring=\;string=mytrim( string);system.out.println(\+string+\);}publicstaticstringmytrim(stringstring) {intstart=0;intend=string.length()-1;while(start<=end&&string.charat(start)==''){start++;}while(start<=end&&strin g.charat(end)==''){end--;}returnstring.substring(start,end+1);}}4)搜寻字母a发生的边线6packagetext01;importjava.util.*;publicclasst1{publicstaticvoidmain(stringargs[]){stringstr=\;system.out.println(str.indexof(\));}}2.取值一个字符串“helloworld.”,将字符串间的空格换成.2/5(提示信息:需用replaceall或循环方式处置)。
java基础作业1附答案

java基础作业1附答案1.某(某<1)Y=2某-1(13某-11(某>10)要求输入某值后,输出y值。
packagetudent.某iaoqiao.day01;importjava.util.Scanner;publicclaYi{publictaticvoidmain(String[]arg){}}2.输入一个年份判断year是否是闰年packagetudent.某iaoqiao.day01;importjava.util.Scanner;Sytem.out.println(\请输入一个数\Scannerc=newScanner(Sytem.in);int某=c.ne某tInt();if(某<1){Sytem.out.println(\}if(某>1&某<10){Sytem.out.println(\}if(某>10){Sytem.out.println(\}}}eleSytem.out.println(\不是闰年\3.任意输入a,b,c3个数判断a,b,c大小packagetudent.某iaoqiao.day01;importjava.util.Scanner;publicclaSan{publictaticvoidmain(String[]arg){}4_1输出图形某某某某某某某某某}Sytem.out.println(\请输入三个数(加空格或回车):\Scannerc=newScanner(Sytem.in);int某=c.ne某tInt();inty=c.ne某tInt();intz=c.ne某tInt();if(某>y&某>z){Sytem.out.println(某);}eleif(某<y&z<y){Sytem.out.println(y);}eleif(某<z&y<z){Sytem.out.println(z);}packagetudent.某iaoqiao.day01;publicclaSi_1{publictaticvoidmain(String[]arg){inttemp=3;for (inti=1;i<=temp;i++){for(intj=1;j<=temp-i;j++){Sytem.out.print(\}for(intk=1;k<=2某i-1;k++){Sytem.out.print(\}Sytem.out.print('\\n');}}}4_2输出图形某某某某某某某某某packagetudent.某iaoqiao.day01;publicclaSi_1{publictaticvoidmain(String[]arg){inttemp=3;for (inti=1;i<=temp;i++){for(intj=1;j<=temp-i;j++){Sytem.out.print(\}for(intk=1;k<=2某i-1;k++){Sytem.out.print(\}Sytem.out.print('\\n');}}}4_3输出图形任意输入n当输入n值为1时,输出某当输入n值为2时,输出当输入n值为3时,输出当输入n值为5时,输出某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某.。
Java程序设计实验一参考答案

Java程序设计实验一参考答案java程序设计实验一――环境配置及程序控制语句实验目的:掌握java环境配置;掌握java的控制语句实验内容:一、提问以下内容1.若要正确运行并编译java程序,需要在电脑上安装什么?(回答环境名称即可)jdk2.加装不好java所需环境以后,须要对哪几个环境变量展开设置,在你的系统中找到这些变量并分别图片在本题下方。
需要创建系统环境变量java_home和classpath,需要修改系统环境变量path。
二、程序设计题1.撰写java程序,拒绝接受用户输出的1~12之间的整数,若不符合条件则再次输出,利用switch语句输入对应月份的天数。
(Poissonsscanner和io分别同时实现输出,将两种方法的源程序复制粘贴在本题下方,且将运转结果图片在本题下方)importjava.util.scanner;publicclassex1_1{intn=1;intshuru(){scannerinput=newscanner();system.out.println(“请输入1~12之间的整数:”);n=input.nextint();returnn;}publicstaticvoidmain(stringargs[]){shuru();if(n<1&&n>12){shuru();}else{switch(n){case1:case3:case5:case7:case8:case10:case12:system.out.println(“本月一共31天”);break;case4:case6:case9:case11:system.out.println(“本月一共30天”);break;default:system.out.println(“本月一共28天”);}}2.某班级存有10名同学出席英语考试,试用一维数组同时实现班级学生英语考试成绩的存储并统计数据其班级平均分。
java实验一附答案

Java实验一实验内容(1)写一个应用程序:在屏幕上显示hellojava(2) 写一个Applet小程序,输出hellojava(3) 利用循环计算2+4+6+8+……+100的总和并显示输出结果(4) 编程计算从10到20的平方值并将结果保存在一个数组中实验目的1熟练掌握Java中的数据类型、运算符、表达式及流程控制语句;2掌握数组的定义、建立及其使用方法;3熟悉Java一般程序的结构。
介于机房没有相关java编程软件,我们用txt文件来写java程序。
写完后,修改文件名的后缀,改为.java.编译:点“开始”-“运行”-输入“cmd”-打开你保存.java文件的目录-输入“javac文件名.java”,就会生成.class文件运行:在打开的DOS 环境里,打开你保存.java文件的目录,输入“java 文件名”即可答案:1 JA V A 语言基础(1)写一个应用程序:在屏幕上显示hellojavapublic class HelloWorld{public static void main(String[] args){System.out.println("Hello World!");}}(2)写一个Applet小程序,输出hellojavaimport javax.swing.JApplet;//引入类JAppletimport javax.swing.JLabel;//引入标签类JLabelpublic class HelloWorldApplet extends JApplet{public void init(){System.out.println("init Applet");}public void start(){System.out.println("start Applet");getContentPane().add(new JLabel("HelloWorldApplet"));}public void stop(){System.out.println("stop Applet");}public void destroy(){System.out.println("destory Applet");}}(3)利用循环计算2+4+6+8+……+100的总和并显示输出结果public class s{public static void main(String args[]){int i=2,sum=0;while(i<=100){sum+=i;i+=2;}System.out.println("求和结果是:"+sum);}}(4)编程计算从10到20的平方值并将结果保存在一个数组中public class Square{public static void printSquare(){long a[] =new long[11];int i;for(i=10;i<=20;i++)a[i-10]=i*i;for(i=0;i<=10;i++)System.out.println(10+i+"的平方值"+a[i]);}public static void main(String args[]){printSquare();}}。
JAVA实验1答案

广东海洋大学学生实验报告书(学生用表)实验名称实验一.熟悉Java编程开发环境课程名称Java程序设计与开发技术课程号16232004学院(系) 信息学院专业计算机科学与技术班级计科学生姓名学号实验地点钟海楼04019实验日期2015年9月14日一、实验目的(1)学习掌握开发Java应用程序的三个步骤;(2)学习同时编译多个Java源文件。
二、实验任务完成实验一指导上实验1、实验2的实验任务。
三、实验仪器设备和材料安装有J2SE开发工具的PC机。
四、实验内容和步骤实验1 一个简单的应用程序编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。
代码如下:Hello.javapublic class Hello{public static void main(String[] args) {System.out.println("你好,欢迎学习Java");A a=new A();a.fA();}}class A{void fA(){System.out.println("We are students");}}运行结果:GDOU-B-11-112试验后的练习(1)编译器怎样提示丢失大括号的错误。
Hello.java:16: 错误: 解析时已到达文件结尾(2)编译器怎样提示语句丢失分号的错误。
Hello.java:15: 错误: 需要';'(3)编译器怎样提示将System写成system这一错误。
Hello.java:5: 错误: 程序包system不存在(4)编译器怎样提示将String写成string这一错误。
Hello.java:3: 错误: 找不到符号实验2 联合编译编写4个源文件:MainClass.java、A.java、B.java、C.java,每个源文件只有一个类。
java实验答案全.doc

public void Display(){
if(this.average>=80) status = 1;
else statu$=O;
if(status==l) System.out.println(name+":通过!");if(status==O) System.out.println(name+••:不通过!’•);
}
public float get_y(){ return this.y;
}
//显示点的位罝
public String getLocation(){
String str = "("+(this.x)+","+(this.y)+")"+"\n"; return str;
}
//修改点的坐标
public void changeLocation(float a,float b){
st2.Display();
}
}
实验
2.按照要求编写Java Application程序。
假定要为某个公司编写雇员工资支付程序。这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
经理(Manager):每月获得一份固定的工资;
销售人员(Salesman):在基本工资的基础上每月还有销售提成;
class Student {
public String name; public double a,b,c; public double average; int status;
}
class Undergraduate extends Student {
java实验报告实验1答案

实验一熟悉NetBeans IDE 平台,开发环境及Java编程实验目的:1、我们使用的开发平台是NetBeans IDE,希望通过本次实验同学们能对NetBeans IDE 的开发环境有一个清楚的了解并能熟练运用,对Java语法进行初步运用,对面向对象的编程有一个直观的认识和深入理解,对于Java的基础知识进行理解运用和巩固。
为以后的实验中能够进行开发程序打下基础。
2、通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。
实验内容:● 1. 编写一个体现面向对象思想的程序。
● 2. 编写一个创建对象和使用对象的方法的程序。
● 3. 编写一个显示当前日期和时间的程序。
● 4. 编写不同成员变量修饰方法的程序。
● 5. 编写不同成员方法修饰方法的程序。
● 6. 编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
●7. 编写体现类的多态性(成员方法重载、构造方法重载)的程序。
实验步骤:●双击桌面上的NetBeans IDE 6.5.1快捷方式或在文件菜单中打开它。
图1-1点击文件,创建新项目,创建一个项目名:experiment1。
点击按钮下一步:在项目名称处输入:experiment1 然后点击完成:在experiment1 下实现程序项目experiment1样例1:编写应用程序输出如下三角形。
****************【参考程序】public class Star{public static void main(Stringa[]){System.out.println(" *");System.out.println(" ***");System.out.println(" *****");System.out.println("*******");}}程序运行结果如图1-2所示。
java上机实验答案与解析

JAVA上机实验题答案与解析实验一 Java程序编程1.编写一个Java应用程序,输出内容为Hello;注:文件位置位于e:\2:\Hello.java 编译:1e:2cd 2 3javac Hello.java4java Hello2.编写一个Java小应用程序,输出内容为我一边听音乐,一边学Java;第一步编写import java.awt.;import java.applet.;public class MyApplet extends Applet{public void paintGraphics g{g.drawString"我一边听音乐,我一边做java",25,25;}}第二步在DOS环境中编译....javac MyApplet.java第三步使用记事本编写<applet code=MyApplet.class height=200 width=120></applet>第四步将记事本文件名命名为MyApplet.html第五步打开MyApplet.html实验二类的定义1.编写Java应用程序,自定义Point类,类中有两个描述坐标位置的double变量x,y,利用构造方法,实现对Point 对象p1,p2初始化,p1和p2对应坐标分别为15,20,10,30;定义方法getX,getY分别获得点的横坐标和纵坐标;定义方法setX,setY分别获得点的横坐标和纵坐标;并且把p1和p2输出;public class Point {double x,y;Pointdouble x,double y{this.x=x;this.y=y;}double getX{return x;}double getY{return y;}void setXdouble x{this.x=x;}void setYdouble y{this.y=y;}public static void mainString args {Point p1=new Point15,20;//初始化Point p2=new Point10,30;}运行结果:横坐标为15.0 纵坐标为20.0横坐标为10.0 纵坐标为 30.02.编写Java应用程序,自定义Circle类,类中有两个double 变量r,s,一个类变量pi,利用构造方法实现对半径是3和5.5的初始化,自定义getArea方法实现圆面积求解;public class Circle {double s,r;public Circledouble r{this.r=r;}double get Area{this.s=pirr;return s;}public static void mainString args {Circle c1=new Circle3;Circle c2=new Circle5.5;Area ;Area;}}实验三类的继承和多态性1.1编写一个接口ShapePara,要求:接口中的方法: int getArea:获得图形的面积;int getCircumference:获得图形的周长2编写一个圆类Circle,要求:圆类Circle实现接口ShapePara;该类包含有成员变量:radius:public 修饰的double类型radius,表示圆的半径;x:private修饰的double型变量x,表示圆心的横坐标;y:protected修饰的double型变量y,表示圆心的纵坐标;包含的方法有:Circledouble radius 有参构造方法;以形参表中的参数初始化半径,圆心为坐标原点; double getRadius:获取半径为方法的返回值;void setCenterdouble x, double y:利用形参表中的参数设置类Circle的圆心坐标;void setRadiusdouble radius:利用形参表中的参数设置类Circle的radius域;在主方法中产生半径为5的圆;interface ShapePara {double getAreadouble r;double getCircumferencedouble r;}//注: Circle是在接口中建立的calss,即先建立接口,在建立接口的类class Circle implements ShapePara{private double x;protected double y;public double r;Circledouble r{this.r=r;}void setRadiusdouble r{this.r=r;}double getRadius{return r;double getArea{return 3.14rr;}double getCircumference{return 3.142r;}void setCenterdouble x,double y{this.x=x;this.y=y;}double getCenterx{return x;}double getCentery{return y;}}public class A {public static void mainString args { Circle ci=new Circle5;ci.setRadius5;ci.setCenter0, 0;}答案:78.50.00.02.定义图形类Shape,该类中有获得面积的方法getArea;定义长方形类Rect,该类是Shape 的子类,类中有矩形长和宽的变量double a,double b,设置长和宽的方法setWidth、setHeight,使用getArea求矩形面积;利用getArea方法实现题1中圆面积的求解; class Shape {double getAreadouble r{return 0;}}public class Rect extends Shape {double a,b,area;Rectdouble width,double heigh{a=width;b=height;;}void setWidthdouble width {a=width;}void setHeightdouble height {b=height;}double getWidth{return a;}double getHeight{return b;}double getArea{area=ab;return area;}}public class A {public static void mainString args {Rect rect=new Rect;double w=12.76,h=25.28;rect.setWidthw;rect.setHeighth;}}答案:圆的的面积:78.5矩形对象的宽:12.76 高:25.283. 编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs,获得腿数量的方法getLegs,设置动物名称的方法 setKind,获得动物名称的方法 getKind,获得动物数量的方法 getCount;定义Fish类,是Animal类的子类,统计鱼的数量 count,获得鱼数量的方法 getCount;定义Tiger类,是Animal类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount;定义SouthEastTiger类,是Tiger类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount;public class Animal {String name;int legs;static int count;Animal{count++;}void setLegsint legs{this.legs=legs;}int getLegs{return legs;}void setKindString name{=name;}String getKind{return name;}int getCount{return count;}}public class Fish extends Animal{static int countFish;Fish{countFish++;}int getCount{return countFish;}}public class Tiger extends Animal{static int countTiger;Tiger{countTiger++;}int getCount{return countTiger;}}public class SouthEastTiger extends Tiger{} public class A {public static void mainString args{Fish f=new Fish;Tiger t=new Tiger;SouthEastTiger st=new SouthEastTiger;}实验四异常处理1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理;forinti=0;i<4;i++{intk;switchi{case0:intzero=0;k=911/zero;break;case1:intb=null;k=b0;break;case2:int c=new int2;k=c9;break;case3:charch="abc".charAt99;break;}}package Exception;public class TestException {public static void mainString args{forint i=0;i<4;i++{try{int k;switchi{case 0: int zero=0;k=911/zero;break;case 1: int b=null;k=b0;break;case 2: int c=new int2;k=c9;break;case 3: char ch="abc".charAt99;break;}}catchArithmeticException e{}}catchArrayIndexOutOfBoundsException e{}}}}}运行结果:/ by zeronull9String index out of range: 992.建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawaldouble dAmount,当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank100,表示存入银行100元,当用方法withdrawal150,withdrawal-15时会抛出自定义异常;提示: InsufficientFundsException,NagativeFundsException为自定义的类,分别产生余额不足异常和取款为负数异常,需继承Exception类;通过输出结果了解java异常的产生,并将该Java程序放在exception包中; package Exception;//注解先建立一个package,然后在包中建立各种类public class InsufficientFundsException extends Exception{ String s1;InsufficientFundsExceptionString t{s1=t;}public String getMassage1{return s1;}}package Exception;public class NagativeFundsException extends Exception{ String s;NagativeFundsExceptionString t{s=t;}public String getMassage{return s;}}package Exception;public class Bank extends Exception{static double ba=0;Bankdouble r{ba=ba+r;}void withDrawaldouble dAmount throws InsufficientFundsException,NagativeFundsException{ifdAmount>ba throw new InsufficientFundsException"取款余额不足";else ifdAmount<0 throw new NagativeFundsException"取款为负数";else}}package Exception;import java.util.;public class A{public static void mainString args {Bank b=new Bank100;Scanner sc=new ScannerSystem.in;try {b.withDrawalsc.nextInt;}catchInsufficientFundsException e{}catchNagativeFundsException e{}}}运行结果:请输入一个数80银行里还剩余:20.0实验五输入输出1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上;import java.io.;public class TextRw {public static void mainString args throws IOException {File f=new File"f:\\TextRw.txt";FileWriter fw=new FileWriterf;fw.write"学号姓名";fw.close;FileReader fr=new FileReaderf;int i;whilei=fr.read=-1fr.close;}}2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取IoDemo.java源程序文件,再通过键盘输入文件的名称为iodemo.txt,把IoDemo.java的源程序存入3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc;import java.io.;public class BinIoDemo{public static void mainString args throws IOException{File f1=new File"e:\\1.doc";FileInputStream in=new FileInputStreamf1;File f2 = new File"e:\\“学号”+“姓名”.doc";FileOutputStream out=new FileOutputStreamf2;byte buf = new byte2048;int num = in.readbuf;while num = -1 {out.writebuf, 0, num;out.flush;num = in.readbuf;}in.close;out.close;}}实验六多线程编程1.随便选择两个城市作为预选旅游目标;实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间1000ms以内,哪个先显示完毕,就决定去哪个城市;分别用Runnable接口和Thread类实现;通过Threadpublic class Hw1Thread extends Thread{String a;private int sleepTime;public Hw1ThreadString a{supera;this.a=a;sleepTime=intMath.random6000;}public void run{int count1=0,count2=0;ifThread.currentThread.getName.equalsIgnoreCase"ShangHai"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count1++;ifcount1>count2 && count1==10{ //判断哪个城市的输出次数先达到10,达到则终止输出}else ifcount2>count1 && count2==10{}}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常}}ifThread.currentThread.getName.equalsIgnoreCase"BeiJIng"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count2++;ifcount1>count2 && count1==10{}else ifcount2>count1 && count2==10{}}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常也可以在方法头抛出throw异常}}}}public class Hw1ThreadText {public static void mainString args throws InterruptedException { Hw1Thread td1=new Hw1Thread"ShangHai";Hw1Thread td2=new Hw1Thread"BeiJing";td1.start;td2.start;}}通过Runnable接口:public class Hw1Thread implements Runnable{String a;private int sleepTime;int count1=0,count2=0;public Hw1ThreadString a{this.a=a;sleepTime=intMath.random1000;}public void run{ //重写run方法ifThread.currentThread.getName.equalsIgnoreCase"td1"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count1++;}catchInterruptedException exception{}; //使用sleep方法需要抛出中断异常ifcount1>count2 && count1==10{}else ifcount2>count1 && count2==10{}}}ifThread.currentThread.getName.equalsIgnoreCase"td2"{forint i=0;i<10;i++{try{Thread.sleepsleepTime;count2++;ifcount1>count2 && count1==10{ //判断哪个城市的输出次数先达到10,达到则终止输出}else ifcount2>count1 && count2==10{}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常}}}}public class Hw1ThreadText {public static void mainString args throws InterruptedException { Hw1Thread td1=new Hw1Thread"ShangHai";Hw1Thread td2=new Hw1Thread"BeiJing";new Threadtd1,"td1".start;new Threadtd2,"td2".start;}}2.用继承Thread类方法实现多线程程序;有两个学生小明和小红,小明准备睡10分钟以后开始听课,小红准备睡1小时以后开始听课,雷老师大喊三声“上课了”,小明醒后把小红吵醒,他们开始听课;学生:小明、小红睡觉:明:10min 红:60min老师:喊三声明醒->红醒;上课;class Stu extends Thread{Thread student1,student2,teacher;Stu {teacher=new Threadthis;student1=new Threadthis;student2=new Threadthis;teacher.setName"雷老师";student1.setName"小明";student2.setName"小红";}public void run {ifThread.currentThread==student1 {Thread.sleep10006010;}catchInterruptedException e {}}ifThread.currentThread==student2 {Thread.sleep10006060;}catchInterruptedException e {}}else ifThread.currentThread==teacher { forint i=1;i<=3;i++ {try { Thread.sleep500;}catchInterruptedException e{} }student1.interrupt; //吵醒student student2.interrupt;}}}public class A{public static void mainString args {Stu s=new Stu;}}实验七图像用户界面1.编程实现如下界面:当在第一个文本框中输入直接回车,会在第二个文本框中得第一个文本框输入值的平方,单击求和,会在第二个文本框中得到两个文本框中的和;import java.awt.;public class Test implements ActionListener{TextField tf,tf1;Button b;Frame f;Test{f=new Frame;f.setSize150, 150;f.setLocation300, 300;Panel p=new Panel;Panel p1=new Panel;Panel p2=new Panel;tf=new TextField10;tf1=new TextField10;b=new Button"求和";p.addtf;p1.addtf1;p2.addb;f.addp,BorderLayout.NORTH;f.addp1,BorderLayout.CENTER;f.addp2,BorderLayout.SOUTH;f.setVisibletrue;f.addWindowListenernew WindowAdapter{public void windowClosingWindowEvent e{System.exit0;}};tf.addActionListenerthis;b.addActionListenerthis;}public static void mainString args {new Test;}public void actionPerformedActionEvent e{ int i;ife.getSource==tf{i=Integer.parseInttf.getText;tf1.setTextString.valueOfii;}else ife.getSource==b{i=Integer.parseInttf.getText+Integer.parseInttf1.getText;tf1.setTextString.valueOfi;}}}2.按照如下图所示的窗体布局,其中包含Label,TextField,Button控件,Label控件的名称为l1,l2,l3,l4,l5;TextField的大小为10,Button控件的名称如图所示;所完成的功能是:单击关闭按钮能够关闭窗体;单击“计算”按钮,将得出1号商品和2号商品的费用并显示在合计文本框中;输入1号商品的价格,如果2号商品的价格和1号商品价格相同,在1号商品显示价格控件中回车,2号商品的价格显示和1号商品相同;输入1号商品的数量,如果2号商品的数量和1号商品数量相同,在1号商品显示数量控件中回车,2号商品的数量和1号商品数量相同;import java.awt.;public class Price {public Price{Frame f=new Frame"商品计费";Label l1=new Label"1号商品价格";Label l2=new Label"数量";Label l3=new Label"2号商品价格";Label l4=new Label"数量";Label l5=new Label"合计";//创建标签Button b=new Button"计算";//创建按钮final TextField tf1=new TextField10;final TextField tf2=new TextField10;final TextField tf3=new TextField10;final TextField tf4=new TextField10;//文本框final TextField tf5=new TextField10;Panel p1=new Panel;Panel p2=new Panel;Panel p3=new Panel;p1.addl1;p1.addtf1;p1.addl2;p1.addtf2;p2.addl3;p2.addtf3;p2.addl4;p2.addtf4;p3.addb;p3.addl5;p3.addtf5;//使用这种布局添加方法可以使用Layout默认布局进行布局f.addp1,BorderLayout.NORTH;f.addp2,BorderLayout.CENTER;f.addp3,BorderLayout.SOUTH;f.setSize400, 150;f.setLocation200, 200;f.setVisibletrue; //以上备注同实验1以下蓝色字体按照题1中的思路编程tf1.addKeyListenernew KeyListener{public void keyPressedKeyEvent e{ife.getKeyCode == KeyEvent.VK_ENTER{tf3.setTexttf1.getText;}}public void keyReleasedKeyEvent e {}public void keyTypedKeyEvent e {}}; //对文本框1"1号商品价格"添加键盘监控器,接收到回车符完成相应功能tf2.addKeyListenernew KeyListener{public void keyPressedKeyEvent e{ife.getKeyCode == KeyEvent.VK_ENTER{tf4.setTexttf2.getText;}}public void keyReleasedKeyEvent e {}public void keyTypedKeyEvent e {}}; //对文本框2"数量"添加键盘监控器,接收到回车符完成相应功能f.addWindowListenernew WindowAdapter{public void windowClosingWindowEvent e{System.exit0;}};//窗体的关闭监控器b.addActionListenernew ActionListener {public void actionPerformedActionEvent e{int p1,p2,num1,num2;p1=Integer.parseInttf1.getText;p2=Integer.parseInttf3.getText;num1=Integer.parseInttf2.getText;num2=Integer.parseInttf4.getText;tf5.setTextInteger.toStringp1num1+p2num2;}};//按钮监控器}public static void mainString args {new Price;}}实验八 JDBC编程1. 用access建立数据库ssm,库中有student表,表中字段有:学号number,姓名name,性别gender,年龄 age,成绩score,科目course;1使用“insert into”向表中添加5个你熟悉的同学的学号、姓名、年龄、成绩和科目,并将添加以后的学生信息显示在控制台端;2使用“select ”条件查询得到成绩是80分以上的同学信息;3使用“update ”将表中学号等于自己学号的成绩修改为85分,并将修改以后的表中所有学生信息显示在控制台端;4 使用“delete ”将表中成绩高于80分以上的学生信息删除,并将删除以后的表中所有学生信息显示在控制台端;//以下代码中已经屏蔽的内容只可执行一次,多次执行会产生重复错误import java.sql.;public class DataTest {public static void mainString args throws SQLException {try {} catch ClassNotFoundException e {e.printStackTrace;}Connectioncon=DriverManager.getConnection"jdbc:odbc:ssm","test","1234";Statement state=con.createStatement;////ResultSet rs1=state.executeQuery"SELECT FROM student";//查找student表中的所有信息//ResultSet rs2=state.executeQuery"select FROM student WHERE score>80";//选择成绩大于80的学僧//ResultSet rs3=state.executeQuery"select FROM student";state.executeUpdate"DELETE FROM student WHERE score>80";//删除分数大于80的学生信息ResultSet rs4=state.executeQuery"select FROM student";whilers1.next{}whilers2.next{}whilers3.next{}/whilers4.next{}con.close;}}。
java上机实验答案与解析

j a v a上机实验答案与解析内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)JAVA上机实验题答案与解析实验一 Java程序编程1.编写一个Java应用程序,输出内容为Hello!。
注:文件位置位于e:\2:\ 编译:(1)e:(2)cd 2 (3)javac (4)java Hello 2.编写一个Java小应用程序,输出内容为我一边听音乐,一边学Java。
第一步编写import .*;import .*;public class MyApplet extends Applet{public void paint(Graphics g){("我一边听音乐,我一边做java",25,25);}}第二步在DOS环境中编译(....javac )第三步使用记事本编写<applet code= height=200 width=120></applet>第四步将记事本文件名命名为第五步打开实验二类的定义1.编写Java应用程序,自定义Point类,类中有两个描述坐标位置的double变量x,y,利用构造方法,实现对Point 对象p1,p2初始化,p1和p2对应坐标分别为(15,20),(10,30);定义方法getX(),getY()分别获得点的横坐标和纵坐标;定义方法setX(),setY()分别获得点的横坐标和纵坐标;并且把p1和p2输出;public class Point {double x,y;Point(double x,double y){=x;=y;}double getX(){return x;}double getY(){return y;}void setX(double x){=x;}void setY(double y){=y;}public static void main(String[] args) {Point p1=new Point(15,20);写Java应用程序,自定义Circle类,类中有两个double 变量r,s,一个类变量pi,利用构造方法实现对半径是3和的初始化,自定义getArea方法实现圆面积求解;public class Circle {double s,r;public Circle(double r){=r;}double get Area(){=pi*r*r;return s;}public static void main(String[] args) {Circle c1=new Circle(3);Circle c2=new Circle;Area ());Area());}}实验三类的继承和多态性1.(1)编写一个接口ShapePara,要求:接口中的方法: int getArea():获得图形的面积。
JAVA实验+答案

}
}
A.ArithmeticExceptionB.NumberFormatException
C.ArrayIndexOutOfBoundsExceptionD.IOException
【解析】当程序执行到“inty=5/x”语句时,发生异常,程序中止执行,因此发生ArithmeticException异常。
实验7
1.编一个程序,包含以下文件。
(1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。
属性:PI。
方法:求面积的方法area()。
(2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。
属性:圆半径radius。
returnPI*radius*radius;
}
publicdoubleperimeter(){//定义求圆周长的方法
return2*PI*radius;
}
}
//Cylinder.java文件
packagep2;
publicclassCylinderextendsCircle{//创建继承Circle类的Cylinder类
constructor");
}
}
publicclassTest1{
publicstaticvoidmain(String[]args){
SubClassdescendent=newSubClass();
}
}
4)利用多态性编程,创建一个抽象类shape类,定义一个函数Area为求面积的公共方法,再定义Triangle,Rectangle和circle类,实现computerArea方法;增加display方法,显示name和area,并在Triangle,Rectangle和circle类覆盖该方法,并为每个类增加自己的构造方法;在主类中创建不同对象,求得不同形状的面积。
java实验及答案

}
public abstract void disp();
}
2、package P14;
public class Student extends GeneralPeople {
private String school;
public Student() {
super();
(5)设置性别的公有方法
(6)读取性别的公有方法public String getSex( )
如果为true,返回male,否则返回female
(7)设置学校的公有方法
(8)读取学校的公有方法
(9)实现方法disp(),将学生的姓名、性别、所在学校输出到屏幕
3、根据学生类Student派生出大学生类CollegeStudent,要求如下:
return "male";
else
return "female";
}
public void setAge(int a)
{
age=a;
}
public int getAge()
{
return age;
}
public void disp()
{
System.out.println("Name:"+getName()+" Sex:"+getSex()+" Age:"+getAge());
(2)构造方法People (String n, boolean s, int a)
(3)设置姓名的公有方法
(4)读取姓名的公有方法
(5)设置性别的公有方法
JAVA实验1答案

广东海洋大学学生实验报告书(学生用表)实验名称实验一.熟悉Java编程开发环境课程名称Java程序设计与开发技术课程号16232004学院(系) 信息学院专业计算机科学与技术班级计科学生姓名学号实验地点钟海楼04019实验日期2015年9月14日一、实验目的(1)学习掌握开发Java应用程序的三个步骤;(2)学习同时编译多个Java源文件。
二、实验任务完成实验一指导上实验1、实验2的实验任务。
三、实验仪器设备和材料安装有J2SE开发工具的PC机。
四、实验内容和步骤实验1 一个简单的应用程序编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。
代码如下:Hello.javapublic class Hello{public static void main(String[] args) {System.out.println("你好,欢迎学习Java");A a=new A();a.fA();}}class A{void fA(){System.out.println("We are students");}}运行结果:GDOU-B-11-112试验后的练习(1)编译器怎样提示丢失大括号的错误。
Hello.java:16: 错误: 解析时已到达文件结尾(2)编译器怎样提示语句丢失分号的错误。
Hello.java:15: 错误: 需要';'(3)编译器怎样提示将System写成system这一错误。
Hello.java:5: 错误: 程序包system不存在(4)编译器怎样提示将String写成string这一错误。
Hello.java:3: 错误: 找不到符号实验2 联合编译编写4个源文件:MainClass.java、A.java、B.java、C.java,每个源文件只有一个类。
Java实验及答案

System.out.printf("请用户输入工资:");
float salary;
float _out = 0;
salary=reader.nextFloat();
if(salary<=400&&salary>=0)
{
_out=(float)(salary*(0.5/100));
}
else if(salary>=401&&salary<=600)
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
int year=reader.nextInt(); if(year%4==0&&year%100!=0||year%400==0)
day=29; else
day=28;} switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31;break; case 4: case 6: case 9: case 11: day=30;break; default: } System.out.printf("该月份对应天数为:%d",day); } } 3.2 public class Sanjiujiu { public static void main(String args[]) { for(int i=1;i<=9;i++) {
Java上机题目及答案代码

Java上机实践三实验题目1假设字符串s1、s2、s3的定义如下:String s1 = “A String”;String s2 = “A String”;String s3 = s1;请写出下列表达式的值:s1 == s2s1 == s3s1.length()s1.equals(s2)s1.equals(s3)pareTo(s2)pareTo(s3)s1.concat(s3)s1.indexOf(‘t’)stIndexOf(‘t’)实验目的(1)熟悉字符串类String。
(2)学习创建类String的对象。
(3)学习使用类String执行字符串操作。
实验步骤(1)按题目的要求创建String对象s1、s2,并声明对象引用s3指向s1;(2)调用String类的相关方法,执行指定操作并输出结果。
package lab1;public class Showstr {public static void main(String[] args){String s1 ="A String";String s2 ="A String";String s3 = s1;System.out.println(s1 == s2);System.out.println(s1 == s3);System.out.println(s1.length());System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println(pareTo(s2));System.out.println(pareTo(s3));System.out.println(s1.concat(s3));System.out.println(s1.indexOf('t'));System.out.println(stIndexOf('t'));}}实验2 Java异常处理一、实验目的1)掌握Java异常的概念及工作机制 2)掌握异常的分类3)掌握抛出异常语句的使用(throw)4)掌握抛出捕获处理异常语句的使用(try…catch…finally)5)掌握上抛异常语句的使用(throws)6)掌握创建自定义异常二、实验环境JDK1.6+Eclpise3.2三、实验内容1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。
JAVA 综合实验及练习(参考答案)

参考:这一题考虑使用组合布局,将上面控件放置在 JPanel 上,再将 JPanel 放到内容 面板的中间。下面四个按钮先放在某 JPanel 再放置在内容面板的 South 部分
9、以 JDBC 技术创建一个通讯录应用程序,要求通讯录中必须含有编号、姓名,性别、电
话、地址、Email 等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主 程序测试。 参考如下: 第一步:编写一个 Person 联系人类 public class Person { private int pid; //编号 // 姓名 // 性别 // 电话 //email private String name; private String sex; private String tel; private String email; /*构造函数以及 set-get 函数*/ } 第二步:编写一个 PersonDao 封装对联系人类的有关操作 public class PersonDao { // 添加 联系人 public void addPerson(Person p){ String sql=””; DBHelper. executeUpdate(sql); }
14、关于 length()这个方法的表述正确的是哪个? ( ) A.数组有 length()这个方法,string 也有 length()这个方法。 B.数组有 length()有这个方法,string 没有 length()这个方法。 C.数组没有 length()这个方法,string 有 length()这个方法。 D.数组没有 length()这个方法,string 也没有 length()这个方法。 15、选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另 一个是尚未排序的。 现若想将数据序列由小到大排序,则每次放到有序子列尾部 位置的元素,应从无序序列中选择( )。 A)最大的 B)最小的 C)任意的 D)头上的
实验一 Java语言基础-必做_答案

班级:姓名:学号:成绩实验一:Java语言基础——必做1.按照要求运行下面的程序,回答问题。
public class CommandParameter {public static void main(String[] args) {for(int i=0;i<args.length;i++){System.out.println("第"+i+"个参数是"+args[i]);}}}1)请按照下面的运行命令运行,并写出运行结果。
Java CommandParameter Alice Mike Mary第0个参数是Alice第1个参数是Mike第2个参数是Mary2)你认为args数组的作用是什么?存放程序运行时从命令行输入的各个字符串参数的引用。
3)请写出运行时args数组中每个位置存放的元素值args[0] 存放字符串”Alice”的引用args[1] 存放字符串” Mike”的引用args[2] 存放字符串” Mary”的引用2.有如下数组int myArray[] = { 1, 2, 3, 4, 5, 6 };int yourArray[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };请利用System.arraycopy方法编写一个程序,复制myArray数组的所有内容到yourArray数组,放在yourArray数组下标0开始的位置,并输出yourArray数组的每个元素。
3.有整型数组,按顺序包含元素:10,7,9,2,4,5,1,3,6,8,请编写程序利用Arrays.sort方法对数组进行排序,并输出该数组的每个元素。
4.补充完整下面的程序,使得程序能够计算出指定字符数组中连续字符块的个数:输入:count<empty > 0a 1aaaaa 1aaabbcccc 3aabbabb 4abcdefg 7public class CountRuns {public static void main(String[] args) {int count=0;//请在此处补充程序String s=sc.nextLine();char [ ] chs=s.toCharArray();//请在此处补充程序System.out.println("字符数组中连续字符块个数是"+count);}}5.课本p85习题86.课本p85习题9。
java入门习题及答案

java入门习题及答案——编程1.身高计算尺寸与标准单位之间的转换要求:输入一个小数,输出一个小数如输入:5 7 输出foot 5 inch 7 170.18cm package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {int foot;//尺double inch;//英寸Scanner in = new Scanner(System.in);foot = in.nextInt();inch = in.nextDouble();System.out.println("foot "+foot+",inch "+inch);System.out.println(((foot+inch/12)*0.3048*100)+"cm");}}2.温度转换华摄氏度转换成摄氏度如输入100 输出100F=37Cpackage hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {int C;int F;System.out.println("请输入华摄氏度:");Scanner in=new Scanner(System .in);F=in.nextInt();System.out.println(F+"F ="+(F-32)*5/9+"C");}}3.成绩及格与否判断package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {Scanner in=new Scanner(System .in);System.out.println("请输入成绩:");int amount = in.nextInt();System.out.println("你的成绩是:"+amount);if(amount>=60)System.out.println("恭喜你及格了!");elseSystem.out.println("没有及格,要继续努力!");}}4.从三个数中找出最大的一个数package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {Scanner in=new Scanner(System .in);int x,y,z;System.out.println("请输三个数:");x = in.nextInt();y = in.nextInt();z = in.nextInt();int max = 0;if(x>y) {if(x>z) {max = x;}elsemax = z;}elseif(y>z) {max = y;}elsemax =z;System.out.println("这三个数中最大的是:"+max);}}5.数数几位数package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {System.out.println("请输入一个大于0或者等于0的整数:");Scanner in=new Scanner(System .in);int number = in.nextInt();int count = 0;do {number=number/10;count=count+1;}while(number>0);System.out.println("您输入的这个数是:"+count+"位数");}}6.算平均数(直到输入-1结束)package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {System.out.println("请输入一个大于0或者等于0的整数:");Scanner in=new Scanner(System .in);int number =in.nextInt();int count = 0;int sum = 0;while(number!=-1){sum=sum+number;count=count+1;number = in.nextInt();}if(count>0)System.out.println("平均数="+(double)sum/count);}}7.阶乘问题即输入一个数输出它的阶乘package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {System.out.println("请输入一个数n:");Scanner in=new Scanner(System .in);int n =in.nextInt();int i = 1;int foctor = 1;for(i=1;i<=n;i++){foctor=foctor*i;}System.out.println("n的阶乘为"+foctor);}}8.输出100以内的所有素数package hello;public class Transform {public static void main(String[] args) {System.out.println("100以内的素数有:");for(int n =2;n<100;n++) {int isPrime = 1;for(int i=2;i<n;i++) {if(n%i==0) {isPrime = 0;break;}}System.out.print(n+" ");}}}9.投票统计(直到输入-1结束输出结果)package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) { Scanner in = new Scanner(System.in);int x=in.nextInt();int[]numbers = new int [10];while(x!=-1) {if(x>=0&&x<=9) {numbers[x]++;}x = in.nextInt();}for(int i=0;i<numbers.length;i++)System.out.println(i+":"+numbers[i]);}}10.构造素数表package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) { Scanner in = new Scanner(System.in);boolean[]isPrime = new boolean [100];for(int i=0;i<isPrime.length;i++) {isPrime[i]=true;}for(int i=2;i<isPrime.length;i++) {for(int j=2;i*j<isPrime.length;j++) {isPrime[i*j]=false;}}}for(int i=2;i<isPrime.length;i++) {if(isPrime[i])System.out.print(i+" ");}}}11.输入一段字符判断各个字符的类型(字母、数字或其他)如输入 j3-输出-----------j 字母3 数字- 其他------------package hello;import java.util.Scanner;public class Transform {public static void main(String[] args) {System.out.println("请输入一段字符:");Scanner in = new Scanner(System.in);String i=in.next();System.out.println("---------------");for(int j=0;j<i.length();j++) {char x = i.charAt(j);if(Character.isLetter(x))System.out.println(x+" 字母");else if(Character.isDigit(x))System.out.println(x+" 数字");elseSystem.out.println(x+" 其他");}System.out.println("---------------");}}12.实现函数void sum(a,b),统计并输出a到b之间所有整数和调用示例:sum(2,4),输出9package hello;import java.util.Scanner;public class Transform {public static void sum(int a,int b) {i nt i;i nt sum=0;f or(i=a;i<=b;i++) {sum+=i;}S ystem.out.println(a+"到"+b+"的和是"+sum);}public static void main(String[] args) {System.out.println("请任意输入两个整数:");Scanner in =new Scanner(System.in);int a=in.nextInt();int b=in.nextInt();sum(a,b);}}13.利用函数int max(a,b),返回三个参数中的最大值调用示例:int x = max(3,5,0),执行后x的值为5package hello;import java.util.Scanner;public class Transform {public static int max(int a,int b,int c) {i nt ret;i f(a>b) {ret=a;if(a>c)ret=a;elseret=c;}e lse {ret=b;if(b>c)ret=b;elseret=c;}S ystem.out.println("这三个数中最大的数为:"+ret);r eturn ret;}public static void main(String[] args) {System.out.println("请任意输入三个数:");Scanner in =new Scanner(System.in);int a=in.nextInt();int b=in.nextInt();int c=in.nextInt();max(a,b,c);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、从键盘上输入10个整数,并将其放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素与第10个元素互换,第2个元素与第9个元素互换…第5个元素与第6个元素互换。
分别输出数组原来各元素的值和对换后各元素的值。
参考答案具体代码实现如下:1.package programe;2.3.import java.io.BufferedReader;4.import java.io.IOException;5.import java.io.InputStreamReader;6.7.public class HuHuanDemo {8.public static void main(String args[]) {9. print();10.11. }12.13.public static int[] write() {14. BufferedReader[] buf = newBufferedReader[10];/* 申请缓冲数组 */15.int n;/* 开关量和中间量 */16.int array[] = new int[10];17.for (int i = 0; i < 10; i++)/* 赋值 */18. {19. buf[i] = new BufferedReader(newInputStreamReader(System.in));20./* 给每个缓冲区定义 */21.do/* 判断是否是空串,如是则重新输入 */22. {23. n = 1;24. System.out.print("请输入第" + (i + 1) + "个整数:");25.try/* 建立一个异常捕获 */26. {27. array[i] = Integer.parseInt(buf[i].readLine());/* 执行串变整数 */28./*29. * Integer.parseInt(str) - str转成 int型 buf[i].readLine() -30. * 从系统输入缓冲区读入字符流给buf缓冲区并返回字符串31. */32. } catch (NumberFormatException e)/* 捕获异常 */33. {34. System.out.println("数据输入错误请重新输入");/* 处理异常 */35. n = 0;36. } catch (IOException e) {37. e.printStackTrace();38. }39. } while (n == 0);40. }41.return array;42.43. }44.45.public static void print() {46.int[] ary = write();47.int s;48. System.out.println("\n你输入的数组是:");49.for (int i = 0; i < 10; i++)/* 输出原数组 */50. {51. System.out.print(ary[i] + " ");52. }53.for (int i = 0; i < 5; i++)/* 对换 */54. {55. s = ary[i];56. ary[i] = ary[9 - i];57. ary[9 - i] = s;58. }59.60. System.out.println("\n对换后的数组是:");61.for (int i = 0; i < 10; i++)/* 输出对换后数组 */62. {63. System.out.print(ary[i] + " ");64. }65. System.out.println();66. }67.68.}69.程序输出的结果如图17.2所示。
2、金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)→(壹仟零壹拾壹元整)输出。
试题分析金额转换,在开发财务相关软件时会经常用到,也是软件本地化的一个需要。
一般开发公司或者团队都有相应的金额转换类或者是模块,配合报表工具,可以实现良好的本地化参考答案具体代码实现如下:1.package programe;2.import java.text.NumberFormat;3.import java.util.HashMap;4.import java.util.Scanner;5.public class AmountOfConversion {6.//定义HashMap的value值7.public static final String EMPTY = "";8.public static final String ZERO = "零";9.public static final String ONE = "壹";10.public static final String TWO = "贰";11.public static final String THREE = "叁";12.public static final String FOUR = "肆";13.public static final String FIVE = "伍";14.public static final String SIX = "陆";15.public static final String SEVEN = "柒";16.public static final String EIGHT = "捌";17.public static final String NINE = "玖";18.public static final String TEN = "拾";19.public static final String HUNDRED = "佰";20.public static final String THOUSAND = "仟";21.public static final String TEN_THOUSAND = "万";22.public static final String HUNDRED_MILLION = "亿";23.public static final String YUAN = "元";24.public static final String JIAO = "角";25.public static final String FEN = "分";26.public static final String DOT = ".";27.private static AmountOfConversion formatter = null;//创建AmountOfConversion的实例对象28.//创建初始化一个HashMap对象29.private HashMap NumberMap = new HashMap();30.private HashMap HighnumberofMoney = new HashMap();31.//创建初始化一个NumberFormat对象32.private NumberFormat numberFormat =NumberFormat.getInstance();33.private AmountOfConversion() {34.//在用new创建AmountOfConversion对象时,为HashMap对象进行key-value的映射35. numberFormat.setMaximumFractionDigits(4);//设置数据的小数部分的最大位数是4位36. numberFormat.setMinimumFractionDigits(2);//设置数据的小数部分的最小位数是2位37. numberFormat.setGroupingUsed(false);/*设置此格式中是不可以使用组。
如果设置可以使用组,则数 1234567 可能被格式化为 "1,234,567"*/38. NumberMap.put("0", ZERO);39. NumberMap.put("1", ONE);40. NumberMap.put("2", TWO);41. NumberMap.put("3", THREE);42. NumberMap.put("4", FOUR);43. NumberMap.put("5", FIVE);44. NumberMap.put("6", SIX);45. NumberMap.put("7", SEVEN);46. NumberMap.put("8", EIGHT);47. NumberMap.put("9", NINE);48. NumberMap.put(DOT, DOT);49. HighnumberofMoney.put("1", TEN);50. HighnumberofMoney.put("2", HUNDRED);51. HighnumberofMoney.put("3", THOUSAND);52. HighnumberofMoney.put("4", TEN_THOUSAND);53. HighnumberofMoney.put("5", TEN);54. HighnumberofMoney.put("6", HUNDRED);55. HighnumberofMoney.put("7", THOUSAND);56. HighnumberofMoney.put("8", HUNDRED_MILLION);57. }58.public static AmountOfConversion getInstance() {//判断AmountOfConversion对象formatter是否初始化59.if (formatter == null)60. formatter = new AmountOfConversion();61.return formatter;62. }63.//进行金额转换的多种数据类型64.public String format(String moneyStr) {65. String result = "不能进行金额转换!!";66.if(isConversion(moneyStr)){67. result = convertIntegerTochinese(moneyStr);68. result = convertPointTochinese(result);69. }70.return result;71. }72.public String format(double moneyDouble) {73.return format(numberFormat.format(moneyDouble));74. }75.public String format(int moneyInt) {76.return format(numberFormat.format(moneyInt));77. }78.public String format(long moneyLong) {79.return format(numberFormat.format(moneyLong));80. }81.public String format(Number moneyNum) {82.return format(numberFormat.format(moneyNum));83. }84.private String convertIntegerTochinese(String moneyStr) {//将参数中传入的阿拉伯数字转换成中文85. String result;86. StringBuffer C2CStrBufer = new StringBuffer();87.for (int i = 0; i < moneyStr.length(); i++) {88. C2CStrBufer.append(NumberMap.get(moneyStr.substring(89. i, i + 1)));90. }91.// 拾佰仟万亿等都是汉字里面才有的单位,加上它们92.int indexOfDot = C2CStrBufer.indexOf(DOT);93.int moneyPatternCursor = 1;94.for (int i = indexOfDot - 1; i > 0; i--) {95. C2CStrBufer.insert(i, HighnumberofMoney.get(EMPTY96. + moneyPatternCursor));97. moneyPatternCursor = moneyPatternCursor == 8 ? 198. : moneyPatternCursor + 1;99. }100. String fractionPart = C2CStrBufer.substring(C2CStrBuf er101. .indexOf("."));102. C2CStrBufer.delete(C2CStrBufer.indexOf("."),103. C2CStrBufer.length());104.while (C2CStrBufer.indexOf("零拾") != -1) {105. C2CStrBufer.replace(C2CStrBufer.indexOf("零拾"), 106. C2CStrBufer.indexOf("零拾") + 2, ZERO); 107. }108.while (C2CStrBufer.indexOf("零佰") != -1) {109. C2CStrBufer.replace(C2CStrBufer.indexOf("零佰"), 110. C2CStrBufer.indexOf("零佰") + 2, ZERO); 111. }112.while (C2CStrBufer.indexOf("零仟") != -1) {113. C2CStrBufer.replace(C2CStrBufer.indexOf("零仟"), 114. C2CStrBufer.indexOf("零仟") + 2, ZERO); 115. }116.while (C2CStrBufer.indexOf("零万") != -1) {117. C2CStrBufer.replace(C2CStrBufer.indexOf("零万"), 118. C2CStrBufer.indexOf("零万") + 2, TEN_THOUSAND);119. }120.while (C2CStrBufer.indexOf("零亿") != -1) {121. C2CStrBufer.replace(C2CStrBufer.indexOf("零亿"), 122. C2CStrBufer.indexOf("零亿") + 2, HUNDRED_MILLION);123. }124.while (C2CStrBufer.indexOf("零零") != -1) {125. C2CStrBufer.replace(C2CStrBufer.indexOf("零零"), 126. C2CStrBufer.indexOf("零零") + 2, ZERO); 127. }128.if (stIndexOf(ZERO) == C2CStrBufer.leng th() - 1)129. C2CStrBufer.delete(C2CStrBufer.length() - 1, 130. C2CStrBufer.length());131. C2CStrBufer.append(fractionPart);132. result = C2CStrBufer.toString();133.return result;134. }135.private String convertPointTochinese(String moneyStr) {//对小数点后面的数字进行汉字处理136. String result;137. StringBuffer C2CStrBufer = new StringBuffer(moneyStr) ;138.int indexOfDot = C2CStrBufer.indexOf(DOT);139. C2CStrBufer.replace(indexOfDot, indexOfDot + 1, YUAN) ;140. C2CStrBufer.insert(C2CStrBufer.length() - 1, JIAO); 141. C2CStrBufer.insert(C2CStrBufer.length(), FEN);142.if (C2CStrBufer.indexOf("零角零分") != -1)// 没有零头,加整143. C2CStrBufer.replace(C2CStrBufer.indexOf("零角零分"),144. C2CStrBufer.length(), "整");145.else if (C2CStrBufer.indexOf("零分") != -1)// 没有零分,加整146. C2CStrBufer.replace(C2CStrBufer.indexOf("零分"), 147. C2CStrBufer.length(), "整");148.else {149.if (C2CStrBufer.indexOf("零角") != -1)150. C2CStrBufer.delete(C2CStrBufer.indexOf("零角"),151. C2CStrBufer.indexOf("零角") + 2); 152. }153. result = C2CStrBufer.toString();154.return result;155. }156.private boolean isConversion(String moneyStr) {//判断参数传来的数据是否符合进行转换的条件157.int fractionDigits = moneyStr.length() - moneyStr.indexOf(DOT) - 1;158.boolean flag = true;159.if (fractionDigits > 2){160. System.out.println("金额" + moneyStr + "的小数位多于两位。