Jump to content
Ivaldo

Trabalho Pratico

Recommended Posts

Ivaldo
import java.util.StringTokenizer;
import java.io.*;
import java.text.DecimalFormat;

public class Mercados
{private String mercado;
private int qntd;
private float preco;
private float total;
private float totaltax;
private float valtotal;
private DecimalFormat moeda;

public Mercados(String m,int qu,float pr)
{mercado=m;
  qntd=qu;
  preco=pr;
  valtotal= valTotal();
  total= calTotal();
  totaltax = calTotalTaxa();
  moeda = new DecimalFormat("###,###.00Mt");
}
  public int getQntd(){return qntd;}
  public float getPreco(){return preco;}
  public float getTotal(){return total;}
  public float getValTotal(){return valtotal;}
  public float getTotalTax(){return totaltax;}
  public float calTotal(){return qntd*(preco);}
  public float calTotalTaxa(){return qntd*(preco+20);}
  public String getMercado(){return mercado;}
  public float valTotal(){return total+totaltax;}

  public String alinhamento(String m,int espaco)//metodo para alinhar
  {
   for (int j=m.length();j<espaco; j++)
    m = m+ " ";
   return m;
  }

  public String toString()
  {return "Mercado:"+alinhamento(mercado,16)+"\tQuantidade:" +qntd+"\tPreco: "+moeda.format(preco);}
}

Share this post


Link to post
Share on other sites
Ivaldo
import java.util.StringTokenizer;
import java.io.*;
import java.text.DecimalFormat;

public class LerMercados
{private Mercados[] mercado;
private int cont;
private int qntd;

public LerMercados()//Metodo Ler Ficheiro
{mercado = new Mercados[100];
 cont=0;
 qntd=0;
}
public void lerFichCriarArray()throws IOException
{StringTokenizer umaCadeia;
 String umaLinha="", merc, nomeFich="dados.txt";
 int qntd;float pr,valr,valg,valt;
 try
 {FileReader fr = new FileReader(nomeFich);
  BufferedReader fichIn= new BufferedReader(fr);
  umaLinha=fichIn.readLine();
  while(umaLinha != null)
  {
   umaCadeia= new StringTokenizer(umaLinha,";");
   merc = umaCadeia.nextToken();
   qntd = Integer.parseInt(umaCadeia.nextToken());
   pr = Float.parseFloat(umaCadeia.nextToken());
   mercado[cont]= new Mercados(merc,qntd,pr);
   cont++;
   umaLinha=fichIn.readLine();
  }
   fichIn.close();
 }catch(FileNotFoundException k){System.out.println("Ficheiro "+nomeFich+" nao encontrado!"); }
   catch(IOException q) {System.out.println(q);}
System.out.println("O Ficheiro Foi Lido Com Sucesso!");
}

 private void mercado(String m,int a,float b)//armazena tudo no array
  { mercado[cont] = new Mercados(m,a,b);
    cont++;
  }

 public float totalGlobal()  //calcula o valor total a receber de todos clientes
   {float total=0;
    DecimalFormat mt = new DecimalFormat("###,######.00MT");
    for(int i=0; i<cont; i++)
    {
     total+=mercado[i].getPreco();
    }
   return total;
   }



public void invocarGravacao(String nFich) throws IOException //invoca o metodo gravar
 { GravarMercados g=new GravarMercados();
   g.gravar(nFich,mercado,qntd);
 }

 public void visualizarTabela()
    {int qntd;
     Mercados a ;
     String merc;
     float preco,valr,valg,valt;
     DecimalFormat mt = new DecimalFormat("###,###.00MT");
     System.out.println ("================================================================================="); //cabeçalho, não se repete, fica fora do ciclo
     System.out.println ("|    Mercado     |    Quantidade    |   Valor       |  Valor       |   Valor    |");
     System.out.println ("|                |                  |   Por Unidade |  Recebido    |   Ganho    |");
     System.out.println ("=================================================================================");
     for(int z=0; z<cont; z++)
     {a = mercado[z];
      merc =a.getMercado();
      qntd = a.getQntd();
      preco = a.getPreco();
      valr = a.getTotal();
      valg = a.getTotalTax();
      String pr = mt.format(preco);
      String est = mt.format(valr);
      String st = mt.format(valg);
      pr=alinhamento(pr,11);
      est=alinhamento(est,10);
      st=alinhamento(st,10);
      System.out.print("|    "+merc+"      |        "+qntd+"         |   "+pr+" |   "+est+" | "+st+" | \n"); //a tabela é preenchida desta forma se for contracto
     }
     System.out.println("==================================================================================");
    }


 public String alinhamento(String m,int espaco)//metodo para alinhar
 {
  for (int j=m.length();j<espaco; j++)
   m = m+ " ";//cria nova string com espaço necessário para alinhar a tablea
  return m;
 }

public String toString()
{String x="";
 for(int a=0;a<cont;a++)
 x += mercado[a]+"\n";//.toString()opcional
 return x;
}

}

Share this post


Link to post
Share on other sites
Ivaldo
import java.util.StringTokenizer;
import java.io.*;
import java.text.DecimalFormat;

public class Mercados1
{private  Mercados [] m; // criar o array
private int cont;//conta o numero de linhas existentes no fixeiro


public Mercados1()
{m = new Mercados[100];}

    public void valorTotal1()
    {int qtdForm;
     float valorForm;
     valorForm=somaValorForm(); //chama o metodo que soma os valores
     qtdForm=somaQtdForm(); //chama o metodo que soma as quantidades
     visual1(qtdForm, valorForm); //passa por paramentro para visualizar
    }

