tengo el siguiente codigo:
Código C++:
Ver original
#include<stdio.h> #include<stdlib.h> #include<conio.h> struct clientData{ int acctNum; char lastName[15]; char firstName[10]; double balance; }; int enterChoice(void); void textFile(FILE *readPtr); void updateRecord(FILE *fPtr); void newRecord(FILE *fPtr); void deleteRecord(FILE *fPtr); int main(void){ FILE *cfPtr; /*puntero al archivo credit.dat*/ int choice; /*eleccion del usuario*/ /*fopen abre el archivo; sale si el archivo no se puede abrir*/ }//end dif 1 else { /*permitir al usuario una acción específica*/ while ((choice=enterChoice())!= 5){ switch(choice){ /*crear archivo de texto de archivo de registro*/ case 1: textFile(cfPtr); break; /*registro de actualización*/ case 2: updateRecord(cfPtr); break; /*crea un registro*/ case 3: newRecord(cfPtr); break; /*elimina registro existente*/ case 4: deleteRecord(cfPtr); break; /*muestra un mnsj x pantalla si el user no selecciona 1opción válida*/ default: break; }//end swicth }//end while }//end else return 0; }//end main /*crear un archivo de texto con formato para impresión*/ void textFile(FILE *readPtr){ FILE *writePtr; //puntero al archivo accounts.txt /*crear clientData con información predeterminada*/ struct clientData client = {0, "", "", 0.0}; /*fopen abre el archivo; sale si el archivo no se puede abrir*/ }//end if else{ "Acct", "Last Name", "Fist Name", "Balance"); /*copiar todos los registros de archivo de acceso aleatorio en un archivo de texto*/ /*escribir el registro sencillo del archivo de acceso aleatorio en un archivo de texto*/ if(client.acctNum !=0){ client.acctNum, client.lastName, client.firstName, client.balance); }//end if }//end while }//end else }//end void textFile /*balance de actualización en el registro*/ void updateRecord(FILE *fPtr){ int account; //número de cuenta double transaction; //monto de la transacción /*crear clientData sin información*/ struct clientData client = {0, "", "", 0.0 }; /*obtener el número de cuenta para actualizar*/ /*mover puntero de archivo para corregir el expediente en el archivo*/ /*leer el registro del archivo*/ /*Error de visualización si la cuenta no existe*/ if(client.acctNum == 0){ }//end fif else{ //registro de actualización client.acctNum, client.lastName, client.firstName, client.balance); /*cantidad solicitud de transacción del usuario*/ client.balance += transaction; //saldo registro al día client.acctNum, client.lastName, client.firstName, client.balance); /*mover puntero de archivo para corregir el expediente en el archivo*/ /*escribe sobre antiguo registro en el archivo*/ }//end else }//end void updateRecord /*elimina un registro existente*/ void deleteRecord(FILE *fPtr){ struct clientData client; //almacenes de registro leída desde el archivo struct clientData blankClient = {0, "", "", 0}; //cliente en blanco int accountNum; //numero de cuenta /*obtener el num de cuenta a eliminar*/ /*mover puntero de archivo para corregir el expediente en el archivo*/ /*leer el registro del archivo*/ /*Error de visualización si la cuenta no existe*/ if(client.acctNum == 0){ }//end if else{ //elimina registro /*mover puntero de archivo para corregir el expediente en el archivo*/ /*sustituir registro existente con registro en blanco*/ }//end else }//end void deleteRecord /*crea e inserta un registro*/ void newRecord(FILE *fPtr){ /*crear clientData sin información*/ struct clientData client = {0, "", "", 0.0}; int accountNum; /*obtener el num de cuenta para crearlo*/ /*mover puntero de archivo para corregir el expediente en el archivo*/ /*Error de visualización si la cuenta ya existe*/ if(client.acctNum != 0){ }//end if else{ //crea registro client.acctNum = accountNum; /*mover puntero de archivo para corregir el expediente en el archivo*/ /*inserta registro en archivo*/ }//end else }//end void newwRecord /*permitir al usuario elegir el menú de entrada*/ int enterChoice(void){ int menuChoice; "1 - store a formatted text file of accounts called\n" " \"accounts.txt\"for printing\n" "2 - update an account\n" "3 - add a new account\n" "4 - delete an account\n" "5 - end program?\n"); return menuChoice; } // end enterChoice
ok en este codigo creo un archivo "credit.dat" la op 1 guardo ordenadamente los mismo pero en "accounts.txt" guardo lo que ingreso en la op 3 o actualizo cuando elimino (en la op 4).
mi problema es:
necesito aumentar en mi programa :
- un procedimiento con el cual creo un nuevo archivo de transacciones.dat (deposito o retiro de dinero)
- unprocedimiento que guarde las transacciones hechas pero que las guarde en un archivo de transacciones.txt
he aumentado el siguiente codigo en mi programa:
Código C++:
Ver original
struct clientData client; struct CData cdata; int accountNum; /*obtener el num de cuenta para crearlo*/ /*mover puntero de archivo para corregir el expediente en el archivo*/ /*Error de visualización si la cuenta ya existe*/ if(client.acctNum == 0){ }//end if else{ client.acctNum, client.firstName, client.lastName, client.balance); client.balance = client.balance + cdata.debito; client.acctNum, client.firstName, client.lastName, client.balance); /*mover puntero de archivo para corregir el expediente en el archivo*/ /*inserta registro en archivo*/ }//end else
cree una nueva estructura
Código C++:
Ver original
struct CData{ double debito; double credito; };
lo que trato de hacer en el segundo codigo es hacer deposito, pero tengo errores al compilar.
si tan amable me yudarian me salvarian de un 0 .
de antemano gracias .