您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 《Java编程语言:原理与范例》课后实验源代码
第一章实验一packagech01;importjava.text.SimpleDateFormat;importjava.util.Date;classTimerextendsThread{privateSimpleDateFormatsdf=newSimpleDateFormat(yyyy年MM月dd日HH:mm:ss);publicvoidrun(){while(true){System.out.print(\r现在时间是:);Datenow=newDate();System.out.print(sdf.format(now));try{sleep(1000);}catch(InterruptedExceptione){e.printStackTrace();}}}}publicclassClock{publicstaticvoidmain(String[]args){Timertimer=newTimer();timer.start();}}实验二packagech01;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.util.Random;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassMagicButtonextendsMouseAdapter{JFramewin;JButtonbutton=newJButton(你点不到我);Randomrand=newRandom();voidinitUI(){win=newJFrame();win.setLayout(null);button.setSize(100,40);button.addMouseListener(this);win.add(button);win.setSize(400,300);win.setResizable(false);win.setLocationRelativeTo(null);win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);win.setVisible(true);}publicstaticvoidmain(String[]args){MagicButtondemo=newMagicButton();demo.initUI();}publicvoidmouseEntered(MouseEvente){intmouseX=button.getX()+e.getX();intmouseY=button.getY()+e.getY();while(true){intbuttonX=rand.nextInt(win.getWidth()-button.getWidth());intbuttonY=rand.nextInt(win.getHeight()-button.getHeight());button.setLocation(buttonX,buttonY);if(!button.getBounds().contains(mouseX,mouseY)){break;}}}}第二章实验一/*********************************2.交换两个变量的值(不允许使用中间变量)。**********************************/packagech03;publicclassExp2_2{publicstaticvoidmain(String[]args){inta=2,b=3;ints=a*b;a=s/a;b=s/a;System.out.println(a=+a+,b=+b);}}实验二/*********************************3.逆序输出一个7位整数,如8639427输出为7249368(不允许使用循环语句)。**********************************/packagech03;publicclassExp2_3{publicstaticvoidmain(String[]args){longa=8639427;System.out.print(a%10);System.out.print(a/10%10);System.out.print(a/100%10);System.out.print(a/1000%10);System.out.print(a/10000%10);System.out.print(a/100000%10);System.out.print(a/1000000%10);}}实验三/*********************************4.对于int型变量a,以最快的速度计算34×a的值。**********************************/packagech03;publicclassExp2_4{publicstaticvoidmain(String[]args){inta=3;intb=(a5)+(a1);System.out.println(a+*34=+b);}}实验四/*********************************5.字符型变量ch中存放着一个大小写未知的英文字母,判断其大小写后,将ch的值转为小写或大写字母(不允许使用加减运算符和if语句)。**********************************/packagech03;publicclassExp2_5{publicstaticvoidmain(String[]args){charch='E';ch=(char)((ch&32)==0?ch|32:ch&(Integer.MAX_VALUE-32));System.out.println(ch1=+ch);}}实验5/*********************************6.使用嵌套的条件运算符,求a、b、c中的最大者。**********************************/packagech03;publicclassExp2_6{publicstaticvoidmain(String[]args){inta=2,b=4,c=3;intmax=(ab?a:b)c?(ab?a:b):c;System.out.println(max=+max);}}第三章实验一/*********************************2.使用循环结构逆序输出任意位数的整数。**********************************/packagech04;importjava.util.Scanner;publicclassExp3_2{publicstaticvoidmain(String[]args){Scanners=newScanner(System.in);System.out.println(输入整数:);longn=s.nextLong();while(n0){System.out.print(n%10);n/=10;}}}实验二/*********************************3.输出以下由数字组成的菱形(要求将输出行数存放于变量中以便随时更改)。1121123211234321123211211**********************************/packagech04;importjava.util.Scanner;publicclassExp3_3{publicstaticvoidmain(String[]args){introws;Scanners=newScanner(System.in);System.out.print(输入行数:);rows=s.nextInt();for(inti=-rows/2;i=rows/2;i++){System.out.printf(%-+(3*Math.abs(i)+1)+s,);for(intj=Math.abs(i)-rows/2;j=rows/2-Math.abs(i);j++){System.out.printf(%-3d,rows/2+1-Math.abs(i)-Math.abs(j));}System.out.println();}}}实验三/*********************************4.输出以上由数字组成的三角形(要求将输出行数存放于变量中以便随时更改)。136101521259142048131971218111716**********************************/packagech04;importjava.util.Scanner;publicclassExp3_4{publicstaticvoidmain(String[]args){introws;Scanners=newScanner(System.in);System.out.print(输入行数:);rows=s.nextInt();intfirstNumOfRow=1,nextNumOfRow;for(inti=1;i=rows;i++){firstNumOfRow+=i-1;intfirstStepOfRow=i+1;nextNumOfRow=firstNumOfRow;for(intj=1;j=rows+1-i;j++){System.out.printf(%-4d,nextNumOfRow);nextNumOfRow+=firstStepOfRow++;}System.out.println();}}}实验四/*********************************5.计算多项式8+88+888+8888+88888+...的前8项之和。输出结果:98765424**********************************/packagech04;publicclassExp3_5{publicstaticvoidmain(String[]args){longsum=0;for(inti=1;i=8;i++){longnum=0;for(intj=1;j=i;j++){num=num*10+8;}sum+=num;}System.out.println(sum);}}第四章实验一/*********************************1.产生10个100以内的随机整数以填充一维数组,实现以下功能。①找出最大以及最小值。②查找给定整数a在数组中最后一次出现的位置,若不存在则提示。③判断数组是否呈非递减排列。④将数组元素翻转存放。**********************************/packagech05;importjava.util.Random;importjava.util.Scanner;publicclassExp4_1{int[]init(){int[]a=newint[10];Randomr=newRandom();for(inti=0;ia.length;i++){a[i]=r.nextInt(100);}returna;}voidprint(int[]a){for(inti=0;ia.length;i++){System.out.printf(%-5d,a[i]);}System.out.println();}intfindMax(int[]a){intmax=a[0];for(inti=1;ia.length;i++){if(maxa[i]){max=a[i];}}returnmax;}intfindMin(int[]a){intmin=a[0];for(i
本文标题:《Java编程语言:原理与范例》课后实验源代码
链接地址:https://www.777doc.com/doc-4757391 .html