자바 단순 콘 솔 주소록 구현
위의 그림 은 각 모듈 이 가지 고 있 는 기능 이 고 정규 표현 식 으로 입력 이 규칙 에 부합 되 는 지 판단 하 는 것 이다.이 시스템 은 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 의 디자인 모델 도 나타 내 고 저 에 게 이 프로젝트 는 저 에 게 많은 이익 을 주 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.