Está en la página 1de 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

artículos que quedan. b) Mostrar todos los vendedores con todos sus datos y sus respectivos productos. cantidad. DNI.html 2/13 . urbanización) ) con sus respectivos productos vendidos (producto. nombres. precioventa. cantidad. Subtotal. precio de cada uno.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. dirección. El enunciado del problema es el siguiente: Implementa en C++: Debo registrar vendedores (dni. articulos vendidos. numero de artículos. y 힣�nalmente el Total http://blog. el precio de todos los artículos de cada vendedor. para todo eso necesitariamos usar REGISTROS ya que solo con vectores no prodriamos afrontar el problema. 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. apellido.me/2012/10/registros­en­c­uso­de­struct­en­c_4493.martincruz. 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. precioventa). El sistema debe permitir: a) Registrar “N” vendedores con sus respectivos “Pk” productos. dirección(calle. nombre. numero. Implementa el sistema usando registros y funciones. apellidos.

html 3/13 . 33     char apellido[MAXCAD] . 37 }. 23 }.      //varios productos cada uno en una posicion del  vector 28     int precioTotal . 30   31 struct Vendedor { 32     char nombre[MAXCAD]   .martincruz. 24   25 struct variosProductos { 26     int numProd .me/2012/10/registros­en­c­uso­de­struct­en­c_4493. 38   http://blog.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. 17   18 struct unProducto { 19     char name_prod[MAXCAD]. 36     variosProductos P  . 35     int  DNI     . 22     int  subtotal. 21     int  precio  .  // nombre del producto 20     int  cantidad.             // numero de productos por vendedor 27     unProducto vp[MAX_PV]. 34     char direccion[MAXCAD].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. 29 }.

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

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

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

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

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

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

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. Espero haberte ayudado. por ejemplo #de͈ne longitud_maxima 100 // Puse MAXCAD porque hacia referencia ala lon cadenas que iba a usar.html 10/13 . Ä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. podria explicarme el mismo ejercicio pero en c? por favor. struct unProducto { char name_prod[MAX maxcad por otra cosa o para que sirve? http://blog. Ejemplo: st sdt::cin>> var. funciona como una constante. Puedes pon gustas.!!! Martin Cruz hace 3 años   using namespace std.. Saludos. hace 3 años   disculpa que signi͈ca lo siguiente : using namespace std.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 6 comentarios Añade un comentario Mejores comentarios luis escalante hace 3 años  Hermano buenas noches. sirve para poder usar cout y cin sin anteponer "std::" en cout y cin.

html 11/13 . Listas Enlazadas Simples Lineales en C++ http://blog.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...me/2012/10/registros­en­c­uso­de­struct­en­c_4493. como un poco de teoría para su mejor entendimient.martincruz.

. 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. 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é..martincruz..html Fuentes Propias para Aplicaciones 12/13 . srand) Es algo muy frecuente. cuando ya dominas todo eso de pedir y almacenar datos. en ..me/2012/10/registros­en­c­uso­de­struct­en­c_4493. 힣�nal.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.

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 .me/2012/10/registros­en­c­uso­de­struct­en­c_4493.martincruz.