Java实验报告_第1页
Java实验报告_第2页
Java实验报告_第3页
Java实验报告_第4页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java实验报告 实 验 报 告 课 课 程 名 称 java 技术 专 专 业 业 班 班 级 13 计算机科学与技术-1 班 班 学生姓名及学号 013217 8 潘汀 指 指 导 教 师 钟华刚 实 实 验 验 地 地 点 计算中心 20 5 5 2021 6 学年第 一 学期 实验一 类得封装、继承、多态 一、实验目得 。复习、理解op 得特征-封装、继承与多态。 。学会使用 jav编写简单得类。理解类得属性与方法。 3。掌握关键字 private, teted, ublic 得作用. 4。掌握多态得概念。 二、实验内容 1分别编写两个类oint2d,pit3d 来表示二维空间与三维空

2、间得点,使之满足下列要求: (1) pond 有两个整型成员变量 x, y (分别为二维空间得 x,y方向坐标),poit得构造方法要实现对其成员变量, y 得初始化。 (2) pont2d 有一个 voi型成员方法set(int , int b),它可以实现 point2得平移。 (3) poin3d 就是i2得直接子类,它有有三个整型成员变量x,,z (分别为三维空间得,y,方向坐标),po3有两个构造方法:pot3d(int x,int ,int z)与 pint3d(2 ,in z),两者均可实现对 pontd 得成员变量x, y,z 得初始化。 (4) point3d 有一个 voi

3、d 型成员方法 offe(i , nt b,in c),该方法可以实现 point3得平移。 (5) 在 pont3中得主函数 main()中实例化两个 pond 得对象p2d,22,打印出它们之间得距离,再实例化两个oint3得对象1,pd2,打印出她们之间得距离。 提示:jv、lng、mat、sqr()方法 2创建一个数组,随机生成 poind 或者 poit3d 得对象放于其中。最后依次调用数组中每个对象得"打印方法' ,显示数组中存储得对象就是什么。 提示:aa、lang、math、ranom()方法 或者 jav、uil、ran m 类 三、 实验代码 pa ag

