You are on page 1of 13

29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz


Martin Cruz 
 Blogueando sobre

 programación!

INICIO

+ TEMAS

L-SYSTEM ESTRUCTURA DE DATOS MANEJO DE ARCHIVOS ER Y AUTÓMATAS ÁRBOLES DE BÚSQUEDA OPENGL

+ LENGUAJES + FRAMEWORKS Y OTROS

C++ JAVA PHP ASSEMBLER LARAVEL ANDROID GIT SOBRE MÍ

Registros en C++ / Uso de struct
en C++
By Martin Cruz. Published on 11:18.
6

Un registro, en programación, es un tipo de dato estructurado formado
por la unión de varios elementos bajo una misma estructura. Estos
elementos pueden ser, o bien datos elementales (entero, real,
carácter,...), o bien otras estructuras de datos. A cada uno de esos
elementos se le llama campo.

http://blog.martincruz.me/2012/10/registros­en­c­uso­de­struct­en­c_4493.html 1/13

precioventa.martincruz. precioventa). artículos que quedan.html 2/13 . el precio de todos los artículos de cada vendedor. nombres. articulos vendidos.me/2012/10/registros­en­c­uso­de­struct­en­c_4493. y 힣�nalmente el Total http://blog. El enunciado del problema es el siguiente: Implementa en C++: Debo registrar vendedores (dni. para todo eso necesitariamos usar REGISTROS ya que solo con vectores no prodriamos afrontar el problema. dirección. b) Mostrar todos los vendedores con todos sus datos y sus respectivos productos. Subtotal. apellido. El sistema debe permitir: a) Registrar “N” vendedores con sus respectivos “Pk” productos. cantidad. nombre. numero de artículos. dirección(calle. DNI. urbanización) ) con sus respectivos productos vendidos (producto.29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz Un ejemplo de eso seria hacer un registro de vendedores donde nos pedirían información sobre. cantidad. Aqui les dejare un el ejercicio del mismo que me dejaron el la universidad sobre un registro de vendedores implementado en C++ y lo compartire con ustedes. Implementa el sistema usando registros y funciones. c) Mostrar los datos de un vendedor especí힣�co (ingresando su número de orden) d) Mostrar los productos vendidos de un vendedor especí힣�co (ingresando su número de orden): producto. numero. apellidos. precio de cada uno.

22     int  subtotal. 29 }.  // nombre del producto 20     int  cantidad. 24   25 struct variosProductos { 26     int numProd .29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz Subtotal = cantidad * precioventa Total = sumatoria de los subtotales e) Eliminar un vendedor especí힣�co (ingresando su número de orden) f) Búsqueda por dni: ingresa el dni de un vendedor y que muestre su dirección Implementación: 1 /* 2 * C++ ‐ Agenda con uso de struct 3 * 4 * Copyright 2014 Martin Cruz Otiniano  5 * 6 * Site: martincruz. 36     variosProductos P  . 17   18 struct unProducto { 19     char name_prod[MAXCAD].html 3/13 .             // numero de productos por vendedor 27     unProducto vp[MAX_PV].me/2012/10/registros­en­c­uso­de­struct­en­c_4493. 33     char apellido[MAXCAD] . 21     int  precio  . 23 }.martincruz. 38   http://blog. 30   31 struct Vendedor { 32     char nombre[MAXCAD]   . 35     int  DNI     .me 7 */ 8 9 #include <iostream> 10 #include <stdlib.h> 11 12 #define MAXCAD 50 13 #define MAX_V 100     // numero de vendedores 14 #define MAX_PV 100    // maximo de productos vendidos 15 16 using namespace std. 37 }.      //varios productos cada uno en una posicion del  vector 28     int precioTotal . 34     char direccion[MAXCAD].

