Ayuda con un codigo de programacion en C++ [URGENTE]
Publicado por Anthony (1 intervención) el 03/02/2014 19:20:44
es que estoy programando un programa valga la redundacia que consiste en simular una base de datos temporal (mientras el programa este en ejecucion) de los discos vendidos en una tienda, pero tengo un pequeño problemita. Cuando me meto en la opcion que me permite registrar le coloque un ciclo para registrar varios pero cuando intento ver los CD registrados me salen siempre el mismo pero de ultimo ... aqui les dejo el codigo, pruebe la opcion 1 y 2 y vean d lo que hablo ... por fa necesito ayuda :( es una tarea, otra cosa, me pueden ayudar tambien a como regitrar una cadena con espacion ? es decir, que no me tome nada mas la primera palabra sino que tome toda una frase entera ..gracias d antemano 

Codigo
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
int opc,opc_case3,i,n;
struct CD {
char titulo[30];
char artista[30];
int num_canciones;
float precio;
char fecha_compra[30];
}cd_1 = {NULL};
struct variosCD {
int cantidad;
};
while (opc != 5) {
printf("\t\t\tREGISTRO DE DISCOS VENDIDOS\n\n1. Registrar nuevo disco\n2. Ver disco registrado\n3. Modificar registro de disco\n4. Eliminar registro\n5. Salir\n");
printf("\n\tOpcion: ");
scanf("%i",&opc);
system("cls");
switch(opc) {
case 1:
printf("REGISTRAR UN NUEVO DISCO\n\n");
printf("Cantidad de discos a regitrar: ");
scanf("%i",&n);
do {
for (i=1;i<=n;i++) {
printf("\n\tDisco %i",i);
printf("\n\tTitulo: ");
scanf("%s",&cd_1.titulo);
printf("\tArtista: ");
scanf("%s",&cd_1.artista);
printf("\tNumero de canciones: ");
scanf("%i",&cd_1.num_canciones);
printf("\tPrecio: ");
scanf("%f",&cd_1.precio);
printf("\tFecha de compra: ");
scanf("%s",&cd_1.fecha_compra);
}
} while (i==n);
printf("\n");
system("pause");
break;
case 2:
printf("VER DISCO REGISTRADO\n");
for (i=1;i<=n;i++) {
printf("\n\n\tDisco %i",i);
printf("\n\tTitulo: %s",cd_1.titulo);
printf("\n\tArtista: %s",cd_1.artista);
printf("\n\tNumero de canciones: %i",cd_1.num_canciones);
printf("\n\tPrecio: %.2f",cd_1.precio);
printf("\n\tFecha de compra: %s",cd_1.fecha_compra);
}
printf("\n\n");
system("pause");
break;
case 3:
printf("MODIFICAR REGISTRO DE DISCO\n\n");
printf("1. Modificar Titulo\n2. Modificar Artista\n3. Modificar Numero de canciones\n4. Modificar Precio\n5. Modificar Fecha de compra\n6. Volver\n");
printf("\n\tOpcion: ");
scanf("%i",&opc_case3);
system("cls");
switch(opc_case3) {
case 1:
printf("TITULO NUEVO\n\n");
printf("Actual: %s",cd_1.titulo);
printf("\n\n\tTitulo: ");
scanf("%s",&cd_1.titulo);
break;
case 2:
printf("ARTISTA NUEVO\n\n");
printf("Actual: %s",cd_1.artista);
printf("\n\n\tArtista: ");
scanf("%s",&cd_1.artista);
break;
case 3:
printf("NUMERO DE CANCIONES NUEVO\n\n");
printf("Actual: %i",cd_1.num_canciones);
printf("\n\n\tNumero de canciones: ");
scanf("%i",&cd_1.num_canciones);
break;
case 4:
printf("PRECIO NUEVO\n\n");
printf("Actual: %.2f",cd_1.precio);
printf("\n\n\tPrecio: ");
scanf("%f",&cd_1.precio);
break;
case 5:
printf("FECHA DE COMPRA NUEVO\n\n");
printf("Actual: %s",cd_1.fecha_compra);
printf("\n\n\tFecha de compra: ");
scanf("%s",&cd_1.fecha_compra);
break;
case 6:
break;
default:
printf("\ERROR: debes seleccionar una opcion valida\n");
break;
}
printf("\n");
system("pause");
break;
case 4:
strcpy(cd_1.titulo,"");
strcpy(cd_1.artista,"");
cd_1.num_canciones = 0;
cd_1.precio = 0;
strcpy(cd_1.fecha_compra,"");
break;
case 5:
break;
default:
printf("\n\aERROR: debes seleccionar una opcion valida\n\n");
system("pause");
break;
}
system("cls");
}
}
Valora esta pregunta


0