O enunciado da pergunta está em anexo.
Eu fiz o básico, mas to me complicando no resto:Eu não consegui entender bem esse assunto, então não resolvam para mim e sim me auxiliem nas dúvidas.
Esse CreateTextFile faz as transferencias. (trans.txt), como ficaria o arquivo do registro mestre?
AccountRecord.java
[code]
public class AccountRecord {
private int account;
private String firstName;
private String lastName;
private double balance;
public AccountRecord(){
this(0,"","",0.0); //chama o construtor com quatro argumentos
}
//inicializa um registro
public AccountRecord(int acct, String first, String last, double bal ){
setAccount(acct);
setFirstName(first);
setLastName(last);
setBalance(bal);
}
//configura numero conta
public void setAccount(int acct){
account = acct;
}
public int getAccount(){
return account;
}
public void setFirstName(String first){
firstName = first;
}
public String getFirstName(){
return firstName;
}
public void setLastName(String last){
lastName = last;
}
public String getLastName(){
return lastName;
}
public void setBalance(double bal){
balance = bal;
}
public double getBalance(){
return balance;
}
public double combine(TransactionRecord object){
return this.balance + object.getAmount();
}
}[/code]
TransactionRecord.java
public class TransactionRecord {
private int accountNumber;
private double amount;
public void setAccountNumber(int acc){
this.accountNumber = acc;
}
public int getAccountNumber(){
return accountNumber;
}
public void setAmount(double money){
this.amount = money;
}
public double getAmount(){
return amount;
}
}
CreateTextFile.java
import java.io.FileNotFoundException;
import java.lang.SecurityException;
import java.util.Formatter;
import java.util.FormatterClosedException;
import java.util.NoSuchElementException;
import java.util.Scanner;
public class CreateTextFile {
private Formatter output;
public void openFile(){
try{
output = new Formatter("trans.txt");
}
catch(SecurityException securityException){
System.err.println("Você não tem acesso a esse arquivo");
System.exit(1);
}
catch(FileNotFoundException filesNotFoundException){
System.err.println("Erro durante a criação do arquivo.");
System.exit(1);
}
}//fim do método openFile
public void addRecords(){
AccountRecord record = new AccountRecord();
Scanner input = new Scanner(System.in);
System.out.printf("%s\n%s\n%s\n%s", "Para terminar a entrada,digite o indicador do final do arquivo",
"quando você for dar um entrada." ,
"Em UNIX/LINUX/Mac OS X digite <ctrl>d então pressione Enter",
"Em Windows digite <ctrl>z então Pressione Enter.\n\n");
System.out.printf("%s\n", "Entre com um número de conta (> 0),nome,sobrenome e saldo: ");
while(input.hasNext()){
try{
//recupera os dados para a saída
record.setAccount(input.nextInt());
record.setFirstName(input.next());
record.setLastName(input.next());
record.setBalance(input.nextDouble());
if(record.getAccount() > 0){
//grava um novo arquivo
output.format("%d %s %s %.2f\n", record.getAccount(), record.getFirstName(), record.getLastName(), record.getBalance());
}//fim do if
else{
System.out.println("Número da Conta precisa ser maior que 0");
}
}//fim do try
catch(FormatterClosedException formatterClosedException){
System.err.println("Erro durante a escrita no arquivo.");
return;
}//fim do catch
catch(NoSuchElementException elementException){
System.err.println("\nEntrada inválida.Por favor tente de novo.");
input.nextLine(); //descarta entrada do usuário
}//fim do catch
System.out.printf("%s %s\n%s", "Entre com um número de conta (> 0),nome,sobrenome e saldo: ", " ?");
}//fim do while
}//fim do método addRecords
//fecha o arquivo
public void closeFile(){
if(output != null)
output.close();
}
}