JAVA实习报告2and3.docx

上传人:b****0 文档编号:17044706 上传时间:2023-07-21 格式:DOCX 页数:45 大小:498.21KB
下载 相关 举报
JAVA实习报告2and3.docx_第1页
第1页 / 共45页
JAVA实习报告2and3.docx_第2页
第2页 / 共45页
JAVA实习报告2and3.docx_第3页
第3页 / 共45页
JAVA实习报告2and3.docx_第4页
第4页 / 共45页
JAVA实习报告2and3.docx_第5页
第5页 / 共45页
JAVA实习报告2and3.docx_第6页
第6页 / 共45页
JAVA实习报告2and3.docx_第7页
第7页 / 共45页
JAVA实习报告2and3.docx_第8页
第8页 / 共45页
JAVA实习报告2and3.docx_第9页
第9页 / 共45页
JAVA实习报告2and3.docx_第10页
第10页 / 共45页
JAVA实习报告2and3.docx_第11页
第11页 / 共45页
JAVA实习报告2and3.docx_第12页
第12页 / 共45页
JAVA实习报告2and3.docx_第13页
第13页 / 共45页
JAVA实习报告2and3.docx_第14页
第14页 / 共45页
JAVA实习报告2and3.docx_第15页
第15页 / 共45页
JAVA实习报告2and3.docx_第16页
第16页 / 共45页
JAVA实习报告2and3.docx_第17页
第17页 / 共45页
JAVA实习报告2and3.docx_第18页
第18页 / 共45页
JAVA实习报告2and3.docx_第19页
第19页 / 共45页
JAVA实习报告2and3.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA实习报告2and3.docx

《JAVA实习报告2and3.docx》由会员分享,可在线阅读,更多相关《JAVA实习报告2and3.docx(45页珍藏版)》请在冰点文库上搜索。

JAVA实习报告2and3.docx

JAVA实习报告2and3

信息工程学院

Java程序设计实习报告

学院:

信息工程学院

班级:

姓名:

学号:

成绩:

1.实验目的

掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。

2.实验过程

熟悉JAVA的编程环境

实验题1阅读如下程序,完成思考题。

classCCircle

{doublepi;

doubleradius;

doublegetRadius()//返回圆半径

{returnradius;

}

voidsetCircle(doubler,doublep)//设置圆半径

{pi=p;

radius=r;

}

}

publicclassEx2_1

{publicstaticvoidmain(Stringargs[])

{CCirclecir1=newCCircle();//创建一个新圆类

cir1.setCircle(2.0,3.1416);//设置圆半径

System.out.println("radius="+cir1.getRadius());//输出圆半径

}

}

程序运行结果如下:

实验题2设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。

程序源代码如下:

publicclasscar{

Stringname;

doublespeed;

doubleangle;

voidcar()

{

this.name="user";

this.speed=0;

this.angle=0;

}

publicStringgetname()

{

returnname;

}

publicvoidsetuser(Stringname)

{

this.name=name;

}

publicvoidsetSeppd(doublespeed)

{

this.speed=speed;

}

publicdoublegetspeed()

{

returnspeed;

}

publicvoidsetangle(doubleangle)

{

this.speed=angle;

}

publicdoublegetangle()

{

returnangle;

}

publicvoidstopcar()

{

this.setangle(0);

this.setSeppd(0);

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

carA=newcar();

A.setuser("zhangyong");

A.setSeppd(150);

A.setangle(35);

System.out.println("beforestopcar:

");

System.out.println("thiscarsbelongto:

"+A.getname());

System.out.println("nowthespeedis:

"+A.getspeed());

System.out.println("nowthecarangleis"+A.getangle());

A.stopcar();

System.out.println("stopcar");

System.out.println("thiscarsbelongto:

"+A.getname());

System.out.println("nowthespeedis:

"+A.getspeed());

System.out.println("nowthecarangleis"+A.getangle());

}

}

运行结果:

实验题3定义一个类MyProgram,包含两个属性:

一个是private的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr()和getStr();将这两个属性转变为字符串的方法是toStr()。

编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。

程序源代码如下:

publicclassMyprogrem{

privateintdata;

privateStringStr;

publicvoidSetData(intdata)

{

this.data=data;

}

publicvoidSetStr(StringStr)

{

this.Str=Str;

}

publicintgetdata()

{

returnthis.data;

}

publicStringgetStr()

{

returnthis.Str;

}

publicStringtoString(intd)

{

returnString.valueOf(d);

}

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

MyprogremM=newMyprogrem();

System.out.println("beforechangethevalues:

");

M.SetData(15);

M.SetStr("zhangyong");

System.out.println(M.data);

System.out.println(M.Str);

System.out.println("changethevalues:

");

M.SetData(20);

M.SetStr("asdf");

System.out.println(M.data);

System.out.println(M.Str);

}

}

实验题4定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”。

定义主类,创建帐户类的对象,并完成相应操作。

提示:

关键代码如下:

publicintgetleftmoney(){

returnleftmoney;

}

publicvoidsavemoney(doublemoney){

leftmoney+=money;

}

publicvoidgetmoney(doublemoney){

if(money<=leftmoney)

leftmoney-=money;

else

System.out.println("只能取:

"+leftmoney);

}

bankaccountba=newbankaccount(888123,1000);

ba.savemoney(21000);

System.out.println("存入21000元后余额为:

"+ba.getleftmoney());

ba.getmoney(11500);

System.out.println("11500元后余额为:

"+ba.getleftmoney());

源代码如下:

publicclassbankaccount{

Stringbanknumber;

doubleaccountbalance;

voidbankaccoutn(Stringb)

{

banknumber=b;

accountbalance=5000;

}

publicStringgetaccountnumber()

{

returnthis.banknumber;

}

publicdoublegetaccountbalance()

{

returnthis.accountbalance;

}

publicdoublegetleftmoney()

{

returnaccountbalance;

}

publicvoidsavemoney(doublemoney)

{

accountbalance+=money;

}

publicvoidgetmoney(doublemoney)

{

if(money<=accountbalance)

accountbalance-=money;

else

System.out.println("只能取:

"+accountbalance);

}

 

publicbankaccount(){

//TODOAuto-generatedconstructorstub

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

bankaccountB=newbankaccount();

B.bankaccoutn("799524545253321346501");

System.out.println("当前账号为:

"+B.getaccountnumber());

System.out.println("当前账号余额为:

"+B.getaccountbalance());

B.savemoney(21000);

System.out.println("存入21000元后余额为:

"+B.getleftmoney());

B.getmoney(11500);

System.out.println("11500元后余额为:

"+B.getleftmoney());

}

}

运行结果如下:

实验题5定义链表类,实现单链表基本操作。

提示:

关键代码如下:

publicclassNode{

publicintdata;

Nodenext;

publicNode(intdata){

this.data=data;

this.next=null;

}

publicvoidNodeDisplay(){

System.out.println("{"+data+"}");

}

}

publicclassLink{

·

publicLink(){

this.first=null;

}

publicbooleanisEmpty(){}

publicvoidinsertHeadNode(intdata){}

publicNodedeleteHeadNode(){}

publicvoidfindNode(intk){}

publicvoiddisplayLink(){}

publicstaticvoidmain(String[]args){}

}

源代码如下:

publicclasslink{

privateNodefirst;

publiclink()

{

//TODOAuto-generatedconstructorstub

this.first=null;

}

publicbooleanisEmpty()

{

if(this.first==null)

{

returntrue;

}

else

{

returnfalse;

}

}

publicvoidinsertHeadNode(intdata)

{

NodeN=newNode(0);

N.data=data;

N.next=this.first.next;

this.first.next=N;

}

publicNodedeleteHeadNode()

{

if(!

isEmpty())

{

this.first=this.first.next;

returnthis.first.next;

}

else

{

System.out.println("thislinkisenpty!

");

returnnull;

}

}

publicvoidfindNode(intk)

{

NodeN=newNode(0);

N=first.next;

inti=0;

while(N!

=null)

{

if(N.data==k)

{

System.out.println(k+"在节点中的位置为:

"+(i+1));

break;

}

N=N.next;

++i;

}

if(N==null)

{

System.out.println("无此数!

");

}

}

publicvoiddisplayLink()

{

if(this.first.next!

=null)

{

Nodepro=newNode(0);

pro=first.next;

while(pro!

=null)

{

pro.NodeDisplay();

pro=pro.next;

}

}

else

{

System.out.println("linkisempty!

");

}

}

publicstaticvoidmain(String[]args)

{

linklink=newlink();

link.first=newNode(0);

System.out.println("没有插入数据:

");

link.displayLink();

System.out.println("插入数据后:

");

link.insertHeadNode

(1);

link.insertHeadNode

(2);

link.insertHeadNode(3);

link.insertHeadNode(4);

link.insertHeadNode(5);

link.displayLink();

System.out.println("删除头结点:

");

link.deleteHeadNode();

link.displayLink();

System.out.println("查找数据3:

");

link.findNode(3);

System.out.println("查找数据1:

");

link.findNode

(1);

}

}

运行结果如下:

实验三面向对象编程

(2)

1.实验目的

(1)掌握Java中的继承机制及包(package)、接口(interface)等的设计方法。

(2)掌握static、this、super等关键字的使用。

2.实验内容

实验题1有图形类的父类Shape,参照圆Circle类补充完整正方性Square和三角形Triangle类,并分析运行结果。

classShape{

voiddraw(){}

voiderase(){}

}

classCircleextendsShape{

voiddraw(){System.out.println("Circle.draw()");}

voiderase(){System.out.println("Circle.erase()");}

}

classSquareextendsShape{

voiddraw(){}

voiderase(){}

}

classTriangleextendsShape{

voiddraw(){}

voiderase(){}

}

publicclassShapes{

publicstaticShaperandShape(){

switch((int)(Math.random()*3)){

default:

//Toquietthecompiler

case0:

returnnewCircle();

case1:

returnnewSquare();

case2:

returnnewTriangle();

}

}

publicstaticvoidmain(String[]args){

Shape[]s=newShape[9];

//Fillupthearraywithshapes:

for(inti=0;i

s[i]=randShape();

//Makepolymorphicmethodcalls:

for(inti=0;i

s[i].draw();

}

}

程序源代码如下:

Shape类:

publicclassshape{

voiddraw(){

}

voiderase(){

}

publicshape(){

//TODOAuto-generatedconstructorstub

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

}

}

Square类:

publicclasssquareextendsshape{

voiddraw()

{

System.out.println("square.draw()");

}

voiderase(){

System.out.println("suqre.erase()");

}

publicsquare(){

//TODOAuto-generatedconstructorstub

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

}

}

Triangle类:

publicclassTriangleextendsshape{

voiddraw()

{

System.out.println("Triangle.draw()");

}

voiderase()

{

System.out.println("Triangle.erase()");

}

publicTriangle(){

//TODOAuto-generatedconstructorstub

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

}

}

Circle类:

publicclasscircleextendsshape{

voiddraw(){

System.out.println("Circle.draw()");

}

voiderase(){

System.out.println("Circle.erase()");

}

 

publiccircle(){

//TODOAuto-generatedconstructorstub

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

}

}

Shapes类:

publicclassshapes{

publicstaticshaperandShape()

{

switch((int)(Math.random()*3))

{

default:

//Toquietthecompiler

case0:

returnnewcircle();

case1:

returnnewsquare();

case2:

returnnewTriangle();

}

}

publicstaticvoidmain(String[]args)

{

shape[]s=newshape[9];

for(inti=0;i

{

s[i]=randShape();

}

for(inti=0;i

{

s[i].draw();

}

}

}

程序运行结果如下:

实验题2有两个类:

MobileManagement和Mobile,分别描述如图3.7所示两部手机名称及价格,类MobileManagement在包cn.edu.nwsuaf.jp.p3中,而Mobile在包cn.edu.nwsuaf.jp.p3.data中。

它们代码如下。

运行MobileManagement.java,你应该看到如图3.8所示结果。

[基本要求]在空白处填写相关代码并修改上面程序,使程序能够显示两部手机的价格和数量,运行结果如图3.9所示。

E365,1780RMBM330,1450RMB

图3.4手机及价格

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2