java技术java程序设计.docx
- 文档编号:7881674
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:24
- 大小:33.52KB
java技术java程序设计.docx
《java技术java程序设计.docx》由会员分享,可在线阅读,更多相关《java技术java程序设计.docx(24页珍藏版)》请在冰豆网上搜索。
java技术java程序设计
Java技术
《JAVA程序设计》
实验指导书
实验一、编写第一个Java程序
时间:
第2周,9.10
一.实验目的
1.了解JDK的安装与使用
2.学习Java Applet
3.学习JavaApplication
二.实验重点:
了解JDK的安装与使用
三.实验学时:
2学时
四.实验内容与步骤
1.从SUN公司网站上下载免费工具JDK1.4并安装,安装完成后,设置路径到安装的子目录,如JDK安装在c:
\jdk1.4下,则在dos提示符下键入如下命令:
path=c:
\jdk1.4\bin
2.利用JDK工具完成如下Application程序,编辑并运行成功。
输出以下字符图形:
*
++
***
++++
*****
3.2.利用JDK工具完成如下Applet程序,编辑并运行成功。
输出以下字符图形:
*
++
***
++++
*****
五.实验要求
1.整理上机结果和体会,总结Java Applet和Application开发调试经验。
2.完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
实验二、Java语法基础
时间:
第3周,9.18
一.实验目的
1.熟悉和理解Java中的数据类型,运算符,表达式,程序结构等内容
2.学会运用已经学过的内容,编制简单的程序
二.实验重点:
掌握Java语言的基本语法规则
三.实验学时:
2学时
四.实验内容与步骤
1、设计一个Java程序,可以对任意两个正整数m和n,求其最大公约数和最小公倍数。
提示:
得到程序所带参数的例程
publicclasscanshu{
publicstaticvoidmain(String[]args){
inti,j;
if(args.length>0)
i=Integer.parseInt(args[0]);
else
i=0;
if(args.length>1)
j=Integer.parseInt(args[1]);
else
j=0;
System.out.println("第1个参数为:
"+i);
System.out.println("第2个参数为:
"+j);
}
}
2、一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3。
编写一个Java程序,找出1000以内的所有完数。
3、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
请编写一个Java程序实现数据的加密和解密。
(选做)
五.实验要求
a)整理上机结果和体会。
完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
实验三、Java面向对象编程
第4周,9.24
一.实验目的
1.掌握类的定义和使用
2.掌握对象的声明和不同访问属性的成员方问方式
3.掌握构造函数和析构函数的使用和执行过程
二.实验重点:
掌握Java语言的类的定义与使用
三.实验学时:
2学时
四.实验内容与步骤
1、根据教材P75的说明,将货币兑换类HuobiDuihuan定义如下:
classHuobiDuihuan{
privatedoubleduihuanLu;
publicHuobiDuihuan(doublelu){
duihuanLu=lu;
}
publicdoubletoYuan(doubledollar){
return(dollar*duihuaLu);
}
publicvoidsetDuihuanLu(doublelu){
duihuanLu=lu;
}
publicdoubletoDollar(doublewaiBi){
return(waiBi/duihuanLu);
}
}
请用面向对象的编程方法,计算兑换率为7.8为时,10000人民币可以兑换多少美元?
5000美元可以兑换多少人民币?
要求用Java语言编程计算出结果。
2、根据实验2中的加密算法,规则如下:
数据是四位的整数,每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
参考代码如下:
publicclassJaMi
{
publicstaticvoidmain(Stringargs[])
{
intx,x1,x2,x3,x4,t;
if(args.length>0)
x=Integer.parseInt(args[0]);
else
{
System.out.println("请在程序后面带一个四位的数字!
");
return;
}
x1=x%10;
x2=(x%100)/10;
x3=(x%1000)/100;
x4=x/1000;
x1=(x1+5)%10;
x2=(x2+5)%10;
x3=(x3+5)%10;
x4=(x4+5)%10;
t=x1;
x1=x4;
x4=t;
t=x2;
x2=x3;
x3=t;
t=x1+x2*10+x3*100+x4*1000;
System.out.println(x+"=>"+t);
}
}
请用面向对象的编程方法,定义一个加密类,并编写Java程序实现上述功能。
五.实验要求
a)整理上机结果和体会。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
实验四、数组与字符串
时间:
第6周,10.8
六.实验目的
1.熟悉和理解Java中的数组与字符串等内容
2.学会运用已经学过的内容,编制简单的程序
七.实验重点:
掌握Java语言的数组与字符串
八.实验学时:
2学时
九.实验内容与步骤
1、设计一个Java程序,可以从屏幕上得到数据的输入,参考代码如下:
importjava.io.*;
classmRead{
publicstaticvoidmain(Stringargs[])throwsIOException
{
BufferedReaderd=newBufferedReader(newInputStreamReader(System.in));
Stringa;
System.out.print("请输入任一字符串:
");
a=d.readLine();
doubleb=Double.parseDouble(a);
System.out.println("你输入的字符串是"+b*100);
d.close();
}
}
2、根据上面的程序,为竞赛评分编写一个JAVA程序,要求输入9个评委的打分,去掉一个最高和最低分,得到最终的得分并显示出来。
其中,9个评委的打分要放在数组中,最高和最低分要显示出来。
十.实验要求
a)整理上机结果和体会。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
实验五、Java类的继承与派生
时间:
第7周,10.16
一.实验目的
1.掌握类继承与派生的定义和使用
2.熟悉继承的访问控制机制
二.实验重点:
掌握Java语言类的继承
二.实验学时:
2学时
四.实验内容与步骤
1、理解与实现以下程序:
publicclassTestHiddenField
{
publicstaticvoidmain(Stringargs[])
{
D200_Cardmy200=newD200_Card();
my200.balance=50.0;
System.out.println("Fatherbalance:
"+my200.getBalance());
if(my200.performDial())
System.out.println("Sonbalance:
"+my200.balance);
}
}
abstractclassPhoneCard
{
doublebalance;
abstractbooleanperformDial();
doublegetBalance()
{
returnbalance;
}
}
abstractclassNumber_PhoneCardextendsPhoneCard
{
longcardNumber;
intpassword;
StringconnectNumber;
booleanconnected;
booleanperformConnection(longcn,intpw)
{
if(cn==cardNumber&&pw==password)
{
connected=true;
returntrue;
}
else
{
connected=false;
returnfalse;
}
}
}
classD200_CardextendsNumber_PhoneCard
{
doubleadditoryFee;
doublebalance;
booleanperformDial()
{
if(balance>(0.5+additoryFee))
{
balance-=0.5+additoryFee;
returntrue;
}
else
returnfalse;
}
}
2、理解与实现以下程序:
publicclassTestOverLoad
{
publicstaticvoidmain(Stringargs[])
{
D200_Cardmy200=newD200_Card();
my200.balance=50.0;
System.out.println("Fatherbalance:
"+my200.getBalance());
if(my200.performDial())
System.out.println("Sonbalance:
"+my200.balance);
}
}
abstractclassPhoneCard
{
doublebalance;
abstractbooleanperformDial();
doublegetBalance()
{
returnbalance;
}
}
abstractclassNumber_PhoneCardextendsPhoneCard
{
longcardNumber;
intpassword;
StringconnectNumber;
booleanconnected;
booleanperformConnection(longcn,intpw)
{
if(cn==cardNumber&&pw==password)
{
connected=true;
returntrue;
}
else
{
connected=false;
returnfalse;
}
}
}
classD200_CardextendsNumber_PhoneCard
{
doubleadditoryFee;
doublebalance;
booleanperformDial()
{
if(balance>(0.5+additoryFee))
{
balance-=0.5+additoryFee;
returntrue;
}
else
returnfalse;
}
doublegetBalance()
{
returnbalance;
}
}
3.根据下面的要求编程实现复数类ComplexNumber
(1)复数类ComplexNumber的属性
m_dRealPart:
实部,代表复数的实数部分
m_dImaginPart:
虚部,代表复数的虚数部分
(2) 复数类ComplexNumber的方法
ComplexNumber() 构造函数,将实部,虚部都置为0
ComplexNumber(doubler,doubleI) 构造函数,创建复数对象的同时完成复数的实部,虚部的初始化
GetRealPart() 获取实部
GetImaginaryPart() 获取虚部
SetRealPart(doubled) 设置实部
SetImaginaryPart(doubled) 设置虚部
ComplexAdd(ComplexNumberc) 复数相加
ComplexAdd(doublec) 复数相加
ComplexMinus(ComplexNumberc) 复数相减
ComplexMinus(doublec) 复数相减
ComplexMulti(ComplexNumberc) 复数相乘
ComplexMulti(doublec) 复数相乘
ToString() 把当前复数对象的实部,虚部组合成a+bi的字符串形式
三.实验要求
a)整理上机结果和体会,总结Java 类继承与派生的定义和使用经验。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
实验六、Java程序的图形界面
时间:
第9周,10.30
一.实验目的
1、理解java中图形界面设计的基本元素与方法
2、用已学知识编制程序
二.实验重点:
掌握Java语言的界面编程技术
三.实验学时:
2学时
四.实验内容与步骤
1、理解与实现以下Java计算器程序:
importjava.awt.*;
importjava.awt.event.*;
publicclasscomputerimplementsWindowListener,ActionListener{
privateFramef;
doubled0,d1,d2,result;
booleanflag=true;
Strings,oper;
TextFieldtf1;
Panelp=newPanel();
publicstaticvoidmain(Stringargs[])
{computere=newcomputer();
e.go();
}
publicvoidgo(){
inti;
result=0;
s=newString();
oper=newString("+");
f=newFrame("计算器");
MenuBarmb=newMenuBar();
f.setMenuBar(mb);
Menum1=newMenu("编辑");
Menum2=newMenu("帮助");
Menum3=newMenu("关于");
mb.add(m1);
mb.add(m3);
mb.setHelpMenu(m2);
tf1=newTextField("",15);
Button[]b=newButton[21];
for(i=1;i<21;i++)
{
b[i]=newButton();
b[i].setFont(newFont("仿宋",0,16));
}
b[1].setLabel("退格");
b[2].setLabel("CE");
b[3].setLabel("C");
b[4].setLabel("/");
b[5].setLabel("7");
b[6].setLabel("8");
b[7].setLabel("9");
b[8].setLabel("*");
b[9].setLabel("4");
b[10].setLabel("5");
b[11].setLabel("6");
b[12].setLabel("-");
b[13].setLabel("1");
b[14].setLabel("2");
b[15].setLabel("3");
b[16].setLabel("+");
b[17].setLabel("0");
b[18].setLabel("+/-");
b[19].setLabel(".");
b[20].setLabel("=");
p.setLayout(newGridLayout(5,4));
p.setBackground(newColor(80,30,100));
for(i=1;i<21;i++)
{p.add(b[i]);
b[i].addActionListener(this);
b[i].setBackground(newColor(20,130,180));
b[i].setForeground(Color.yellow);
}
for(i=1;i<4;i++)
{
b[i].setBackground(newColor(120,180,170));
b[i].setForeground(Color.blue);
}
for(i=1;i<=4;i++)
{b[i*4].setBackground(newColor(120,180,170));
b[i*4].setForeground(Color.red);
}
b[20].setBackground(Color.red);
f.addWindowListener(this);
f.setLayout(newBorderLayout());
f.add("North",tf1);
f.add("Center",p);
f.setSize(200,200);
f.setVisible(true);
}
publicvoidwindowClosing(WindowEvente){System.exit
(1);}
publicvoidwindowOpened(WindowEvente){}
publicvoidwindowIconified(WindowEvente){}
publicvoidwindowDeiconified(WindowEvente){}
publicvoidwindowClosed(WindowEvente){}
publicvoidwindowActivated(WindowEvente){}
publicvoidwindowDeactivated(WindowEvente){}
publicvoidactionPerformed(ActionEvente){
Stringi1=tf1.getText();
s=e.getActionCommand();
if(s=="0"|s=="1"|s=="2"|s=="3"|s=="4"|s=="5"|s=="6"|s=="7"|s=="8"|s=="9"|s==".")
{if(flag)tf1.setText(i1+s);
else
{tf1.setText(s);
flag=true;
}
}
elseif(s=="+"|s=="-"|s=="*"|s=="/")
{result=Double.parseDouble(i1);
flag=false;
oper=s;
}
elseif(s=="=")
{d0=Double.parseDouble(i1);
if(oper=="+")result+=d0;
if(oper=="-")result-=d0;
if(oper=="*")result*=d0;
if(oper=="/")result/=d0;
tf1.setText(Double.toString(result));
flag=false;
}
elseif(s=="CE")
{tf1.setText("");
flag=false;
}
elseif(s=="C")
{result=0;
tf1.setText("");
flag=false;
}
elseif(s=="退格")
{Stringss=tf1.getText();
inti=ss.length();
ss=ss.substring(0,i-1);
tf1.setText(ss);
}
elseif(s=="+/-")
{d2=-1*Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(d2));
}
}
}
2、在上例的基础上增加"sqrt"、"1/x"、"%"三种计算功能,并完善菜单功能.
二.实验要求
a)整理上机结果和体会,总结java中图形界面设计的开发调试经验。
b)完成实验报告。
在每次上课之前按学号立即上交email或磁盘。
实验七:
线程的使用
时间:
第10周,11.6
一、实验目的:
1.学习Java线程的使用
2、根据已学知识实现程序
二、实验重点:
1、线程类的实例化
2、线程实例与线程目标类的run()方法之间的控制操作
3、线程控制下的动画实现
三、实验课时:
2个学时
四、实验内容与步骤
1.理解与实现以下程序:
importjava.awt.*;
importjava.awt.event.*;
publicclassTestImgextendsFrameimplementsRunnable{
Imageimg[];
intk;
Threadth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 技术 程序设计