자바 단순 콘 솔 주소록 구현

메 인 메뉴 를 통 해 각급 하위 메뉴 를 제어 하고 기록 추가,기록 찾기,기록 삭제,기록 수정,정렬 기록,시스템 기능 종료 등 을 실현 합 니 다.모두 6 부분의 기능 모듈 입 니 다.
这里写图片描述
위의 그림 은 각 모듈 이 가지 고 있 는 기능 이 고 정규 표현 식 으로 입력 이 규칙 에 부합 되 는 지 판단 하 는 것 이다.이 시스템 은 MVC 의 디자인 모델 을 나타 내 고 분업 호출 이 뚜렷 하 다.
주로 다음 과 같은 몇 가지 유형 을 포함 합 니 다.
这里写图片描述
APP 클래스:프로그램의 주 함수 클래스,프로그램 시작 입구
Menu 클래스:간단 한 페이지 에 표 시 된 효과 로 기능 이 없습니다.
TelNoteRegex 클래스:정규 표현 식,입력 합격 여 부 를 판단 하 는 것 은 모두 이 방법 에 있 습 니 다.
Operate 류:업무 논리 류,모든 기능 의 실현 은 기본적으로 이런 종류 에 집중 된다.
Person 클래스:패 키 징 데이터.
这里写图片描述
구체 적 인 구현 코드:
App 클래스 의 구현 코드:

package com.bjsxt.iphone;
public class App {
 public static void main(String[] args) {
  new App().start();
 }
 public void start(){
  Menu m=new Menu();
  Operate o=new Operate();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.mainMenu();
   int key=reg.menuRegex(1, 6);
   switch(key){
   case 1:
    o.addLogic();
    break;
   case 2:
    o.searchLogic();
    break;
   case 3:
    o.modifyLogicLogic();
    break;
   case 4:
    o.deleteLogic();
    break;
   case 5:
    o.orderLogic();
    break;
   case 6:
    System.exit(0);
    break;
   }
  }
 }
}
Person 클래스 의 구체 적 인 구현 코드:

