Bienvenido: ( Identificarse | Registrarse )      
Foros de Trucos Windows
 
Closed TopicStart new topicStart Poll

Outline · [ Estándar ] · Lineal+

> Ayuda con herencia en c++

WaLLuS
post Apr 21 2008, 04:01 PM
Publicado: #1


Miembro Elite
****

Grupo: Members
Mensajes: 128
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;
}
}



User is offlineProfile CardPM
Go to the top of the page
+Quote Post
WaLLuS
post Apr 21 2008, 04:07 PM
Publicado: #2


Miembro Elite
****

Grupo: Members
Mensajes: 128
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;
}
}



User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
Closed TopicTopic OptionsStart new topic

Collapse

> Topicos similares

Hola que tal, necesito ayuda urgente por favor! SergiiouBc 7 0 Hoy, 09:46 AM
By: SergiiouBc
Hola que tal, necesito ayuda urgente por favor! SergiiouBc 7 0 Hoy, 09:45 AM
By: SergiiouBc
Ayuda por favor Guxnet 21 1 Hoy, 05:06 AM
By: Rommel_A
Visual Basic 6 ( ayuda en programacion ) FranGK 527 21 Hoy, 01:29 AM
By: FranGK
ayuda! matulabanda 66 7 Hoy, 12:21 AM
By: Caito

Google
Web www.trucoswindows.net