货物进销管理系统Word下载.docx
- 文档编号:6931403
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:14
- 大小:42KB
货物进销管理系统Word下载.docx
《货物进销管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《货物进销管理系统Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
三、使用硬件、软件环境
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;
/*用来保存"
O"
交易数据的中间类,以满足quantity大的最后进行交易*/
classfuzhu{
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<
str.length){
for(x++;
i<
str.length&
&
str[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{
BufferedReadertr=newBufferedReader(newFileReader("
Transactions.dat"
while((s=tr.readLine())!
tra[tralength]=newtrans();
for(x++;
}
s1=newString(str,t,i-t);
if(x==1){
tra[tralength].type=newString(s1);
i++;
t=i;
else{
if(tra[tralength].type.equals("
)){
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);
D"
A"
tra[tralength].quantity=0;
if(x==3)tra[tralength].supplier=newString(s1);
if(x==4)tra[tralength].description=newString(s1);
}
}
tralength++;
tr.close();
catch(Exceptionex){
System.out.println("
error2"
}
/*将Transaction.dat中的数据与Inventory.dat中的数据进行比较处理*/
//对A进行处理
for(inti=0;
tralength;
if(tra[i].type.equals("
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(intt=0;
t<
huolength;
t++){
if(tra[i].itemNumber.equals(huo[t].itemNumber)){
huo[t].quantity+=tra[i].quantity;
}
//对O进行处理
//先将O型数据保存的fuzhu类
intxiangtong=-1;
if(tra[i].type.equals("
for(intj=0;
j<
fzlength;
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(intj=fzlength-1;
j>
i;
j--){
if(fz[j].quantity<
fz[j-1].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;
BufferedWritererror=newBufferedWriter(newFileWriter("
Errors.dat"
BufferedWritership=newBufferedWriter(newFileWriter("
Shipping.dat"
BufferedWriternewinv=newBufferedWriter(newFileWriter("
NewInventory.dat"
//将O型数据与Inventory.dat中的数据比较处理,并在处理过程中按要求记录error和shipping信息
for(inti=0;
for(intj=0;
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(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(String.valueOf(fz[i].quantity));
ship.newLine();
//对D型数据进行处理
if(tra[i].type.equals("
for(intj=0;
if(huo[j].itemNumber.equals(tra[i].itemNumber)){
if(huo[j].quantity>
0"
error.write(huo[j].itemNumber);
error.write(String.valueOf(huo[j].quantity));
}
else{
huo[j].biaoji=-1;
//将更新的Inventrory中的数据按item排序并更新到NewInventory.dat中
//排序
for(intk=huolength-1;
k>
j;
k--){
if(Integer.parseInt(huo[k].itemNumber)<
Integer.parseInt(huo[k-1].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>
newinv.write(huo[i].itemNumber);
newinv.write("
newinv.write(String.valueOf(huo[i].quantity));
newinv.write(huo[i].supplier);
newinv.write(huo[i].description);
newinv.newLine();
error.close();
ship.close();
newinv.close();
}
catch(Exceptionex){
error3"
3.测试结果:
5、实验结论、分析、思考题与心得体会
通过本次实验,我有以下几方面的收获、认识和体会:
1)通过本次试验,我更进一步掌握了java的输入输出流和读写操作,打开文件、将文件内容保存至内存、通过程序处理数据、写入文件、关闭文件。
2)掌握了怎样将string型转换为int型和怎样将int型转换为string型。
3)也对异常处理有了更深的认识,出现异常时程序会报告是什么异常,这有时候可以帮助我知道程序错误出现在那里。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 货物 管理 系统