|
|
|
|
Outline ·
[ Estándar ] ·
Lineal+
Ayuda con herencia en c++
| WaLLuS |
Apr 21 2008, 04:01 PM
|
Miembro Elite
   
Grupo: Members
Mensajes: 135
Registrado: 22-November 06
Desde: Algun lado
Miembro nº: 186.879

|
estoy haciendo un practico para entregar y tengo un conflicto existencial con la herencia y no lo puedo solucionar va o me doy cuenta. les dejo el codigo es un poco largo el codigo. #include<stdio.h> #include<string.h> #include<stdlib.h> #include<iostream.h> #include<conio.h> #include<io.h>
const int CApu=100; const int String=30;
class Texto{ int CodAlmac; //codigo char Nombre[100]; //nombre char Autor[100]; //Autor public: //Texto() ;//contructor void NuevoNbre(char *n); void NuevoAutor(char *a); void NuevoCodAl(int ca); virtual void Mostrar(); }T; class Apunte:public Texto{ char Catedra[30]; int Curso; char *Editorial; char *ISBN; public: //Apunte():Texto(){}; void NuevaCatedra(char *c); void NuevoCurso(int c); void NuevaEditorial(char *e); void NuevoISBN(char *is); void Mostrar(); Apunte();//destructor hacerlo }A; class Biblioteca{ Apunte Cont[CApu]; int CantApu; char *NBackup; int Backup; public: Biblioteca(){CantApu=-1; Backup=0;} int Menu(); int Reset(); int Add(); int Actualizar(); int Eliminar(); int Save(); int Query(); virtual void List(int i); }B;
FILE *in; int Ult=-1,l=0; char w[40],b[40],r[30];
int Biblioteca::Menu(){
int w=0;
cout<< " ______________________________________________________________"<<'\n'; cout<< " | | "<<'\n'; cout<< " | Menu de Opciones |" <<'\n'; cout<< " | |"<<'\n'; cout<< " |______________________________________________________________|"<<'\n'; cout<< " 1.- Inicializar "<<'\n'; cout<< " 2.- Agregar nuevo elemento a la Biblioteca"<< '\n'; cout<< " 3.- Eliminar libro "<<'\n'; cout<< " 4.- Modificar campos de un Libro "<<'\n'; cout<< " 5.- listar todos los Libros "<<'\n'; cout<< " 6.- Generar archivo "<<'\n'; cout<< " 7.- Mostrar informacion a pedido "<<'\n'; cout<< " 8.- Si quiere salir ingrese "<<'\n'; cout<< & quot;___________________________________________________________________________ ___"<<'\n'; cout<< " ";
printf("Ingrese la opcion deseada............. "); scanf("%d",&w); clrscr(); return(w); }
//================================= SWAP NOMBRE ================================
void swapname(char *a,char *b){ char temp[40000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP AUTOR ================================
void swapAuto(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP CATEDRA ================================
void swapcate(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP CURSO ================================
void swapcur(int &a,int&b){ int temp; temp=a; a=b; b=temp; } //================================= SWAP editorial ================================
void swapedit(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP ISBN ================================
void swapisbn(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP CODIGO ================================
void swapcod(int &a,int&b){ int temp; temp=a; a=b; b=temp; } //=================================== PAUSA ====================================
void pausa(){ fflush(stdin); gotoxy(45,24); cout<<"Presione enter para continuar..."<<'\n'; gotoxy(77,24); getchar(); clrscr(); } //============================NuevoNbre========================================= void Texto::NuevoNbre(char *n){ cin>> n; } //=============================NuevoAutor======================================= void Texto::NuevoAutor(char *a){ cin>> a; } //===============================NuevoCodAl===================================== void Texto::NuevoCodAl(int ca){ int cdg=4521; ca=cdg+1; cdg++; } //================================NuevaCatedra================================== void Apunte::NuevaCatedra(char *c){ cin>>c; } //================================NuevoCurso==================================== void Apunte::NuevoCurso(int c){ cin>>c; } //==============================NuevaEdit======================================= void Apunte::NuevaEditorial(char *e){ cin>>e; } //================================NuevoISBN===================================== void Apunte::NuevoISBN(char *is){ cin>>is; } //=================================Add==========================================
void Biblioteca::Add(){ int m,i=0,j; T.NuevoCodAl(&(Cont[CantApu].CodAlmac)); cout<< "Ingrese nombre del Libro"<<'\n'; T.NuevoNbre(&(Cont[CantApu].Nombre[0])); cout<<"Ingrese el nombre del autor"<<'\n'; T.NuevoAutor(&(Cont[CantApu].Autor[0])); cout<<"Ingrese la Catedra correspondiente"<<'\n'; A.NuevaCatedra(&(Cont[CantApu].Catedra[0])); cout<<"Ingrese el Curso correspondiente"<<'\n'; A.NuevoCurso(&(Cont[CantApu].Curso)); *Editorial= new char[30]; cout<<"Ingrese la Editorial"<<'/n'; A.NuevaEditorial(&(Cont[CantApu].Editorial)); *ISBN= new char[30]; cout<<"Ingrese el ISBN correspondiente"<<'/n'; A.NuevoISBN(&(Cont[CantApu].ISBN)); CantApu++; if(CantApu>0){ while (i<CantApu){ j=i+1; while (j<=CantApu){ m=strcmp(&(Cont[i].Nombre[0]),&(Cont[j].Nombre[0])); if (m==0){ CantApu--; cout<<"El elemento que trata cargar ya existe en Stock"<<'\n'; pausa(); B.Add(); } if (m>0){ swapname(&(Cont[i].Nombre[0]),&(Cont[j].Nombre[0])); swapeauto(&(Cont[i].Autor[0]),&(Cont[j].Autor{0}); swapcate(&(Cont[i].Catedra[0]),&(Cont[j].Catedra[0]); swapcur((Cont[i].Curso),(Cont[j].Curso)); swapedit((Cont[i].Editorial),(Cont[j].Editorial); swapisbn((Cont[i].ISBN),(Cont[j].ISBN); swapcod((Cont[i].CodAlmac),(Cont[j].CodAlmac); } j++; } i++; } } return(0); } //================================== ELIMINAR ==================================
int Biblioteca::Eliminar(/*char *prod*/){ int cod,g,r,k=0;
cout<<"Ingrese el codigo del elemnto a eliminar"<<'\n'; cout<<"Si no lo sabe ingrese 0 para listar todos los codigos "<<'\n'; cin>>cod; clrscr(); if(cod==0){ while (k<=Ult){ cout<<"El libro es: "<<Cont[k].Nombre<<'\n'; cout<<"Su codigo es: "<<Cont[k].CodAlmac<<'\n'; k++; } } cout<<"Ingrese el codigo correcto: "; cin>>cod; while ((cod<4221)||(cod>4500)){ cout<<"Codigo incorrecto"<<'\n'; cout<<"Por favor ingrese un codigo correcto si quiere eliminar un elemento"<<'\n'; cout<<"Si no quiere eleminar nada ingrese 1"<<'\n'; cin>>g; switch(g){ case 1: break; case !1:cin>>cod; } } g=0; while (cod!=Cod[g].CodAlmac) g++; cout<<"Esta a punto de borrar este elemento: "<<Code[g].Nombre<<'\n'; cout<<"Esta seguro?"<<'\n'; cout<<"1.- Si 2.- No"<<'\n'; cin>>r; if(r==1){ int b=g+1; while (b<=CantApu){ Cont[g].CodAlmac=Cont[b].CodAlmac; strcpy(&(Cont[g].Nombre[0]),&(V[b].Nombre[0])); Cont[g].Autor=Cont[b].Autor; Cont[g].Catedra=Cont[b].Catedra; Cont[g].Editorial=Cont[b].Editorial; Cont[g].ISBN=Cont[b].ISBN; g++; b++; } clrscr(); cout<<"El Elemento ha sido eliminado satisfactoriamente"<<'\n'; CantApu=CantApu-1; } return (0); } //================================== SAVE ======================================
int Biblioteca::Save(char *c){ int ma=0; Biblioteca::Backup++; NBackup= new char(strlen©+1); strcpy(NBackup,c); if ((in=fopen(NBackup,"w+"))==NULL){ printf("ERROR:El archivo no se pudo leer o no se pudo crear"); exit(1); } cout<<"El archivo ha sido creado con exito"; pausa(); while (ma<=CantApu){ fprintf(in,"Nombre: %s \n", Cont[ma].Nombre); fprintf(in,"Autor: %s \n", Cont[ma].Autor); fprintf(in,"Catedra: %s \n", Cont[ma].Catedra); fprintf(in,"Editorial: %s \n", Cont[ma].Editorial); fprintf(in,"ISBN: %s \n", Cont[ma].ISBN); fprintf(in,"Codigo: %d \n",Cont[ma].CodAlmac); fprintf(in,"Curso: %d",Cont[ma].Curso); ma++; } fclose (in);
return(0); } //=================================== RESET ====================================
int Biblioteca::Reset(){ int op=0,op2=0; char a[30]; cout<<" 1.- Si quiere crear una nueva Biblioteca"<<'\n'; cout<<" 2.- Si quiere cargar una Biblioteca desde el disco"<<'\n'; cin>>op; if(op==1){ cout<<"Desea almacenar la informacion existente"<<'\n'; cout<<" 1.-si 2.-No "<<'\n'; cin>>op2; if (op2==1){ cout<<"Ingrese el nombre del archivo con su respectiva extencion y ruta de acceso: "<<'\n'; cin>>a; S.Save(a); Backup=Backup+1; } CantApu=-1; Ult=-1; } if (op==2){ cout<<"Desea almacenar la informacion existente"<<'\n'; cout<<" 1.-si 2.-No "<<'\n'; cin>>op2; if (op2==1){ cout<<"Ingrese el nombre del archivo con su respectiva extencion y ruta de acceso: "<<'\n'; cin>>a; S.Save(a); Backup=Backup+1; } char str[40]; char str1[40]; char str2[40]; char str3[40]; char str4[40]; int i=0,x=0,z=0,u=CantApu; if((in=fopen(NBackup,"r+"))==NULL){ cout<<"El archivo no se pudo abrir"<<'\n'; pausa(); } CantApu=0; while ((!feof(in))&&(u>=0)){ fgets(str,(str!='\0'),in); fgets(str1,(str1!='\0'),in); fgets(str2,(str2!='\0'),in); fgets(str3,(str3!='\0'),in); fgets(str4,(str4!='\0'),in); fread(&(i),sizeof(i),1,in); fread(&(x),sizeof(x),1,in); u--; strcpy(&(Cont[CantApu].Nombre[0]),(str)); strcpy(&(Cont[CantApu].Autor[0]),(str1)); strcpy(&(Cont[CantApu].Catedra[0]),(str2)); strcpy(&(Cont[CantApu].Editorial[0]),(str3)); strcpy(&(Cont[CantApu].ISBN[0]),(str4)); Cont[CantApu].CodAlamc=i; Cont[CantApu].Curso=x CantApu++; } } clrscr(); return(0); } //================================= Update ==================================
int Biblioteca::Actualizar(char *prod){ int g=-1,m=1,op;
while ((m!=0)&&(g<=Ult)){ g++; m=strcmp(prod,Cont[g].Nombre); } if (m==0){ cout<<"Este libro pertenece al Autor: "<<Cont[g].Autor <<'\n'; cout<<"Desea modificarlo? 1.- Si 2.- No"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba el nuevo Autor: "; cin>>Cont[g].Autor; } cout<<'\n'; cout<<'\n'; cout<<"Este es la Catedra actual: "<< Cont[g].Catedra<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba la nueva Catedra: "; cin>>Cont[g].Catedra; } cout<<'\n'; cout<<'\n'; cout<<"Este la Editorial actual: "<<Cont[g].Editorial<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No;"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba la nueva Editorial: "; cin>>Cont[g].Editorial; } cout<<"Este es el ISBN actual: "<<Cont[g].ISBN<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No;"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba el nuevo ISBN: "; cin>>Cont[g].ISBN; } cout<<"Este es el Curso actual: "<<Cont[g].Curso<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No;"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba el nuevo Curso: "; cin>>Cont[g].Curso; } } if (m!=0) cout<<"El producto ingresado no se encuentra en Stock"<<'\n'; getchar(); getchar(); clrscr(); return(0); } //================================ List ========================================
void Biblioteca::List(int i){ if(i==0){ cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; } else{ int j=i-1; B.List(j); cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; } } //============================ Query =========================================== int Biblioteca::Query(){ char cate[string], edito[string]; int op=0,i=0; cout<<"si desea listar apuntes por Catedra ingrese 1"; cout<<"si desea listar apuntes por Editorial ingrese 2"; cin>>op if (op==1){ cout<<"Ingrese la Catedra sobre la que quiere informacion"; cin>>cate; while ((i<=CantApu)&&((strcmp(cate,Cont[i].Catedra))==0)){ cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; i++ } } if (op==2){ cout<<"Ingrese la Editorial sobre la que quiere informacion"; cin>>edito; while ((i<=CantApu)&&((strcmp(edito,Cont[i].Editorial))==0)){ cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; i++ } } return(0); }
//============================MAIN============================================== int main(){ int Ult=0;
h=B.Menu(); while (h!=9){
if (h==1){ B.Reset(); pausa(); }
if (h==2){ //OPCION 2 - AGREGAR op=1; while (op==1){ Ult++; if (Ult!=CApu){ B.Add(); cout<<"1.- Si quiere cargar otro producto"<<'\n'; cout<<"0.- Si quiere volver al menu principal"<<'\n'; cin>>op; clrscr(); } else{ cout<<"El Stock esta lleno"<<'\n'; pausa(); } } } if (h==3){ //OPCION 3 - ELIMINAR if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ B.Eliminar(/*&(Data.Item[0])*/); Ult=Ult-1; pausa(); } } if (h==4){ //OPCION 4 - ACTUALIZAR if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ char nn[30]; cout<<"Ingrese el nombre del producto a actualizar"<<'\n'; cin>>nn; B.Actualizar ((nn)); pausa(); } }
if (h==5){ //OPCION 5 - LISTAR if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ k=Ult; B.List(k); pausa(); } } if (h==6){ //OPCION 6 - ARCHIVO int o=0; char m[10],a[10]; if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; cout<<'\n'; cout<<'\n'; cout<<"Presione 1 si desea generarlo de todas formas......"; cin>>o; if (o==1){ cout<<"Ingrese el mes"<<'\n'; cin>>m; cout<<"Ingrese el anio 20.."<<'\n'; cin>>a; strcat(m,a); strcat(m,".dat"); strcat(c,m); cout<<'\n'; B.Save©; } else pausa(); } else{ cout<<"Ingrese el mes"<<'\n'; cin>>m; cout<<"Ingrese el anio 20.."<<'\n'; cin>>a; strcat(m,a); strcat(m,".dat"); strcat(c,m); cout<<'\n'; B.Save©; } }
if (h==7){ //OPCION 7 - REPORT if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ B.Report(); pausa(); } } if (h==8){ pausa();
} if (h!=8) h=B.Menu(); else h=9; } }
|
|
|
|
|
| WaLLuS |
Apr 21 2008, 04:07 PM
|
Miembro Elite
   
Grupo: Members
Mensajes: 135
Registrado: 22-November 06
Desde: Algun lado
Miembro nº: 186.879

|
CODE #include<stdio.h> #include<string.h> #include<stdlib.h> #include<iostream.h> #include<conio.h> #include<io.h>
const int CApu=100; const int String=30;
class Texto{ int CodAlmac; //codigo char Nombre[100]; //nombre char Autor[100]; //Autor public: //Texto();//contructor void NuevoNbre(char *n); void NuevoAutor(char *a); void NuevoCodAl(int ca); virtual void Mostrar(); }T; class Apunte:public Texto{ char Catedra[30]; int Curso; char *Editorial; char *ISBN; public: //Apunte():Texto(){}; void NuevaCatedra(char *c); void NuevoCurso(int c); void NuevaEditorial(char *e); void NuevoISBN(char *is); void Mostrar(); Apunte();//destructor hacerlo }A; class Biblioteca{ Apunte Cont[CApu]; int CantApu; char *NBackup; int Backup; public: Biblioteca(){CantApu=-1; Backup=0;} int Menu(); int Reset(); int Add(); int Actualizar(); int Eliminar(); int Save(); int Query(); virtual void List(int i); }B;
FILE *in; int Ult=-1,l=0; char w[40],b[40],r[30];
int Biblioteca::Menu(){
int w=0;
______________________________________________________________"<<'\n'; cout<< " | | "<<'\n'; cout<< " | Menu de Opciones |" <<'\n'; cout<< " | |"<<'\n'; cout<< " |______________________________________________________________|"<<'\n'; cout<< " 1.- Inicializar "<<'\n'; cout<< " 2.- Agregar nuevo elemento a la Biblioteca"<< '\n'; cout<< " 3.- Eliminar libro "<<'\n'; cout<< " 4.- Modificar campos de un Libro "<<'\n'; cout<< " 5.- listar todos los Libros "<<'\n'; cout<< " 6.- Generar archivo "<<'\n'; cout<< " 7.- Mostrar informacion a pedido "<<'\n'; cout<< " 8.- Si quiere salir ingrese "<<'\n'; cout<< & #34;____________________________________________________________________________ __"<<'\n'; cout<< " ";
printf("Ingrese la opcion deseada............. "); scanf("%d",&w); clrscr(); return(w); }
//================================= SWAP NOMBRE ================================
void swapname(char *a,char *b){ char temp[40000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP AUTOR ================================
void swapAuto(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP CATEDRA ================================
void swapcate(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP CURSO ================================
void swapcur(int &a,int&b){ int temp; temp=a; a=b; b=temp; } //================================= SWAP editorial ================================
void swapedit(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP ISBN ================================
void swapisbn(char *a,char *b){ char temp[4000]; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); } //================================= SWAP CODIGO ================================
void swapcod(int &a,int&b){ int temp; temp=a; a=b; b=temp; } //=================================== PAUSA ====================================
void pausa(){ fflush(stdin); gotoxy(45,24); cout<<"Presione enter para continuar..."<<'\n'; gotoxy(77,24); getchar(); clrscr(); } //============================NuevoNbre========================================= void Texto::NuevoNbre(char *n){ cin>> n; } //=============================NuevoAutor======================================= void Texto::NuevoAutor(char *a){ cin>> a; } //===============================NuevoCodAl===================================== void Texto::NuevoCodAl(int ca){ int cdg=4521; ca=cdg+1; cdg++; } //================================NuevaCatedra================================== void Apunte::NuevaCatedra(char *c){ cin>>c; } //================================NuevoCurso==================================== void Apunte::NuevoCurso(int c){ cin>>c; } //==============================NuevaEdit======================================= void Apunte::NuevaEditorial(char *e){ cin>>e; } //================================NuevoISBN===================================== void Apunte::NuevoISBN(char *is){ cin>>is; } //=================================Add==========================================
void Biblioteca::Add(){ int m,i=0,j; T.NuevoCodAl(&(Cont[CantApu].CodAlmac)); cout<< "Ingrese nombre del Libro"<<'\n'; T.NuevoNbre(&(Cont[CantApu].Nombre[0])); cout<<"Ingrese el nombre del autor"<<'\n'; T.NuevoAutor(&(Cont[CantApu].Autor[0])); cout<<"Ingrese la Catedra correspondiente"<<'\n'; A.NuevaCatedra(&(Cont[CantApu].Catedra[0])); cout<<"Ingrese el Curso correspondiente"<<'\n'; A.NuevoCurso(&(Cont[CantApu].Curso)); *Editorial= new char[30]; cout<<"Ingrese la Editorial"<<'/n'; A.NuevaEditorial(&(Cont[CantApu].Editorial)); *ISBN= new char[30]; cout<<"Ingrese el ISBN correspondiente"<<'/n'; A.NuevoISBN(&(Cont[CantApu].ISBN)); CantApu++; if(CantApu>0){ while (i<CantApu){ j=i+1; while (j<=CantApu){ m=strcmp(&(Cont[i].Nombre[0]),&(Cont[j].Nombre[0])); if (m==0){ CantApu--; cout<<"El elemento que trata cargar ya existe en Stock"<<'\n'; pausa(); B.Add(); } if (m>0){ swapname(&(Cont[i].Nombre[0]),&(Cont[j].Nombre[0])); swapeauto(&(Cont[i].Autor[0]),&(Cont[j].Autor{0}); swapcate(&(Cont[i].Catedra[0]),&(Cont[j].Catedra[0]); swapcur((Cont[i].Curso),(Cont[j].Curso)); swapedit((Cont[i].Editorial),(Cont[j].Editorial); swapisbn((Cont[i].ISBN),(Cont[j].ISBN); swapcod((Cont[i].CodAlmac),(Cont[j].CodAlmac); } j++; } i++; } } return(0); } //================================== ELIMINAR ==================================
int Biblioteca::Eliminar(/*char *prod*/){ int cod,g,r,k=0;
cout<<"Ingrese el codigo del elemnto a eliminar"<<'\n'; cout<<"Si no lo sabe ingrese 0 para listar todos los codigos "<<'\n'; cin>>cod; clrscr(); if(cod==0){ while (k<=Ult){ cout<<"El libro es: "<<Cont[k].Nombre<<'\n'; cout<<"Su codigo es: "<<Cont[k].CodAlmac<<'\n'; k++; } } cout<<"Ingrese el codigo correcto: "; cin>>cod; while ((cod<4221)||(cod>4500)){ cout<<"Codigo incorrecto"<<'\n'; cout<<"Por favor ingrese un codigo correcto si quiere eliminar un elemento"<<'\n'; cout<<"Si no quiere eleminar nada ingrese 1"<<'\n'; cin>>g; switch(g){ case 1: break; case !1:cin>>cod; } } g=0; while (cod!=Cod[g].CodAlmac) g++; cout<<"Esta a punto de borrar este elemento: "<<Code[g].Nombre<<'\n'; cout<<"Esta seguro?"<<'\n'; cout<<"1.- Si 2.- No"<<'\n'; cin>>r; if(r==1){ int b=g+1; while (b<=CantApu){ Cont[g].CodAlmac=Cont[b].CodAlmac; strcpy(&(Cont[g].Nombre[0]),&(V[b].Nombre[0])); Cont[g].Autor=Cont[b].Autor; Cont[g].Catedra=Cont[b].Catedra; Cont[g].Editorial=Cont[b].Editorial; Cont[g].ISBN=Cont[b].ISBN; g++; b++; } clrscr(); cout<<"El Elemento ha sido eliminado satisfactoriamente"<<'\n'; CantApu=CantApu-1; } return (0); } //================================== SAVE ======================================
int Biblioteca::Save(char *c){ int ma=0; Biblioteca::Backup++; NBackup= new char(strlen(c)+1); strcpy(NBackup,c); if ((in=fopen(NBackup,"w+"))==NULL){ printf("ERROR:El archivo no se pudo leer o no se pudo crear"); exit(1); } cout<<"El archivo ha sido creado con exito"; pausa(); while (ma<=CantApu){ fprintf(in,"Nombre: %s \n", Cont[ma].Nombre); fprintf(in,"Autor: %s \n", Cont[ma].Autor); fprintf(in,"Catedra: %s \n", Cont[ma].Catedra); fprintf(in,"Editorial: %s \n", Cont[ma].Editorial); fprintf(in,"ISBN: %s \n", Cont[ma].ISBN); fprintf(in,"Codigo: %d \n",Cont[ma].CodAlmac); fprintf(in,"Curso: %d",Cont[ma].Curso); ma++; } fclose (in);
return(0); } //=================================== RESET ====================================
int Biblioteca::Reset(){ int op=0,op2=0; char a[30]; cout<<" 1.- Si quiere crear una nueva Biblioteca"<<'\n'; cout<<" 2.- Si quiere cargar una Biblioteca desde el disco"<<'\n'; cin>>op; if(op==1){ cout<<"Desea almacenar la informacion existente"<<'\n'; cout<<" 1.-si 2.-No "<<'\n'; cin>>op2; if (op2==1){ cout<<"Ingrese el nombre del archivo con su respectiva extencion y ruta de acceso: "<<'\n'; cin>>a; S.Save(a); Backup=Backup+1; } CantApu=-1; Ult=-1; } if (op==2){ cout<<"Desea almacenar la informacion existente"<<'\n'; cout<<" 1.-si 2.-No "<<'\n'; cin>>op2; if (op2==1){ cout<<"Ingrese el nombre del archivo con su respectiva extencion y ruta de acceso: "<<'\n'; cin>>a; S.Save(a); Backup=Backup+1; } char str[40]; char str1[40]; char str2[40]; char str3[40]; char str4[40]; int i=0,x=0,z=0,u=CantApu; if((in=fopen(NBackup,"r+"))==NULL){ cout<<"El archivo no se pudo abrir"<<'\n'; pausa(); } CantApu=0; while ((!feof(in))&&(u>=0)){ fgets(str,(str!='\0'),in); fgets(str1,(str1!='\0'),in); fgets(str2,(str2!='\0'),in); fgets(str3,(str3!='\0'),in); fgets(str4,(str4!='\0'),in); fread(&(i),sizeof(i),1,in); fread(&(x),sizeof(x),1,in); u--; strcpy(&(Cont[CantApu].Nombre[0]),(str)); strcpy(&(Cont[CantApu].Autor[0]),(str1)); strcpy(&(Cont[CantApu].Catedra[0]),(str2)); strcpy(&(Cont[CantApu].Editorial[0]),(str3)); strcpy(&(Cont[CantApu].ISBN[0]),(str4)); Cont[CantApu].CodAlamc=i; Cont[CantApu].Curso=x CantApu++; } } clrscr(); return(0); } //================================= Update ==================================
int Biblioteca::Actualizar(char *prod){ int g=-1,m=1,op;
while ((m!=0)&&(g<=Ult)){ g++; m=strcmp(prod,Cont[g].Nombre); } if (m==0){ cout<<"Este libro pertenece al Autor: "<<Cont[g].Autor <<'\n'; cout<<"Desea modificarlo? 1.- Si 2.- No"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba el nuevo Autor: "; cin>>Cont[g].Autor; } cout<<'\n'; cout<<'\n'; cout<<"Este es la Catedra actual: "<< Cont[g].Catedra<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba la nueva Catedra: "; cin>>Cont[g].Catedra; } cout<<'\n'; cout<<'\n'; cout<<"Este la Editorial actual: "<<Cont[g].Editorial<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No;"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba la nueva Editorial: "; cin>>Cont[g].Editorial; } cout<<"Este es el ISBN actual: "<<Cont[g].ISBN<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No;"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba el nuevo ISBN: "; cin>>Cont[g].ISBN; } cout<<"Este es el Curso actual: "<<Cont[g].Curso<<'\n'; cout<<"Desea modificar? 1.- Si 2.- No;"<<'\n'; cin>>op; cout<<'\n'; if (op==1){ cout<<"Escriba el nuevo Curso: "; cin>>Cont[g].Curso; } } if (m!=0) cout<<"El producto ingresado no se encuentra en Stock"<<'\n'; getchar(); getchar(); clrscr(); return(0); } //================================ List ========================================
void Biblioteca::List(int i){ if(i==0){ cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; } else{ int j=i-1; B.List(j); cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; } } //============================ Query =========================================== int Biblioteca::Query(){ char cate[string], edito[string]; int op=0,i=0; cout<<"si desea listar apuntes por Catedra ingrese 1"; cout<<"si desea listar apuntes por Editorial ingrese 2"; cin>>op if (op==1){ cout<<"Ingrese la Catedra sobre la que quiere informacion"; cin>>cate; while ((i<=CantApu)&&((strcmp(cate,Cont[i].Catedra))==0)){ cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; i++ } } if (op==2){ cout<<"Ingrese la Editorial sobre la que quiere informacion"; cin>>edito; while ((i<=CantApu)&&((strcmp(edito,Cont[i].Editorial))==0)){ cout<<"Nombre del libro es: "<<Cont[i].Nombre<<'\n'; cout<<"Nombre del Autor : "<<Cont[i].Autor<<'\n'; cout<<"Nombre de la Catedra: "<<Cont[i].Catedra<<'\n'; cout<<"Nombre de la Editorial: "<<Cont[i].Editorial<<'\n'; cout<<"Codigo ISBN: "<<Cont[i].ISBN<<'\n'; cout<<"Curso Correspondiente: "<<Cont[i].Curso<<'\n'; cout<<"Codigo del Libro: "<<Cont[i].CodAlmac<<'\n'; i++ } } return(0); }
//============================MAIN============================================== int main(){ int Ult=0;
h=B.Menu(); while (h!=9){
if (h==1){ B.Reset(); pausa(); }
if (h==2){ //OPCION 2 - AGREGAR op=1; while (op==1){ Ult++; if (Ult!=CApu){ B.Add(); cout<<"1.- Si quiere cargar otro producto"<<'\n'; cout<<"0.- Si quiere volver al menu principal"<<'\n'; cin>>op; clrscr(); } else{ cout<<"El Stock esta lleno"<<'\n'; pausa(); } } } if (h==3){ //OPCION 3 - ELIMINAR if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ B.Eliminar(/*&(Data.Item[0])*/); Ult=Ult-1; pausa(); } } if (h==4){ //OPCION 4 - ACTUALIZAR if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ char nn[30]; cout<<"Ingrese el nombre del producto a actualizar"<<'\n'; cin>>nn; B.Actualizar ((nn)); pausa(); } }
if (h==5){ //OPCION 5 - LISTAR if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ k=Ult; B.List(k); pausa(); } } if (h==6){ //OPCION 6 - ARCHIVO int o=0; char m[10],a[10]; if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; cout<<'\n'; cout<<'\n'; cout<<"Presione 1 si desea generarlo de todas formas......"; cin>>o; if (o==1){ cout<<"Ingrese el mes"<<'\n'; cin>>m; cout<<"Ingrese el anio 20.."<<'\n'; cin>>a; strcat(m,a); strcat(m,".dat"); strcat(c,m); cout<<'\n'; B.Save(c); } else pausa(); } else{ cout<<"Ingrese el mes"<<'\n'; cin>>m; cout<<"Ingrese el anio 20.."<<'\n'; cin>>a; strcat(m,a); strcat(m,".dat"); strcat(c,m); cout<<'\n'; B.Save(c); } }
if (h==7){ //OPCION 7 - REPORT if (Ult==-1){ cout<<"El Stock esta vacio"<<'\n'; pausa(); } else{ B.Report(); pausa(); } } if (h==8){
} if (h!=8) h=B.Menu(); else h=9; } }
|
|
|
|
|
Suscribirse a esta discusión
Recibirás una notificación vía correo cuando haya una respuesta y no estés activos en los foros.
Suscribirse a este foro
Recibirás una notificación vía correo cuando haya una nueva discusión y no estés activo en los foros.
Bajar/imprimir
Podrás bajar esta discusión en varios formatos o ver una versión apta para impresora.

Topicos similares

Topicos similares
|