货物进销管理系统.docx

上传人:b****6 文档编号:16552757 上传时间:2023-07-14 格式:DOCX 页数:14 大小:41.92KB
下载 相关 举报
货物进销管理系统.docx_第1页
第1页 / 共14页
货物进销管理系统.docx_第2页
第2页 / 共14页
货物进销管理系统.docx_第3页
第3页 / 共14页
货物进销管理系统.docx_第4页
第4页 / 共14页
货物进销管理系统.docx_第5页
第5页 / 共14页
货物进销管理系统.docx_第6页
第6页 / 共14页
货物进销管理系统.docx_第7页
第7页 / 共14页
货物进销管理系统.docx_第8页
第8页 / 共14页
货物进销管理系统.docx_第9页
第9页 / 共14页
货物进销管理系统.docx_第10页
第10页 / 共14页
货物进销管理系统.docx_第11页
第11页 / 共14页
货物进销管理系统.docx_第12页
第12页 / 共14页
货物进销管理系统.docx_第13页
第13页 / 共14页
货物进销管理系统.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

货物进销管理系统.docx

《货物进销管理系统.docx》由会员分享,可在线阅读,更多相关《货物进销管理系统.docx(14页珍藏版)》请在冰点文库上搜索。

货物进销管理系统.docx

货物进销管理系统

《Java程序设计》实验报告

--实验2

实验室:

2014年12月10日

学院

计算机与信息学院

专业班级

姓名

成绩

课程

名称

Java程序设计

实验项目

名称

实验二货物进销管理系统

指导

教师

教师评语

 

教师签名:

年月日

一、实验目的

1.掌握Java中文件的读写操作。

2.学会使用Java提供的实用类(Vector,ArrayList)来完成特定的功能。

3.掌握字符串类(String,StringBuffer)的使用。

4.掌握用面向对象的方法分析和解决复杂问题。

二、实验原理

1.程序首先打开并读取Inventory.dat中记录的所有库存记录,然后读取Transactions.dat,处理这个文件中包含的事务,记录发货记录到Shipping.dat,并记录错误信息到Errors.dat中。

最后更新库存到另外一个文件NewInventory.dat中。

三、使用硬件、软件环境

PC计算机一台,配置为CPU为2.6G,内存为4G,硬盘为1T,安装Windows8操作系统。

另外,使用JCreator,JDK1.8.0等软件

4、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)

1.实验过程:

首先在电脑中新建5个dat文件。

分别为Inventory.dat、Transactions.dat、

Shipping.dat、Errors.dat、NewInventory.dat;在Inventory.dat、Transactions.dat中写要

求的实验信息。

程序先打开Inventory.dat、Transactions.dat文件,读取其中的数据,分

析Transactions.dat中的数据,分类进行处理,最后将更新的Inventory.dat数据复制到

NewInventory.dat中

 

2.源程序:

importjava.io.*;

/*保存Inventory.dat中的数据*/

classhuowu{

StringitemNumber;

intquantity;

Stringsupplier;

Stringdescription;

intbiaoji=1;

}

/*保存Transaction中的数据*/

classtrans{

Stringtype;

StringitemNumber;

intquantity;

Stringsupplier;

Stringdescription;

}

/*用来保存"O"交易数据的中间类,以满足quantity大的最后进行交易*/

classfuzhu{

StringitemNumber;

intquantity;

Stringsupplier;

}

