Añadir datos de contacto

En esta página, desarrollarás el código para los botones "Agregar contacto" y "Borrar lista" en tu programa de lista de contactos.

  1. Si aún no está abierto, abre tu proyecto U3L2-ListaDeContactos.
  2. Desarrolla el botón "Agregar contacto" para el usuario.
      CRD-2.C
    1. Mirando la página anterior, escribe las preguntas que tu programa hará al usuario. Las respuestas a estas preguntas serán el programa entrada.
    2. : Entrada y salida
      CRD-2.C.1, CRD-2.C.4, CRD-2.C.6, CRD-2.D.1, CRD-2.D.2

      Usamos "entrada" vagamente para referirnos a las casillas vacías en un bloque que se llenan con valores. Pero entrada (input) también se refiere a la información que ingresa el usuario en un programa, como en el bloque preguntar y esperar. La entrada del programa también puede provenir de tablas de datos, sonidos, imágenes, videos u otros programas.

      Del mismo modo, salida (output) del programa significa cualquier dato enviado desde su programa al usuario o a cualquier dispositivo. Por lo general, la salida depende de la entrada.

    3. Haz que el guion pida al usuario los datos de contacto y luego agregue esos datos a la lista de contactos usando el constructor contacto.
    4. Recopilación de los datos del usuario

      Necesitas pedir al usuario cada dato (nombre de contacto, dirección y número de teléfono) por separado.

      • Podrías usar varios bloques pregunta y respuesta junto con variables de programa para solicitar y luego almacenar cada parte de la entrada del usuario hasta que estés listo para reportarlos todos juntos usando contacto.
        contacto con nombre: (nombre) dirección: (dirección) teléfono: (teléfono)
      • Otra forma que genera un código más limpio es usar abstracción: crear bloques auxiliares (comopedir nombre y pregunta por teléfono) que cada uno pida al usuario un dato e informe su respuesta al constructor contacto.
        contacto con nombre: (pedir nombre) dirección: (pedir dirección) teléfono: (pedir teléfono)
        Cada uno de estos bloques auxiliares hará al usuario una pregunta específica (como "¿Cuál es la dirección del contacto?") y luego reportará la respuesta del usuario..

      Primero podrías construir un bloque de ayuda más general responder al aviso () (otra abstracción más) para usar en los otros bloques de ayuda en lugar de reescribir el guion pregunta y respuesta cada vez.

    5. Probar y depurar. Agrega algunas personas ficticias a tu lista de contactos. Asegúrate de que todo funcione.
  3. Puedes usar estos ejemplos o crear los tuyos propios:

    nombre dirección teléfono
    Jasmine Anderson 123 Main St. #4, Nueva York, NY 10001 212-555-1234
    Morgan Preston 149 E. 16th Ave., Sunnyvale, CA 94089 408-555-6789
    Omar Hernandez 369 Center St., Boston, MA 02130 617-555-1098

  4. Desarrolla un botón "Borrar lista" que restablezca la lista de contactos a una lista vacía, lo cual es esencial durante la programación cada vez que cambia la estructura del tipo de datos abstracto.
    1. Haz que la secuencia de comandos solicite confirmación al usuario (para que el usuario no elimine accidentalmente su lista).
      Por ejemplo, hacer clic en "Borrar lista" podría preguntar al usuario: "Ingrese c para borrar la lista, o ingrese cualquier otra cosa para cancelar".
    2. Depurar. Asegúrate de que esta característica se comporte como se espera para cualquiera de las opciones del usuario.
  5. Guarda tu trabajo
La mayoría de los programas que has escrito tienen un guion que está a cargo, utilizando bloques de bucle para seguir ejecutándose para siempre o solo por un tiempo prolongado. Este proyecto es diferente: no sucede nada hasta que haces clic en un botón (recuerda de la Unidad 1 que esto se llama un evento), que inicia un guion que solo se ejecuta brevemente para realizar cualquier acción que requiera el botón. Este tipo de estructura de programa se llama programación impulsada por eventos.
  1. Las preguntas de los objetos pueden estar cubiertas por el observador de la lista de contactos en el escenario. Usa esconder variable y mostrar variable para ocultar el observador de la lista de contactos hasta el final del guion de cada objeto.

En esta actividad, refinarás el manejo de nombres de personas. Cuando buscas a una persona en particular, necesitar ver su nombre igual que lo has hecho en esta página, primero el nombre: "Morgan Preston". Pero supongamos que quieres ordenar tus contactos. Por lo general, eso lo hace el apellido, por lo que la lista sería algo así como

Por lo tanto, debe poder mostrar un nombre primero para la visualización normal, pero primero el apellido para la clasificación.

Antes de comenzar, guarda tu proyecto nuevamente, con el nombre U3L2-TIF. Esto mantendrá separado tu trabajo sobre estos problemas de los problemas regulares.

  1. El primer paso es crear un tipo de dato abstracto para los nombres. Necesitarás un constructor que tome el nombre y el apellido como entradas y reporte una lista de ellos para representar la parte del nombre de un contacto..
  2. Leer un nombre: El siguiente paso es modificar el programa que escribiste arriba para que pida por separado el nombre y el apellido, construya un nombre (es decir, una lista) usando el constructor que acabas de escribir, y use esa lista como entrada de nombre para el bloque contacto con nombre. Este es un tipo de dato abstracto (nombre) dentro de otro tipo de dato abstracto (contacto).
  3. Escribir un nombre: Tu bloque nombre de contacto ahora reportará una lista, tal y como debería. Pero algunas otras partes del programa, como la parte que muestra un contacto al usuario, necesitan mostrar el nombre como una cadena de texto: "Jasmine Anderson". La parte que ordena la lista de contactos también quiere una cadena: "Anderson, Jasmine". Escribe dos bloquesnombre, formulario de visualización, desde la ranura de entrada de la lista de contactos y nombre, formulario de clasificación, desde el contacto 'ranura de entrada de lista que unan las dos partes del nombre con un espacio y/o una coma según sea necesario.
Este proceso de tres pasos (crear un tipo de dato abstracto, usarlo para leer valores de ese tipo, usarlo para escribir valores de ese tipo) es muy común en la programación. Volverás a seguir los mismos tres pasos en la sección Llevándolo más allá de la página 4.

Guarda tu trabajo. En la página 4, encontrarás un contacto al permitir que el usuario ingrese cualquier parte del nombre y muestre el contacto completo. Usa la abstracción de nombre que acabas de crear cuando hagas eso.