4、ex1; i port java、til、rndom; c a point2d int x,y; i(dniop ,int y)this、xx;t i 、=y; ,a tni(sffo diov nt b) t is、x+=a;t s、y+b; void prin() ysm、 u 、prntf('po2d:(d,d)n,x,y); cla point3d ex nds poit2 in z; i(3tnio t x, i , nt z) per(x, y);thi 、z=z; v id ofst(int a,int b,i t ) his、x+=a;this、y+b;t s、+=c;

5、 vo d print() ysem、o t、pinf('pit3d:(d,d,d)',x,,z); p b ic c ass mn stati double dtace(ointd a,poitd b) r urn jva、ang、math、sqr ((a、xb、)(a、-b、x)+(a、yb、)*(a、yb、y)); stati ouble sanc(poind a,poind b) t rn a、lang、mah、s rt (((a、xb、x)*(a、x-b、)+(、y-b、y)*(a、y、y)+(a、-b、z)(、zb、)); publ c tatic v i main

6、(strin args) point2d p21new poi2(1,1),2dnew on2d(2,2); ointd p3d1ne ointd(,),32=new pint3(,2,); 、metsy t、pint(%f %n',di a ce(p2d1,p2d),di n e(3d1,pd2); in t=0; pointd arrnew pont2t; of (int i=0;i+) r、ham、gal、aaj()tni(y tni ndom()2); int x=(in )(ava、lng、mth、r do ()0), y=( nt)(java、lang、mat、r ndom

7、()100), r、htm、gnal、avj()tni(=z ndom()00); if(yp0) ari=new pint2d(x,y); e se arri=new pit3d(x,y,); r(int i0;;i+)rri、prin(); 四 、思考题 .您对面向对象得理解. 答:面向对象最重要得三大特性:封装、继承、多态。围绕这三个核心特性, 面向对象程序设计方法给软件工程带来得全新得程序结构设计模式. 面向对象与核心概念就就是理解【类】、与【对象】。 具体来讲,首先我对【类】一词得理解如下: 类就就是一组有共性得对象。它描述一个特定得抽象并提供创建对象得模板,如果类不具备某中特性,那

8、么它得对象也不能具备该特性. 类就就是分类,比如人类,就就是关于人得定义,包括一些属性与操作这些属性得动作,就是对一个实体得抽象得描述。因为就是一个抽象概念,在使用得时候必须进行实例化,即将类具体为一个具体得实体。 由类牵扯出【对象】得理解: 对象,就是一个类得具体实现,比如某人 jck,就就是拥有一个名字属性为ack得人类,她可以有其她得属性,具有人类里得所有方法(可以简单得理解为行为与操作属性得)。 对象需要有状态,用以描述对象得特征与当前得状态.对象还需要有行为,定义其她对象对该对象所施加得动作.行为可能需要依赖于对象得状态。在某种情 况下,对象可以有某种行为,而在另外一些情况下,则不能

9、。每一个对象都必须被唯一得标识(对象得名字不能相同,至少在一个场景中)。 对象通过协作,通信来完成一个比较完整得分工,这些分工整合起来,就就是整个软件系统. 2.什么就是多态?java 中如何实现多态? 【概念理解】 多态就就是说,比较低层次得抽象得实体可以被支持比较高层次抽象得一些操作得实体所支持。实现这些概念需要得工具,或者说描述方式,关于多态得描述有一个比较传统得例子:一个比较高层次得抽象,称为形状,然后从形状继承而来得有圆,长方形(也可以有由长方形继承而来正方形),三角形等低层次抽象,有这样一个外部实体,它支持对形状得操作,比如计算形状得面积(不用考虑怎么计算,也不用 考虑计算得形状就

10、是那种),由于它支持得就是形状(比较高层次得抽象),那么不论就是圆,长方形,三角形它就都支持。而具体到每个低层次得抽象得实际计算时,各自使用各自得计算方法,最终返回结果就可以了. 这样做得一个明显得好处就是,如果以后发现新得比较低层次得抽象后,直接加入系统即可,无需考虑上层使用者得修改。在运行时,编译器会知道需要计算哪个。 【jaa 实现机制】 jva中实现多态得机制靠得就是父类或者接口定义得引用变量可以指向子类或者具体得实现类得实例对象,而程序调得方法在运行期才动态绑定,就就是引用变量所指向得具体实例对象得方法,也就就是内存里正在运行得那个对象得方法,而不就是引用变量得类型中定义得方法. 二

11、 实验二 统系理管销进物货 货物进销管理系统 一、实验目得 1掌握 jaa 中文件得读写操作。 2 功得定特成完来)tsilarr ,oce(类用实得供提 ava用使会学能。 .掌握字符串类(strig, strngbuffer)得使用。 。4 。题问杂复决解与析分法方得象对向面用握掌二、实验内容 编写一个 invenory、jaa 完成以下功能(没有学过 java 文件处理之前,各位同学可以使用硬编码将数据放进两个ector 变量里。等学过va 文件处理之后,再补充数据文件读取部分): 。1 rt 取读后然,录记存库有所得录记中 tad、yrotnevni 取读并开打先首序程nsaions、

12、dt,处理这个文件中包含得事务,记录发货记录到hipping、dat,并记录错误信息到 errors、dat 中。最后更新库存到另外一个文件newinventory、at 中. .2 ,录记货存个一含包行每得 tad、ronvnie与ad、yotnevn件文没条记录包含下面一些字段息,这些字段之间用一个 t分开(见后面得文件格式): 字段 格式与含义 ite umber 字符串型,货物编号 uatity 整型,货物数量 uple 字符串型,供应商编号 descrition 货物描述 3字段 items 按照从小到大得顺序写如文件得。注意 iem 号不必连续,如item 号为 752 得后面可能

13、就是 800。 文件ansctins、dat 包含几个不同得事务处理记录(每行一条记录)。每条记录前面以一个大写字母开头,表示这条记录就是什么类型得事务.在不同得大写字母后面就是不同得信息格式。所有得字段也就是以 tab 键分开得(见ansctn、dat 文件格式)。 。以o"开头得事务表示这就是一个发货,即某一种货物应该发给特定得客户。ie号与数量 quntity 得格式如上面表格定义。custo编号与上面得 suplie编号一致。处理一条定单记录(以"o"开头得事务)意味着从减少库存记录中相应货物得数量(减少得数量发货单中得数量),记录发货信息到hippig、

14、 dat 中。注意:inventr、dat 中得 quantit不应该小于 0,如果对于某一种货物,库存得数量小于发货单得数量得话,系统应该停止处理发货单,并记录出错信息到rros、t。如果对于某一种货物有多个发货单,而且库存总量小于这些发货单得总与得话,系统应该按照发货单中得数量从小到大得有限原则满足客户.也就就是说,对于某一种货物如果一个数量 quantit少得发货单没有处理之前,数量 quantty 多得发货单永远不会被处理。(这种处理原则不受发货单记录在 trnsatons、da得先后顺序影响) 6.以开头得事务表示这就是一个到货单记录,在r后面就是e号与它得数量。处理一条到货单意味着

15、增加库存中相应货物得数量(增加得数量=到货单中得数量)。注意如果在 tansacions、da文件中,到货单出现在发货单之后,到货单中得货物数量可以用来填补发货单中得数量(可以理解成在 tnsactins、dt 中,优先处理到货单)。 以a开头得事务表示向库存中增加一种新得货物(即这种货物以前库存中没有),在后面就是tem 号,供应商 supie以及货物得描述 decrpion。处理一个新增货物记录意味着向库存中增加一个数量 qunty为 0 得新得 item.您可以假设在一个 trnsation、dt 中,新增货物记录总就是出现在第一个到货单之前。 以"d"开头得事务表示

16、从库存中删除一种货物,在"d后面就是 itm 号.删除操作总就是在所有得事物处理之后才被处理,以保证对于可能出现得同一种货物得发货单得操作能在删除之前被正确处理。如果要删除得某种货物得库存量 qanity 不为 0 得话,系统应该向 errors、da记录出错信息。 9文件 shipig、da中得每一行代表给某一客户得发货信息.shppin、dat 中得每一行分别就是客户编号、item 号、货物数量,它们之间用ab 键分隔。如果发货单中有两条客户编号与 item 编号一样得记录,在hipping、dat中应该将这两条发货信息合并(即将它们得数量相加)。 10.rors、da文件包含未

17、发送得发货记录与库存量大于得删除记录。er、dt 每一行包含 custom 编号、item 编号以及发货单上得数量uantiy。对于删除操作,custom 编号为,数量 qutity 为库存中得 quntty、 1。实验测试数据: 三、 实验代码 class ite ;oticse,relppus,rbmn gnirs ;ytnauq tnini,reun gts(m quanity,srin slier,strig desriptin) t i 、r=nume; ;ytitnaq=titnau、siht hi 、supplersupir; his、descriptn=dscrpto; las

18、s raspre i p e en paator publi int pr(objet 1, objet o2) ;1)mti(=1e et ite e=(te)2; if(e1、qantity e2、quantity) ret rn 1; e se if(e、quaniy2、qantty) re ur 1; e se retu n ; p bl c class main pu ta vo d mn(trig arg) throws ioecption en=ni (invntory、txt'); =to e (shpping、tx); n=2tuo w (rror、xt');

19、 bfredriter hipinew ufredwriter(ot1); bfrdwrter rrrsnew uferedwir(ou2); sner cnne canne(in); sting numbr ull,upplr,descriptio; i t qantity; pstrng,tem manew hsmprg,itm(); mastrn,tem trashah= ew hasmtrig,ite(); vecoriem tans=new etrite(),dlnew vectoritm(), recnew vectoritem(),add=new vctrite(); 记录生成

20、)(txesah、nacs(elihw ;)(txn、as=rebmun;)(tnixe、nas=ytitauq ;)(xen、nacreilpps;)(txn、nacs=nipirce ;))noitircse,reippus,ytitnauq,ebmu(meti wen ,rebun(tu、pam stri type; en=ni ('asacos、x); ;)ni(enacs wenas /数据读入离线存储 while (an、asnet() ;)(txen、acs = epyt if (type、equls() number = sn、next(); ;)(tnixen、na

21、= ytna ;)(te、nas = ilp ;eilppu+#'rebmun=xetha nirts if(!tranash、containskey(hastet)) /hah 发货单 tup、hahsnrt (stext, new item(nmbe,quanity,uppier,'none)); l e ranah、get(hahet)、quanit+=quantiy; lse f (type、equls('r') ;)(txen、ns = remun quaty = cn、neti(); en(dd、cer te(numbe,qnti,one',

22、non'); le if (typ、equals(d')) ;)(txe、nas = bmn (dda、ld e ite(numbe,,',)); se f (ty、equals(a')) numbr can、next(); supplier scan、ex(); ;)(txen、nacs = noitpircse ;)nitpced,rilppu,0,ren(mi wen(dda、dda / for (ap、enrystring,tem etry : ashas、enrst() 、yne,ren、)(uveg、yrtn(mei wen(da、snartgetv

23、alue()、qunit,etry、getvlue()、sier,'noe')); /合并发货单写入 hppin、write(entry、getlu()、nmer + ); 、girts(etiw、gnipps a ueo (nty、getvalue()、quatity) '); ;)relppus、)(eulateg、yrt(ew、npis ;)(eniwen、gnpihs olectons、 r (tran, ne traspre()); /按发货数量升序排序 加添/ )+i;)(ezi、dai;0=i tni(rof ;)(tg、dda=ei mei ;)meti

24、,rebmun、meti(tup、pam 、metsy t、intf (添加存种:%s 供应商:%s 描述: %n,item、numr,ie、suplir,item、criptin); for( t =;irec、ize();i+) 收货 ;)eun、meti(te、ater,)i(teg、er=meti meti re、qnity=item、quity; ;)ter,rebmun、tr(tp、p syste、o 、pinf (收货: 数量:d 剩余:n',te、nmber,item、qantity,ret、quatty); r( nt i=;itans、sze();i+) /发货 i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论