package com.bjsxt.iphone;
public class Person {
 private int id;//  ID  
 private String name;//      
 private String age;//      
 private String sex;//      
 private String telNum;//        
 private String address;//      
 public Person(){}
 public Person(int id,String name,String age,String sex,String telNum,String address){
  this.id=id;
  this.name=name;
  this.age=age;
  this.sex=sex;
  this.telNum=telNum;
  this.address=address;
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id=id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getAge() {
  return age;
 }
 public void setAge(String age) {
  this.age = age;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public String getTelNum() {
  return telNum;
 }
 public void setTelNum(String telNum) {
  this.telNum = telNum;
 }
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
}
TelNoteRegex 클래스 의 구체 적 인 코드:

package com.bjsxt.iphone;
import java.util.Scanner;
public class TelNoteRegex {
 //      
 @SuppressWarnings("resource")
 public int menuRegex(int min,int max){
  String regex="[0-9]{1}";
  Scanner sc=new Scanner(System.in);
  while(true){
   String input=sc.nextLine();
   //        
   if(input.matches(regex)){
    int key=Integer.parseInt(input);
    if(key>=min && key<=max){
     return key;
    }else{
     System.out.println("           !");
    }
   }else{
    System.out.println("       !");
   }
  }

 }

 //         
 @SuppressWarnings("resource")
 public String nameRegex(String name){
  String pattern ="[\\u4e00-\\u9fa5]+";
  String str=name;
  Scanner sc=new Scanner(System.in);
  while(true){
   if(str.matches(pattern)){
    return str;
   }else{
    System.out.println("       ,         ");
    str=sc.nextLine();
    continue;
   }
  }
 }
 //         
 @SuppressWarnings("resource")
 public String ageRegex(String age){
  String pattern ="^([0-9]|[0-9]{2}|100)$";
  String str=age;
  Scanner sc=new Scanner(System.in);
  while(true){
   if(str.matches(pattern)){
    return str;
   }else{
    System.out.println("       ,       ");
    str=sc.nextLine();
    continue;
   }
  }
 }
 //       
 @SuppressWarnings("resource")
 public String sexRegex(String sex){
  String pattern ="[  MmFf]";
  String str=sex;
  Scanner sc=new Scanner(System.in);
  while(true){
   if(str.matches(pattern)){
    return str;
   }else{
    System.out.println("       ,       MmFf");
    str=sc.nextLine();
    continue;
   }
  }
 }
 //           
 @SuppressWarnings("resource")
 public String telNumRegex(String telNum){
  String pattern ="[0-9]{11}";
  String str=telNum;
  Scanner sc=new Scanner(System.in);
  while(true){
   if(str.matches(pattern)){
    return str;
   }else{
    System.out.println("       ,     11      ");
    str=sc.nextLine();
    continue;
   }
  }
 }
 //         
 @SuppressWarnings("resource")
 public String addressRegex(String address){
  String pattern ="[a-zA-Z[0-9]]{1,15}";
  String str=address;
  Scanner sc=new Scanner(System.in);
  while(true){
   if(str.matches(pattern)){
    return str;
   }else{
    System.out.println("       ,     1 15          ");
    str=sc.nextLine();
    continue;
   }
  }
 }
}
Menu 클래스 코드 의 구체 적 인 실현:

package com.bjsxt.iphone;
public class Menu {
 //   
 public void mainMenu() {
  System.out.println("*************************");
  System.out.println("**  1       **");
  System.out.println("**  2       **");
  System.out.println("**  3       **");
  System.out.println("**  4       **");
  System.out.println("**  5       **");
  System.out.println("**  6       **");
  System.out.println("*************************");
 }

 //    
 public void addMenu () {
  System.out.println("*************************");
  System.out.println("**  1        **");
  System.out.println("**  2        **");
  System.out.println("**  3        **");
  System.out.println("*************************");
 }

 //    
 public void searchMenu () {
  System.out.println("*************************");
  System.out.println("**  1        **");
  System.out.println("**  2        **");
  System.out.println("**  3        **");
  System.out.println("**  4        **");
  System.out.println("**  5        **");
  System.out.println("**  6        **");
  System.out.println("**  7        **");
  System.out.println("*************************");
 }

 //    
 public void modifyMenu () {
  System.out.println("*************************");
  System.out.println("**  1         **");
  System.out.println("**  2         **");
  System.out.println("**  3         **");
  System.out.println("*************************");
 }
 //     
 public void subModifyMenu () {
  System.out.println("*************************");
  System.out.println("**  1         **");
  System.out.println("**  2         **");
  System.out.println("**  3         **");
  System.out.println("**  4         **");
  System.out.println("**  5         **");
  System.out.println("**  6        **");
  System.out.println("*************************");
 }

 //    
 public void deleteMenu () {
  System.out.println("*************************");
  System.out.println("**  1        **");
  System.out.println("**  2        **");
  System.out.println("**  3        **");
  System.out.println("**  4        **");
  System.out.println("*************************");
 }
 //    
 public void orderMenu () {
  System.out.println("*************************");
  System.out.println("**  1         **");
  System.out.println("**  2        **");
  System.out.println("**  3        **");
  System.out.println("**  4        **");
  System.out.println("**  5        **");
  System.out.println("*************************");
 }
}
Operate 류 의 구체 적 인 실현:

package com.bjsxt.iphone;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class Operate{

 private List<Person> list=new ArrayList<Person>();
 //            
 public void addLogic(){
  Menu m=new Menu();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.addMenu();
   int key=reg.menuRegex(1, 3);
   switch(key){
   case 1:
    addOperation ();
    break;
   case 2:
    showAll();
    break;
   case 3:
    return;
   }
  }
 }

 //           
 public void searchLogic(){
  Menu m=new Menu();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.searchMenu();
   int key=reg.menuRegex(1, 7);
   switch(key){
   case 1:
    searchByName();
    break;
   case 2:
    searchByAge();
    break;
   case 3:
    searchBySex();
    break;
   case 4:
    searchByTelNum();
    break;
   case 5:
    searchByAdd();
    break;
   case 6:
    showAll();
    break;
   case 7:
    return;
   }
  }
 }
 //          
 public void modifyLogicLogic(){
  Menu m=new Menu();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.modifyMenu();
   int key=reg.menuRegex(1, 3);
   switch(key){
   case 1:
    showAll();
    break;
   case 2:
    modifyLogicLogic1();
    break;
   case 3:
    return;
   }
  }
 }
 //       
 public void modifyLogicLogic1(){
  Menu m=new Menu();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.subModifyMenu();
   int key=reg.menuRegex(1, 6);
   switch(key){
   case 1:
    nameModify();
    break;
   case 2:
    ageModify();
    break;
   case 3:
    sexModify();
    break;
   case 4:
    telNumModify();
    break;
   case 5:
    addressModify();
    break;
   case 6:
    return;
   }
  }
 }
 //          
 public void deleteLogic(){
  Menu m=new Menu();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.deleteMenu();
   int key=reg.menuRegex(1, 4);
   switch(key){
   case 1:
    showAll();
    break;
   case 2:
    delete();
    break;
   case 3:
    deleteAll();
    break;
   case 4:
    return;
   }
  }
 }

 //          
 public void orderLogic(){
  Menu m=new Menu();
  TelNoteRegex reg=new TelNoteRegex();
  while(true){
   m.orderMenu();
   int key=reg.menuRegex(1, 5);
   switch(key){
   case 1:
    orderName();
    break;
   case 2:
    orderAge();
    break;
   case 3:
    orderSex();
    break;
   case 4:
    showAll();
    break;
   case 5:
    return;
   }
  }
 }

 //       
 @SuppressWarnings("resource")
 public void addOperation (){
   TelNoteRegex reg=new TelNoteRegex();
   Scanner sc=new Scanner(System.in); 
   System.out.println("      id:");
   String id=sc.nextLine(); 
   System.out.println("         :");
   String name=sc.nextLine();
   name=reg.nameRegex(name);
   System.out.println("         :");
   String age=sc.nextLine();
   age=reg.ageRegex(age);
   System.out.println("         :");
   String sex=sc.nextLine();
   sex=reg.sexRegex(sex);
   System.out.println("           :");
   String telNum=sc.nextLine();
   telNum=reg.telNumRegex(telNum);
   System.out.println("         :");
   String address=sc.nextLine();
   address=reg.addressRegex(address);
   int personId=Integer.parseInt(id);
   Person p=new Person(personId,name,age,sex,telNum,address);
   list.add(p);

 }
