El menú principal controla el submenú en cada nivel y se da cuenta de la implementación de agregar registros, encontrar registros, eliminar registros, modificar registros, clasificar registros y salir de las funciones del sistema. Un total de seis módulos funcionales.
El diagrama anterior muestra las funciones de cada módulo, y también utiliza expresiones regulares para determinar si la entrada cumple con las reglas. Este sistema refleja el patrón de diseño de MVC, y la división del trabajo es muy claro.
Incluye principalmente las siguientes categorías:
Clase de aplicación: la clase de función principal del programa, la entrada al programa inicia
Clase de menú: son todos los efectos que se muestran en páginas simples, y no hay implementación de funciones.
Clase TelNoterEgex: la expresión regular, que determina si la entrada está calificada, está todo en este método.
Clase de operación: Clase de lógica comercial, todas las funciones están básicamente concentradas en esta clase.
Clase de persona: datos encapsulados.
Código de implementación específico:
El código de la clase de la aplicación:
paquete com.bjsxt.iphone; aplicación de clase pública {public static void main (string [] args) {new App (). Start (); } public void start () {menú m = nuevo menú (); Operar o = nuevo operado (); TelnoterEgex reg = new TelNoterEgex (); while (true) {M.Mainmenu (); int key = reg.MenureGex (1, 6); switch (tecla) {Caso 1: O.AddLogic (); romper; Caso 2: O.SearchLogic (); romper; Caso 3: O.ModifyLogicLogic (); romper; Caso 4: O.Deletelogic (); romper; Caso 5: O.OrderLogic (); romper; Caso 6: System.exit (0); romper; }}}}El código de implementación específico de la clase de persona:
paquete com.bjsxt.iphone; public class Person {private int id; // Id de usuario Atributo de identificación privada Nombre de cadena; // Atributo de nombre de usuario AGRADA DE CADA PRIVADA ARTIVO; // ATRIBUTO DE AGRADO DE USUADOR this.id = id; this.name = name; this.age = edad; this.sex = sexo; this.telnum = Telnum; this.address = dirección; } public int getId () {return id; } public void setid (int id) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getAge () {return Age; } public void setAge (String Age) {this.age = Age; } public String getsex () {return sex; } public void setsex (sexo de cadena) {this.sex = sex; } public String getTelnum () {return Telnum; } public void settelnum (String Telnum) {this.telnum = Telnum; } public String getAddress () {Dirección de retorno; } public void setAddress (dirección de cadena) {this.address = dirección; }}Código específico de la clase TeleTerEgex:
paquete com.bjsxt.iphone; import java.util.scanner; public class TelNoterEgex {// Compruebe los elementos de menú @SupessWarnings ("Resource") public int MenureGex (int min, int max) {String REGEX = "[0-9] {1}"; Escáner sc = new Scanner (System.in); while (true) {string input = sc.nextline (); // verificar según la legalidad if (input.matches (regex)) {int key = integer.parseInt (input); if (key> = min && key <= max) {return key; } else {System.out.println ("¡El elemento del menú ingresado no cumple con los requisitos!"); }} else {System.out.println ("El contenido de entrada es incorrecto!"); }}}} // Verificación del nombre de entrada del usuario @SupplessWarnings ("Resource") public String nameregex (name de cadena) {string patrón = "[// u4e00-// u9fa5]+"; Cadena str = nombre; Escáner sc = new Scanner (System.in); while (true) {if (str.matches (patrón)) {return str; } else {System.out.println ("Ingrese caracteres ilegales, por favor vuelva a ingresar caracteres chinos"); str = sc.nextline (); continuar; }}} // Verificación de la edad de entrada del usuario @SupplessWarnings ("recurso") public String AgeGeX (String Age) {String Pattern = "^([0-9] | [0-9] {2} | 100) $"; Cadena str = edad; Escáner sc = new Scanner (System.in); while (true) {if (str.matches (patrón)) {return str; } else {System.out.println ("Ingrese caracteres ilegales, por favor vuelva a ingresar los números"); str = sc.nextline (); continuar; }}} // Verificación del género de usuario @SupplessWarnings ("recurso") public String SexreGex (String Sex) {String Pattern = "[Hombres y mujeres MMFF]"; Cadena str = sexo; Escáner sc = new Scanner (System.in); while (true) {if (str.matches (patrón)) {return str; } else {System.out.println ("Ingrese personajes ilegales, por favor vuelva a ingresar a MMFF masculino y femenino"); str = sc.nextline (); continuar; }}} // Verificación del número de teléfono de entrada del usuario @SupplessWarnings ("recursos") public String TelnumRegex (String Telnum) {String Pattern = "[0-9] {11}"; Cadena str = Telnum; Escáner sc = new Scanner (System.in); while (true) {if (str.matches (patrón)) {return str; } else {System.out.println ("Ingrese los caracteres ilegales, vuelva a ingresar el número de teléfono móvil de 11 dígitos"); str = sc.nextline (); continuar; }}}} // Verificación de la dirección de entrada del usuario @SupplessWarnings ("Resource") public String directeGex (dirección de cadena) {String Pattern = "[A-Za-Z [0-9]] {1,15}"; Cadena str = dirección; Escáner sc = new Scanner (System.in); while (true) {if (str.matches (patrón)) {return str; } else {System.out.println ("Ingrese los caracteres ilegales, vuelva a ingresar de 1 a 15 casos o números en inglés"); str = sc.nextline (); continuar; }}}}Implementación específica del código de clase de menú:
paquete com.bjsxt.iphone; menú de clase pública {// interfaz principal public void mainmenu () {System.out.println ("***************************"); System.out.println ("** 1 Agregar registro **"); System.out.println ("** 2 encontrar registro **"); System.out.println ("** 3 modificar registro **"); System.out.println ("** 4 Eliminar registro **"); System.out.println ("** 5 registros de clasificación **"); System.out.println ("** 6 Salir del sistema **"); System.out.println ("***************************"); } // Agregar interfaz public void addMenu () {System.out.println ("*********************"); System.out.println ("** 1 Agregar nuevo registro **"); System.out.println ("** 2 Ver todos los registros **"); System.out.println ("** 3 regresa al nivel anterior **"); System.out.println ("************************"); } // Interfaz de búsqueda public void SearchMenu () {System.out.println ("*********************"); System.out.println ("** 1 búsqueda por nombre"); System.out.println ("** 2 búsqueda por edad"); System.out.println ("** 3 búsqueda por género"); System.out.println ("** 4 búsqueda por número"); System.out.println ("** 5. Haga clic en la dirección para buscar **"); System.out.println ("** 6. Ver registros completos **"); System.out.println ("** 7. Regrese al nivel anterior **"); System.out.println ("************************"); } // Modifique la interfaz public void modifyMenu () {System.out.println ("**************************"); System.out.println ("** 1. Ver registros completos **"); System.out.println ("** 2 modifique el registro especificado **"); System.out.println ("** 3 regresa al nivel anterior **"); System.out.println ("************************"); } // Modifique el subinterface public void submodifymenu () {system.out.println ("**************************"); System.out.println ("** 1 modifique el nombre **"); System.out.println ("** 2 modifica la edad **"); System.out.println ("** 3 modificar género **"); System.out.println ("** 4 modificar número **"); System.out.println ("** 5 Modificar dirección **"); System.out.println ("** 6 Regreso al nivel anterior **"); System.out.println ("************************"); } // Eliminar interfaz public void deletemenu () {System.out.println ("********************************"); System.out.println ("** 1 Ver todos los registros **"); System.out.println ("** 2 Elimine los registros especificados **"); System.out.println ("** 3 Eliminar todos los registros **"); System.out.println ("** 4 regresa al nivel anterior **"); System.out.println ("***************************"); } // Interfaz de clasificación public void OrderMenu () {System.out.println ("*****************************"); System.out.println ("** 1 ordenar por nombre **"); System.out.println ("** 2 ordenar por edad **"); System.out.println ("** 3 sort por género **"); System.out.println ("** 4 Ver todos los registros **"); System.out.println ("** 5 Regreso al nivel anterior **"); System.out.println ("************************"); }}Implementación específica de la clase de operación:
paquete 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; clase pública operación {Lista privada <OlPER> LIST = New ArrayList (persona> (); // Usuario Agregar información Control de lógica empresarial public void addLogic () {menú m = nuevo menú (); TelnoterEgex reg = new TelNoterEgex (); while (true) {m.addmenu (); int key = reg.MenureGex (1, 3); switch (tecla) {caso 1: addoperation (); romper; Caso 2: showAll (); romper; Caso 3: retorno; }}} // Información de consulta de usuario Control de lógica de negocios public void SearchLogic () {menú m = nuevo menú (); TelnoterEgex reg = new TelNoterEgex (); while (true) {M.SearchMenu (); int key = reg.MenureGex (1, 7); switch (tecla) {Caso 1: SearchByName (); romper; Caso 2: SearchByage (); romper; Caso 3: SearchBysex (); romper; Caso 4: SearchByTelnum (); romper; Caso 5: SearchByAdd (); romper; Caso 6: showAll (); romper; Caso 7: devolución; }}} // Modificar información Control de lógica empresarial public void ModifyLogicLogic () {menú m = nuevo menú (); TelnoterEgex reg = new TelNoterEgex (); while (true) {m.modifymenu (); int key = reg.MenureGex (1, 3); switch (tecla) {caso 1: showAll (); romper; Caso 2: ModifyLogicLogic1 (); romper; Caso 3: retorno; }}} // Modificar saltos de tres capas public Void ModifyLogicLogic1 () {menú m = nuevo menú (); TelnoterEgex reg = new TelNoterEgex (); while (true) {M.SubModifyMenu (); int key = reg.MenureGex (1, 6); switch (key) {caso 1: namEmodify (); romper; Caso 2: Agemodify (); romper; Caso 3: Sexmodify (); romper; Caso 4: TelnumModify (); romper; Caso 5: direcciónModify (); romper; Caso 6: devolución; }}} // Eliminar información Control de lógica de negocios public void deletelogic () {menú m = nuevo menú (); TelnoterEgex reg = new TelNoterEgex (); while (true) {m.deletemenu (); int key = reg.MenureGex (1, 4); switch (tecla) {caso 1: showAll (); romper; caso 2: eliminar (); romper; Caso 3: DeleteAll (); romper; Caso 4: retorno; }}} // Clasificación de información de negocios Control de lógica pública Void OrderLogic () {menú M = nuevo menú (); TelnoterEgex reg = new TelNoterEgex (); while (true) {M.OrderMenu (); int key = reg.MenureGex (1, 5); switch (tecla) {Caso 1: OrderName (); romper; Caso 2: Ordenage (); romper; Caso 3: OrderSex (); romper; Caso 4: showAll (); romper; Caso 5: retorno; }}} // Agregar información nueva de usuario @SupessWarnings ("recursos") public void addoperation () {TelNoterEgex reg = new TelNoterEgex (); Escáner sc = new Scanner (System.in); System.out.println ("Ingrese la identificación de contacto:"); String id = sc.nextline (); System.out.println ("Ingrese el nombre que se agregará:"); Name de cadena = sc.nextline (); nombre = reg.NamEgex (nombre); System.out.println ("Ingrese la edad a agregar:"); String Age = sc.nextline (); edad = reg.agerEgex (edad); System.out.println ("Ingrese el género que desea agregar:"); String Sex = sc.nextline (); sexo = reg.sexregex (sexo); System.out.println ("Ingrese el número de teléfono móvil que desea agregar:"); Cadena Telnum = sc.nextline (); telnum = reg.telnumregex (Telnum); System.out.println ("Ingrese la dirección que desea agregar:"); Dirección de cadena = sc.nextline (); dirección = reg.AddressRegex (dirección); int personid = Integer.ParseInt (id); Persona p = nueva persona (persona, nombre, edad, sexo, telnum, dirección); list.add (p); } // // // juzga si el número de serie ya ha existido y la inserción falló con éxito // @SupessWarnings ("Resource") // public String JudgeDid (ID de cadena) {// Scanner Sc = New Scanner (System.in); // Iterator <PERO> IT = LIST.ITERATOR (); // String NewId = ID; // while (It.hasnex () {) p = (persona) it.next (); // if (newid.equals (p.getid ())) {// system.out.println ("Este número de serie ya existe, vuelva a entrar en el número de serie"); // newid = sc.nextline (); // continúa; //} else {// return; //} //} // devuelve id; /////////1 Información del usuario public void showAll () {System.out.println ("número de serie/t/t"+"nombre/t/t"+"edad/t/t"+"género/t/t"+"número de móvil/t/t"+"dirección"); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) 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 ();); }} // Consulta información del usuario por nombre @SupessWarnings ("recurso") public void SearchByName () {TelNoterEgex reg = new TelNoterEgex (); System.out.println ("Ingrese el nombre que desea consultar:"); Escáner sc = new Scanner (System.in); Name de cadena = sc.nextline (); nombre = reg.NamEgex (nombre); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) 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/t"+p.getaddress ()); }}} // Consulta información del usuario por edad @SupplessWarnings ("recurso") public void SearchByage () {TelNoterEgex reg = new TelNoterEgex (); System.out.println ("Ingrese la edad que desea consultar:"); Escáner sc = new Scanner (System.in); String Age = sc.nextline (); edad = reg.agerEgex (edad); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) 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/t"+p.getaddress ()); }}} // Consulta información del usuario por género @suppleswarnings ("recurso") public void SearchBysex () {TelnoterEgex reg = new TelNoteEgEx (); System.out.println ("Ingrese el género que desea consultar:"); Escáner sc = new Scanner (System.in); String Sex = sc.nextline (); sexo = reg.sexregex (sexo); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) 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/t"+p.getaddress ()); }}} // Verifique la información del usuario por número de teléfono @SupplessWarnings ("Resource") public void SearchByTelnum () {TelNoterEgex reg = new TelNoteEgEx (); System.out.println ("Ingrese el número de teléfono que desea consultar:"); Escáner sc = new Scanner (System.in); Cadena Telnum = sc.nextline (); telnum = reg.telnumregex (Telnum); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) 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()); }}} // Verifique la información del usuario por dirección @SupplesSwarnings ("recurso") public void SearchByAdd () {TelNoterEgex reg = new TelNoterEgex (); System.out.println ("Ingrese la dirección que desea consultar:"); Escáner sc = new Scanner (System.in); Dirección de cadena = sc.nextline (); dirección = reg.AddressRegex (dirección); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) it.next (); if (dirección.equals (p.getAddress ())) {system.out.println (p.getid ()+"#"+"/t/t"+p.getName ()+"/t/t"+p.getage ()+"/t/t/t"+p.getSex ()+"/t/t"+p.gettelnum ()+"/t/t/t"+p.getadress ());) }}} // // Modifique la información de registro especificada // public void modify () {// system.out.println ("Ingrese la información que desea modificar:"); // //} // Modifique la información de nombre @SuppressWarnings ("Recurso") public void NamEmodify () {TelNoteReGex reg = New TelnoteReGex (); System.out.println ("Ingrese el número de serie que desea modificar:"); Escáner sc = new Scanner (System.in); Cadena num = sc.nextline (); int id = Integer.ParseInt (num); System.out.println ("Ingrese el nombre que desea modificar:"); Name de cadena = sc.nextline (); nombre = reg.NamEgex (nombre); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) it.next (); if (id == p.getID ()) {p.setName (nombre); 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 ("¡Falló en modificación, intente nuevamente!"); }}} // Modificar información de edad @SupplesSwarnings ("recurso") public void ageModify () {TelNoterEgex reg = new TelNoteEgEx (); System.out.println ("Ingrese el número de serie que desea modificar:"); Escáner sc = new Scanner (System.in); Cadena num = sc.nextline (); int id = Integer.ParseInt (num); System.out.println ("Ingrese la edad que desea modificar:"); String Age = sc.nextline (); edad = reg.agerEgex (edad); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) it.next (); if (id == p.getID ()) {p.setage (edad); 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 ("¡Falló en modificación, intente nuevamente!"); }}} // Modifique la información de género @SupplessWarnings ("recurso") public void sexmodify () {TelnoterEgex reg = new TelNoteEgEx (); System.out.println ("Ingrese el número de serie que desea modificar:"); Escáner sc = new Scanner (System.in); Cadena num = sc.nextline (); int id = Integer.ParseInt (num); System.out.println ("Ingrese el género que desea modificar:"); String Sex = sc.nextline (); sexo = reg.sexregex (sexo); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) it.next (); if (id == p.getID ()) {p.setSex (sexo); 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 ("¡Falló en modificación, intente nuevamente!"); }}} // Modificar información de número @SupessWarnings ("recurso") public void TelnumModify () {System.out.println ("Ingrese el número de serie que desea modificar:"); Escáner sc = new Scanner (System.in); Cadena num = sc.nextline (); int id = Integer.ParseInt (num); System.out.println ("Ingrese el número de teléfono que desea modificar:"); Cadena Telnum = sc.nextline (); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) 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 ("¡Falló en modificación, intente nuevamente!"); }}} // Modificar información de dirección @SupplesSWarnings ("recurso") public void direcciónModify () {TelnoterEgex reg = new TelNoterEgex (); System.out.println ("Ingrese el número de serie que desea modificar:"); Escáner sc = new Scanner (System.in); Cadena num = sc.nextline (); int id = Integer.ParseInt (num); System.out.println ("Ingrese la dirección que desea modificar:"); Dirección de cadena = sc.nextline (); dirección = reg.AddressRegex (dirección); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) it.next (); if (id == p.getID ()) {p.setaddress (dirección); 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 ("¡Falló en modificación, intente nuevamente!"); }}} // Elimine la información de usuario especificada @SupplessWarnings ("Resource") public void delete () {System.out.println ("Ingrese la identificación que desea eliminar:"); Escáner sc = new Scanner (System.in); Cadena num = sc.nextline (); int id = Integer.ParseInt (num); Iterador <Oll> it = list.iterator (); while (it.hasnext ()) {persona p = (persona) it.next (); if (id == p.getID ()) {list.remove (id); System.out.println ("Eliminar exitoso"); } else {System.out.println ("Eliminar fallido"); }}} // Eliminar toda la información del usuario public void deleteall () {list.clear (); System.out.println ("Eliminar correctamente"); } // Ordenar información por nombre de usuario public void OrderName () {comparator <Oll> comparator = new Comparator <PERO> () {@Override public int Compare (Person O1, Person O2) {return o1.getName (). CompareTo (o2.getName ()); }}; Colección.sort (lista, comparador); showall (); } // Ordenar información por usuaria public Public void OrderAge () {comparador <dean> comparator = new Comparator <PERO> () {@Override public int Compare (Person O1, Person O2) {return o1.getage (). CompareTo (o2.getAge ()); }}; Colección.sort (lista, comparador); showall (); } // Ordenar información por el usuario de género public void orderSex () {comparador <pero> comparador = nuevo comparador <Oller> () {@Override public int Compare (persona o1, persona o2) {return o1.getSex (). Comparto (o2.getsex ()); }}; Colección.sort (lista, comparador); showall (); }}Resumen: Este proyecto me dejó muy claro sobre qué es el objeto orientado y por qué Java es un lenguaje de programación orientado a objetos. El código del programa es llamado por objetos, y también entendí cómo se debe escribir claramente un proyecto. Las funciones y vistas deben separarse. Cada clase tiene sus propias funciones específicas. Las funciones de cada clase no deben desinstalarse juntas. Tales códigos básicamente no son reutilizables. Si están separados y claros, al agregar módulos funcionales en el futuro, solo se deben agregar funciones sin modificar el código anterior. Este pozo refleja el principio de apertura y cierre. Para el desarrollo de funciones y el contenido de modificación, este proyecto también refleja el patrón de diseño de MVC. Para mí, este proyecto me ha beneficiado mucho.