洛神賦

          子虛烏有

            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 洛神賦 閱讀(1529) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 曲阳县| 宝兴县| 嘉峪关市| 鲁甸县| 淮安市| 报价| 灵丘县| 郯城县| 安岳县| 五莲县| 怀来县| 乳山市| 武胜县| 黔西| 新绛县| 西华县| 平昌县| 监利县| 天长市| 阿尔山市| 新绛县| 城市| 桃园县| 乌什县| 化州市| 宁陵县| 偏关县| 布拖县| 台前县| 永和县| 蕲春县| 东乡| 闽侯县| 华池县| 和林格尔县| 寻乌县| 江津市| 都匀市| 五大连池市| 合阳县| 屏边|