Aki esta el programa de altas y Bajas en C

angelucha84
03 de Enero del 2005
Aki les pongo el programa de altas, bajas, modificaciones y consultas es un pekeño sistema y se maneja por archivos ..... corre bien pork es un proyecto mio y lo entregue ya de verdad espero k les sirva

Si alguien tiene un traductor de pascal a C en C se los voy a agradecer k me lo manden a mi correo es [email protected]


Bueno aki está el codigo completito


/*
Instituto Tecnologico Superior de Chapala
Alumnos: Alicia Ang‚lica V zquez Rios
Ana Elena Espirito Espinoza
Cynthia Nayeli Isabel Medina Conchas
Materia: An lisis de Sistemas
Maestro: Ing. Roberto Maga¤a Preciado
Carrera: Ingenieria en Sistemas Computacionales
Proyecto: Nuestro proyecto esta enfocado a la vida real.
En este proyecto hicimos un sistema para una joyeria en la cual se maneja lo que es:
*Altas, Bajas, Modificaciones,B£squeda y Mostrar en Pantalla los productos de productos
*Altas, Bajas, Modificaciones, B£squeda Los proveedores
*Tambien utilizamos lo que es 3 archivo que son Temp.txt,proveedo.txt,kafri.txt
para el manejo de archivos secuenciales


*/

#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<stdlib.h>
#define MODELO 0
#define ARGOLLA 1
#define EMPRESA 0
#define DOMICILIO 1
#define COLONIA 2
#define CP 3
#define LUGAR 4
#define TEL 5
#define EMAIL 6
#define INIEMPR 7
void cuadro (int, int, int, int);
void cuadro2 (int, int, int, int);
int i,N;
void xyt(int x,int y,char texto[78])
{
gotoxy(x,y);
cprintf(texto);
}
void centxt(char texto[78],int j)
{
gotoxy(40-strlen(texto)/2,j);
cprintf(texto);
}

void color(int i,int j)
{
textcolor(i);
textbackground(j);
}


void cuadro(int x,int y,int x1,int y1)
{
for (i=x; i<=x1; i++)
{
gotoxy(i,y); puts("Í");
gotoxy(i,y1);puts("Í");
}
for (i=y; i<=y1; i++)
{
gotoxy(x,i); puts("º");
gotoxy(x1,i);puts("º");
}
gotoxy(x,y); puts("É");
gotoxy(x1,y1); puts("¼");
gotoxy(x1,y); puts("»");
gotoxy(x,y1); puts("È");
}

void cuadro2(int x,int y,int x1,int y1)
{
for (i=x; i<=x1; i++)
{
gotoxy(i,y); puts("Í");
gotoxy(i,y1);puts("Í");
}
for (i=y; i<=y1; i++)
{
gotoxy(x,i); puts("²");
gotoxy(x1,i);puts("²");
}
gotoxy(x,y); puts("É");
gotoxy(x1,y1); puts("¼");
gotoxy(x1,y); puts("»");
gotoxy(x,y1); puts("È");
}



void separa(char registro[], char campo[][1024], char separador)
{
char temp[255];
int i,j;

for(i=0,j=0;i<8; i++)
{
campo[i][0]='';
for(j=j;registro[j] && registro[j]!=separador ;j++)
{
sprintf(temp,"%s%c",campo[i],registro[j]);
strcpy(campo[i],temp);
}
j++;
}
}
void altasp()
{
FILE *fp;
char nombre[228],dom[228],colonia[128],cp[28],lugar[128],tel[28],email[128],iniempr[128];
char oa;
do
{
clrscr();
cuadro(1,1,79,24);
centxt("A L T A D E P R O V E E D O R ",2);
//abrir el archivo


fp=fopen("proveedores.txt","a");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo proveedores.txt para a¤adir",13);
getch();
exit(0);
}
//lectura de datos
xyt(5,5,"Nombre de la Empresa : ");
gets(nombre);
xyt(5,7,"Domicilio : ");
gets(dom);
xyt(5,9,"Colonia : ");
gets(colonia);
xyt(5,11,"C.P. : ");
gets(cp);
xyt(5,13,"Ciudad : ");
gets(lugar);
xyt(5,15,"Telefono : ");
gets(tel);
xyt(5,17,"E-mail : ");
gets(email);
xyt(5,19,"Inicio de la Empresa : ");
gets(iniempr);
centxt("¨Desea dar de alta otro Proveedor ? ",21);
oa=getche();
//grabar al archivo
fprintf(fp,"%s|%s|%s|%s|%s|%s|%s|%s|n",nombre,dom,colonia,cp,lugar,tel,email,iniempr);
fclose(fp);
}while(toupper(oa)=='S');
}