publicclassInventory{

publicstaticvoidmain(String[]args){

huowu[]huo=newhuowu[100];inthuolength=0;

trans[]tra=newtrans[100];inttralength=0;

fuzhu[]fz=newfuzhu[100];intfzlength=0;

try{

Strings=null;

/*读取Inventory.dat中的数据,保存到内存*/

BufferedReaderinvent=newBufferedReader(newFileReader("Inventory.dat"));

char[]str;

while((s=invent.readLine())!

=null){

str=s.toCharArray();

intt=0;

inti=0;

intx=0;

Strings1;

huo[huolength]=newhuowu();

while(i

for(x++;i

='\t';i++){

}

s1=newString(str,t,i-t);

if(x==1)

huo[huolength].itemNumber=newString(s1);

if(x==2)

huo[huolength].quantity=Integer.parseInt(s1);

if(x==3)

huo[huolength].supplier=newString(s1);

if(x==4)

huo[huolength++].description=newString(s1);

i++;

t=i;

}

}

invent.close();

}

catch(Exceptione){

System.out.println("error1");

}

/*读取Transaction.dat中的数据,保存到内存*/

try{

Strings=null;

BufferedReadertr=newBufferedReader(newFileReader("Transactions.dat"));

char[]str;

while((s=tr.readLine())!

=null){

str=s.toCharArray();

intt=0;

inti=0;

intx=0;

Strings1;

tra[tralength]=newtrans();

while(i

for(x++;i

='\t';i++){

}

s1=newString(str,t,i-t);

if(x==1){

tra[tralength].type=newString(s1);

i++;

t=i;

}

else{

if(tra[tralength].type.equals("O")){

if(x==2)

tra[tralength].itemNumber=newString(s1);

if(x==3)

tra[tralength].quantity=Integer.parseInt(s1);

if(x==4)

tra[tralength].supplier=newString(s1);

i++;

t=i;

}

elseif(tra[tralength].type.equals("R")){

if(x==2)tra[tralength].itemNumber=newString(s1);

if(x==3)tra[tralength].quantity=Integer.parseInt(s1);

i++;

t=i;

}

elseif(tra[tralength].type.equals("D")){

if(x==2)tra[tralength].itemNumber=newString(s1);

i++;

t=i;

}

elseif(tra[tralength].type.equals("A")){

tra[tralength].quantity=0;

if(x==2)tra[tralength].itemNumber=newString(s1);

if(x==3)tra[tralength].supplier=newString(s1);

if(x==4)tra[tralength].description=newString(s1);

i++;

t=i;

}

}

}

tralength++;

}

tr.close();

}

catch(Exceptionex){

System.out.println("error2");

}

/*将Transaction.dat中的数据与Inventory.dat中的数据进行比较处理*/

//对A进行处理

for(inti=0;i

if(tra[i].type.equals("A")){

intj=huolength++;

huo[j]=newhuowu();

huo[j].itemNumber=newString(tra[i].itemNumber);

huo[j].quantity=tra[i].quantity;

huo[j].supplier=newString(tra[i].supplier);

huo[j].description=newString(tra[i].description);

}

}

//对R进行处理

for(inti=0;i

if(tra[i].type.equals("R")){

for(intt=0;t

if(tra[i].itemNumber.equals(huo[t].itemNumber)){

huo[t].quantity+=tra[i].quantity;

}

}

}

}

//对O进行处理

//先将O型数据保存的fuzhu类

for(inti=0;i

intxiangtong=-1;

if(tra[i].type.equals("O")){

for(intj=0;j

if(tra[i].itemNumber.equals(fz[j].itemNumber)&&tra[i].supplier.equals(fz[j].supplier)){

fz[j].quantity+=tra[i].quantity;

xiangtong=1;

break;

}

}

if(xiangtong<0){

fz[fzlength]=newfuzhu();

fz[fzlength].itemNumber=newString(tra[i].itemNumber);

fz[fzlength].quantity=tra[i].quantity;

fz[fzlength].supplier=newString(tra[i].supplier);

fzlength++;

}

}

}

//在fuzhu类中先按数量排序处理

for(inti=0;i

for(intj=fzlength-1;j>i;j--){

if(fz[j].quantity

intq=0;

Stringit;

Stringsu;

q=fz[j].quantity;fz[j].quantity=fz[j-1].quantity;fz[j-1].quantity=q;

it=newString(fz[j].itemNumber);fz[j].itemNumber=fz[j-1].itemNumber;fz[j-1].itemNumber=it;

su=newString(fz[j].supplier);fz[j].supplier=fz[j-1].supplier;fz[j-1].supplier=su;

}

}

}

try{

BufferedWritererror=newBufferedWriter(newFileWriter("Errors.dat"));

BufferedWritership=newBufferedWriter(newFileWriter("Shipping.dat"));

BufferedWriternewinv=newBufferedWriter(newFileWriter("NewInventory.dat"));

//将O型数据与Inventory.dat中的数据比较处理,并在处理过程中按要求记录error和shipping信息

for(inti=0;i

for(intj=0;j

if(fz[i].itemNumber.equals(huo[j].itemNumber)){

if(fz[i].quantity>huo[j].quantity){

error.write(fz[i].supplier);

error.write("");

error.write(fz[i].itemNumber);

error.write("");

error.write(String.valueOf(fz[i].quantity));

error.newLine();

}

else{

huo[j].quantity-=fz[i].quantity;

ship.write(fz[i].supplier);

ship.write("");

ship.write(fz[i].itemNumber);

ship.write("");

ship.write(String.valueOf(fz[i].quantity));

ship.newLine();

}

}

}

}

//对D型数据进行处理

for(inti=0;i

if(tra[i].type.equals("D")){

for(intj=0;j

if(huo[j].itemNumber.equals(tra[i].itemNumber)){

if(huo[j].quantity>0){

error.write("0");

error.write("");

error.write(huo[j].itemNumber);

error.write("");

error.write(String.valueOf(huo[j].quantity));

error.newLine();

}

else{

huo[j].biaoji=-1;

}

}

}

}

}

//将更新的Inventrory中的数据按item排序并更新到NewInventory.dat中

for(inti=0;i

//排序

for(intj=0;j

for(intk=huolength-1;k>j;k--){

if(Integer.parseInt(huo[k].itemNumber)

intq=0;

Stringit;

Stringsu;

Stringds;

q=huo[k].quantity;huo[k].quantity=huo[k-1].quantity;huo[k-1].quantity=q;

it=newString(huo[k].itemNumber);huo[k].itemNumber=huo[k-1].itemNumber;huo[k-1].itemNumber=it;

su=newString(huo[k].supplier);huo[k].supplier=huo[k-1].supplier;huo[k-1].supplier=su;

ds=newString(huo[k].description);huo[k].description=huo[k-1].description;huo[k-1].description=ds;

q=huo[k].biaoji;huo[k].biaoji=huo[k-1].biaoji;huo[k-1].biaoji=q;

}

}

}

//没被删除的写入NewInventory.dat中

if(huo[i].biaoji>0){

newinv.write(huo[i].itemNumber);

newinv.write("");

newinv.write(String.valueOf(huo[i].quantity));

newinv.write("");

newinv.write(huo[i].supplier);

newinv.write("");

newinv.write(huo[i].description);

newinv.newLine();

}

}

error.close();

ship.close();

newinv.close();

}

catch(Exceptionex){

System.out.println("error3");

}

}

}

3.测试结果:

5、实验结论、分析、思考题与心得体会

通过本次实验,我有以下几方面的收获、认识和体会:

1)通过本次试验,我更进一步掌握了java的输入输出流和读写操作,打开文件、将文件内容保存至内存、通过程序处理数据、写入文件、关闭文件。

2)掌握了怎样将string型转换为int型和怎样将int型转换为string型。

3)也对异常处理有了更深的认识,出现异常时程序会报告是什么异常,这有时候可以帮助我知道程序错误出现在那里。

 

WelcomeTo

Download!

!

!

 

欢迎您的下载,资料仅供参考!

 

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

当前位置:首页 > 考试认证 > 其它考试

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

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