sábado, 3 de marzo de 2012

Comentarios

Chicos y chicas! por favor pongan sus comentarios y sugerencias para hacer la clase mas interactiva, recuerden que la clase es reciproca.
Espero tengan un excelente fin de semana!!!

miércoles, 29 de febrero de 2012

Hola Chicos:
Les dejo el programa visto en clase
saludos

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
void menu(void);
void altas(void);
void bajas_log(void);
void bajas_fis(void);
void imprime(void);
int submenu(void);
struct registro
 {
    char clave[10];
  char nombre[20];
  char apeidos[20];
  char carrera[50];
  char activo;
 };
struct registro nuevo;
 main()
 {
  char TECLA;
  int baja=0;
 
  clrscr();
  do
   {
    menu();
    gotoxy(60,24);
    TECLA=toupper(getche());
    switch(TECLA)
   {
     case 'A':
       altas();
       break;
     case 'B':
       baja=submenu();
       switch(baja)
          {
           case 1:
           bajas_log();
           break;
           case 2:
           bajas_fis();
           break;
          }
     clrscr();
       break;
    case 'I':
       imprime();
       clrscr();
       break;
   }
   }while(TECLA!='S');
 }
void imprime(void)
 {
   FILE *archivo;
   int leidos;
          archivo=fopen("C:Registro.txt","r");
   if(archivo==NULL)
    {
     gotoxy(26,12);printf("ERROR: Nose puede abrir el archivo");
     getch();
     exit(0);
    }
          while(!(feof(archivo)))
       {
        leidos=fread(&nuevo,sizeof(nuevo),1,archivo);
        if(leidos)
   {
   if(nuevo.activo!='X')
     {
        clrscr();
        gotoxy(25,10);printf("Nombre");
        gotoxy(25,11);printf("Apeidos");
        gotoxy(25,12);printf("Carrera");
        gotoxy(25,13);printf("Clave");
        gotoxy(26,8);printf("Los Datos del registro eliminado");
        gotoxy(33,10);printf("%s",nuevo.nombre);
        gotoxy(33,11);printf("%s",nuevo.apeidos);
        gotoxy(33,12);printf("%s",nuevo.carrera);
        gotoxy(33,13);printf("%s",nuevo.clave);
        getch();
     }
   }
       }
 }
void bajas_log(void)
 {
         FILE *archivo2;
  FILE *archivo;
  char claveles[10];
  int leidos;
  clrscr();
  archivo=fopen("C:Registro.txt","r");
  if(archivo==NULL)
    {
     gotoxy(26,12);printf("ERROR: Nose puede abrir el archivo");
     getch();
     exit(0);
    }
  archivo2=fopen("Registr.tmp","a");
  gotoxy(17,11);
  printf("Dame la clave del registro a dar de baja logica");
  getchar();gotoxy(30,12);gets(claveles);
  while(!(feof(archivo)))
       {
        leidos=fread(&nuevo,sizeof(nuevo),1,archivo);
        if(leidos)
   {
   if(strcmp(nuevo.clave,claveles)!=0)
     {
                    fwrite(&nuevo,sizeof(nuevo),1,archivo2);
     }
   else
       {
        if(nuevo.activo=='E')
   {
    nuevo.activo='X';
    fwrite(&nuevo,sizeof(nuevo),1,archivo2);
   }
         else
     {
      clrscr();
      gotoxy(25,12);
      printf("El registro a sido eliminado anteriormente");
      fwrite(&nuevo,sizeof(nuevo),1,archivo2);
     }
       }
   }
       }
  fclose(archivo);
  fclose(archivo2);
  remove("C:Registro.txt");
  rename("Registr.tmp","C:Registro.txt");
  getch();
 }
void bajas_fis(void)
 {
  FILE *archivo2;
  FILE *archivo;
  char claveles[10];
  int leidos;
  clrscr();
  archivo=fopen("C:Registro.txt","r");
  if(archivo==NULL)
    {
     gotoxy(26,12);printf("ERROR: Nose puede abrir el archivo");
     getch();
     exit(0);
    }
  archivo2=fopen("Registr.tmp","a");
  gotoxy(26,11);
  printf("Dame la clave a eliminar");
  getchar();gotoxy(30,12);gets(claveles);
  while(!(feof(archivo)))
       {
        leidos=fread(&nuevo,sizeof(nuevo),1,archivo);
        if(leidos)
   {
   if(strcmp(nuevo.clave,claveles)!=0)
     {
                    fwrite(&nuevo,sizeof(nuevo),1,archivo2);
     }
   else
       {
        clrscr();
        textcolor(15);
        gotoxy(25,10);printf("Nombre");
        gotoxy(25,11);printf("Apeidos");
        gotoxy(25,12);printf("Carrera");
        gotoxy(25,13);printf("Clave");
        gotoxy(26,8);printf("Los Datos del registro eliminado");
        textcolor(15);
        gotoxy(33,10);printf("%s",nuevo.nombre);
        gotoxy(33,11);printf("%s",nuevo.apeidos);
        gotoxy(33,12);printf("%s",nuevo.carrera);
        gotoxy(33,13);printf("%s",nuevo.clave);
       }
   }
       }
  fclose(archivo);
  fclose(archivo2);
  remove("C:Registro.txt");
  rename("Registr.tmp","C:Registro.txt");
  getch();
 }
int submenu(void)
 {
   int opc;
   clrscr();
   do
    {
            gotoxy(40,10);
     printf("Menu");
     gotoxy(34,11);printf("1.-Baja logica");
     gotoxy(34,12);printf("2.-Baja fisica");
     scanf("%d",&opc);
     if(opc==1)
       {
        break;
       }
     else
     if(opc==2)
       {
        break;
       }
     else
  {
   clrscr();
   gotoxy(26,12);
   printf("Esta opcion no esta en el menu");
   getch();
   clrscr();
  }
    }while(1);
 return opc;
 }
void altas(void)
 {
  FILE *archivo;
  long escribe;
  archivo=fopen("C:Registro.txt","a");
  if(archivo==NULL)
    {
     gotoxy(26,12);printf("ERROR: Nose puede abrir el archivo");
     getch();
     exit(0);
    }
   textcolor(15);
   gotoxy(1,5);printf("Nombre :");
   gotoxy(1,6);printf("Apeidos :");
   gotoxy(1,8);printf("Carrera :");
   gotoxy(1,9);printf("Numero de control :");
   textcolor(14);
   gotoxy(10,5);gets(nuevo.nombre);
   gotoxy(11,6);gets(nuevo.apeidos);
   getchar();
   gotoxy(11,8);gets(nuevo.carrera);
   gotoxy(21,9);gets(nuevo.clave);
   nuevo.activo='E';
   fwrite(&nuevo,sizeof(nuevo),1,archivo);
   fclose(archivo);
   clrscr();
 }
void menu(void)
 {
  textcolor(15);
  gotoxy(10,1);printf("ltas");
  gotoxy(40,1);printf("ajas");
  gotoxy(70,1);printf("alir");
  gotoxy(40,10);printf("mprime");
  gotoxy(21,24);printf("*** Elige una opcion del menu........[   ] ***");
  textcolor(14);
  gotoxy(9,1);printf("A");
  gotoxy(39,1);printf("B");
  gotoxy(69,1);printf("S");
  gotoxy(39,10);printf("I");
 }

sábado, 11 de febrero de 2012

Programación

Saludos alumnos del 2251

Espero participen y pongan aqui sus comentarios o dudas, a sí como sus aportaciones saludos

gracias