Tretas e Cenas

Tretas e Cenas


Onde escrevo as minhas tretas. Tão depressa estou a escrever sobre algo poético como a seguir escrevo só para não me esquecer.

Janeiro 2011
S T Q Q S S D
« Dez   Fev »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Categorias


“Vending Machine” – 3 de ∞ | Report de Vendas

Pedro FonsecaPedro Fonseca

Uma das funcionalidades pedidas no enunciado é que o programa mostre um report de vendas desde que a máquina está ligada. Esta opção é a numero 7 do menu de gestão.


A função que vos trago hoje é a de report de vendas, ou seja, uma tabela igual a esta:



Para que se use a função que vou demonstrar tem de estar declarado duas variáveis globais, eu pelo menos usei duas.

A primeira será a que vai guardar os produtos que foram vendidos desde o arranque da máquina e a outra será a data e hora que ela arrancou:


static Integer[][][] produtosVendidos = new Integer[5][4][1];
static String dataArranque = "";


A primeira vou iniciar a zeros e a segunda vou iniciar com o seguinte código:


SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
Date newDate = new Date();
String newdate = dateformat.format(newDate);
dataArranque=newdate;


De seguida tenho de garantir no código que sempre que se vende um produto é registado no array produtosVendidos com a quantidade vendida. Após isso, basta usar a seguinte função para fazer parte da opção 7 do menu de gestão.


	private static String Produtos_Tabela_Geral_Vendidos() {
		String qnt,letra,texto="";
		double ValorPrdVendidos=0;
		int qntPrdVendidos=0,qnt2=0;;
		double preco;
		System.out.println("Estatísticas de vendas do período que se iniciou a "+dataArranque+"");
		System.out.println("+-------------------------------------------------+");
		System.out.println("|     a          b          c          d          |");
		System.out.println("+---+---------------------------------------------+");
		for(int i=1;i<=(linhas-4);i++){
			System.out.print("| "+i+" | ");
			for(int j=0;j<(colunas-1);j++){
				letra=produtos[(i - 1)][j][0].substring(0, 1);
				qnt = produtos[(i - 1)][j][1];
				preco =Double.valueOf(produtos[(i - 1)][j][2]);
				System.out.print(""+letra+""+qnt+"    ");
				System.out.print(""+preco+" ");
				System.out.print(" ");
			}
			System.out.println("|");
			System.out.print("|u/€| ");

			for(int j=0;j<(colunas-1);j++){

					preco =Double.valueOf(produtos[(i - 1)][j][2]);
					qnt2 =Integer.valueOf(produtosVendidos[(i - 1)][j][0]);
					qntPrdVendidos=qntPrdVendidos+produtosVendidos[(i - 1)][j][0];
					ValorPrdVendidos=ValorPrdVendidos+(qnt2 * preco);
					System.out.print(""+produtosVendidos[(i - 1)][j][0]+"");
					System.out.print("     ");
					System.out.print(""+(qnt2 * preco)+" ");
					System.out.print(" ");
			}
			System.out.println("|");
			System.out.print("|   | ");
			for(int j=0;j<(colunas-1);j++){
				if(produtos[(i - 1)][j][0].length()>11){
					System.out.print(""+produtos[(i - 1)][j][0].substring(0, 11)+"");
				}else{
					System.out.print(""+produtos[(i - 1)][j][0]+"");
					 for(int k=produtos[(i - 1)][j][0].length();k<11;k++){
						 System.out.print(" ");
					 }
				}

			}
			System.out.println("|");
			if(i<(linhas-4)){
			System.out.println("+~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+");
			}

		}
		System.out.println("+---+---------------------------------------------+");
		System.out.println(" ");
		System.out.println("Valor das vendas neste período: "+ValorPrdVendidos+"€ ");
		System.out.println("Total de produtos vendidos: "+qntPrdVendidos+" ");
		System.out.println(" ");
		return texto;
	}

Esta pode não ser a forma mais eficiente/bonita/etc que se consiga arranjar, mas foi assim que fiz. Agora já têm uma das partes que vale mais na tabela classificativa do trabalho, toca a fazer o resto.  🙂

Sou licenciado em Sistemas de informação na Universidade Lusófona, gosto de tecnologia, programação, desportos radicais, bicicletas e motas. Adoro o Sistema Android e começo a gostar de Linux. E ainda tenho a mania que sei cozinhar.

Comentários 4
  • Rafael Pato
    Posted on

    Rafael Pato Rafael Pato

    Responder Autor

    Para o que é até é pouco código 🙄

    Tem uma interface muito bonita 😛

    Cumps,
    (MetalWeirdo)


  • Java
    Posted on

    Java Java

    Responder Autor

    Olá, tu consegues imprimir isso para o ficheiro de relatório???


    • PF
      Posted on

      PF PF

      Responder Autor

      Consigo, mas essa só mostra para ecrã, para ficheiro tem de levar umas modificações.


  • Java
    Posted on

    Java Java

    Responder Autor

    Eu estou colocando a informação dentro de um arraylist e depois imprimo o array