Package

Source Code of PBCollection

import java.io.*;
import java.util.Scanner;

public class PBCollection{
  private PhoneBook[] collection;
  private PhoneBook[] midtm;  //�˻���Phonebook ����� �迭
  private String file = "phonebooklist.txt"; //'����ó ����Ʈ' ����� �����̸�
  private String pw_file = "password.txt"//'�н�����' ����� �����̸�
  private String pw;//�ʱ� ��� 0000
 
  private int count;    //PhoneBook �迭ũ�� count ����
  //file open ���� -> op_arr[][] ����.
  private String[][] op_arr;//file open��, "phonebooklist.txt" �������� ����� �迭
  private String[][] s_arr; //file search��, ��������� �迭
 
  private int opnum=count;//setOparr()���� op_arr[][]�� ����� ��ġ���� ����
  private int searchnum=0; //�˻��� PhoneBook �����, s_arr[][]�� ����� ��ġ���� ����
  private int searchtime=0;//PhoneBook �˻���, �˻��Ȱ� ����� Ƚ��
 
  //������
  public PBCollection(){
      collection = new PhoneBook[100]
      count = 0;
      op_arr=new String[100][11];
      midtm = new PhoneBook[100];
      s_arr=new String[100][11];
      pw="0000"//�н����� �ʱⰪ "0000"
  }
  //file open ���� -> op_arr[][] ����. set~()
  public void setOparr(){
    op_arr[opnum][0]=collection[opnum].getFname();
    op_arr[opnum][1]=collection[opnum].getLname();
    op_arr[opnum][2]=collection[opnum].getPos();
    op_arr[opnum][3]=collection[opnum].getDepart();
    op_arr[opnum][4]=collection[opnum].getCompname();
    op_arr[opnum][5]=collection[opnum].getAddr();
    op_arr[opnum][6]=collection[opnum].getTnum();
    op_arr[opnum][7]=collection[opnum].getFnum();
    op_arr[opnum][8]=collection[opnum].getMnum();
    op_arr[opnum][9]=collection[opnum].getEmail();
    op_arr[opnum][10]=collection[opnum].getHomepage();

    opnum++;
  }
  public String[][] getOparr(){return op_arr;}
  public void setSarr(){
    for(int i=0;i<searchtime;i++){
      s_arr[searchnum][0]=midtm[i].getFname();
      s_arr[searchnum][1]=midtm[i].getLname();
      s_arr[searchnum][2]=midtm[i].getPos();
      s_arr[searchnum][3]=midtm[i].getDepart();
      s_arr[searchnum][4]=midtm[i].getCompname();
      s_arr[searchnum][5]=midtm[i].getAddr();   
      s_arr[searchnum][6]=midtm[i].getTnum();
      s_arr[searchnum][7]=midtm[i].getFnum();
      s_arr[searchnum][8]=midtm[i].getMnum();
      s_arr[searchnum][9]=midtm[i].getEmail();
      s_arr[searchnum][10]=midtm[i].getHomepage();

      searchnum++;
    }
  }
  public String[][] getSarr(){return s_arr;}
  public int getSearchtime(){return searchtime;}
  public int getCount(){return count;}
 
  //�н����� ���� �Լ�
  public void setPW(String mpw){
    FileWriter fw=null;
    BufferedWriter bw=null;
    PrintWriter output=null;
    try {
      pw=mpw;
      fw = new FileWriter(pw_file);
      bw = new BufferedWriter(fw);
      output = new PrintWriter(bw);
      output.print(pw);//pw�� ���Ͽ� ����Ʈ.
       
    }catch (IOException ioe){ioe.printStackTrace();
    }finally{try{output.close();}catch(Exception e){}}
    //close() : file������ �������� close()
  }
  //���Ͽ� ����� �н����� �������� �Լ�
  public String getPW(){
    try {
      Scanner fileScan = new Scanner(new File(pw_file));
      while(fileScan.hasNext()){
        pw = fileScan.nextLine();
      }
      fileScan.close();//file scan������, close()
    }catch (FileNotFoundException fnfe){
      setPW(pw);//���Ͼ����ϱ� save()�̿��ؼ� �ٷ� ���� ���� ���� -> �̶�, �н����� �ʱⰪ���� ����.
    }finally{}
    return pw;
    }

  //����ó �߰�
  public void addPB(String f_name, String l_name, String pos, String depart, String comp_name, String addr, String t_num, String f_num, String m_num, String email, String homepage){
    if(count == collection.length)
      increaseSize();
    collection[count] = new PhoneBook(f_name, l_name, pos, depart, comp_name, addr, t_num, f_num, m_num, email, homepage);
    count++;
  }
  //����ó �˻�
  public void searchPB(String sname){
    int j=0//midtm[]�� ����� �迭�ѹ�
    midtm=null;//������ �˻��� �� �����.
    //if(!sname.equals("")){  //�̸����� �˻�
   
    for(int i=0;i<count;i++){ 
      if(SoundSearcher.matchString(collection[i].getName(), sname)){//�ʼ� �˻�
        midtm[j]=collection[i];searchtime++;j++;
      }else{//�Ϲ� �˻�
        if((collection[i].getName()).equals(sname)){
          midtm[j]=collection[i];searchtime++;j++;
        }
      }
    }
    //}
    if(midtm != null)
      setSarr();
  }
 