60         cin>> lista[nv].  cout << "   Direccion : ".  cout << "   Nombres   : ".      cin>> lista[i].P.numProd 85   http://blog.  cin.  //  numero de productos por cada vendedor 75     for(int i=0.precioTotal +  lista[nv].vp[i]. 66   67         lista[nv]. 50         cin. 83   84         cout<<"\n   > Numero de productos: ".precio . 78   79         cin.  cout << "   D N I     : ".  cin>> lista[i].me/2012/10/registros­en­c­uso­de­struct­en­c_4493.P.ignore(). i++) 76     { 77         cout<<"\nVENDEDOR "<< i+1 << "\n". 53   54         //cin. 41   42   43 void registrar_productos(int nv.P.name_prod. 57   58         //cin.ignore().vp[i].ignore(). i++) 48     { 49         cout<<"\n\tProducto "<< i+1 <<endl.precioTotal = lista[nv].vp[i].martincruz.getline( lista[i].vp[i].P.ignore().ignore().getline( lista[i]. 82         cin.getline( lista[i].P.P. 63   64         if(lista[nv]. MAXCAD ).subtotal = lista[nv]. 59         cout<<"\t\tPrecio   : ". 56         cin>> lista[nv].getline( lista[nv]. i<np.html 4/13 . 52         cin. 51         cout<<"\t\tNombre   : " .vp[i].cantidad . 81         cin. 55         cout<<"\t\tCantidad : ". int np) 44 { 45     // nv ‐> numero de vendedor 46   47     for(int i=0.  cin.vp[i]. 68   69     } 70   71 } 72 void registrar_vendedores(int n) 73 { 74     int np . i<n.cantidad * lista[nv].  cin. 80         cin.P.  cout << "   Apellidos : ".subtotal==0) 65             cout<<"Subtotal 0".P.ignore(). 61   62         lista[nv].P. // creamos un array de tvendedores 40 struct Vendedor aux.DNI .ignore().29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz 39 struct Vendedor lista[MAX_V].

