Escribir un sistema
método Start presenta el menú de Inicio
de sesión
Registro
de salida
Escribir clase de cuenta (almacenar nombre de usuario y contraseña correctos) contraseña de
nombre de
usuario
Requisito:
Ingrese el nombre de usuario y la contraseña después de iniciar sesión y verificar (método de verificación de escritura), e ingrese a la interfaz del menú principal después de una verificación exitosa
Interfaz del menú principal:
Lucky Draw (necesidad de completar la función) muestra de productos de
liquidación de compras de sentimientos de usuario de cancelación de comentarios reales
El error de verificación o el error de selección del menú puede dar un aviso y permitir que la operación continúe (por ejemplo, el nombre de usuario se ingresa incorrectamente, se vuelve a ingresar, el error de entrada del menú también se puede volver a ingresar, el error de entrada del menú principal debe volver a la interfaz del menú principal)
Requisitos de registro: ingrese el nombre de usuario registrado y la contraseña y el código de verificación (código de verificación de 4 dígitos). Si la cuenta existe, no se puede registrar. Si no existe, escriba la información registrada en la clase de cuenta (la implementación actual hará que se sobrescriban el nombre de usuario y la contraseña originales ), El registro se devuelve correctamente al menú de inicio, puede usar la cuenta registrada para iniciar sesión
Cerrar sesión de usuario: regrese al menú de inicio, puede continuar para iniciar sesión o registrarse
Tipo de cuenta: se usa para almacenar contraseñas, no se almacena en colecciones, por lo que cada registro solo se puede sobrescribir
/ ** * Clase de cuenta * Nombre de usuario y contraseña para el sistema de almacenamiento * / cuenta de clase pública { // Nombre de usuario y contraseña String userName = "admin" ; String password = "000" ; }
Sistema de compras: encapsula toda la lógica de negocios del sistema
/ ** * sistema de compras * encapsular toda la lógica de negocio del sistema * / público de clase ShoppingSystem { // teclado escáner escáner SC; // objeto de cuenta de la cuenta Cuenta; // objetos de generación de números aleatorios al azar aleatoria; // si la identificación de ganar bandera booleana ; / ** * Inicializar el sistema * Inicializar es inicializar algunos datos necesarios antes de que el sistema se ejecute * / public void init () { sc = new Scanner (System.in); // Inicializar cuenta = nueva cuenta (); // Inicializa el objeto de generación de números aleatorios random = new Random (); } / ** * Enciende el sistema * / public void start () { // Muestra el menú de inicio System.out.println ("1. Login" ); System.out.println ( "2. Regístrate " ); System.out.println ( " 3. Salir " ); System.out.println ( " Elija: " ); int chooice = sc.nextInt (); // Llame al interruptor de función correspondiente (chooice) según las opciones { // 1. Llame al método de inicio de sesión caso 1 : login (); break; // 2. Llame al método de registro caso 2 : regist (); break ; caso 3 : System.out.println ( "Salió del sistema" ); // Salga del programa en ejecución // System.exit (0); break ; } } / ** * Método de inicio de sesión * / public void login () { // Ingrese nombre de usuario y contraseña System.out.println ("Ingrese nombre de usuario:" ); String userName = sc.next (); System.out .println ("Ingrese la contraseña:" ); String password = sc.next (); // Verifique la cuenta: nombre de usuario y contraseña entrantes if (validate (userName, password)) {
// Si es correcto, ingrese al menú principal mainMenu (); } else { System.out.println ( "¡El nombre de usuario o la contraseña son incorrectos!" ); login (); } / ** * El método para verificar el nombre de usuario (el nombre de usuario también se usa en el registro, así que sepárelo en uno Método) * @param userName * @return * / public boolean validateName (String userName) { if (userName.equals (account.userName)) { return true ; } return false ; } / ** * Verificar cuenta * @param userName * @param password * @return * / public boolean validate (String userName, String password) {
// Primero llame al método para verificar el nombre de usuario if (validateName ( userName)) {
// Si el nombre de usuario es correcto, verifique si la contraseña es correcta if (password.equals (account.password)) { return true ; } } return false ; } / ** * Método de registro * / public void regist () { // Ingrese el nombre de usuario y la contraseña System.out.println ("Ingrese el nombre de usuario:" ); String userName = sc.next (); System.out.println ( "Ingrese Contraseña: " ); String password = sc.next (); // Generar código de verificación String code = createValidateCode (); System.out.println ( " Ingrese el código de verificación: ["+ code +"] " ); String inputCode = sc.next (); // Código de verificación del juicio if (! inputCode.equals (code)) { System.out.println ( "¡Error de entrada del código de verificación!"); // Registro recursivo (); return ; } // Verificar nombre de usuario y contraseña if (validateName (userName)) { // Si la verificación falla, vuelva a ingresar, método de registro recursivo System.out.println ("nombre de usuario Ya registrado! " ); Regist (); } else { // Si la verificación es exitosa, escriba el nombre de usuario registrado y la contraseña en el objeto de cuenta account.userName = userName; account.password = contraseña; // Ingrese al menú de inicio start ( ); } / ** * Generar código de verificación * @return * / public String createValidateCode () { String code = "" ;
// Generar cíclicamente un código de verificación de 4 dígitos para ( int i = 1; i <= 4; i ++ ) { int n = random.nextInt (10 ); código + = n; } código de retorno ; } / ** * Método de visualización del menú principal * / public void mainMenu () { // Muestra las opciones del menú principal System.out.println ("1. Lucky Draw" ); System.out.println ( "2. Liquidación de compras" ); System.out.println ("3. Pantalla del producto" ); System.out.println ( "4. Comentarios reales " ); System.out.println ( "5. Cancelar cuenta" ); System.out.println ( "Seleccione:" ); int = chooice sc.nextInt (); // opciones de entrada de usuario // para determinar las opciones, la opción para llamar al método de acuerdo con el correspondiente interruptor (chooice) { // 1. llama al método de estiramiento de suerte caso 1. : luckyGuess (); PAUSA ; caso 2 : caso 3 : caso 4 : System.out.println ( "La función se está mejorando ..." ); break ; // 5. Llame al método de cierre de sesión caso 5 : loginOff (); } } / ** * Método de dibujo * / public void luckyGuess () {
// Evite el sorteo múltiple si (flag) { System.out.println ("¡Ya ha dibujado mucho! El sistema saltará directamente al menú principal"); mainMenu (); return; } // Modificar la bandera del sorteo flag = true ; // Genera el número de ganador int target = random.nextInt (10 ); System.out.println ("Presione cualquier tecla para la lotería" ); sc.next (); int luckNumber = random.nextInt (10 ); // Determine si gana si (luckNumber == target) { System.out.println ( "Felicitaciones por ganar el premio mayor ! ¡Recompense un curso GeekHome! " ); } Else { System.out.println ( " ¡Desafortunadamente, no gana, haga esfuerzos persistentes! " ); } // Ya sea que gane o no, debe volver al menú principal mainMenu (); } / ** * Cerrar sesión método de usuario * / public void loginOff () { // Regresar al menú de inicio start (); } }
Inicie la aplicación del sistema de compras.
public class SystemApp { public static void main (String [] args) { // Crear sistema ShoppingSystem sys = new ShoppingSystem (); // Inicializar el sistema sys.init (); // Iniciar el sistema sys.start (); } }