// //                
//   @SuppressWarnings("resource")
//   public String judgeId(String id){
//    Scanner sc=new Scanner(System.in);
//    Iterator<Person> it=list.iterator();
//    String newId=id;
//    while(it.hasNext()){
//     Person p=(Person)it.next();
//     if(newId.equals(p.getId())){
//      System.out.println("       ,       ");
//      newId=sc.nextLine();
//      continue;
//     }else{
//      return newId;
//     }
//    }
//    return id;
//   }

 //        
 public void showAll(){
  System.out.println("  \t\t"+"  \t\t"+"  \t\t"+"  \t\t"+"   \t\t"+"  ");
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
  }
 }
 //         
 @SuppressWarnings("resource")
 public void searchByName(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("         :");
  Scanner sc=new Scanner(System.in);
  String name=sc.nextLine();
  name=reg.nameRegex(name);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(name.equals(p.getName())){
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }
  }
 }
 //         
 @SuppressWarnings("resource")
 public void searchByAge(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("         :");
  Scanner sc=new Scanner(System.in);
  String age=sc.nextLine();
  age=reg.ageRegex(age);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(age.equals(p.getAge())){
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }
  }
 }
 //         
 @SuppressWarnings("resource")
 public void searchBySex(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("         :");
  Scanner sc=new Scanner(System.in);
  String sex=sc.nextLine();
  sex=reg.sexRegex(sex);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(sex.equals(p.getSex())){
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }
  }
 }
 //           
 @SuppressWarnings("resource")
 public void searchByTelNum(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("           :");
  Scanner sc=new Scanner(System.in);
  String telNum=sc.nextLine();
  telNum=reg.telNumRegex(telNum);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(telNum.equals(p.getTelNum())){
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }
  }
 }
 //         
 @SuppressWarnings("resource")
 public void searchByAdd(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("         :");
  Scanner sc=new Scanner(System.in);
  String address=sc.nextLine();
  address=reg.addressRegex(address);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(address.equals(p.getAddress())){
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }
  }
 }
// //        
// public void modify(){
//  System.out.println("          :");
//  
// }
 //      
 @SuppressWarnings("resource")
 public void nameModify(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("          :");
  Scanner sc=new Scanner(System.in);
  String num=sc.nextLine();
  int id=Integer.parseInt(num);
  System.out.println("          :");
  String name=sc.nextLine();
  name=reg.nameRegex(name);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(id==p.getId()){
    p.setName(name);
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }else{
    System.out.println("    ,   !");
   }
  }

 }
 //      
 @SuppressWarnings("resource")
 public void ageModify(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("          :");
  Scanner sc=new Scanner(System.in);
  String num=sc.nextLine();
  int id=Integer.parseInt(num);
  System.out.println("          :");
  String age=sc.nextLine();
  age=reg.ageRegex(age);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(id==p.getId()){
    p.setAge(age);
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }else{
    System.out.println("    ,   !");
   }
  }
 }
 //      
 @SuppressWarnings("resource")
 public void sexModify(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("          :");
  Scanner sc=new Scanner(System.in);
  String num=sc.nextLine();
  int id=Integer.parseInt(num);
  System.out.println("          :");
  String sex=sc.nextLine();
  sex=reg.sexRegex(sex);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(id==p.getId()){
    p.setSex(sex);
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }else{
    System.out.println("    ,   !");
   }
  }
 }
 //      
 @SuppressWarnings("resource")
 public void telNumModify(){
  System.out.println("          :");
  Scanner sc=new Scanner(System.in);
  String num=sc.nextLine();
  int id=Integer.parseInt(num);
  System.out.println("            :");
  String telNum=sc.nextLine();
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(id==p.getId()){
    p.setTelNum(telNum);
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }else{
    System.out.println("    ,   !");
   }
  }
 }
 //      
 @SuppressWarnings("resource")
 public void addressModify(){
  TelNoteRegex reg=new TelNoteRegex();
  System.out.println("          :");
  Scanner sc=new Scanner(System.in);
  String num=sc.nextLine();
  int id=Integer.parseInt(num);
  System.out.println("          :");
  String address=sc.nextLine();
  address=reg.addressRegex(address);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
   if(id==p.getId()){
    p.setAddress(address);
    System.out.println(p.getId()+"#"+"\t\t"+p.getName()+"\t\t"+p.getAge()+"\t\t"+p.getSex()+"\t\t"+p.getTelNum()+"\t\t"+p.getAddress());
   }else{
    System.out.println("    ,   !");
   }
  }
 }

 //        
 @SuppressWarnings("resource")
 public void delete(){
  System.out.println("        id:");
  Scanner sc=new Scanner(System.in);
  String num=sc.nextLine();
  int id=Integer.parseInt(num);
  Iterator<Person> it=list.iterator();
  while(it.hasNext()){
   Person p=(Person)it.next();
    if(id==p.getId()){
     list.remove(id);
     System.out.println("    ");
    }else{
     System.out.println("    ");
    }

  }

 }
 //        
 public void deleteAll(){
  list.clear();
  System.out.println("    ");
 }
 //         
 public void orderName(){
  Comparator<Person> comparator=new Comparator<Person>(){
   @Override
   public int compare(Person o1, Person o2) { 
    return o1.getName().compareTo(o2.getName());
   }
  };
  Collections.sort(list,comparator);
  showAll();
 }
 //         
 public void orderAge(){
  Comparator<Person> comparator=new Comparator<Person>(){
   @Override
   public int compare(Person o1, Person o2) { 
    return o1.getAge().compareTo(o2.getAge());
   }
  };
  Collections.sort(list,comparator);
  showAll();
 }
 //         
 public void orderSex(){
  Comparator<Person> comparator=new Comparator<Person>(){
   @Override
   public int compare(Person o1, Person o2) { 
    return o1.getSex().compareTo(o2.getSex());
   }
  };
  Collections.sort(list,comparator);
  showAll();
 }
}
결론:이 프로젝트 는 저 로 하여 금 대상 을 대상 으로 하 는 것 이 무엇 인지 명확 하 게 알 수 있 게 해 주 었 습 니 다.왜 자바 가 대상 을 대상 으로 하 는 프로 그래 밍 언어 라 고 말 하 는 지,프로그램의 코드 는 모두 대상 이 호출 되 고 있 습 니 다.또한 하나의 프로젝트 가 어떻게 분업 하여 명확 하 게 작성 해 야 하 는 지 알 게 되 었 습 니 다.기능 과 보 기 는 분리 되 어야 합 니 다.모든 유형 은 자신의 특정한 기능 을 가지 고 있 습 니 다.각 유형의 기능 은 서로 마 운 트 해제이러한 코드 는 기본적으로 재 활용 이 높 지 않 습 니 다.만약 에 분리 가 명확 하 다 면 나중에 기능 모듈 을 추가 할 때 기능 만 추가 하고 예전 의 코드 를 수정 하지 않 아 도 됩 니 다.개폐 원칙 을 잘 나타 내 고 기능 개발,수정 내용 에 대해 닫 습 니 다.이 프로젝트 는 MVC 의 디자인 모델 도 나타 내 고 저 에 게 이 프로젝트 는 저 에 게 많은 이익 을 주 었 습 니 다.

좋은 웹페이지 즐겨찾기