洛神赋

子虚乌有

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  7 Posts :: 10 Stories :: 0 Comments :: 0 Trackbacks
要求:
            1、完成一个对水果仓库管理的简单系.。
            2、完成,增加、查询、修改简单的操作。
分析:
            1、首先我们要有进行分成分析  表层----操作层----底层;
            2、表层有什么 :可供操作的选项即(增、查、改);
            3、操作层有什么:完成不同的操作(读文件和写文件);
            4、底层有什么:完成数据的写出和读入;
步骤:
先完成如下javaproject的创建:

//下面为每个类中的具体内容(按我做改程序的顺须写的)
//Fruit

package VO;

import java.io.Serializable;

@SuppressWarnings("serial")
public class Fruit implements Serializable {
//属性
 private String name;
 private String area;
 private float   kg;
 //构造方法
 public Fruit(){}
 public Fruit(String name,String area,float kg){
  this.name =name;
  this.area =area;
  this.kg =kg; 
 }
 
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getArea() {
  return area;
 }
 public void setArea(String area) {
  this.area = area;
 }
 public float getKg() {
  return kg;
 }
 public void setKg(float kg) {
  this.kg = kg;
 }

 public String toString (){
  return "水果名:"+this.name +"  源产地:"+this.area+"  现重量:"+this.kg ;
 }

}

//主方法

package Main;

import Menu.Menu;

public class Main {
 //主方法
 public static void main(String[] args){
  System.out.println("简单的水果仓库管理系统");
  //调用Menu方法
  new Menu();
 }
}

//Menu

package Menu;

import OP.FruitOperate;
import Util.InputDate;

public class Menu {
 InputDate input= null;
 public Menu(){
  this.input=new InputDate();
  //循环出现菜单
  while (true){
   this.show();
  }
 }
 //需要定义的菜单内容
 private void show() {
  System.out.println("\t\t\t1、增加水果库存");   
        System.out.println("\t\t\t2、浏览库存信息");   
        System.out.println("\t\t\t3、修改库存信息");   
        System.out.println("\t\t\t4、注销管理系统");   
        System.out.print("\n\n请选择您要使用的操作:");   
        int temp = input.getInt();   
        switch(temp){   
        case 1:{  // 增加水果库存
                new FruitOperate().add(); //业务处理层  
                break;   
        }   
        case 2:{ // 浏览库存信息
                new FruitOperate().show();   
                break;   
        }   
        case 3:{ // 修改库存信息
                new FruitOperate().update();   
                break;   
        }   
        case 4:{ //注销管理系统
                System.out.println("注销中******************");   
                System.out.println("注销成功!");   
                System.exit(1);   
        }   
        default:{    //错误信息提示
                System.out.println("请选择正确的操作范围如下:");   
                break;   
        }   
 
        }

 }
}



//对度入数据的相关操作

package Util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputDate {
 
  private BufferedReader buf =null;   
     public InputDate(){   
             buf = new BufferedReader(new InputStreamReader(System.in));   
     };   
     public String getString(){   
             String str = null;   
             try {   
                     str = buf.readLine();   
             } catch (IOException e) {}   
             return str;   
     }   
 
  public int getInt(){   
         int temp = 0;   
         //如果输入的不是数字,告诉用户输入错了~   
         //可以使用正则验证   
         String str = null;   
         boolean flag = true;   
         while(flag){   
                 //输入数据   
                 str = this.getString();   
                 if (!(str.matches("\\d+"))){   
                         //如果输入的不是一个数字,则必须重新输入   
                         System.out.print("输入的内容必须是上面操作代号的范围,请重新输入:");   
                 }else{   
                         //输入的是一个正确的数字,则可以进行转换   
                         temp = Integer.parseInt(str);   
                         //表示退出循环   
                         flag = false;   
                 }   
         }   
         return temp;   
 }
 public float getFloat() {
  
    
        float f = 0.0f;   
        //如果输入的不是数字,提示告诉用户输入错了~   
        //可以使用正则验证   
        String str = null;   
        boolean flag = true;   
        while(flag){   
                //输入数据   
                str = this.getString();   
                if (!(str.matches("\\d+?.\\d{1,2}"))){   
                        //如果输入的不是一个数字,则必须重新输入   
                        System.out.print("输入的内容必须是小数(小数点后两位),请重新输入:");   
                }else{   
                        //输入的是一个正确的数字,则可以进行转换   
                        f = Float.parseFloat(str);   
                        //表示退出循环   
                        flag = false;   
                }   
        }   
        return f;   

}
 
}

