《Java编程语言原理与范例》课后实验源代码.docx
- 文档编号:10590835
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:72
- 大小:36.20KB
《Java编程语言原理与范例》课后实验源代码.docx
《《Java编程语言原理与范例》课后实验源代码.docx》由会员分享,可在线阅读,更多相关《《Java编程语言原理与范例》课后实验源代码.docx(72页珍藏版)》请在冰豆网上搜索。
《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=(a<<5)+(a<<1);
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=(a>b?
a:
b)>c?
(a>b?
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(n>0){
System.out.print(n%10);
n/=10;
}
}
}
实验二
/*********************************
3.输出以下由数字组成的菱形(要求将输出行数存放于变量中以便随时更改)。
1
121
12321
1234321
12321
121
1
**********************************/
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.输出以上由数字组成的三角形(要求将输出行数存放于变量中以便随时更改)。
136101521
2591420
481319
71218
1117
16
**********************************/
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();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java编程语言原理与范例 Java 编程 语言 原理 范例 课后 实验 源代码