Java_簡単な電話帳を書く

40583 ワード

作成された機能フレームワーク
   :

   
	·     :
		·          :
			1.        
			2.         (      )
			3.          
			4.   id         (               id  1),         
			5.   id         
			6.        
			
			    :
				1、       ,    id ,  ,  ,  ,   ,         
				23410      (      )
			   :
				     PhoneBook                 
				     Person
				     Test

Personクラス
package telbook;

public class Person {
	private int id;
	private static int num = 1;
	private String name;
	private String sex;
	private int age;
	private String telnumber;

	public Person() {
		super();
	}

	public Person(String name, String sex, int age, String telnumber) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.telnumber = telnumber;
		this.id = num;
		num++;
	}

	public int getId() {
		return id;
	}

	public void setCount(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getTelnumber() {
		return telnumber;
	}

	public void setTelnumber(String telnumber) {
		this.telnumber = telnumber;
	}

	@Override
	public String toString() {
		return "Person" + "[id" + id + ",name=" + name + ", sex=" + sex + ", age=" + age + ", telnumber="
				+ telnumber + "]";
	}

}


PhoneBook
package telbook;

import java.util.Scanner;

public class PhoneBook {
	Scanner sc = new Scanner(System.in);

	//   1-6
	public static int input() {
		Scanner sc = new Scanner(System.in);
		int i = sc.nextInt();
		while (true) {
			if (i > 6 && i < 0) {
				System.out.println("     ");
				i = sc.nextInt();
			} else
				break;
		}
		return i;
	}

	//           id ,  ,  ,  ,   ,         
	int total;//     
	private Person[] arr;//   Person   
	int count;//     

	//         arr  
	public PhoneBook(int total) {
		arr = new Person[total];
		this.total = total;
	}

	//        
	public void add(Person p) {
		if (count < total) {
			arr[count] = p;
			count++;
		} else
			System.out.println("      !");
	}

	//          
	public Person[] find(String name) {
		//              
		Person[] p = new Person[count];
		//    ps  ,             

		int idx = 0;//      
		//                  
		for (int i = 0; i < count; i++) {
			if (arr[i].getName().equals(name)) {

				p[idx] = arr[i];
				idx++;
			}
		}
		return p;
	}

	//      -      
	public void findAll() {
		for (int i = 0; i < count; i++) {
			System.out.println(arr[i].toString());
		}
	}

	//   id  
	/*
	 * 1.   id         2.         
	 */
	public Person update(int id) {
		for (int i = 0; i < count; i++) {
			if (arr[i].getId() == id) {
				return arr[i];
			}
		}
		return null;
	}

	//   id     
	// public void delete(int id) {
	// for (int i = 0; i < count - 1; i++) {
	// //     id     
	// if (arr[i].getId() == id) {
	// //         
	// arr[i] = arr[i + 1];
	//
	// }
	// //         
	// arr[count-1] = null;
	// count--;
	// }
	// }
	public void delete(int id) {
		int idx = -1;
		for (int i = 0; i < count - 1; i++) {
			//     id     
			if (arr[i].getId() == id) {
				idx = i;
			}
		}
		if (idx != -1) {
			//         
			for (int i = idx; i < count - 1; i++) {
				arr[i] = arr[i + 1];
			}

		}
		arr[count - 1] = null;
		count--;

	}

}


Testクラス
package telbook;

import java.util.Scanner;

public class Test {

	private static final String Person = null;

	public static void main(String[] args) {
		showInfo();
	}
	
	public static void showInfo(){
		Scanner sc = new Scanner(System.in);
		PhoneBook pb = new PhoneBook(10);
		boolean flag = true;
		do{
			System.out.println("\t\t1.     ");
			System.out.println("\t\t2.     ");
			System.out.println("\t\t3.       ");
			System.out.println("\t\t4.       ");
			System.out.println("\t\t5.       ");
			System.out.println("\t\t6.    ");
			System.out.print("\t\t   ID:");
			int i = PhoneBook.input();
		switch(i){
		case 1: System.out.println("        :");
    			String name = sc.next();
    			System.out.println("        :");
    			String sex = sc.next();
    			System.out.println("        :");
    			int age = sc.nextInt();
    			System.out.println("        :");
    			String tel = sc.next();
    			Person person = new Person(name,sex,age,tel);
    			pb.add(person);
    			break;
		case 2: System.out.println("         :");
				String name2 = sc.next();
				//     p         
				Person[] p = pb.find(name2);
				//          
				for (Person person2 : p) {
		    		//        
		    		if(person2!=null){
		                 //null.       
						System.out.println(person2.toString());
		    		}else{
		    			System.out.println("      !");
		    		}
				}
				break;
		case 3: pb.findAll();
				break;
		case 4: System.out.println("    :");
				int id = sc.nextInt();
				Person p4 = pb.update(id);
				System.out.println("     :");
				String name4 = sc.next();
				System.out.println("      :");
				String tel4 = sc.next();
				p4.setName(name4);
				p4.setTelnumber(tel4);
				break;
		case 5: System.out.println("     ?");
				int id1 = sc.nextInt();
				pb.delete(id1);
				break;
		case 6: flag = false;
		}
		}while(flag);
	}

}