///实现管理的方法类

package OP;

import Util.FileOperate;
import Util.InputDate;
import VO.Fruit;

public class FruitOperate {
   private InputDate input = null;   
      public FruitOperate(){   
              this.input = new InputDate();   
      }   
      //完成具体的Fruit对象操作   
      public void add(){   
              //要使用输入数据的类   
              String name = null;   
              String area = null;   
              float kg = 0.0f;   
              System.out.print("输入水果名:");   
              name = this.input.getString();   
              System.out.print("输入源产地:");   
              area = this.input.getString();                                
              System.out.print("输入入库量:");
              kg = this.input.getFloat();
              //生成Fruit对象,把对象保存在文件中   
              Fruit f = new Fruit(name,area,kg);   
                        
              try{   
                      new FileOperate().save(f);    //io操作层
                      System.out.println("数据保存成功!");   
              }catch(Exception e){   
                      System.out.println("数据保存失败!");   
              }   
      }   
      public void show(){   
              //从文件中把内容读进来   
       Fruit f = null;   
              try{   
                      f = (Fruit) new FileOperate().read();   
              }catch(Exception e){   
                      System.out.println("内容显示失败,请确定数据是否存在!");   
              }   
              if(f != null){   
                      System.out.println(f);   
              }   
      }   
      public void update(){   
              //先将之前的信息查出来   
       Fruit f = null;   
              try{   
                      f = (Fruit) new FileOperate().read();   
              }catch(Exception e){   
                      System.out.println("内容显示失败,请确定数据是否存在!");   
              }   
              if(f != null){   
                      String name = null;   
                      String area = null;   
                      float kg =0.0f;   
                      System.out.print("请输入新的水果名(原水果名:"+f.getName()+")");   
                      name = this.input.getString();   
                      System.out.print("请输入新的源产地(原源产地:"+f.getArea()+")");   
                      area = this.input.getString();   
                      System.out.print("请输入新的库总量(原库总量:"+f.getKg()+")");   
                      kg = this.input.getFloat(); 
                     
                      //信息重新设置   
                      f.setName(name);   
                      f.setArea(area);   
                      f.setKg(kg);   
                      try{   
                              new FileOperate().save(f);   
                              System.out.println("数据更新成功!");   
                      }catch(Exception e){   
                              System.out.println("数据更新失败!");   
                      }   
              }   
      }   

}

//底层操作  文件的读入和读出

package Util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class FileOperate {
 public static final String FILENAME = "E:\\fruit.txt";   
    //把对象保存在文件之中   
    public void save(Object obj){   
            ObjectOutputStream out = null;   
            try {   
                    out = new ObjectOutputStream(new FileOutputStream(new File(FILENAME)));   
                    //写入对象   
                    out.writeObject(obj);   
            }catch(Exception e){   
                    try {   
                            throw e;   
                    } catch (Exception e1) {}   
            }finally {   
                    try {   
                            out.close();   
                    }catch(Exception e){}   
            }   
    }   
   
    //把对象从文件之中读出来   
    public Object read() throws Exception{   
            Object obj = null;   
            ObjectInputStream input =null;   
            try {   
                    input = new ObjectInputStream(new FileInputStream(new File(FILENAME)));   
                    obj = input.readObject();   
            } catch (Exception e) {   
                    throw e;   
            }finally{   
                    try{   
                            input.close();                                
                    }catch(Exception e){}   
            }   
            return obj;   
    }   

}

运行结果如下:





这篇文章只是一个原理  ,感谢阅读  希望能够提供宝贵意见!QQ:237333696


















posted on 2010-11-06 16:51 洛神赋 阅读(1506) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: