ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:85.94KB ,
资源ID:6346279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6346279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java实验报告.docx

1、Java实验报告实 验 报 告课 程 名 称 Java技术 专 业 班 级 13-计算机科学与技术-1班学生姓名及学号 * 潘汀 指 导 教 师 钟华刚 实 验 地 点 计算中心 2015 2016 学年第 一 学期实验一 类的封装、继承、多态一、实验目的1复习、理解OOP的特征封装、继承和多态。2学会使用Java编写简单的类。理解类的属性和方法。3掌握关键字private, protected, public的作用。 4掌握多态的概念。 二、实验内容1分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:(1) Point2D有两个整型成员变量x, y

2、(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。(2) Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D的平移。(3) Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。(4) Point3D有一个void型成员方法offset(int

3、 a, int b,int c),该方法可以实现Point3D的平移。(5) 在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。 提示:java.lang.Math.sqrt()方法2创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的“打印方法” ,显示数组中存储的对象是什么。 提示:java.lang.Math.random()方法 或者 java.util.Random类三、实验代码package exp1;

4、import java.util.Random;class Point2D int x,y; Point2D(int x,int y)this.x=x;this.y=y; void offset(int a,int b) this.x+=a;this.y+=b; void print() System.out.printf(Point2D:(%d,%d)n,x,y);class Point3D extends Point2D int z; Point3D(int x, int y,int z) super(x, y);this.z=z; void offset(int a,int b,int

5、c) this.x+=a;this.y+=b;this.z+=c; void print() System.out.printf(Point3D:(%d,%d,%d)n,x,y,z);public class Main static double distance(Point2D a,Point2D b) return java.lang.Math.sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); static double distance(Point3D a,Point3D b) return java.lang.Math.sqrt(a.x-b.x)

6、*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z); public static void main(String args) Point2D p2d1=new Point2D(1,1),p2d2=new Point2D(2,2); Point3D p3d1=new Point3D(1,1,1),p3d2=new Point3D(2,2,2); System.out.printf(%f %fn,distance(p2d1,p2d2),distance(p3d1,p3d2); int T=10; Point2D arr=new Point2DT;

7、 for(int i=0;iT;i+) int type=(int)(java.lang.Math.random()*2); int x=(int)(java.lang.Math.random()*100), y=(int)(java.lang.Math.random()*100), z=(int)(java.lang.Math.random()*100); if(type=0) arri=new Point2D(x,y); else arri=new Point3D(x,y,z); for(int i=0;i e2.quantity) return 1; else if(e1.quantit

8、ye2.quantity) return -1; else return 0; public class Main public static void main(String args) throws IOException FileReader in=new FileReader(Inventory.txt); FileWriter out1=new FileWriter(Shipping.txt); FileWriter out2=new FileWriter(Errors.txt); BufferedWriter shipping=new BufferedWriter(out1); B

9、ufferedWriter errors=new BufferedWriter(out2); Scanner scan=new Scanner(in); String number = null,supplier,description; int quantity; Map map=new HashMap(); Map transHash=new HashMap(); Vector trans=new Vector(),del=new Vector(), rec=new Vector(),add=new Vector(); /记录生成 while(scan.hasNext() number=s

10、can.next(); quantity=scan.nextInt(); supplier=scan.next(); description=scan.next(); map.put(number, new Item(number,quantity,supplier,description); String type; in=new FileReader(Transactions.txt); scan=new Scanner(in); /数据读入-离线存储 while (scan.hasNext() type = scan.next(); if (type.equals(0) number =

11、 scan.next(); quantity = scan.nextInt(); supplier = scan.next(); String hashText=number+#+supplier; if(!transHash.containsKey(hashText) /Hash发货单 transHash.put (hashText, new Item(number,quantity,supplier,None); else transHash.get(hashText).quantity+=quantity; else if (type.equals(R) number = scan.ne

12、xt(); quantity = scan.nextInt(); rec.add(new Item(number,quantity,None,None); else if (type.equals(D) number = scan.next(); del.add(new Item(number,-1,); else if (type.equals(A) number = scan.next(); supplier = scan.next(); description = scan.next(); add.add(new Item(number,0,supplier,description);

13、/ for (Map.Entry entry : transHash.entrySet() trans.add(new Item(entry.getValue().number,entry.getValue().quantity,entry.getValue().supplier,None); /合并发货单写入 shipping.write(entry.getValue().number + ); shipping.write(String.valueOf(entry.getValue().quantity) + ); shipping.write(entry.getValue().suppl

14、ier); shipping.newLine(); Collections.sort(trans, new TransCompare(); /按发货数量升序排序 for(int i=0;iadd.size();i+) /添加 Item item=add.get(i); map.put(item.number,item); System.out.printf(添加存种:%s 供应商:%s 描述: %sn,item.number,item.supplier,item.description); for(int i=0;irec.size();i+) /收货 Item item=rec.get(i)

15、,ret=map.get(item.number); ret.quantity+=item.quantity; map.put(ret.number,ret); System.out.printf(收货:%s 数量:%d 剩余:%dn,item.number,item.quantity,ret.quantity); for(int i=0;itrans.size();i+) /发货 Item item=trans.get(i),ret=map.get(item.number); if(ret.quantityitem.quantity) System.out.printf(发货%s给%s失败,

16、剩余:%d 需求:%dn,item.number,item.supplier,ret.quantity,item.quantity); errors.write(item.supplier+ ); errors.write(item.number+ ); errors.write(String.valueOf(item.quantity); errors.newLine(); continue; ret.quantity-=item.quantity; map.put(item.number,ret); System.out.printf(发货%s给%s成功, 剩余:%d 需求:%dn,ite

17、m.number,item.supplier,ret.quantity,item.quantity); for(int i=0;idel.size();i+) /删除 Item item=del.get(i),ret=map.get(item.number); if(ret=null) continue; /去除无效 if(ret.quantity!=0) System.out.printf(删除%s失败 ,数量剩余:%dn,item.number,ret.quantity); errors.write(0 ); errors.write(item.number+ ); errors.writ

18、e(String.valueOf(ret.quantity); errors.newLine(); continue; System.out.printf(删除%s成功,n,item.number); map.remove(item.number); shipping.flush(); errors.flush(); 四、实验结果五、思考题 1. 对整个实验进行总结,写出实验心得。【摘要】该实验本质就是一个模拟题。要求模拟一个进货发货系统。注意关键点:数据不能在线处理。体现在两个方面:读入操作顺序与实际工作顺序不符读入操作需要Hash与合并因此,只能采取离线保存+处理的手段。由于数据主键并非整型值,如果是用数组来保存,需要手写一个Hash表来Hash。考虑到基于红黑树实现的关联Map容器,所以使用Map来Hash和模拟数据库。【数据结构设计】Map map 作为

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1