import javaio;import javanioBuffer;import javautil;public class Main public static String paixuVectorString a VectorString e=new Vector; int m=asize; String g=new Stringm4;
import java.io.; import java.nio.Buffer; import java.util.;
public class Main { // 创建一个排序函数,对订单按照数量从小到大排序 public static String[][] paixu(Vector<String[]> a){ Vector<String[]> e=new Vector<>(); int m=a.size(); String[][] g=new String[m][4]; for(int i=0;i<m;i++){ g[i]=a.get(i); } int n=a.size(); for(int i=0;i<m;i++){ int k=0; int b=Integer.parseInt(g[0][2]); for(int j=1;j<n;j++){ //找到最小值 if(Integer.parseInt(g[j][2])<=b){ b=Integer.parseInt(g[j][2]); k=j; } } e.add(g[k]); //添加最小值 if(k==m-1){ n--; } for(int p=k;p<m-1;p++){ //删除最小值 g[p]=g[p+1]; n--; } } String[][] h=new String[m][4]; for(int i=0;i<m;i++){ h[i]=e.get(i); } return h; }
public static void main(String[] args) throws IOException {
try {
// 读取Inventory.txt文件,将商品数据导入Inventory.In中
FileReader one = new FileReader("Inventory.txt");
BufferedReader two = new BufferedReader(one);
String line;
while((line = two.readLine())!=null) {
String[] split = line.split("\\s+");
int m = Integer.parseInt(split[1]);
Inventory.In.add(new Inventory(split[0], m, split[2], split[3]));
}
two.close();
}
catch (Exception ignored) {
}
// 读取Transactions.txt文件,将订单数据导入tran中
File tran1=new File("Transactions.txt");
BufferedReader tran2=new BufferedReader(new FileReader(tran1));
Vector<String[]> tran =new Vector<>();
String line2;
while((line2= tran2.readLine())!=null){
String[] a=line2.split("\\s+");
tran.add(a);
}
// 创建输出流
File Err=new File("Error.txt");
Vector<String[]> err1=new Vector<>();
BufferedWriter Err1 = new BufferedWriter(new FileWriter(Err));
Err1.write("Custom\tItem_number\tQuantity\n");
// 根据题意,优先处理A,新增订单
for(String[] b :tran ){
if(Objects.equals(b[0] , "A")) {
Inventory.In.add(new Inventory(b[1], 0 , b[2] , b[3]));
}
}
// 优先级排第二的是到货记录
for(String[] b:tran){
if(Objects.equals(b[0],"R")){
for(Inventory c : Inventory.In){
if(Objects.equals(c.number,b[1])){
c.Quantity+=Integer.parseInt(b[2]);
}
}
}
}
// 第三处理发货记录,首先判断要发的货是<=0,确定添加到错误信息,库存量小于发货货量,停止发货,添加错误信息,多个订单,从小到大处理
Vector<String[]> m=new Vector<>();
for(String[] d:tran){
if(Objects.equals(d[0],"O")){
m.add(d); //将所有的发货订单存储到一个表
}
}
String[][] fahuodan=paixu(m);
for(String[] f:fahuodan){
String r=f[1];
int s=Integer.parseInt(f[2]);
for(Inventory c:Inventory.In){
if(Objects.equals(c.number,r)){
if(c.Quantity<=0){ // 要发的货是<=0
Err1.write(c.number+"\t"+"货物存储量不正确\n");
Err1.flush();
}
else{
if(c.Quantity-s<0){ // 库存量小于发货货量
Err1.write(f[3]+"\t"+f[1]+"\t"+f[2]+"\n");
Err1.flush();
}
else {
c.Quantity -= s;
int l=0;
for(Shipping1 err:Shipping1.Ship){
if(Objects.equals(err.Custom,f[3])&&Objects.equals(err.Item,f[1])){
Shipping1.Ship.add(new Shipping1(f[3],f[1],Integer.parseInt(f[2])+err.Quantity));
l=1;
}
}
if(l==0){
Shipping1.Ship.add(new Shipping1(f[3],f[1],Integer.parseInt(f[2])));
}
// Shi1.write(f[3]+"\t"+f[1]+"\t"+f[2]+"\n");
//Shi1.flush();
}
}
}
}
}
// 处理删除订单信息
for(String[] d:tran) {
if (Objects.equals(d[0],"D")) {
for (int i = 0; i < Inventory.In.size(); i++) {
if (Objects.equals(Inventory.In.get(i).number,d[1])) {
if (Inventory.In.get(i).Quantity != 0) { // 库存量不为0
Err1.write("0\t" + d[1] + "\t" + Inventory.In.get(i).Quantity + "\n");
Err1.flush();
} else {
Inventory.In.remove(i);
break;
}
}
}
}
}
Err1.close();
// 将Shipping1.Ship中的数据写入Shipping.txt文件
File Shi=new File("Shipping.txt");
BufferedWriter Shi1 = new BufferedWriter(new FileWriter(Shi));
Shi1.write("Custom\tItem_number\tQuantity\n");
for(Shipping1 erro:Shipping1.Ship){
Shi1.write(erro.Custom+"\t"+erro.Item+"\t"+erro.Quantity);
Shi1.flush();
}
Shi1.close();
// 将Inventory.In中的数据写入NewInventory.txt文件
File new_file=new File("NewInventory.txt");
BufferedWriter bw_new=new BufferedWriter(new FileWriter(new_file));
bw_new.write("Item_number\tQuantity\tSupplier\tDescription\n");
for(Inventory inv :Inventory.In){
bw_new.write(inv.number+"\t"+inv.Quantity+"\t"+inv.Supplier+"\t"+inv.Des+"\n");
bw_new.flush();
}
bw_new.close();
System.out.println("文件已经生成,正在退出系统……");
}
原文地址: https://www.cveoy.top/t/topic/hbjO 著作权归作者所有。请勿转载和采集!