1.程序首先打开并读取Inventory.txt中记录的所有库存记录然后读取Transactions.txt,处理这个文件中包含的事务记录发货记录到Shipping.txt,并记录错误信息到Errors.txt中最后更新库存到另外一个文件NewInventory.txt中。
2.文件Inventory.txt和NewInventory.txt的每行包含一个存货记录没条记录包含下面一些字段息,这些字段之间用一个tab分开(见后面的文件格式):
3.字段Items按照从小到大的順序写入文件的注意Item号不必连续,如Item号为752的后面可能是800
4.文件Transactions.txt包含几个不同的处理记录(每行一条记录)。每条记录前面以一个大写芓母开头表示这条记录是什么类型的事务。在不同的大写字母后面是不同的信息格式所有的字段也是以tab键分开的(见Transactions.txt文件格式)。
5.鉯’O’开头(Order的首字母)的事务表示这是一个发货订单即某一种货物应该发给特定的客户。Item
number和Quantity的格式如上面表格定义Custom编号和上面的Supplier编號一致。处理一条定单记录(以’O’开头的事务)意味着从减少库存记录中相应货物的数量(减少的数量=发货单中的数量)记录发货信息到Shipping.txt中。注意:Inventory.txt中的quantity不应该小于0如果对于某一种货物,库存的数量小于发货单的数量的话系统应该停止处理发货单,并记录出错信息箌Errors.txt如果对于某一种货物有多个发货单,而且库存总量小于这些发货单的总和的话系统应该按照发货单中的数量从小到大的有限原则满足客户。也就是说对于某一种货物如果一个数量Quantity少的发货单没有处理之前,数量Quantity多的发货单永远不会被处理(这种处理原则不受发货單记录在Transactions.txt的先后顺序影响)
6.以’R’开头的事务表示这是一个到货单记录,在’R’后面是Item number和它的数量Quanlity处理一条到货单意味着增加库存中楿应货物的数量(增加的数量=到货单中的数量)。注意:如果在Transactions.txt文件中到货单出现在发货单之后,到货单中的货物数量可以用来填补发貨单中的数量(可以理解成在Transactions.txt中优先处理到货单)。
7.以’A’开头的事务表示向库存中增加一种新的货物(即这种货物以前库存中没有)在’A’后面是Item number,供应商supplier以及货物的描述description处理一个新增货物记录意味着向库存中增加一个数量Quantity为0的新的Item。你可以假设在一个Transactions.txt中新增貨物记录总是出现在第一个到货单之前。
8.以’D’开头的事务表示从库存中删除一种货物在’D’后面是Item号。删除操作总是在所有的事物處理之后才被处理以保证对于可能出现的同一种货物的发货单的操作能在删除之前被正确处理。如果要删除的某种货物的库存量Quantity不为0的話系统应该向Errors.txt记录出错信息。
9.文件Shipping.txt中的每一行代表给某一客户的发货信息Shipping.txt中的每一行分别是客户编号、Item号、货物数量,它们之间用tab鍵分隔如果发货单中有两条客户编号和Item编号一样的记录,在Shipping.txt中应该将这两条发货信息合并(即将它们的数量相加)
}