//darde baja a los proveedores
void bajasp()
{
FILE *fp,*fp2;
int i,ban;
char linea[1024],ob,borrar[228],registro[8][1024];
char os;

do
{
clrscr();
cuadro(1,1,79,24);
centxt("B A J A S D E P R O V E E D O R",2);
fp=fopen("proveedores.txt","r");
if(fp==NULL)
{
centxt("¨ERROR al abrir el archivo proveedores.txt para lectura",13);
getch();
exit(0);
}
fp2=fopen("temp.txt","w");
if(fp2==NULL)
{
centxt("¨ERROR al abrir el archivo temp.txt para escritura",13);
getch();
exit(0);
}
xyt(5,6,"Introduce el nombre del archivo a borrar : ");
gets(borrar);
ban=0;
while(fgets(linea,1024,fp))
{
separa(linea,registro,'|');
if(!strcmp(borrar,registro[0]))
{
ban=1;
centxt("Registro encontrado : ",8);
for(i=EMPRESA;i<=INIEMPR;i++)
xyt(7,i+10,registro[i]);
centxt("¨Desea eliminarlo? ",19);
ob=getche();
if(toupper(ob)=='S')
{
centxt("Proveedor Eliminado",21);
}
else
{
fprintf(fp2,"%s",linea);
centxt("Proveedor NO eliminado",21);
}
}
else
{
fprintf(fp2,"%s",linea);
}
}
if(ban==0) centxt("Proveedor NO encontrado",13);
//redefinir archivos
fclose(fp);
fclose(fp2);
remove("proveedores.txt");
rename("temp.txt","proveedores.txt");
centxt("¨Desea realizar otra baja?",23);
os=getche();
}while(toupper(os)=='S');
}

//Modificar uno o mas elementos, hasta los que desee,jeje
void modificacionesp()
{
FILE *fp,*fp2;
int i,ban;
char linea[1024],om,modi[228],registro[8][1024],os;
char nombre[228],dom[228],colonia[128],cp[28],lugar[128],tel[28],email[128],iniempr[128];
do
{
clrscr();
cuadro(1,1,79,24);
centxt("M O D I F I C A C I O N E S",2);
fp=fopen("proveedores.txt","r");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo proveedores.txt para lectura",13);
getch();
exit(0);
}
fp2=fopen("temp.txt","w");
if(fp2==NULL)
{
centxt("¨ERROR AL abrir el archivo temp.txt para escritura",13);
getch();
exit(0);
}
xyt(5,6,"Introduce el nombre del Provedor a modificar : ");
gets(modi);
ban=0;
while(fgets(linea,1024,fp))
{
separa(linea,registro,'|');
if(!strcmp(modi,registro[0]))
{
ban=1;
centxt("Registro encontrado : ",8);
for(i=EMPRESA;i<=INIEMPR;i++)
xyt(7,i+10,registro[i]);
centxt("¨Desea modificarlo? ",19);
om=getche();
if(toupper(om)=='S')
{
clrscr();

centxt("P R O C E S O D E M O D I F I C A C I O N",2);
//lectura de datos
fprintf(fp2,"%s|",registro[0]);
xyt(5,5,"Nombre : ");printf(registro[0]);
xyt(5,7,"Domicilio : ");
gets(dom);
xyt(5,9,"Colonia : ");
gets(colonia);
xyt(5,11,"C.P. : ");
gets(cp);
xyt(5,13,"Ciudad : ");
gets(lugar);
xyt(5,15,"Telefono : ");
gets(tel);
xyt(5,17,"E-mail : ");
gets(email);
xyt(5,19,"Inicio de la Empresa : ");
gets(iniempr);
//grabar al archivo
fprintf(fp2,"%s|%s|%s|%s|%s|%s|%s|n",dom,colonia,cp,lugar,tel,email,iniempr);
centxt("Proveedor Modificado",21);
}
else
{
fprintf(fp2,"%s",linea);
centxt("Proveedor NO modificado",21);
}
}
else
{
fprintf(fp2,"%s",linea);
}
}
//redefinir archivos
if(ban==0) centxt("Proveedor NO encontrado",13);
fclose(fp);
fclose(fp2);
remove("proveedores.txt");
rename("temp.txt","proveedores.txt");
centxt("¨Desea realizar otra modificacion?",23);
os=getche();
}while((toupper(os)=='S'));
}


//consulta de proveedores
void consultap()
{
FILE *fp;
int i;
char linea[1024],registro[8][1024];
fp=fopen("proveedores.txt","r");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo proveedores.txt para lectura",13);
getch();
exit(0);
}
while(fgets(linea,1024,fp))
{
clrscr();
cuadro(1,1,79,24);
centxt("C O N S U L T A S D E P R O V E D O R E S ",2);
separa(linea,registro,'|');
xyt(5,5,"Empresa : ");printf(registro[0]);
xyt(5,7,"Domicilio : ");printf(registro[1]);
xyt(5,9,"Colonia : ");printf(registro[2]);
xyt(5,11,"C.P. : ");printf(registro[3]);
xyt(5,13,"Ciudad : ");printf(registro[4]);
xyt(5,15,"Telefono : ");printf(registro[5]);
xyt(5,17,"E-mail : ");printf(registro[6]);
xyt(5,19,"Inicio de la Empresa : ");printf(registro[7]);
centxt("Presione una tecla para continuar",21);
getch();
}
centxt("Se terminaron los registros, presione una tecla para ir al menu",21);
fclose(fp);
}






//Dar de alta un elemento
void altas()
{
FILE *fp;
char marca[10],modelo[10],precio[10],noex[10],des[10];
char kafri;
do
{
clrscr();
cuadro(1,1,79,24);
centxt("A L T A S",2);
//abrir el archivo


fp=fopen("Kafri.txt","a");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo kafri.txt para a¤adir",13);
getch();
exit(0);
}
//lectura de datos
xyt(5,5,"MARCA : ");
gets(marca);
xyt(5,7,"MODELO : ");
gets(modelo);
xyt(5,9,"PRECIO : $");
gets(precio);
xyt(5,11, "DESCRIPCION : ");
gets(des);
xyt(5,13,"NUMEROS EXISTENTES : ");
gets(noex);
centxt("¨Desea dar de alta otro elemento? ",21);
kafri=getche();
//grabar al archivo
fprintf(fp,"%s|%s|%s|%s|n",marca,modelo,precio,des,noex);
fclose(fp);
}while(toupper(kafri)=='S');
}
//DAR DE BAJA UN ARCHIVO EN ESPECIFICO DE UN ARCHIVO
void bajas()
{
FILE *fp,*fp2;
int i,ban;
char linea[1024],ob
,borrar[228],registro[8][1024];
char os;

do
{
clrscr();
cuadro(1,1,79,24);
centxt("B A J A S",2);
fp=fopen("kafri.txt","r");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo kafri.txt para lectura",13);
getch();
exit(0);
}
fp2=fopen("temp.txt","w");
if(fp2==NULL)
{
centxt("¨ERROR AL abrir el archivo temp.txt para escritura",13);
getch();
exit(0);
}
xyt(5,6,"Introduce el nombre del archivo a borrar : ");
gets(borrar);
ban=0;
while(fgets(linea,1024,fp))
{
separa(linea,registro,'|');
if(!strcmp(borrar,registro[0]))
{
ban=1;
centxt("Registro encontrado : ",8);
for(i=MODELO;i<=ARGOLLA;i++)
xyt(7,i+10,registro[i]);
centxt("¨Desea eliminarlo? ",19);
ob=getche();
if(toupper(ob)=='S')
{
centxt("Registro Eliminado",21);
}
else
{
fprintf(fp2,"%s",linea);
centxt("Registro NO eliminado",21);
}
}
else
{
fprintf(fp2,"%s",linea);
}
}
if(ban==0) centxt("Registro NO encontrado",13);
//redefinir archivos
fclose(fp);
fclose(fp2);
remove("kafri.txt");
rename("temp.txt","kafri.txt");
centxt("¨Desea realizar otra baja?",23);
os=getche();
}while(toupper(os)=='S');
}

//MODIFICA LOS ELEMENTOS EXISTENTES EN EL ARCHIVO
void modificaciones()
{
FILE *fp,*fp2;
int i,ban;
char linea[1024],om,modi[228],registro[8][1024],os;
char marca[20],modelo[20],precio[20],noex[20],des[20];
do
{
clrscr();
cuadro(1,1,79,24);
centxt("M O D I F I C A C I O N E S",2);
fp=fopen("kafri.txt","r");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo kafri.txt para lectura",13);
getch();
exit(0);
}
fp2=fopen("temp.txt","w");
if(fp2==NULL)
{
centxt("¨ERROR AL abrir el archivo temp.txt para escritura",13);
getch();
exit(0);
}
xyt(5,6,"Introduce el nombre del archivo a modificar : ");
gets(modi);
ban=0;
while(fgets(linea,1024,fp))
{
separa(linea,registro,'|');
if(!strcmp(modi,registro[0]))
{
ban=1;
centxt("Registro encontrado : ",8);
for(i=MODELO;i<=ARGOLLA;i++)
xyt(7,i+10,registro[i]);
centxt("¨Desea modificarlo? ",19);
om=getche();
if(toupper(om)=='S')
{
clrscr();
// marcosubtitulo();
centxt("P R O C E S O D E M O D I F I C A C I O N",2);
//lectura de datos
fprintf(fp2,"%s|",registro[0]);
xyt(5,5,"MARCA : ");printf(registro[0]);
xyt(5,7,"MODELO : ");
gets(modelo);
xyt(5,9,"PRECIO : $ ");
gets(precio);
xyt(5,11, "DESCRIPCION : ");
gets(des);
xyt(5,13,"NUMEROS EXISTENTES : ");
gets(noex);
//grabar al archivo
fprintf(fp2,"%s|%s|%s|%s|%s|%s|%s|n",marca,modelo,precio,des,noex );
centxt("Registro Modificado",21);
}
else
{
fprintf(fp2,"%s",linea);
centxt("Registro NO modificado",21);
}
}
else
{
fprintf(fp2,"%s",linea);
}
}
//redefinir archivos
if(ban==0) centxt("Registro NO encontrado",13);
fclose(fp);
fclose(fp2);
remove("kafri.txt");
rename("temp.txt","kafri.txt");
centxt("¨Desea realizar otra modificacion?",23);
os=getche();
}while(toupper(os)=='S');
}
//consulta a pantalla, con descripcion de los datos
void consulta()
{
FILE *fp;
int i;
char linea[1024],registro[8][1024];
fp=fopen("kafri.txt","r");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo kafri.txt para lectura",13);
getch();
exit(0);
}
while(fgets(linea,1024,fp))
{
clrscr();
cuadro(1,1,79,24);
centxt("C O N S U L T A S ",2);
separa(linea,registro,'|');
xyt(5,5,"MARCA : ");printf(registro[0]);
xyt(5,7,"MODELO : ");printf(registro[1]);
xyt(5,9,"PRECIO : $");printf(registro[2]);
xyt(5,11,"DESCRIPCION ");printf(registro[3]);
xyt(5,13,"NUMERO EXISTENTES : ");printf(registro[4]);
centxt("Presione una tecla para continuar",21);
getch();
}
centxt("Se terminaron los registros, presione una tecla para ir al menu",21);
fclose(fp);
}

//MOSTRAR
void mostrar()
{
FILE *fp;
int i;
char linea[1024],registro[8][1024];
fp=fopen("kafri.txt","r");
if(fp==NULL)
{
centxt("¨ERROR AL abrir el archivo kafri.txt para lectura",13);
getch();
exit(0);
}
while(fgets(linea,1024,fp))
{
clrscr();
cuadro(1,1,79,24);
centxt("M O S T R A R",2);
separa(linea,registro,'|');
xyt(5,5,"MARCA : ");printf(registro[0]);
xyt(5,7,"MODELO : ");printf(registro[1]);
xyt(5,9,"PRECIO : $");printf(registro[2]);
xyt(5,11,"DESCRIPCION : ");printf(registro[3]);
xyt(5,13,"NUMEROS EXISTENTES : ");printf(registro[4]);
getch();
}
centxt("Se terminaron los registros, presione una tecla para ir al menu",21);
fclose(fp);}



char grilles,ann,bad;
void main()
{
do {

clrscr();
color(25,8);
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro2(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(18,7); puts(" I N T E G R A N T E S ");
gotoxy(25,10); printf(" &#8216;&#8216; ALICIA ANGELICA VAZQUEZ RIOS");
gotoxy(25,12); printf(" &#8216;&#8216; ANA ELENA ESPIRITU ESPINOZA");
gotoxy(25,14); printf(" &#8216;&#8216; CYNTHIA NAYELI I.MEDINA CONCHAS");
gotoxy(19,16); printf ("5'C' INGENIERIA EN SISTEMAS COMPUTACIONALES");
gotoxy(28,18); printf("&#8216;&#8216;&#8216; ANALISIS DE SISTEMAS &#8216;&#8216;&#8216;"); getch();
clrscr();
cuadro2(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
gotoxy(24,8); printf(" M E N é P R I N C I P A L ");
gotoxy(30,11); printf("1.- USUARIO ");
gotoxy(30,14); printf("2.- ADMINISTRADOR ");
gotoxy(30,17); printf("3.- SALIR ");
grilles=getch();

switch (grilles)
{
case '1': {
do{ clrscr();
//Men£ USUARIO
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro(12,4,68,22);//funcion hecha en la libreria para el marco
cuadro(15,6,65,21);
gotoxy(24,8); puts(" U S U A R I O ");
gotoxy(30,11); printf("1.- CAJERO");
gotoxy(30,14); printf("2.- ALMACENISTA");
gotoxy(30,17); printf("3.- SALIR");
ann=getch();
//MENé DE CAJERO
switch (ann)
{
case '1':{do {clrscr();
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(28,8); puts(" C A J E R O ");
gotoxy(33,11); printf("1.- CONSULTAS ");
gotoxy(33,15); printf("2.- SALIR");
bad=getch();
switch(bad)
{
case '1' : {clrscr();
consulta();break;}


}
}while(bad!='2'); break;
} //CASE
case '2': { do {clrscr();
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(24,8); puts(" A L M A C E N I S T A ");
gotoxy(32,11); printf("1.- ALTAS");
gotoxy(32,14); printf("2.- CONSULTAS ");
gotoxy(32,17);printf ("3.- MODIFICAR ");
gotoxy(32,20); printf("4.- SALIR");
bad=getch();
switch(bad)
{
case '1' : {clrscr();
altas();break;}
case '2' : {clrscr();
consulta();break;}
case '3':{clrscr();
modificaciones();break;}

} //switch almacenista
}while(bad!='4');break;
}//CASE ALMACENISTA



} //S 0

}while(ann!='3'); //para cerrar el do

break;

} //CASE


case '2': {
do
{ clrscr();
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(28,8);puts("A D M I N I S T R A D O R");
gotoxy(33,10);puts("1.- ALMACEN");
gotoxy(33,13);puts("2.- PRODUCTOS");
gotoxy(33,16);puts("3.- PROVEDORES");
gotoxy(33,19);puts("4.- SALIR");
ann = getch();
switch (ann)
{
case '1':
{do {clrscr();
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(30,7); puts(" A L M A C E N ");
gotoxy(35,11); printf("1.- ALTAS");
gotoxy(35,13); printf("2.- BAJAS");
gotoxy(35,15); printf ("3.- MODIFICAR");
gotoxy(35,17); printf("4.- SALIR");
bad=getch();

switch(bad)
{
case '1' : {clrscr();
altas();break;}
case '2' : {clrscr();
bajas();
break;}
case '3':{clrscr();
modificaciones();break;}
}//S
}while(bad!='4');break;
} //C1
case '2': {clrscr();
consulta();break;
}//CASE PRODUCTOS

case '3': { {clrscr();
gotoxy(15,5); printf(" Ï Ï J O Y E R I A D' K A F R I Ï Ï ");
cuadro(12,4,68,22);
cuadro(15,6,65,21);
gotoxy(28,7); puts(" P R O V E E D O R E S ");
gotoxy(32,10); printf("1.- CONSULTA PROVEE");
gotoxy(32,12); printf("2.- ALTAS");
gotoxy(32,14); printf("3.- BAJAS");
gotoxy(32,16); printf ("4.- MODIFICAR");
gotoxy(32,18); printf("5.- SALIR");
ann =getch();
switch(ann)
{
case '1':
{clrscr();consultap(); break;}
case '2':
{clrscr();altasp();break;}
case '3':
{clrscr();bajasp();break;}
case '4':
{clrscr();;modificacionesp();break;}

}//switch proveedores
}//do proveedores
while (ann!='5');break;
}//CASE PROVEDORES

}//SWITCH CASE ADMINISTRADOR

}while(ann!='4'); //para cerrar el do

break;

} //C2



} //S



}while(grilles!='3');

}