117             cout<<"\tSubtotal: " << lista[x].direccion << endl.numProd..P.P. int num) 105 { 106     if(num>0) 107     { 108         cout<<endl<<endl.me/2012/10/registros­en­c­uso­de­struct­en­c_4493. i<lista[nv]. i++) 132     { http://blog.!".P. 95         cout << "\t" << lista[x].name_prod  <<endl. i++) 112         { 113             cout<<"\n   Producto "<< i+1                      <<endl.numProd ). 87     } 88 } 89   90 void datosVendedor(int x. 131     for(int i=0. 114             cout<<"\tNombre  : " << lista[x].cantidad <<endl. 118         } 119         cout<<endl. int num) 91 { 92     if(num>0) 93     { 94         cout<<endl<<endl.nombre <<' '<< lista[x]. 115             cout<<"\tCantidad: " << lista[x].vp[i].nombre <<' '<< lista[x]. 122     } 123     else 124         cout<<"\n\tRegistro vacio.P.vp[i].29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz 86         registrar_productos( i .P. 101   102 } 103   104 void prodVendedor(int x.apellido << endl. 98     } 99     else 100         cout<<"\n\tRegistro vacio.numProd. 110   111         for(int i=0.. 116             cout<<"\tPrecio  : " << lista[x]. 109         cout << "   Productos de " << lista[x]. i<lista[x]. 125   126 } 127   128 void mostrar_productos(int nv) 129 { 130     cout<<"   Productos: \n\n". 121         cout<<"  PRECIO TOTAL:   "<< lista[x].vp[i].DNI       << endl. 120         cout<<"  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"<<endl.vp[i].precio     <<endl.P. 96         cout << "   DNI      :  "<< lista[x].!".subtotal <<endl .lista[i].html 5/13 .P.P.martincruz. 97         cout << "   Direccion:  "<< lista[x].precioTotal.

142         for(int i=0.me/2012/10/registros­en­c­uso­de­struct­en­c_4493. i<num‐1.name_prod <<endl . i++) 143         { 144             cout<<endl<<endl. 151   152         } 153     } 154     else 155         cout<<"\n\tRegistro vacio. 169   170 } 171   172 void buscar_vendedor( int num) 173 { 174     int band = 0.vp[i].!".html 6/13 .29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz 133         cout<<"\t‐ " << lista[nv].apellido 146             cout << "   DNI      :  "<< lista[i]. 156 } 157   158 void eliminar_vendedor( int x. 147             cout << "   Direccion:  "<< lista[i]. i++) 179         { http://blog. int &num) 159 { 160     if(num>0) 161     { 162         for(int i=x. i++) 163             lista[i] = lista[i+1]. 148   149             mostrar_productos( i ).DNI       << endl. 145             cout<< i+1<<". i<num.P. 164   165         num‐‐. "<< lista[i]. 134     } 135 } 136   137 void mostrar_vendedores(int num) 138 { 139     if( num>0) 140     { 141         cout<<"\n\nMostrando lista de Vendedores\n". 175   176     if(num>0) 177     { 178         for(int i=0. 166     } 167     else 168         cout<<"\n\tRegistro vacio. 150             cout<<endl..!".martincruz.direccion << endl.nombre <<' '<< lista[i]. i<num..

201     cout<<" 1. 186                 break. Mostrar datos de un vendedor               "<<endl.  cin>> op. Mostrar registro de vendedores y productos "<<endl. 204     cout<<" 4.!"..   // opcion del menu 219     int num_vendedor .DNI==aux. 220     221     system("color 0b"). 226   http://blog.html 7/13 . 187             } 188         } 189     } 190     else 191         cout<<"\n\tRegistro vacio.martincruz. 210 } 211   212 /*                      funcion principal 213 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 214   215 int main() 216 { 217     int num=0.DNI) 181             { 182                 cout<<"\n\n La direccion de "<<lista[i].  // numero de vendores 218     int op.direccion <<endl . Eliminar vendedor del registro             "<<endl. 203     cout<<" 3. 207     cout<<" 7. 206     cout<<" 6. 202     cout<<" 2. 185                 band = 1 ..29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz 180             if(lista[i].! :S"<<endl.nombre<<" " 183                     <<lista[i]. 208   209     cout<<"\n Ingrese opcion : ". 192   193     if(band==0) 194         cout<<"\n\n\tEl vendedor no fue encontrado. Registrar vendedores                       "<<endl. 222   223     do 224     { 225         menu1(). 205     cout<<" 5. Buscar direccion de vendedor por DNI       "<<endl. Salir                                      "<<endl.me/2012/10/registros­en­c­uso­de­struct­en­c_4493. Mostrar productos vendidos de un vendedor  "<<endl. 195   196 } 197   198 void menu1() 199 { 200     cout<<"\n\t\tREGISTRO DE VENDEDORES\n\n".apellido<<" es : " 184                     <<lista[i].

 num). 257   258             case 6: 259                 cout<<"\n Ingrese numero de DNI: ". 267         system("pause").html 8/13 .29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz 227         switch(op) 228         { 229             case 1: 230                 cout<<"\n Numero de vendedores: ". 273 } http://blog. 260                 cin>> aux. 262                 break. 254                 eliminar_vendedor( num_vendedor‐1.DNI. 233                 break. 248                 prodVendedor( num_vendedor‐1.me/2012/10/registros­en­c­uso­de­struct­en­c_4493.martincruz. num). 268   269     } while(op != 7). 256                 break. 261                 buscar_vendedor(num). 242                 datosVendedor( num_vendedor‐1. 247                 cin>> num_vendedor . 250   251             case 5: 252                 cout<<"\n Ingrese numero de vendedor: ". 238   239             case 3: 240                 cout<<"\n Ingrese numero de vendedor: ". 244   245             case 4: 246                 cout<<"\n Ingrese numero de vendedor: ". 253                 cin>> num_vendedor . 243                 break. 232                 registrar_vendedores(num). 241                 cin>> num_vendedor . 255                 cout<<"\n\n\t\tVendedor eliminado . 270   271   272     return 0. 249                 break.  system("cls"). 237                 break. 263   264         } 265         266         cout<<endl<<endl. num).  cout<<endl.. 231                 cin>> num. 234   235             case 2: 236                 mostrar_vendedores(num).!"<<endl.

html 9/13 .me/2012/10/registros­en­c­uso­de­struct­en­c_4493. Informática  Website  Twitter  Facebook  Google+ http://blog.martincruz.cpp hosted with ❤ by GitHub view raw Martin Cruz Desarrollador Web | Estudiante de Ing.29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz agenda.

!!! Martin Cruz hace 3 años   using namespace std. Saludos.martincruz. MAXCAD es una macro que se de͈ne en la cabezera del programa( #de͈ne MAXCAD valor para poder usarlo en cualquier parte del programa.. funciona como una constante. Ejemplo: st sdt::cin>> var.me/2012/10/registros­en­c­uso­de­struct­en­c_4493.. sirve para poder usar cout y cin sin anteponer "std::" en cout y cin.29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz 6 comentarios Añade un comentario Mejores comentarios luis escalante hace 3 años  Hermano buenas noches. struct unProducto { char name_prod[MAX maxcad por otra cosa o para que sirve? http://blog. hace 3 años   disculpa que signi͈ca lo siguiente : using namespace std. por ejemplo #de͈ne longitud_maxima 100 // Puse MAXCAD porque hacia referencia ala lon cadenas que iba a usar. Puedes pon gustas.. podria explicarme el mismo ejercicio pero en c? por favor. Espero haberte ayudado. Ädn_O'z hace 3 años  ¿Para hacer algo similar pero con doble enlace? ¿Tendrás ese ejemplo? hace 3 años  gracias por todo esta excelente el ejemplo hace 3 años   XVRE.html 10/13 .

.me/2012/10/registros­en­c­uso­de­struct­en­c_4493.29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz Martin Cruz Blog 976 likes Like Page Share Be the first of your friends to like this ACERCA DE Martin Cruz Seguir 174 Ver todo mi per힣�l DESTACADOS Arboles Binarios de Busqueda en C++ | Recorrido por niveles (Amplitud) Hola a todos en esta ocasión compartire sobre este tema de Arboles Binarios de Búsqueda. Listas Enlazadas Simples Lineales en C++ http://blog.. como un poco de teoría para su mejor entendimient.html 11/13 .martincruz.

.....html Fuentes Propias para Aplicaciones 12/13 . CATEGORIAS Estructura de Datos Computacion Gra힣�ca OpenGL Ubuntu L- System Pilas/Stack Recursividad Arboles C plusplus CodeBlocks Listas/Lists Android Colas IDE Java Laravel Tecnicas en construccion de programas Teoria de la Computacion Algoritmos voraces Algoritmos y Programacion Algortimos de busqueda Assembler Automatas Deployment Expresiones Regulares Ficheros Heroku Organizacion de Archivos PHP STL BLOGS AMIGOS Making Code Aprendamos Javascript desde cero Hace 1 mes Aplicando Scrum La Importancia de Formar un Equipo Hace 4 meses Mis Apuntes sobre Tecnología API SellerCenter Linio Consulta POST Hace 11 meses Codigo de Relleno Usando http://blog. Obtener numeros aleatorios en C++ (rand.29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz En esta ocasión les compartire este programa que hize sobre listas  enlazadas simples que hace los siguiente: Inserta al inicio. en . 힣�nal. ahora tu profesor te pedirá que tus programas generen números . Pilas en C++ Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglé. cuando ya dominas todo eso de pedir y almacenar datos.me/2012/10/registros­en­c­uso­de­struct­en­c_4493.martincruz. srand) Es algo muy frecuente..

me/2012/10/registros­en­c­uso­de­struct­en­c_4493.martincruz.29/12/2016 Registros en C++ / Uso de struct en C++ | Martin Cruz Usando Fuentes Propias para Aplicaciones en Java Hace 1 año Code Botic SEGUIDORES Seguidores (17) Seguir 2015 © Martin Cruz | Design by Way2themes http://blog.html 13/13 .