上次我提了一个问题没人给我回答,现在有人帮我解决了这个问题,我想让人帮我改进下这程序,或者是都给注释一下!~~
我上次的问题如下:
假设你在业余时间经营一个会员制的CD出租销售店,需要一个管理程序:
增加、删除会员
出租、销售CD
进货、统计
请设计适当的功能,并实现这个程序
提示:
BufferedReader stdin =new BufferedReader(new InputStreamReader( System.in));       
System.out.print("Enter a line:");
System.out.println(stdin.readLine()); 解决的程序如下:
   //程序功能:CD出租销售:1.增加、删除会员
                      2.出租、销售CD
                      3.进货、统计
import java.util.*;
import java.io.*;
/*vip的数据类型和单个的输入与输出*/
class VIPdate{
String name;     
String email;   
int num;         
int CDPrice;

VIPdate(String Name1,int Num1,int CDPrice1,String Email1){
name=Name1; num=Num1;CDPrice=CDPrice1;email=Email1;
  }
  public String toString(){  
return "Name:"+name+"  VIPNumber:"+num+"  Price:"+CDPrice+"  Email:"+email;
}
}
/*对vip进行的插入删除和打印的操作*/
class MVIP{
VIPdate vip[]=new VIPdate[100];  //为将插入的会员分配空间
public boolean insertVip(VIPdate v){
int i;
for(i=0;i<vip.length;i++){
if(vip[i]==null){
vip[i]=v;
return true; 
}
}
return false;
}
public boolean deleteVip(int vipNum){
int i;
for(i=0;i<vip.length;i++){
if(vip[i].num==vipNum){
vip[i]=null;
return true;  
}
}
return false;
}
 public void printVip(){
int i;
for(i=0;i<vip.length;i++){
if(vip[i]!=null){
System.out.println(vip[i].toString());
}
}

}
 }
 
 /*cd的数据类型和单个的输入与输出*/
 class CdData{
  String cdName;
  int cdNum;
  int cdPrice;
  CdData(String cdname,int cdnum,int cdprice){
  cdName=cdname; cdNum=cdnum; cdPrice=cdprice;
  }
  public String tostring(){
  return "cdname: "+cdName+",  "+"cdnum: "+cdNum+",  "+"cdprice: "+cdPrice;
  } 
  }
  /*对cd进行的插入删除和打印的操作*/
  class MCD{
  /*cd类型的数组用来盛放插入的数据*/
  CdData cd[]=new CdData[1000];
  /*实现cd类型的数据的插入*/
  public boolean cdInsert(CdData data){
  int i;
  for(i=0;i<cd.length;i++){
  if(cd[i]==null){
  cd[i]=data;
  return true;
  }
  }
  return false;
  }
  /*可能出现异常,没有值时也要删除*/
  public boolean cdDelete(int cdnum){
  int i;
  for(i=0;i<cd.length;i++){
  if(cd[i].cdNum==cdnum){
  cd[i]=null;
  return true;
  }
  }
  return false;
  }
  /*为什么返回值为BOOLEAN时出现异常 ,不能够正常输出*/
  public void cdPrint(){
  int i;
  for(i=0;i<cd.length;i++){
  if(cd[i]!=null){
  System.out.println(cd[i].tostring());  //如果不加上tostring(),会出现异常
  }
  }
    }    
} /*实现了对会员和cd的操作*/
public class Manager{
  MVIP mvip=new MVIP();
    MCD mcd=new MCD();
    public static void main(String[] args){   
    Manager manager=new Manager();
    VIPdate vip1=new VIPdate("VIP1",1,100,"[email protected]");
    manager.mvip.insertVip(vip1);
    VIPdate vip2=new VIPdate("VIP2",2,200,"[email protected]");
    manager.mvip.insertVip(vip2);
    CdData cd1=new CdData("cd1",1,10);
    manager.mcd.cdInsert(cd1);
    CdData cd2=new CdData("cd2",2,15);
    manager.mcd.cdInsert(cd2);
    String result = null;
    BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
    try{
     outer:
     while(true){
    System.out.println("请选择数字进行操作");    
      System.out.println("1 vip 操作 ");      
      System.out.println("2 cd 操作 ");
  System.out.println("3 exit ");
      result=bufferReader.readLine();
      int m=Integer.parseInt(result);
     switch(m){     
         case 1:
          while(true){
         System .out.println("1 vipPrint");
         System.out.println("2 vipDelete");
         System.out.println("3 vipInsert");
         System.out.println("4 Exit");
          result=bufferReader.readLine();
          int vipm=Integer.parseInt(result);
          switch(vipm){
        
         case 1:
         System.out.println("Enter switch 1.");
        manager.mvip.printVip();
        break;
        case 2:
        System.out.println("enter the vipNum,select 1 view the vipdate");          
       result=bufferReader.readLine();
       int k=Integer.parseInt(result);
       manager.mvip.deleteVip(k);
          break;
        case 3:
          System.out.println("enter the vipdate,Name,Num,CDprice,Email");
          System.out.println("enter the name");
         result=bufferReader.readLine();
         String name=result;
         System.out.println("enter the num");
         result=bufferReader.readLine();
         int num=Integer.parseInt(result);
         System.out.println("enter the cdPrice");
         result=bufferReader.readLine();
         int cdPrice=Integer.parseInt(result);
         System.out.println("enter the email");
         result=bufferReader.readLine();
         String email=result;
         VIPdate vip=new VIPdate(name,num,cdPrice,email);
         manager.mvip.insertVip(vip);
          System.out.println("name "+ name+","+"num "+ num+","+"cdPrice "+ cdPrice+","+"email "+email);
         break;
         case 4:
         continue outer;
        
        }
          }
         case 2:
          while(true){        
         System.out.println("1 cdDelete");
         System.out.println("2 cdInsert");
         System.out.println("3 cdPrint");
         System .out.println("4 exit");
         result=bufferReader.readLine();
         int cdm=Integer.parseInt(result);
         switch(cdm){
         case 1:
         System.out.println("input the cdNum");
         result=bufferReader.readLine();
         int cdN=Integer.parseInt(result);
         manager.mcd.cdDelete(cdN);
        // System.out.println(manager.mcd.cdDelete(cdN));
         break;
         case 2:
         System.out.println("input the cdName");
         result=bufferReader.readLine();
         String cdNm=result;
         System.out.println("input the cdNum");
         result=bufferReader.readLine();
         int cdNumber=Integer.parseInt(result);
         System.out.println("inout the cdPrice");
         result=bufferReader.readLine();
         int  cdP=Integer.parseInt(result);
         CdData cd=new CdData(cdNm,cdNumber,cdP);
         manager.mcd.cdInsert(cd);
         System.out.println("cdnm "+cdNm+"   cdnumber "+cdNumber+"  cdp "+cdP);
         // System.out.println(manager.mcd.cdInsert(cd));
         break;
         case 3:
         manager.mcd.cdPrint();
         //System.out.println(manager.mcd.cdPrint());
         break;         
         case 4:
         continue outer;
         }         
         }
          case 3:
          System.exit(0);
                 }                   
       }
       }catch(IOException e){
   System.err.println(e);
   System.exit(0);
       }catch(NumberFormatException e2){
   System.out.println("Please input Number!!!");
   System.exit(0);
    }   
      }
}