    public void valorTotal2()
    {int qtdInf;
     float valorInf;
     valorInf=somaValorInf(); //chama o metodo que soma os valores
     qtdInf=somaQtdInf(); //chama o metodo que soma as quantidades
     visual2(qtdInf, valorInf);  //passa por paramentro para visualizar
    }


    public void valorTotal3()
    {int qtdSinf;
     float valorSinf;
     valorSinf=somaValorSinf(); //chama o metodo que soma os valores
     qtdSinf=somaQtdSinf(); //chama o metodo que soma as quantidades
     visual3(qtdSinf, valorSinf); //passa por paramentro para visualizar
    }

    public float somaValorForm() //calcula o valor total do Mercado Formal
    {float v=0;
     for(int i=0; i<cont; i++)
      if(m[i].getMercado().equalsIgnoreCase("formal"))
       v+=m[i].getPreco();
     return v;
    }

    public float somaValorInf() //calcula o valor total do Mercado Informal
    {float v=0;
     for(int i=0; i<cont; i++)
      if(m[i].getMercado().equalsIgnoreCase("informal"))
        v+=m[i].getPreco();
     return v;
    }

    public float somaValorSinf() //calcula o valor total Do Mercado Semi-Informal
    {float v=0;
     for(int i=0; i<cont; i++)
      if(m[i].getMercado().equalsIgnoreCase("sinformal"))
       v+=m[i].getPreco();
     return v;
    }

    public int somaQtdForm() // soma Quantidade do Mercado FOrmal
    {int q=0;
     for(int i=0; i<cont; i++)
     if(m[i].getMercado().equalsIgnoreCase("formal"))
      q++;
     return q;
    }

    public int somaQtdInf() // soma Quantidade do Mercado Informal
    {int q=0;
     for(int i=0; i<cont; i++)
      if(m[i].getMercado().equalsIgnoreCase("informal"))
       q++;
     System.out.println(q);
     return q;
    }

    public int somaQtdSinf()//Soma quantidade de Mercado Semi-Informal
    {int q=0;
     for(int i=0; i<cont; i++)
      if(m[i].getMercado().equalsIgnoreCase("sinformal"))
       q++;
     return q;
    }

    public void visual1(int cex,double vex) //visualiza Tabela de quantidade total e valor
    {DecimalFormat metcais = new DecimalFormat("###,######.00MT");
     String svex= metcais.format(vex),c="";
     c+=cex;//converte a quantidade de clientes executivo para string
     System.out.println("*******Formal*******");
     System.out.println("=======================");
     System.out.println("|quantidade|   valor  |");
     System.out.println("=======================");
     svex=alinhamento(svex,10);
     c=alinhamento(c,10);
     System.out.println("|"+c+"|"+svex+"|");
     System.out.println("=======================");
    }

    public void visual2(int cec,double vec)  //visualiza informação sobre economico
    {DecimalFormat metcais = new DecimalFormat("###,######.00MT");
     String svec=metcais.format(vec),c="";
     c+=cec;//coverte double para string
     System.out.println("*******Informal*******");  //cabecalho
     System.out.println("=======================");
     System.out.println("|quantidade|   valor  |");
     System.out.println("=======================");
     svec=alinhamento(svec,10);
     c=alinhamento(c,10);
     System.out.println("|"+c+"|"+svec+"|"); //preechimento da tabela e alinhamento
     System.out.println("=======================");
    }

    public void visual3(int cp, double vp) //visualiza informação sobre pre-pago
    {DecimalFormat metcais = new DecimalFormat("###,######.00MT");
     String svp =metcais.format(vp),c="";
     c+=cp;//coverte double para string
     System.out.println("*****Semi-Informal*****"); //cabecalho
     System.out.println("=======================");
     System.out.println("|quantidade|   valor  |");
     System.out.println("=======================");
     svp=alinhamento(svp,10);
     c=alinhamento(c,10);
     System.out.println("|"+c+"|"+svp+"|"); //preechimento da tabela e alinhamento
     System.out.println("=======================");
    }


    public String alinhamento(String m,int espaco)//metodo para alinhar
  {
   for (int j=m.length();j<espaco; j++)
    m = m+ " ";//cria nova string com espaço necessário para alinhar a tablea
   return m;
  }

}

Share this post


Link to post
Share on other sites
Ivaldo

Problema:ele nao esta a receber os valores  nas tabelas de cada mercado(formal,informal,semi informal) esta dando ,00Mt

Espero por uma Ajuda...

Share this post


Link to post
Share on other sites
brunoais

Não sei se tens noção mas... Ver esse código dessa maneira é demasiado complicado para um utilizador médio (e avançado) deste forum.

Só com essa ajuda q deste não vou, nem a um quarto do caminho para saber como resolver o teu problema. Nem penses que eu vou tentar perceber como é que o teu código todo funciona. Se não nos ajudas a ajudar-te esquece, vai pedir ajuda noutro local.

3x post? Estás a gozar, não? Isso tudo devia de caber em um único post.

java.util.StringTokenizer?

Isso já não existe! Usa algo que exista!

Não tem indentação que se perceba! Não segue as recomendações de código legível... Assim é quase impossível de te ajudar.

Se queres ajuda minha resolve todos os problemas que assinalei!


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
brunoais
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
Só está lá mm por motivos de compatibilidade

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
luis7

Começa por indentar bem o código, coloca isto sem espaços no teu código:

[ code = java ][ / code ]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.