  //����ó ����   
  public void modifyPB(String mname,String modifyinform,int mcolnum){
    PhoneBook[] tmp = new PhoneBook[collection.length];
    for(int i=0;i<count;i++){
      if((collection[i].getName()).equals(mname)){
        if(mcolnum==1){
          collection[i].setFname(modifyinform);
        }else if(mcolnum==2){
          collection[i].setLname(modifyinform);
        }else if(mcolnum==3){
          collection[i].setPos(modifyinform);
        }else if(mcolnum==4){
          collection[i].setDepart(modifyinform);
        }else if(mcolnum==5){
          collection[i].setCompname(modifyinform);
        }else if(mcolnum==6){
          collection[i].setAddr(modifyinform);
        }else if(mcolnum==7){
          collection[i].setTnum(modifyinform);
        }else if(mcolnum==8){
          collection[i].setFnum(modifyinform);
        }else if(mcolnum==9){
          collection[i].setMnum(modifyinform);
        }else if(mcolnum==10){
          collection[i].setEmail(modifyinform);
        }else if(mcolnum==11){
          collection[i].setHomepage(modifyinform);
        }
      } 
    }
    for(int pb=0; pb<collection.length; pb++)
      tmp[pb]=collection[pb];
    collection = tmp;
   
 
 
  public void deletePB(String dname, String YorN){
    //�̸����� ����ó �˻��ؼ� ����
    int delPoint=-1;
    PhoneBook[] tm = new PhoneBook[collection.length];
    if(YorN.equals("y") || YorN.equals("Y")){
      if(!dname.equals("")){//�������� ����
        for(int i=0;i<count;i++){
          if((collection[i].getName()).equals(dname)){
            delPoint=i;
          }
        }
        for(int j=delPoint;j<count-1;j++){
          collection[j]=collection[j+1];
        }
        count--;//�ϳ� ���ﶧ���� count -1�� �پ��
      }else{//��ü ����
        for(int i=0;i<count;i++){
          collection[i]=null
        }
        count=0;//��ü ����ϱ� count=0 �ʱ�ȭ
      }
    }
    for(int pb=0; pb<collection.length; pb++)
      tm[pb]=collection[pb];
    collection = tm;
  }
  //PhoneBook �迭 Ȯ�� 
  private void increaseSize(){ 
    PhoneBook[] tmp = new PhoneBook[collection.length*2];
    String[][] tmp_oparr = new String[op_arr.length*2][11];
    PhoneBook[] stmp = new PhoneBook[collection.length*2];
    for(int pb=0; pb<collection.length; pb++){
      tmp[pb]=collection[pb];
      tmp_oparr[pb]=op_arr[pb];
      stmp[pb]=midtm[pb];
    }
    collection = tmp;
    op_arr = tmp_oparr;
    midtm = stmp;
  }
  public String toString()
  {/*
    String contents = "\nPhoneBook List\n";
    contents += "\n��\t�̸�\t����\t�μ�\tȸ���\t�ּ�\t��ȭ��ȣ\t�ѽ���ȣ\t�ڵ�����ȣ\t�̸����ּ�\tȨ������\n";
*/
    String contents="";
    for (int i = 0; i < count ; i++ )
      contents += collection[i].toString() + "\n";
    return contents;
  }
  //file open��
    public void open(){
      //���̺��� ��� ���� �������, �ٽ� ���µǰ�(����� ���븸)
      String url;
      try {
        deletePB("","Y");//���� ������ ��� ���� �� �����,
        Scanner fileScan = new Scanner(new File(file));
        while(fileScan.hasNext()){
          fileScan.useDelimiter("\n");
          url = fileScan.nextLine();
         
          Scanner urlScan = new Scanner(url);
          urlScan.useDelimiter("/");//"/"�� ������ ����
         
          while(urlScan.hasNext()){//addMovie()�� �ϳ�������. "/"��������.
            addPB(urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next(),urlScan.next());
          }
          setOparr();
          urlScan.close();
        }
       
        fileScan.close();//file scan������, close()
      }catch (FileNotFoundException fnfe){
        //fnfe.printStackTrace();
        save();//���Ͼ����ϱ� save()�̿��ؼ� �ٷ� ���� ���� ����.
      }finally{opnum=count;}
    }

   
    //file�� save��
    public void save() {
      FileWriter fw=null;
      BufferedWriter bw=null;
      PrintWriter output=null;
      try {
        fw = new FileWriter(file);
        bw = new BufferedWriter(fw);
        output = new PrintWriter(bw);
        output.print(toString());//toString()�� ���Ͽ� ����Ʈ.
        //toString(), �����ϱ� �� �ѹ��� ���ֱ�!
       
      }catch (IOException ioe){ioe.printStackTrace();
      }finally{try{output.close();}catch(Exception e){}}
      //close() : file������ �������� close()
    }
}
TOP

Related Classes of PBCollection

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.