a.txt, b.txt保存在c:\data下. 程序完成如下功能.

根据a文件中的账户余额和b文件中的消费日志,重新计算员工当前的余额.(用员工账户余额减去员工每笔消费)
员工姓名唯一, 不会有重名的情况发生.
并将余额为0的人员姓名保存至c.txt.(人员名单按升序排列)
员工账户余额及单次消费额不会超过5000.00文件格式定义如下:
   a文件: 总计2列, 列分隔符为",". 第一列是员工姓名, 第二列是员工卡内的余额. 单位为元.
   b文件: 总计3列, 第一列为员工姓名, 第二列为消费项名称, 第三列为消费金额.
   c文件: 员工姓名列表, 每个员工姓名单独一行.a.txt:
张三,200.01
李四,300.00
...
赵六,1000.01b.txt:
张三,牛肉面,7.01
张三,鸡蛋,2.09
王五,牛肉面,7.01
赵六,牛肉面,7.01
张三,冷面,4.11
张三,水煮肉片,20.00
要求: 
    1. 程序能够将正确的结果写入文件. 
    2. 需注意命名规则及错误处理, 从OO的角度来设计和编写实现.
    3. 在J2SE5.0版本实现并运行.
    4. 请注意, 计算的是钱.

解决方案 »

  1.   

    我说说自己的思路吧,希望对楼主有帮助
    首先使用文件流来解析各个文件的数据获取每一行内容
    然后使用字符串函数根据,这个分隔符来获取相应的数据
    把这b文件中获取的数据可以保存List<Object>类型中,
    这个对象就是你要建立的一个消费对象,里面包含3个属性(OO设计)
    对于a文件中的数据你可以保存在List<Object>中也可以保持在Map中
    我个人认为保存在Map中更好一些,操作方便然后专门写一个操作类来处理这两种数据的关系
    里面要是牵涉到个别情况(并将余额为0的人员姓名保存至c.txt.(人员名单按升序排列),这个只需要new 一个File把姓名写进去就可以了,不难)希望对楼主有帮助,只是把方法大致说了说
      

  2.   

    先将文本中的数据一行行的读入到一个对象数组或者集合类中,然后在类里面复写equals和实现compareable接口然后对你的集合类来进行arrays排序或者是Collections排序就可以得到排序后的,然后迭代将数组或者集合类中的数据逐行写入到文本