java课设报告Word格式.docx
- 文档编号:17134822
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:31
- 大小:171.18KB
java课设报告Word格式.docx
《java课设报告Word格式.docx》由会员分享,可在线阅读,更多相关《java课设报告Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
(1)Point2D有两个整型成员变量x,y(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。
(2)Point2D有一个void型成员方法offset(inta,intb),它可以实现Point2D的平移。
(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:
Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),两者均可实现对Point3D的成员变量x,y,z的初始化。
(4)Point3D有一个void型成员方法offset(inta,intb,intc),该方法可以实现Point3D的平移。
(5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。
三、使用硬件、软件环境
处理器:
Intel(R)Core(TM)i7-7500UCPU@2.70GHz2.90GHz
IDE:
Eclipse
四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)
1.下载最新版本的JDK,并安装。
2.设置环境变量path,classpath,使得Java程序能正确编译和执行。
(1)先配置%JAVA_HOME%环境变量,路径为JDK的目录;
(2)配置path环境变量,路径为%JAVA_HOME%\bin;
(3)再配置classpath环境变量,路径为%JAVA_HOME%\jre\lib;
3.在Textpad(或JCreator)环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。
(1)在记事本中写出如下代码,并保存为HelloWorld.java:
publicclassHelloWorld
{
publicstaticvoidmain(String[]args){
System.out.println("
HelloWorld!
!
"
);
}
(2)在命令行中进入到该文件路径,并输入javacHelloWorld.java编译,再输入
JavaHelloWorld完成运行。
(3)运行结果
4.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。
(1)编辑两个记事本保存时文件名改为A.java和B.java,并写出如下程序:
A.java文件程序:
packagea;
publicclassA{
publicvoidshow(){
System.out.println("
Youareright!
"
}
B.java文件程序:
packageb;
importa.*;
publicclassB{
publicstaticvoidmain(String[]args){
Aa0=newA();
a0.show();
(2)先在DOS命令行中编译A.java文件,在命令行中输入javacA.java-d.A.java地址
再编译B.java文件,在命令行中输入javacB.java-d.
(3)在命令行中输入javab.B
(4)运行结果
5.实验时,在计算机中建立分别如下目录:
(我的电脑只有一个C盘)
6.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足题目要求:
packagehzd;
classPoint2D{
intx,y;
publicPoint2D(intx,inty){
this.x=x;
this.y=y;
voidoffset(inta,intb){
x=x+a;
y=y+b;
publicstaticdoubledistance_2D(Point2Ds,Point2Dt){
doubled;
d=Math.sqrt(Math.pow(s.x-t.x,2)+Math.pow(s.y-t.y,2));
returnd;
publicclassPoint3DextendsPoint2D{
intz;
Point3D(intx,inty,intz){
super(x,y);
this.z=z;
Point3D(Point2Dp,intz){
super(p.x,p.y);
this.z=z;
voidoffset(intm,intn,intr){
x=x+m;
y=y+n;
z=z+r;
publicstaticdoubledistance_3D(Point3Ds,Point3Dt){
doubled1=Math.pow(s.x-t.x,2);
doubled2=Math.pow(s.y-t.y,2);
doubled3=Math.pow(s.z-t.z,2);
d=Math.sqrt(d1+d2+d3);
}
publicstaticvoidmain(String[]args){
Point2Dp2d1=newPoint2D(2,6);
Point2Dp2d2=newPoint2D(2,9);
System.out.print("
二维空间内两点之间距离:
System.out.println(distance_2D(p2d1,p2d2));
Point3Dp3d1=newPoint3D(0,0,0);
Point3Dp3d2=newPoint3D(3,4,5);
三维空间内两点之间距离:
System.out.println(distance_3D(p3d1,p3d2));
运行结果
五、实验结论、分析、思考题与心得体会
通过本次实验,我有以下几方面的收获、认识和体会:
1.学会了如何安装JDK;
2.学会了如何配置path,classpath环境变量,path环境变量
3.学会了如何使用DOS操作符
4.学会了如何继承类
5.了解了什么是包
《Java技术》实验报告—实验
(二)
科教楼C2022018年10月20日
货物进销管理系统
一、实验目的
1.掌握Java中文件的读写操作。
2.学会使用Java提供的实用类(Vector,ArrayList)来完成特定的功能。
3.掌握字符串类(String,StringBuffer)的使用。
4.掌握用面向对象的方法分析和解决复杂问题。
编写一个Inventory.java完成以下功能:
1.程序首先打开并读取Inventory.txt中记录的所有库存记录,然后读取Transactions.txt,处理这个文件中包含的事务,记录发货记录到Shipping.txt,并记录错误信息到Errors.txt中。
最后,根据事务更新库存到另外一个文件NewInventory.txt中。
2.文件Inventory.txt和NewInventory.txt的每行包含一个存货记录,每条记录包含下面一些字段息,这些字段之间用一个tab分开(见后面的文件格式):
字段
格式和含义
Itemnumber
字符串型,货物编号
Quantity
整型,货物数量
Supplier
字符串型,供应商编号
Description
字符串型,货物描述
3.字段Items按照从小到大的顺序写入文件的。
注意Item号不必连续,如Item号为752的后面可能是800。
4.文件Transactions.txt包含几个不同的处理记录(每行一条记录)。
每条记录前面以一个大写字母开头,表示这条记录是什么类型的事务。
在不同的大写字母后面是不同的信息格式。
所有的字段也是以tab键分开的(见Transactions.txt文件格式)。
5.以'
O'
开头的事务表示这是一个发货订单,即某一种货物应该发给特定的客户。
Itemnumber和Quantity的格式如上面表格定义。
Custom编号和上面的Supplier编号一致。
处理一条定单记录(以'
开头的事务)意味着减少库存记录中相应货物的数量(减少的数量=发货单中的数量),记录发货信息到Shipping.txt中。
注意:
Inventory.txt中的quantity不应该小于0,如果对于某一种货物,库存的数量小于发货单的数量的话,系统应该停止处理发货单,并记录出错信息到Errors.txt。
如果对于某一种货物有多个发货单,而且库存总量小于这些发货单的总和的话,系统应该按照发货单中的数量从小到大的有限原则满足客户。
也就是说,对于某一种货物如果一个数量Quantity少的发货单没有处理之前,数量Quantity多的发货单永远不会被处理。
(这种处理原则不受发货单记录在Transactions.txt的先后顺序影响)
6.以'
R'
开头的事务表示这是一个到货单记录,在'
后面是Itemnumber和它的数量Quanlity。
处理一条到货单意味着增加库存中相应货物的数量(增加的数量=到货单中的数量)。
如果在Transactions.txt文件中,到货单出现在发货单之后,到货单中的货物数量可以用来填补发货单中的数量(可以理解成在Transactions.txt中,优先处理到货单)。
7.以'
A'
开头的事务表示向库存中增加一种新的货物(即这种货物以前库存中没有),在'
后面是Itemnumber,供应商supplier以及货物的描述description。
处理一个新增货物记录意味着向库存中增加一个数量Quantity为0的新的Item。
你可以假设在一个Transactions.txt中,新增货物记录总是出现在第一个到货单之前。
8.以'
D'
开头的事务表示从库存中删除一种货物,在'
后面是Item号。
删除操作总是在所有的事物处理之后才被处理,以保证对于可能出现的同一种货物的发货单的操作能在删除之前被正确处理。
如果要删除的某种货物的库存量Quantity不为0的话,系统应该向Errors.txt记录出错信息。
9.文件Shipping.txt中的每一行代表给某一客户的发货信息。
Shipping.txt中的每一行分别是客户编号、Item号、货物数量,它们之间用tab键分隔。
如果发货单中有两条客户编号和Item编号一样的记录,在Shipping.txt中应该将这两条发货信息合并(即将它们的数量相加)。
10.Errors.txt文件包含未发送的发货记录和库存量大于0的删除记录。
Errors.txt每一行包含Custom编号、Item编号以及发货单上的数量Quantity。
对于删除操作,Custom编号为0,数量Quntity为库存中的Quantity.
11.实验测试数据:
Inventory.txt
Transactions.txt
程序主体分为三个部分,分别是Inventory(存货清单),Transaction(交易清单),以及Test(实验的具体部分)
Inventory.java:
packageInventory;
publicclassInve{
Stringitemnum;
intquan;
Stringsupplier;
Stringdesc;
publicInve(Stringitemnum,intquan,Stringsupplier,Stringdesc){
super();
this.itemnum=itemnum;
this.quan=quan;
this.supplier=supplier;
this.desc=desc;
Inve(Addtmp){
itemnum=tmp.itemnum;
quan=0;
supplier=tmp.supplier;
desc=tmp.desc;
publicvoidplus(intq){
quan+=q;
publicvoidcut(intq){
quan-=q;
Transaction.java:
publicclassTransaction{
Stringtype;
publicTransaction(){}
publicTransaction(Stringtype,Stringitemnum){
//TODOAuto-generatedconstructorstub
this.type=type;
classOrderextendsTransaction{
publicOrder(){
publicOrder(Stringtype,Stringitemnum,intquan,Stringsupplier){
super("
O"
itemnum);
publicvoidcopy(Ordero){
this.itemnum=o.itemnum;
this.type="
;
this.quan=o.quan;
this.supplier=o.supplier;
classRecvextendsTransaction{
publicRecv(Stringtype,Stringitemnum,intquan){
R"
classAddextendsTransaction{
publicAdd(Stringtype,Stringitemnum,Stringsupplier,Stringdesc){
A"
classDeleteextendsTransaction{
publicDelete(Stringtype,Stringitemnum){
D"
classErr{
Err(Stringc,inti,Stringq){
itemnum=c;
quan=i;
supplier=q;
Err(Ordero){
supplier=o.supplier;
itemnum=o.itemnum;
quan=o.quan;
Test.java:
packageInventory;
importjava.io.*;
importjava.util.*;
publicclassTest{
staticVector<
Inve>
vecinve=newVector<
();
Order>
vecorder=newVector<
shipping=newVector<
Recv>
vecrecv=newVector<
Add>
vecadd=newVector<
Delete>
vecdelete=newVector<
Err>
vecerr=newVector<
publicstaticvoidmain(String[]args)throwsException{
readinve("
C:
\\Users\\h1735\\Downloads\\java\\Inventory.txt"
readTra("
\\Users\\h1735\\Downloads\\java\\Transactions.txt"
doAdd();
doReceive();
arrOrder();
doOrder();
doDelete();
arrshipping();
write("
\\Users\\h1735\\Downloads\\java\\NewInventory.txtC:
\\Users\\h1735\\Downloads\\java\\Shipping.txtC:
\\Users\\h1735\\Downloads\\java\\Errors.txt"
privatestaticvoidreadTra(Stringfilename)throwsException{
BufferedReaderbr=newBufferedReader(newFileReader(filename));
Stringline="
while((line=br.readLine())!
=null){
String[]tmp=line.split("
\t"
if(tmp[0].equals("
)){
intquan=Integer.parseInt(tmp[2]);
vecorder.add(newOrder("
tmp[1],quan,tmp[3]));
}elseif(tmp[0].equals("
vecrecv.add(newRecv("
tmp[1],quan));
vecadd.add(newAdd("
tmp[1],tmp[2],tmp[3]));
vecdelete.add(newDelete("
tmp[1]));
}
}
br.close();
privatestaticvoidreadinve(Stringfilename)throwsException{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 报告