lo sigueinte es q me mandaron a hacer un software para mi examen final el cual manejara toda la informacion de los clientes de una coorporacionde ahorros los cuales son crear dos archivos clientes y movimiento, reañizar aperturas de cuenta, modificar cleintes, eliminar clientes,realizar consignacion, reallizar retiros, listado general de clientes,consulta especifica de clientes y salir.
los registros q se guardan el el archivo clientes son numero de cuenta, nombre, cedula, tipo de cuenta,direccion del cliente telefonoy saldo.los registrso para el archivo movimiento son numero de cuenta, tipo de transaccion y monto. el numero de cuenta se maneja en los ados archivos movimiento y clientes. si se elimina una cuenta del archivo cleinte tambien debe borrarse en archivo movimeinto. si se realiza la consignacion esta debe guardarse en movimiento y actualizar en cliente. si retiro debe guardar en movimiento y actualizar en cleinte y no se puede retirar mas del saldo disponible.. lo unico q no eh dado para hacer es el palnteamiento de consignar y retiro. necesit su asesoria exacta para plantearlos gracias
este es el programa q llevo hecho haste el momento
Código
struct { char numcuenta[12]; char numced [10]; char nomcliente[50]; char tcuenta[12]; char direcliente[30]; char telcliente[12]; float saldo; }datos; struct { char numcuenta[12]; char tipotran[12]; float monto; }movim; //************************************************************************** int id1,id2; //**************************************************************************** void validar_crear1(); void crear1(); void validar_crear2(); void crear2(); void ingresar(); void modificar(); void modificar2(char auxc1[20],char auxc2[20]); void eliminar(); void eliminar2(char auxc[20]); void consignar(); void retirar(); void listar(); void consultar(); void menu(); int buscar(char datos[20]); //********************************************************************************** void main() { menu(); } //************************************************************************************* void menu() { int op; do { clrscr(); gotoxy(23,5);printf("**<<<MENU PRINCIPAL>>>**"); gotoxy(23,7);printf("1. CREAR ARCHIVO CLIENTES"); gotoxy(23,8);printf("2. CREAR ARCHIVO MOVIMIENTOS"); gotoxy(23,9);printf("3. REALIZAR APERTURA DE CUENTAS"); gotoxy(23,11);printf("4. MODIFICAR DATOS DE CLIENTES"); gotoxy(23,12);printf("5. ELIMINAR DATOS DE CLIENTES"); gotoxy(23,13);printf("6. REALIZAR CONSIGNACIONES"); gotoxy(23,14);printf("7. REALIZAR RETIROS"); gotoxy(23,16);printf("8. LISTADO GENERAL DE CLIENTES"); gotoxy(23,17);printf("9. CONSULTA ESPECIFICA DE CLIENTES"); gotoxy(23,18);printf("10. SALIR DEL PROGRAMA"); gotoxy(23,19);printf(" SELECCIONE OPCION DE [1-10]..."); switch (op) { case 1:validar_crear1(); break; case 2:validar_crear2(); break; case 3:ingresar(); break; case 4:modificar(); break; case 5:eliminar(); break; case 6:consignar(); break; case 7:retirar(); break; case 8:listar(); break; case 9:consultar(); break; default: gotoxy(22,22); } } while (op!=10); } //***************************************************************************************** void validar_crear1() { char ct; id1=_open("c:\\clientes.txt",O_RDONLY); if (id1!=-1) {gotoxy(25,18);printf("EL ARCHIVO CLIENTES YA EXISTE "); gotoxy(25,19);printf(" DESEA CREARLO NUEVAMENTE[S/N]... "); if (ct=='S') {crear1(); } } else {crear1(); } } //******************************************************************************************************** void crear1() { id1=_creat("c:\\clientes.txt",0); clrscr(); if(id1==-1) } else _close(id1); } } //********************************************************************************************* void validar_crear2() { char rp; id2=_open("c:\\movimientos.txt",O_RDONLY); if (id2!=-1) {gotoxy(25,18);printf("EL ARCHIVO MOVIMIENTOS YA EXISTE "); gotoxy(25,19);printf(" DESEA CREARLO NUEVAMENTE[S/N]... "); if (rp=='S') {crearm(); } } else {crear2(); } } //***************************************************************************************************** void crear2() { id2=_creat("c:\\movimientos.txt",0); clrscr(); if(id2==-1) } else _close(id2); } } //********************************************************************************************* void ingresar() { char aux[20],sg='S'; int c,bytes; clrscr(); id1=_open("c:\\clientes.txt",O_RDWR); if(id1==-1) } else {while (sg=='S') { clrscr(); c=buscar(aux); if(c!=0) } else lseek (id1,0,SEEK_END); bytes=_write(id1,&datos,sizeof(datos)); if(bytes==-1) } else } } } _close(id1); } } //******************************************************************************************************* void modificar() { char aux1[20], aux2[20],sg='S'; int c,bytes,op1; id1=_open("c:\\clientes.txt",O_RDWR); if(id1==-1) {gotoxy(20,10);printf(" IMPOSIBLE ABRIR EL ARCHIVO CLIENTES...!"); } else {while(sg=='S') {clrscr(); gotoxy(10,4);printf(" DIGITE EL NUMERO DE LA CUENTA A MODIFICAR..."); c=buscar(aux1); if(c==0) {gotoxy(10,6);printf("EL NUMERO DE LA CUENTA A MODIFICAR NO EXISTE...!"); } else {gotoxy(10,7);printf("NUMERO DE CUENTA DEL CLIENTE...%s",datos.numcuenta); gotoxy(10,7);printf("NOMBRE DEL CLIENTE...%s",datos.nomcliente); gotoxy(10,8);printf("TIPO DE CUENTA...%s",datos.tcuenta); gotoxy(10,9);printf("DIRECCION DEL CLIENTE...%s",datos.direcliente); gotoxy(10,10);printf("TELEFONO DEL CLIENTE...%s",datos.telcliente); gotoxy(10,11);printf("-----------------"); gotoxy(10,12);printf("1.NUMERO DE CUENTA DEL CLIENTE..."); gotoxy(10,13);printf("2.NOMBRE DEL CLIENTE..."); gotoxy(10,14);printf("3.TIPO DE CUENTA..."); gotoxy(10,15);printf("4.DIRECCION DEL CLIENTE..."); gotoxy(10,16);printf("5.TELEFONO DEL CLIENTE..."); gotoxy(10,17);printf("6.SALDO DEL CLIENTE..."); gotoxy(10,18);printf(" SELECCIONE LA OPCION A MODIFICAR DE [1-6]..."); switch(op1) {case 1:gotoxy(10,15);printf("DIGITE EL NUMERO DE CUENTA ACTUAL:%s",datos.numcuenta); gotoxy(10,16);printf(" DIGITE EL NUEVO NUMERO DE CUENTA..."); c=buscar(aux2); if(c!=0) {gotoxy(10,17);printf("EL NUMERO DE CUENTA YA EXISTE...!"); } else {c=buscar(aux1); } modificarm(aux1,aux2); break; case 2: gotoxy(10,15);printf("NOMBRE DEL CLIENTE...%s",datos.nomcliente); gotoxy(10,16);printf(" DIGITE EL NUEVO NOMBRE..."); break; case 3:gotoxy(10,15);printf("TIPO DE CUENTA...%s",datos.tcuenta); gotoxy(10,16);printf("DIDITE SU NUEVO TIPO DE CUENTA..."); break; case 4:gotoxy(10,15);printf("DIRECCION DEL CLIENTE...%s",datos.direcliente); gotoxy(10,16);printf(" DIGITE SU NUEVA DIRECCION..."); case 5:gotoxy(10,15);printf("TELEFONO DEL CLIENTE...%s",datos.telcliente); gotoxy(10,16);printf(" DIGITE SU NUEVO NUMERO DE TELEFONO..."); case 6:gotoxy(10,15);printf("SALDO DEL CLIENTE...%s",datos.saldo); gotoxy(10,16);printf(" DIGITE EL NUEVO SALDO..."); break; default: gotoxy(10,15);printf("OPCION ERRADA...!"); op1=0; break; } if(op1!=0) {bytes=_write(id1,&datos,sizeof(datos)); if(bytes==-1) {gotoxy(10,19);printf("IMPOSIBLE MODIFICAR EL ARCHIVO...!"); } else {gotoxy(10,19);printf("DATOS MODIFICADOS...!"); } } } gotoxy(10,20);printf("DESEA MODIFICAR MAS DATOS[S/N]..."); } } _close(id1); } //******************************************************************************************************* void modificar2(char auxc1[20], char auxc2[20]) { int bytes1,bytes2; id2=_open("c:\\movimientos.txt",O_RDWR); if(id2==-1) { gotoxy(20,10);printf("IMPOSIBLE ABRIR EL ARCHIVO MOVIMIENTOS...!"); } else { while (!eof(id2)) { bytes1=_read(id2,&movim,sizeof(movim)); if(bytes1==-1) { gotoxy(10,9);printf("IMPOSIBLE LEER EL ARCHIVO MOVIMIENTOS...!"); } else bytes2=_write(id2,&movim,sizeof(movim)); if(bytes2==-1) { gotoxy(10,19);printf("IMPOSIBLE MODIFICAR EL ARCHIVO MOVIMIENTOS...!"); } } } } } _close(id2); } //*********************************************************************************************** void eliminar() { char aux[20],sg='S'; int x,bytes1,bytes2,id3; while (sg=='S') { clrscr(); id1=_open("c:\\clientes.txt",O_RDWR); if(id1==-1) {gotoxy(20,10);printf(" IMPOSIBLE ABRIR EL ARCHIVO CLIENTES...!"); } else {gotoxy(10,10);printf(" DIGITE EL NUMERO DE LA CUENTA A ELIMINAR..."); x=buscar(aux); if(x==0) {gotoxy(10,11);printf("EL NUMERO DE LA CUENTA A ELIMINAR NO EXISTE...!"); } else {gotoxy(10,11);printf("NUMERO DE LA CEDULA...%s",datos.numced); gotoxy(10,12);printf("NOMBRE DEL CLIENTE...%s",datos.nomcliente); gotoxy(10,13);printf("TIPO DE CUENTA...%s",datos.tcuenta); gotoxy(10,14);printf("DIRECCION DEL CLIENTE...%s",datos.direcliente); gotoxy(10,15);printf("TELEFONO DEL CLIENTE...%s",datos.telcliente); gotoxy(10,16);printf("SALDO DEL CLIENTE...%f",datos.saldo); id3=_creat("c:\\auxi.txt",0); if(id3==-1) {clrscr(); gotoxy(10,11);printf(" IMPOSIBLE ABRIR EL ARCHIVO AUXILIAR CLIENTES...!"); } else {_close(id3); } id3=_open("c:\\auxi.txt",O_RDWR); lseek(id1,0,SEEK_SET); while(!eof(id1)) { bytes1=_read(id1,&datos,sizeof(datos)); if(bytes1==-1) {gotoxy(10,9);printf(" IMPOSIBLE LEER EL ARCHIVO CLIENTES..!"); } else { bytes2=_write(id3,&datos,sizeof(datos)); if(bytes2==-1) { gotoxy(10,11);printf("IMPOSIBLE GRABAR EL ARCHIVO CLIENTES"); } } } } _close(id3); _close(id1); unlink("c:\\clientes.txt"); } } gotoxy(10,15);printf("DESEA ELIMINAR MAS DATOS[S/N]..."); } } //*************************************************************************************** void eliminar2(char auxc[20]) { int x,bytes1,bytes2,id4; id2=_open("c:\\movimientos.txt",O_RDWR); if(id2==-1) { gotoxy(20,10);printf(" IMPOSIBLE ABRIR EL ARCHIVO MOVIMIENTOS...!"); } else { id4=_creat("c:\\auxi2.txt",0); if(id4==-1) { clrscr(); gotoxy(10,11);printf(" IMPOSIBLE ABRIR EL ARCHIVO AUXILIAR MOVIMIENTOS...!"); } else { _close(id4); } id4=_open("c:\\auxi2.txt",O_RDWR); lseek(id2,0,SEEK_SET); while(!eof(id2)) { bytes1=_read(id2,&movim,sizeof(movim)); if(bytes1==-1) { gotoxy(10,9);printf(" IMPOSIBLE LEER EL ARCHIVO MOVIMIENTOS..!"); } else { bytes2=_write(id4,&movim,sizeof(movim)); if(bytes2==-1) { gotoxy(10,11);printf("IMPOSIBLE GRABAR EL ARCHIVO CLIENTES"); } } } } _close(id4); _close(id2); unlink("c:\\movimientos.txt"); } } //************************************************************************************************* void consignar() { } //****************************************************************************************** void retirar() { } //***************************************************************************************** void listar() { int fila,bytes; clrscr(); gotoxy(28,3);printf("**<<LISTADO DE CLIENTES>>**"); gotoxy(10,5);printf("NUMERO DE LA CUENTA"); gotoxy(20,5);printf("NUMERO DE LA CEDULA"); gotoxy(30,5);printf("NOMBRE DEL CLIENTE"); gotoxy(40,5);printf("TIPO DE CUENTA"); gotoxy(50,5);printf("DIRECCION DEL CLIENTE"); gotoxy(60,5);printf("TELEFONO DEL CLIENTE"); gotoxy(70,5);printf("SALDO DEL CLIENTE"); id1=_open("c:\\clientes.txt",O_RDONLY); if(id1==-1) {gotoxy(20,10);printf("IMPOSIBLE ABRIR EL ARCHIVO CLIENTES...!"); } else {lseek(id1,0,SEEK_SET); fila=6; while(!eof(id1)) { bytes=_read(id1,&datos,sizeof(datos)); if (bytes==-1) {gotoxy(10,9);printf("IMPOSIBLE LEER EL ARCHIVO CLIENTES...!"); } else fila++; } } } _close(id1); } //*************************************************************************************************** void consultar() { char aux[20],sg='S'; int x; clrscr(); id1=_open("c:\\clientes.txt",O_RDWR); if(id1==-1) { gotoxy(20,10);printf("IMPOSIBLE ABRIR EL ARCHIVO CLIENTES...!"); } else {while(sg=='S') {clrscr(); gotoxy(10,11);printf(" DIGITE EL NUMERO DE CUENTA A CONSULTAR...!"); x=buscar(aux); if(x==0) {gotoxy(10,11);printf("EL NUMERO DE CUENTA NO EXISTE...!"); } else {gotoxy(10,11);printf("NUMERO DE LA CEDULA...%s",datos.numced); gotoxy(10,12);printf("NOMBRE DEL CLIENTE...%s",datos.nomcliente); gotoxy(10,13);printf("TIPO DE CUENTA...%s",datos.tcuenta); gotoxy(10,14);printf("DIRECCION DEL CLIENTE...%s",datos.direcliente); gotoxy(10,15);printf("TELEFONO DEL CLIENTE...%s",datos.telcliente); gotoxy(10,16);printf("SALDO...%f",datos.saldo); } gotoxy(10,18);printf("DESEA CONSULTAR MAS DATOS[S/N]..."); } } _close(id1); } //*********************************************************************************************************** int buscar(char dato[20]) {int bytes,sw=0,inc=0; lseek(id1,0,SEEK_SET); while (!eof(id1)) {bytes=_read(id1,&datos,sizeof(datos)); if(bytes==-1) {gotoxy(10,9);printf("IMPOSIBLE LEER EL ARCHIVO CLIENTES...!"); } else { inc++; {sw=1; break; } } } lseek(id1,(long)((inc-1)*(sizeof(datos))),SEEK_SET); return sw; } //**************************************************************************************