Dev - C++ - Catalogo de libros

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Catalogo de libros

Publicado por alma (1 intervención) el 20/07/2018 16:49:06
hola, espero que me puedan ayudar, soy nueva para programar y me dejaron hacer un catalogo de libros usanndo arreglos y estructuras.

ya llevo una pequeña parte pero necesito que me ayuden a saber como invoco un procedimiento.

Construir el algoritmo (con diagrama de flujo o pseudocódigo) y programa en lenguaje C, según lo que se describe a continuación:

Generar un ‘struct’ para crear un nuevo tipo de dato llamado tlibro, el cual contiene los siguientes campos:

Título Arreglo de caracteres de tamaño 50

Autor(es) Arreglo de caracteres de tamaño 50

Editorial Arreglo de caracteres de tamaño 30

No de Edición Entero

Año de Edición Entero

Clasificación (LCC) Arreglo de caracteres de tamaño 30

ISBN Entero long

Generar un arreglo de tamaño 100, cuyos elementos son del tipo tlibro.


esta parte ya la hice:

1
2
3
4
5
6
7
8
9
10
11
12
struct tlibro {
        char titulo[50];
        char autor[50];
        char editorial[30];
        int no_edicion;
        int anio_edicion;
        char clasificacion[30];
        long ISBN;
 
    };
 
    tlibro arreglo[100];


Desplegar un menú de opciones (implementado como una función que retorna la opción seleccionada por el usuario) que permita generar acciones sobre el arreglo creado en el punto anterior, de acuerdo a lo siguiente:

1. Generar un nuevo registro de libro

2. Eliminar un registro de libro

3. Modificar un registro de libro

4. Visualizar todos los registros de libros

5. Buscar un registro de libro (por ISBN)

6. Terminar


esta parte tambien ya esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
int menu(int opcion){
 
    int opcion;
    switch (opcion){
 
        printf("Seleccione una opcion:\n");
        printf("1.-Generar un nuevo registro de libro\n");
        printf("2.-Eliminar un registro de libro\n");
        printf("3.-Modificar un registro de libro\n");
        printf("4.-Visualizar todos los registros de libro\n");
        printf("5.-Buscar un registro de libro(por ISBN)\n");
        printf("6.-Terminar\n");
        scanf("%d", &opcion);
 
 
        case 1:;
        break;
        case 2:
        break;
        case 3:
        break;
        case 4:
        break;
        case 5:
        break;
        case 6:
        break;
        default: printf("Esa opcion no existe\n");
 
 
    }
 
    return opcion;
 
 
 
}

EN LA QUE TENGO DUDA ES EN ESTA PARTE:

Al seleccionar la opción 1 del menú deberá invocarse a un procedimiento que permita capturar los valores de los campos y almacenarlos en el siguiente elemento vacío del arreglo. Es decir, deberán desplegarse mensajes como los que se muestran a continuación y a partir de éstos el usuario debe capturar lo propio:

“Proporcione el título del libro: “

“Proporcione el(los) nombre(s) del(los) autor(es): “

“Proporcione la Editorial: “



Al seleccionar la opción 2 del menú deberá invocarse a un procedimiento que elimine un registro de libro en el arreglo, desplazando una posición a la izquierda el resto de los registros que se encuentren a la derecha del registro a eliminar. Queda a elección del programador el método para

indicar cuál es el registro a eliminar: por número de registro (número de elemento en el arreglo, de acuerdo a como indexaría un usuario), o por ISBN.

Al seleccionar la opción 3 del menú deberá invocarse a un procedimiento que pregunte cuál es el registro a modificar (queda a criterio del programador si la identificación del registros se hace por número de elemento en el arreglo o por ISBN), posteriormente debe desplegar un nuevo menú, a partir del cual pueda modificarse algún o algunos campos del registro de libro:

1. Modificar Título

2. Modificar Autor(es)

3. Modificar Editorial

4. Modificar No de edición

5. Modificar año de edición

6. Modificar clasificación

7. Modificar ISBN

8. Retornar

Al seleccionar una opción de este nuevo menú deberá preguntársele al usuario cuál es el nuevo valor del campo; por ejemplo, si el usuario seleccionó la opción 4 del nuevo menú, deberá desplegarse algo como lo siguiente, debiendo el usuario capturar lo propio (almacenándose, posterior a la captura, el valor en el campo del registro respectivo):

“Indique el No de edición correcto: “

Al seleccionar la opción 4 del menú principal deberá invocarse a un procedimiento que despliegue, en forma de lista, los valores de los campos de todos y cada uno de los registros de libro, recorriendo el arreglo en forma secuencial a partir del primer elemento.

Al seleccionar la opción 5 del menú principal deberá invocarse a un procedimiento que solicite un número de ISBN, busque en el arreglo un registro cuyo campo ISBN coincida con el número ingresado y, si se encuentra coincidencia, despliegue el número de registro y todos los valores de los campos del registro encontrado.



espero que me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Catalogo de libros

Publicado por dario (718 intervenciones) el 21/07/2018 05:45:36
La opcion Nro 1 podria quedar asi:
Codigo completo;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
 
#define TOPE 100
 
using namespace std;
 
struct {
    char titulo[50];
    char autor[50];
    char editorial[30];
    int no_edicion;
    int anio_edicion;
    char clasificacion[30];
    long ISBN;
 
} tlibro[TOPE];
 
int i = 0;
 
//Prototipo de funciones
int menu();
void nuevoRegistro();
 
//Programa principal
int main() {
    int opc;
 
    opc = menu();
 
    return 0;
}
 
//funciones
int menu() {
    int opcion;
 
    do {
        printf("Seleccione una opcion:\n");
        printf("1.-Generar un nuevo registro de libro\n");
        printf("2.-Eliminar un registro de libro\n");
        printf("3.-Modificar un registro de libro\n");
        printf("4.-Visualizar todos los registros de libro\n");
        printf("5.-Buscar un registro de libro(por ISBN)\n");
        printf("6.-Terminar\n");
        scanf("%d", &opcion);
 
        switch (opcion) {
            case 1:
                nuevoRegistro();
            break;
            case 2:
            break;
            case 3:
            break;
            case 4:
            break;
            case 5:
            break;
            case 6:
            break;
            default: printf("Esa opcion no existe\n");
        }
 
    } while (opcion < 6);
 
    return opcion;
 }
 
 void nuevoRegistro() {
    if (i < TOPE) {
        cout << "Proporcione el titulo del libro: ";
        cin >> tlibro[i].titulo; cin.ignore(' ','\n');
        cout << "Nombre del autor: ";
        cin >> tlibro[i].autor; cin.ignore(' ','\n');
        cout << "Ingrese la editorial: ";
        cin >> tlibro[i].editorial; cin.ignore(' ','\n');
        cout << "Digite el numero de edicion: ";
        cin >> tlibro[i].no_edicion; cin.ignore(' ','\n');
        cout << "Ingrese el anio de edicion: ";
        cin >> tlibro[i].anio_edicion; cin.ignore(' ','\n');
        cout << "Clasificacion: ";
        cin >> tlibro[i].clasificacion; cin.ignore(' ','\n');
        cout << "ISBN del libro: ";
        cin >> tlibro[i].ISBN; cin.ignore(' ','\n');
        cout << "Libro registrado con exito" << endl();
        i++;
    }
    else
        cout << "Lo siento!, el registro esta lleno.";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar