You are on page 1of 6

PUNTEROS Hallar la longitud de una cadena usando arreglos e imprimir al revez #include <stdio.h> #include <conio.

h> const int max =10; int strlen( char s[]); void imprimir(char s[]); void alrevez( char s[]); int main() { char nombre[max]= "UNSA"; int lc; lc= strlen(nombre); printf("\n la cadena %s tiene %d letras",nombre,lc); printf("\n cadena es "); imprimir(nombre); printf("\n Imprimido al revez"); alrevez(nombre); getch(); } void imprimir(char s[]) { int i; printf("\n direccion de s %u y su valor %u",&s,s); for (i=0;s[i]!='\0';i++) printf("\n &s[%d] =%u s[i] =%c",i,&s[i],s[i]); } int strlen( char s[]) { int i; for (i=0;s[i]!='\0';i++) i++; return i; } void alrevez( char s[]) { int i; for (i=strlen(s);i>=0;i--) printf("%4c",s[i]); } HALLAR DIRECCION,VALOR DE TRES COLORES #include <stdafx.h> #include <conio.h> #include <stdio.h> const int max =5; void imprimir(char *s) { printf("\n direccion de s %u y su valor %u",&s,s); for (;*s!='\0';s++) printf("\n s=%u *s =%c",s,*s); } void mostrar(char *color[], int n) { for (int i=0; i<n;i++) { printf("\n &color[%d]= %u color[%d] %u = %s ", i,&color[i],i, color[i], color[i]); imprimir(color[i]); } } int main() { char *colores[max]={"Azul","Verde","Rojo" }; char **s1; s1=&colores[0]; printf("\n %s ",*(s1+1)); mostrar(colores,3); getch(); } (FUNCIONES) #include "stdafx.h" #include"stdio.h" #include"conio.h" void suma(int*w,int*x,int*y) { *y=*w+*x; } int _tmain(int argc, _TCHAR* argv[]) { int a=50,b=25,c=12,*d; suma(&a,&b,&c); printf("a:%i b:%i c:%i ",a,b,c);_getch(); return 0; } (ARREGLOS) MENU 1.-Ingresar Valores 2.-Sumar 3.-Restar 4.-Salir Elige opcion_ #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "basico.h" int A[100],B[100],C[100],n; void mpantalla() { clrscr(); gotoxy(10,10);printf("M E N U"); gotoxy(5,14);printf("1.-Ingresar Numeros");

gotoxy(5,16);printf("2.-Sumar Numeros"); gotoxy(5,18);printf("3.-Restar Numeros"); gotoxy(5,20);printf("4.-SALIR"); gotoxy(20,22); printf("Ingrese Opcion "); } void ingresa() { int i; clrscr(); printf("Ingresa tamano del vector :"); scanf("%i",&n); for(i=0;i<n;i++) {printf(" Ingresa Vector A pocision %i : ",i); scanf("%i",&A[i]); } for(i=0;i<n;i++) {printf(" Ingresa Vector B pocision %i : ",i); scanf("%i",&B[i]); } } void sumav(int *D,int *E,int *F,int s) { int i; for(i=0;i<s;i++) F[i]=D[i]+E[i]; } void restav(int *D,int *E,int *F,int s) { int i; for(i=0;i<s;i++) F[i]=D[i]-E[i]; } void muestrav(int *C,int n) { int i; clrscr(); for(i=0;i<n;i++) printf(" %i ",C[i]); getch(); } int _tmain(int argc, _TCHAR* argv[]) { char opc='0'; while(opc!='4') { mpantalla(); opc=getch(); if(opc=='1') ingresa(); if(opc=='2') {sumav(A,B,C,n); muestrav(C,n);} if(opc=='3') {restav(A,B,C,n); muestrav(C,n);} } printf("\nSALIR GRACIAS"); getch(); return 0; } LLEVAR D A C #include "stdafx.h" #include"stdio.h" #include"conio.h" int _tmain(int argc, _TCHAR* argv[]) { int a=50,b=25,c=12,*d; d=&c; printf("la direccion de c es :%#X la direccion de d es: %#X ",&c,d); _getch(); return 0; } a) Ingresar a un vector N datos reales por el teclado a) Mostrar esos n datos por el teclados b) Ordenar los n datos C) Mostrar el vector ordenado #include <conio.h> #include <stdio.h> void ingresar( float *pa,int n); void mostrar(float *pa,int n); void ordenar(float *pa,int n); int main() { int n,i ; float *pa; printf("\n Ingrese numero de datos "); scanf("%d",&n); pa=new float[n]; ingresar(pa,n); printf("\n datos ingresados");

mostrar(pa,n); ordenar( pa, n); printf("\n datos ordenados"); mostrar(pa,n); delete [] pa; getch(); } void ingresar( float *pa,int n) {int i; float dato; printf("\n ingrese %d datos", n); for (i=0;i<n;i++) { scanf("%f",&dato); *(pa+i)=dato; } } void mostrar(float *pa,int n) { for (int i=0; i<n;i++) printf("%7.2f",*(pa+i)); } void ordenar(float *pa,int n) { int i,j;float temp; for (i=0;i<n-1; i++) for (j=i+1;j<n;j++) { if ( *(pa+j)<*(pa+i)) { temp=*(pa+i); *(pa+i)=*(pa+j); *(pa+j)=temp; } } } Rellenar una matriz de n filas por m columnas de nmeros aleatorios de 0 a 10 a) mostrar la matriz b) cuantos cuatros hay en la matriz c) cuantos cuatros hay en la segunda fila d) cuantos cuatros hay en la segunda columna e) el elemento mayor en que fila y columna se encuentra. #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <time.h> const int Nfilas=10; void generar(int *A[] , int nf , int nc ); void mostrar(int *A[] , int nf , int nc); int nroelementosM(int *A[] , int nf , int nc,int nro); void limpiar(int *A[], int nf, int nc); int main() { int *A[Nfilas],fila; int nf=8,nc=8,filamayor,colmayor; srand( (unsigned)time( NULL ) ); generar(A, nf , nc ); mostrar(A,nf,nc); printf("\n hay %d cuatros en la matriz ",nroelementosM(A,nf,nc,4)); limpiar(A,nf,nc); getch(); } void generar(int *A[] , int nf , int nc ) { int fila ,col; for (fila=0; fila<nf; fila++) { A[fila] = new int [nc+1]; for (col=0; col<nc; col++) * ( A[fila]+col)= rand()% 10; } } void mostrar(int *A[] , int nf , int nc) { int fila,col; for (fila=0; fila<nf; fila++) { printf("\n"); for (col=0; col<nc; col++) printf(" %d ",*(A[fila]+col)); } } int nroelementosM(int *A[] , int nf , int nc,int nro) { int fila,col,ne=0; for (fila=0; fila<nf; fila++) for (col=0; col<nc; col++) if (*(A[fila] +col)==nro) ne++; return ne; } void limpiar(int *A[], int nf, int nc) { int fila; for (fila=0; fila<nf; fila++) delete [] A[fila]; } Punteros a arreglos de funciones ( las 4 operaciones) #include<windows.h> #include<conio.h> #include <stdio.h> #include "e:\misdatos\milib.h" const int max=4; float suma(float x, float y){ return x+y;}

float resta(float x, float y){ return x-y;} float producto(float x, float y){ return x*y;} float division(float x, float y){ return x/y;} int main() { float x=2, y=3; float (*pf[4]) (float x, float y)={suma,resta,producto,division}; printf("\n la suma es %f", (*pf[0])(x,y)); printf("\n la resta es %f", (*pf[1])(x,y)); printf("\n la multiplicacion es %f", (*pf[2])(x,y)); printf("\n la division es %f", (*pf[3])(x,y)); getch(); } Punteros usados para arreglos de 2 dimensiones #include <conio.h> #include <stdio.h> #include <stdlib.h> int main() { const int filas=3,col=5; //matriz de 3 filas y 5 columnas int *matriz[filas],nro,i,j; system("cls"); for (i=0; i<filas;i++) { matriz[i]=new int[col]; if (matriz[i]==NULL) { printf("\n espacio ensuficiente");exit(0);} for (j=0;j<col;j++) *(matriz[i]+j)=i*col+j; } printf("\nvisualizacion con punteros "); for (i=0; i<filas; i++) { printf("\n"); for (j=0;j<col;j++) printf("%4d",*(matriz[i]+j)); } printf("\nvisualizacion con arreglos "); for (i=0; i<filas; i++) { printf("\n"); for (j=0;j<col;j++) printf("%4d",matriz[i][j]); } getch(); delete []matriz; return 0; } ESTRUCTURAS 1.INGRESAR ALUMNO 2.MODIFICAR ALUMNO 3.ELIMINAR ALUMNO 4.MOSTAR ALUMNO 5.BUSCAR ALUMNO 6.SALIR #include "stdafx.h" #include "conio.h" #include "stdio.h" #include <basico.h> struct alumnos{ char nombre[30]; char apellido[30]; int edad; char CUI[10];}; alumnos alumno[100]; int n=0; void ingresar() { clrscr(); gotoxy(20,3);printf("INGRESAR ALUMNOS "); gotoxy(10,6);printf("Ingresa Nombre ");scanf("%s",&alumno[n].nombre); gotoxy(10,7);printf("Ingresa Apellido ");scanf("%s",&alumno[n].apellido); gotoxy(10,8);printf("Ingresa CUI "); scanf("%s",&alumno[n].CUI); gotoxy(10,9);printf("Ingresa EDAD "); scanf("%i",&alumno[n].edad); n++; gotoxy(20,12);printf("Se ha ingresado el registro Nro :%i",n); getch(); } void mostrar(){ int i; clrscr(); gotoxy(10,5);printf("NOMBRE APELLIDO CUI EDAD "); gotoxy(10,6);printf("====================== ========="); for(i=0;i<n;i++) {gotoxy(10,7+i);printf("%s",alumno[i].nombr e); gotoxy(25,7+i);printf("%s",alumno[i].apelli do); gotoxy(40,7+i);printf("%s",alumno[i].CUI); gotoxy(55,7+i);printf("%i",alumno[i].edad); } getch(); }

void ordenar() { int i,j; alumnos tmp; for(i=0;i<n-1;i++) for(j=i;j<n;j++) if(alumno[i].nombre<alumno[j].nombre) {tmp=alumno[i]; alumno[i]=alumno[j]; alumno[j]=tmp;} } void buscar() { int i; char busca[30]; clrscr(); gotoxy(10,8);printf("BUSCAR ALUMNOS"); gotoxy(15,10);printf("Ingrese el Texto a Buscar :");scanf("%s",&busca); for(i=0;i<n;i++) if(strstr(alumno[i].nombre,busca)>0) break; if(i==n) printf("NO FUE ENCONTRADO"); else printf("Se encontro el registro nro %i corresponde a \n nombre: %s \n apellido :%s",i,alumno[i].nombre,alumno[i].apellido); getch(); } int _tmain(int argc, _TCHAR* argv[]) { bool salir=false; char opc; while(!salir) { clrscr(); gotoxy(20,5);printf(" M E N U"); gotoxy(10,7);printf("1.-Ingresar Alumnos"); gotoxy(10,8);printf("2.-Modificar Alumnos"); gotoxy(10,9);printf("3.-Eliminar Alumnos"); gotoxy(10,10);printf("4.-Mostar Alumnos"); gotoxy(10,11);printf("5.-Buscar Alumnos"); gotoxy(10,12);printf("6.-Salir"); opc=getch(); if(opc=='6') salir=true; if(opc=='1') ingresar(); if(opc=='4') mostrar(); if(opc=='5') {ordenar();buscar();} } printf("ADIOS ............"); getch(); return 0; } En una empresa hay n trabajadores cada registro de trabajador contiene los siguientes campos - Nombre del trabajador = 30 caracteres; - Tipo del trabajador = 1 carcter - Edad del trabajador = Nmero entero; - Sueldo de trabajador = Nmero real Ingresar los datos de cada trabajador y listarlos despus con todos los campos y agregar sueldo neto que es igual sueldo* 0.9. #include <string.h> #include <conio.h> #include <stdlib.h> #include <stdio.h> const int tmax= 10; // hasta 10 trabajadores int main() { struct registro { char nombre[30]; char tipo; int edad; float sueldo; }; int i,k, na;char c; float valor;int eda; registro traba[tmax]; // array de estructuras o registros(ficha) printf("\n ingrese numero de trabajadores"); scanf("%d",&na); printf("ingrese %d datos\n",na); for (i=0;i<na;i++) { printf("REGISTRO %d :",i); printf("\nIngrese nombre :"); scanf("\n",&c); //se no se pone esto no ingresa los dems nombres k=0; c='*'; while((c=getchar())!='\n') { traba[i].nombre[k]=c; k++;if (k>29)break; // un nombre no puede tener mas de 29 letras }

traba[i].nombre[k]='\0'; // aparentemente podra ser as gets(traba[i].nombre); printf("Ingrese tipo(O,E,F):"); traba[i].tipo=getchar(); printf("ingrese edad :"); scanf("%d",&eda); traba[i].edad=eda; printf("Ingrese Sueldo :"); scanf("%f",&valor); traba[i].sueldo=valor; } printf("\nRESULTADOS"); printf("\n%-20s %2s %3s","NOMBRES Y APELLIDOS","TIPO","EDAD"); printf(" %-8s %-8s", "SUELDO BRUTO","SUELDO NETO"); printf("\n=============================================="); for (i=0;i<na;i++) printf("\n%-20s %2c %3d %10.2f %10.2f", traba[i].nombre,traba[i].tipo,traba[i].edad, traba[i].sueldo,traba[i].sueldo*0.9); getch(); return 0; } Realizar las operaciones de ingresar, mostrar, grabar, recuperar datos de n alumnos #include <conio.h> #include <stdio.h> const int max=10,maxcol=30; struct alumno { char nombre[maxcol]; int nota; }; void ingresar( alumno estu[], int *n) { int nro,i; printf("\n cuantos alumnos "); scanf("%d",&nro); for(i=0; i<nro;i++) { printf("Ingrese nombre :"); scanf("%s",&estu[i].nombre); printf("Ingrese nota :"); scanf("%d",&estu[i].nota); } *n=nro; } void mostrar( alumno estu[], int n) { int i; printf(" \n %-30s %4s","nombre","edad"); for(i=0; i<n;i++) printf("\n %-30s%4d ",estu[i].nombre,estu[i].nota); } void grabar( alumno estu[], int n) { FILE *p; int i; char nom_arch[maxcol]; printf("\n ingrese el camino y nombre del archivo a grabar :"); scanf("%s", &nom_arch); p= fopen(nom_arch,"w"); for(i=0; i<n; i++) fprintf(p,"\n%-30s%4d",estu[i].nombre,estu[i].nota); fclose(p); printf("\n el archivo %s ha sido grabado ",nom_arch); } void recuperar( alumno estu[], int *n) { FILE *p; int i; char nom_arch[maxcol]; printf("\n ingrese el camino y nombre del archivo a recuperar :"); scanf("%s", &nom_arch); if (( p= fopen(nom_arch,"r"))==0) printf("\n No existe ese archivo \n"); else {i=0; while(!feof(p)) { fscanf(p,"\n%30s%4d",&estu[i].nombre,&estu[i].nota); i++; } fclose(p); printf("\n el archivo %s ha sido recuperado ",nom_arch); *n=i; } } int main() { int na=0,opcion; alumno estu[max]; do {printf("\n 1.Ingresar 2.listar 3.Grabar 4. recuperar 5.Salir "); scanf("%d",&opcion); switch(opcion) { case 1: ingresar(estu, &na);break; case 2: mostrar(estu,na); break; case 3: grabar(estu,na);break; case 4: recuperar(estu,&na); break; case 5: break; } }while(opcion!=5); } Programa que lee una lista de nombres #include <conio.h> #include <stdio.h> #define MAX 10 /* maximo numero de nombres */

#define LONG 60 /*numero de caracteres por nombre */ int main() { char lista[MAX][LONG]; char *fin; /* valor devuelto por gets */ int i=-1 ,n ; /* indice */ puts("para finalizar la entrada pulse Ctrl+Z (eof) "); do { printf("\n Nombre y Apellidos "); /* Un EOF hace que gets devuelva un puntero nulo */ fin = gets(lista[++i]); } while (fin!=NULL&&i<MAX); /* escribir datos */ printf("\n"); for (n=0; n<i; n++) printf("%s\n ",lista[n]); getch(); } ORDENACION Y BUSQEDA // CUEPROS DE PROCEDIMIENTOS Y FUNCIONES void BusquedaSecuencial(int x, TVector v, int ini, int fin, int &pos, bool &encontrado) { pos = ini; encontrado=false; while ( (pos <=fin) && (!encontrado) ) { if (v[pos]==x) { encontrado=true; } else { ++pos; } } } void BusquedaBinaria(int x, TVector v, int ini, int fin, int &pos, bool &encontrado) { encontrado=false; while ( (ini <=fin) && (!encontrado) ) { pos = (ini+fin)/2; if (v[pos]==x) { encontrado=true; } else if (x < v[pos]) { ini = pos +1; } else { fin = pos-1; } } } void OrdenacionInserccion(TVector &v,int ini, int fin) { int i, pos, aux; for(i=ini+1;i<=fin;++i) { aux = v[i]; pos = buscar_posicion(aux, v, ini, i-1); abrir_hueco(v, pos, i); v[pos]=aux; } } void OrdenacionSeleccion(TVector &v,int ini, int fin) { int i,pos; for(i=ini;i<fin;++i) { pos = PosicionmenorElemento(v,i,fin); intercambia(v[i],v[pos]); } } void OrdenacionIntercambio(TVector &v,int ini, int fin) { int i,j,aux; bool intercambio; intercambio= true; i=ini; while( (i<=fin-1) && (intercambio) ) { intercambio = false; for(j=ini;j<=fin-1;++j) { if (v[j]>v[j+1]) { intercambio= true; Laboratorio de Programacin 1A E.T.S.I. Informtica Gestin Jos Luis Pastrana Brincones @ 2002 2 intercambia(v[j],v[j+1]); } } ++i; } } int buscar_posicion(int aux, TVector v, int ini, int fin) { int i; i = ini; while( (i<=fin) && (v[i]<aux) ) { ++i; } return i; } void abrir_hueco(TVector &v, int ini, int fin) { int i; for(i=fin;i>=ini+1;--i)

{ v[i] = v[i-1]; } } void intercambia(int &x, int &y) { int t; t = x; x = y; y = t; } int PosicionmenorElemento(TVector v,int ini, int fin) { int i,menor; menor = ini; for(i=ini+1;i<=fin;++i) { if (v[i]<v[menor]) { menor = i; } } return menor; } CLASES Ejemplo1.- Sumar dos nmeros definiendo la funcin dentro de la declaracin de la clase #include <iostream> #include <conio.h> using std::cout ; class operacion {private: float n1,n2; public: operacion(int _n1=2, int _n2= 3) {n1=_n1; n2=_n2;}; float suma(){return n1+n2; }; ~operacion(){cout<< "Objeto destruido";}; }; int main() { operacion ob1(10,20); cout<< "\n la suma es "<<ob1.suma(); getch(); return 0; } Ingresar nombres y edad de n estudiantes en un vector #include<windows.h> #include<iostream> #include<conio.h> using std::cout; using std::cin; using std::endl; class estudiante { int nro; char nombre[30]; int edad; public: void ingresar_datos(int i); void mostrar_datos(); }; void estudiante:: ingresar_datos(int n) { nro=n; cout<< "\nIngrese nombre "<< n<< " :"; cin>> nombre; cout<< "Ingrese edad "; cin>> edad; }; void estudiante:: mostrar_datos() {cout<< "\n Nro " <<nro <<"nombre "<< nombre << " edad "<< edad; }; int main() { const int max=20;int i,n=2; estudiante alumno[max]; system("cls"); cout<< " \n Cuantos datos ";cin>> n; for(i=0;i<n;i++) alumno[i].ingresar_datos(i); for(i=0;i<n;i++) alumno[i].mostrar_datos(); getch(); return 0; } Ejemplo1. punteros a objetos #include <conio.h> #include <iostream> using std::cout; using std::endl; class ejemplo { int num; public: void est_num(int val){ num= val;} void mostrar_num(){ cout << num << endl;}; }; int main(void) {ejemplo objeto, *p ; //declarar un objeto y un puntero a el objeto.est_num(101); // acceso a objeto directamente; objeto.mostrar_num(); p=&objeto;// asignar a p la direccion de objeto p->mostrar_num();// acceder a objeto usando un puntero getch(); return 0; } Problema C901.- Men de 4 operaciones con objetos #include <conio.h> #include <iostream>

using std::cin; using std::cout; using std::cout; class operacion {protected: float n1, n2; public :operacion(float x=1,float y=2){n1=x,n2=y;}; void ingresar(); float sumar(){return n1+n2;}; float restar(){return n1-n2;}; float multiplicar(){return n1*n2;}; float dividir(){return n1/n2;}; ~operacion(void){ cout<<"\n objeto destruido "; }; }; void operacion::ingresar() {cout<< "\n ingrese dos numeros "; cin>>n1>>n2; }; int main() { operacion objeto; int opcion; do { cout<< "\n 1.ingresar 2.sumar 3.restar. 4.multiplicar 5. dividir 6.salir "; cin>>opcion; switch(opcion) { case 1: objeto.ingresar();break; case 2: cout<< "\n la suma es "<<objeto.sumar(); break; case 3: cout<< "\n la resta es "<<objeto.restar();break; case 4: cout<< "\n la multiplicacion es "<<objeto.multiplicar(); break; case 5: cout<< "\n la division es "<<objeto.dividir(); break; case 6: break; } }while(opcion!=6); return 0; } Problema C902 ingresar nombre y edad de tres alumnos #include<iostream> #include<conio.h> using std::cout; using std::cin; class estudiante { char *nombre; int edad; public: void ingresar_datos(); void mostrar_datos(); }; void estudiante:: ingresar_datos() { nombre= new char[20]; cout<< "\nIngrese nombre "; cin>> nombre; cout<< "Ingrese edad "; cin>> edad; }; void estudiante:: mostrar_datos() {cout<< "\n nombre "<< nombre << "edad "<< edad;} ; int main() { estudiante juan, pepe ,luis; system("cls"); juan.ingresar_datos(); juan.mostrar_datos(); getch(); pepe.ingresar_datos(); luis.ingresar_datos(); pepe.mostrar_datos(); luis.mostrar_datos(); getch(); return 0; } FICHEROS #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "basico.h" struct tipo_registro{ int no_producto; char descripcion[30]; int cantidad; float precio; }; tipo_registro registro; FILE *archivo; void ingresar (void) { clrscr(); int no_prod; printf("\ningresar el codigo del producto: ");scanf("%i",&no_prod); archivo=fopen("d://practica.txt","rb+"); //r lectura b:binario +:lectura y escritura if(archivo==NULL) archivo=fopen("d://practica.txt","wb"); archivo=fopen("d://practica.txt","rb+"); fread(&registro,sizeof(registro),1,archivo); while(!feof(archivo)) { if(registro.no_producto==no_prod) {

printf("\nnumero de producto duplicado"); printf("\ndescripcion: %s",registro.descripcion); printf("\ncantidad: %i", registro.cantidad); printf("precio : %5.2f",registro.precio); getch(); return; } fread(&registro,sizeof(registro),1,archivo); } printf("ingresa descripcion:");scanf("%s",&registro.descripcion); printf("ingresa cantidad:");scanf("%i",&registro.cantidad); printf("ingresa precio:");scanf("%f",&registro.precio); registro.no_producto=no_prod; fwrite(&registro,sizeof(registro),1,archivo); fclose(archivo); printf("\nregistro almacenado correctamente"); getch(); } void modificar() { clrscr(); int no_prod; printf("\ningresar el codigo del producto a modificar: ");scanf("%i",&no_prod); archivo=fopen("d://practica.txt","rb+"); //r lectura b:binario +:lectura y escritura if(archivo==NULL) archivo=fopen("d://practica.txt","wb"); //archivo=fopen("d:\practica.txt","rb+");//abr irilo definitivamente para escribir fread(&registro,sizeof(registro),1,archivo); while(!feof(archivo)) { if(registro.no_producto==no_prod) { printf("\nnumero de producto encontrado actuales valores son: "); printf("\ndescripcion: %s",registro.descripcion); printf("\ncantidad: %i", registro.cantidad); printf("precio : %5.2f",registro.precio); printf("\nMODIFICAR VALORES"); printf("\nINGRESAR descripcion:"),scanf("%s",&registro.descripcion); printf("\nINGRESAR cantidad:"),scanf("%i", &registro.cantidad); printf("\nINGRESAR precio :"),scanf("%f",&registro.precio); fseek(archivo,ftell(archivo)sizeof(registro),SEEK_SET); fwrite(&registro,sizeof(registro),1,archivo); printf("REGISTRO MODIFICADO CORRECTAMENTE"); getch(); fclose(archivo); return ; } fread(&registro,sizeof(registro),1,archivo); } fclose(archivo); } void listar(void) { clrscr(); printf("\nLISTADO DE REGISTROS INGRESADOS"); archivo=fopen("d://practica.txt","rb+"); //r lectura b:binario +:lectura y escritura if(archivo==NULL) archivo=fopen("d://practica.txt","wb"); archivo=fopen("d://practica.txt","rb+"); fread(&registro,sizeof(registro),1,archivo); printf("\nPRODUCTO DESCRIPCION CANTIDAD PRECIO"); while(!feof(archivo)) { printf("\n %i %s %i %f",registro.no_producto,registro.descripcion,registro.c antidad,registro.precio);

fread(&registro,sizeof(registro),1,archivo); } getch(); fclose(archivo); } void mpantalla() { clrscr(); gotoxy(10,7);printf("M E N U"); gotoxy(5,9);printf("1.-Ingreso Registros"); gotoxy(5,10);printf("2.-Consultar registros"); gotoxy(5,11);printf("3.-Modificar Registros"); gotoxy(5,12);printf("4.-Eliminar Registros"); gotoxy(5,13);printf("5.-listar Registros"); gotoxy(5,14);printf("6.-SALIR"); gotoxy(20,16); printf("Ingrese Opcion "); } int _tmain(int argc, _TCHAR* argv[]) { char opc='0'; while(opc!='6') { mpantalla(); opc=getch(); if(opc=='1') ingresar(); if(opc=='3') modificar(); if(opc=='5') listar(); } printf("\nSALIR GRACIAS"); getch(); return 0; } JERARQUIA #include <windows.h> #include <iostream> #include <conio.h> using std::cout; using std::cin; const int lon =40; class empleado // clase empleado { private: char nombre[lon]; // nombre del empleado; unsigned long LE; // libreta electoral int edad; // edad del empleado public: void leerdatos() { cout<< " ingrese nombre:";cin >> nombre; cout<< " ingrese LE :"; cin>>LE; cout<< " ingrese edad :"; cin>>edad; } void verdatos() { cout<< "\n nombre : " << nombre; cout<< "\n LE : "<<LE; cout<< "\n edad : " <<edad; } }; class administrativo:public empleado { private: char categoria[lon]; //director general, jefe de sec.,etc. char destino [lon];// gerencia, contabilidad, etc; public: void leerdatos() { empleado:: leerdatos(); cout<< " Ingrese categoria :"; cin>> categoria; cout <<" Ingrese destino :"; cin>> destino; } void verdatos() { empleado:: verdatos(); cout<<"\n categoria :" << categoria; cout<<"\n Destino :" << destino; } }; class profesor:public empleado { private: char titulo[lon]; // fisico, matemtico, etc; int publicaciones; //nro de publicaciones public: void leerdatos() { empleado::leerdatos(); cout << " Ingrese titulo :";cin>> titulo; cout << " Ingrese nro de publicaciones :"; cin >> publicaciones; } void verdatos() { empleado:: verdatos(); cout << "\n titulo :" << titulo; cout << "\n publicaciones :"<< publicaciones;

} }; class auxiliar: public empleado { }; void main() { administrativo a; profesor p1,p2; auxiliar aux; system("cls"); cout << "\n ingrese dato del administrativo \n"; a.leerdatos(); cout << "\n ingrese datos del profesor 1 \n"; p1.leerdatos(); cout << "\n ingrese datos del profesor \n 2"; p2.leerdatos(); cout << "\n ingrese datos del auxiliar\n"; aux.leerdatos(); cout <<" datos personales del administrativo"; a.verdatos(); cout <<" datos personales del profesor 1"; p1.verdatos(); cout <<" datos personales del profesor 2"; p2.verdatos(); cout <<" datos personales del auxiliar "; aux.verdatos(); getch();

You might also like