Advertisement
ivandrofly

eshop-beta

Nov 28th, 2019
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.75 KB | None | 0 0
  1. package trabalho2;
  2. // package ShopEST;
  3. import java.util.Scanner;
  4.  
  5. public class T2
  6.  {
  7.  
  8.     public static void main(String[] args)
  9.     {
  10.         Scanner teclado=new Scanner(System.in);
  11.         int tamMax=100;
  12.         String [] nome= new String[tamMax];
  13.         Double [] quantidade=new Double[tamMax];
  14.         Double [] preco =new Double[tamMax];
  15.         Boolean [] feito = new Boolean[tamMax];
  16.  
  17.         int nItens=0;
  18.         double soma=0;
  19.         int posicao=0;
  20.  
  21.         char menuPrincipal;
  22.         do{
  23.             System.out.println("(E)ditar lista");
  24.             System.out.println("(F)azer compras");
  25.             System.out.println("Fazer (C)ontas");
  26.             System.out.println("(S)air");
  27.            
  28.             menuPrincipal = teclado.next().charAt(0);
  29.  
  30.             teclado.nextLine();
  31.  
  32.             switch(menuPrincipal){
  33.             case'E':                  /* Op�ao Editar*/
  34.             case'e':
  35.             {      
  36.                 char menuEditar;  
  37.                 do
  38.                 {  
  39.                     System.out.printf("\n %-10s%-10s%-15s%-10s%-10s \n"," ","Item","quantidade","preco","feito");
  40.  
  41.                     for(int i=0; i<nItens;i++) {
  42.                         if(feito[i]==true) {
  43.                             System.out.printf("\n %-10d%-10s%-15.2f%-10.2f%-10s \n",i,nome[i],quantidade[i],preco[i],"X");
  44.                           }
  45.                         else
  46.                           {
  47.                             System.out.printf("\n %-10d%-10s%-15.2f%-10.2f%-10s \n",i,nome[i],quantidade[i],preco[i]," ");
  48.                           }
  49.                     }
  50.                     System.out.println ("(I)nserir item no fim da lista");
  51.                     System.out.println("Inserir item na (p)osi��o n da lista");
  52.                     System.out.println("(A)pagar �ltimo item inserido na lista");
  53.                     System.out.println("Apagar item na posi��o (n) da lista");
  54.                     System.out.println("Apaga(r) itens da posi��o m � n da lista");
  55.                     System.out.println("(L)istar todos os itens");
  56.                     System.out.println("(V)oltar");
  57.                     menuEditar = teclado.next().charAt(0);
  58.  
  59.                     teclado.nextLine();
  60.  
  61.                     switch(menuEditar)
  62.                     {
  63.  
  64.                     case'I':          /* Inserir lista*/
  65.                     case'i':
  66.                               //Quando os itens introduzidos for igual ou maior que o tamanho maximo aparecera "lista cheia"
  67.                         if(nItens==tamMax)
  68.                         {
  69.                             System.out.println("Lista cheia.");
  70.                         }
  71.                         else //sen�o for o caso pode continuar a inserir
  72.                         {
  73.                             System.out.println("\nInsira o nome do item: ");
  74.                             nome[nItens]= teclado.next();
  75.                             System.out.println("Insira a quantidade: ");
  76.                             quantidade[nItens]= teclado.nextDouble();
  77.                             System.out.println("Insira o pre�o: ");
  78.                             preco[nItens]= teclado.nextDouble();
  79.                            
  80.                             nItens++;
  81.  
  82.                             System.out.println("Novo item adicionado na list!");
  83.                         }
  84.  
  85.                          teclado.next();
  86.                         break;
  87.  
  88.                     case'P':          /*FALTA*/   /* Inserir item na posi�ao*/
  89.                     case'p':
  90.                         // guardar os valores da posicao
  91.                         String [] nomePos= new String[tamMax];
  92.                         Double [] quantidadePos= new Double[tamMax];
  93.                         Double [] precoPos= new Double[tamMax];
  94.  
  95.                         if(nItens==tamMax)
  96.                         {
  97.                             System.out.println("Lista cheia.");
  98.                         }
  99.                         else {
  100.  
  101.                             //criar uma vari�vel para cada item da lista e guardar
  102.                             System.out.println("\nInsira a posicao: ");
  103.                             posicao=teclado.nextInt();
  104.  
  105.                             if(posicao>nItens) {
  106.                                 //a posi��o inserida dos itens n�o vao pertencer � lista
  107.                                 System.out.println("Posicao Errada");
  108.                         break;
  109.                             }
  110.                             System.out.println("\nInsira o nome do item: ");
  111.                             String nomeitem= teclado.next();
  112.  
  113.                             System.out.println("Insira a quantidade: ");
  114.                             double quantidadeitem= teclado.nextDouble();
  115.  
  116.                             System.out.println("Insira o pre�o: ");
  117.                             double precoitem= teclado.nextDouble();
  118.  
  119.  
  120.                             for(int i=0;i<nItens;i++){
  121.                                
  122.                                 if(i<posicao) {      //posi��es anterior alterada mantem se
  123.                                    
  124.                                     nomePos[i]=nome[i];
  125.                                     quantidadePos[i]=quantidade[i];
  126.                                     precoPos[i]=preco[i];
  127.  
  128.                                 } else if(i==posicao) {       //a posi��o que vai ser alterado � substitu�da pelo novo item
  129.                                
  130.                                     nomePos[i]=nomeitem;
  131.                                     quantidadePos[i]=quantidadeitem;
  132.                                     precoPos[i]=precoitem;
  133.                                     nItens=0;
  134.  
  135.                                 } else {  
  136.                                    
  137.                                     nomePos[i]=nome[i-1];
  138.                                     quantidadePos[i]=quantidade[i-1];
  139.                                     precoPos[i]=preco[i-1];
  140.                                 }
  141.                             }
  142.  
  143.                             //vai igualar a primeira posicao aos alterados
  144.                             nome=nomePos;
  145.                             quantidade=quantidadePos;
  146.                             preco=precoPos;
  147.                            
  148.                         }
  149.                         break;
  150.                        
  151.  
  152.                     case'A':          /* apagar ultimo da lista*/
  153.                     case'a':        
  154.                         if (nItens > 0){
  155.                             nome[nItens - 1] = null;
  156.                             quantidade[nItens - 1] = -1;
  157.                             preco[nItens - 1] = -1;
  158.                         }
  159.                         break;
  160.  
  161.                     case'N':            /* apagar lista na posi�ao*/
  162.                     case'n':
  163.                    
  164.                     System.out.println("Entra a posicao: ");
  165.                     posicao = teclado.next().charAt(0);
  166.                     if (posicao >= 0 && posicao < nItens){
  167.                         nome[posicao] = null;
  168.                         quantidade[posicao] = -1;
  169.                         preco[posicao] = -1;
  170.                     }
  171.                     else{
  172.                         System.out.println("Posicao invalida!");
  173.                     }
  174.                         break;
  175.  
  176.                     case'R':         /* listar todos os itens*/
  177.                     case'r':
  178.                         System.out.printf("%-10s%-10s%-10s%-10s", "Itens", "Nome", "Quantidade", "Comparado");
  179.                         for (int i = 0; i < itemCount; i++)
  180.                         {
  181.                             // Position      | Name              | Quantidate            | x or ""
  182.                             System.out.printf("%-10s%-10s%-10s%-10s%-10s",i, name[i], quanto[i], preco[i], (feito[i] ? "x" : ""));
  183.                         }
  184.                         break;
  185.  
  186.                     case'L':         /* Inserir lista*/
  187.                     case'l':
  188.                         break;
  189.  
  190.                     case'V':          /* Voltar ao menu principal*/
  191.                     case'v':
  192.                         break;
  193.                        
  194.                         default:
  195.                             System.out.println("op�ao Errada");
  196.                             break;
  197.                     }
  198.  
  199.  
  200.                 }while(menuEditar !='V'&& menuEditar !='v' );
  201.             }break;
  202.  
  203.  
  204.             case'F':          /* Fazer Compras*/
  205.             case'f':
  206.             {  
  207.                 char menuComprar;  
  208.                 do{  
  209.                     System.out.println("(M)arcar primeiro item por comprar");
  210.                     System.out.println("(D)esmarcar primeiro item comprado");
  211.                     System.out.println("Trocar estado por (n)ome");
  212.                     System.out.println("Trocar estado por (p)osi��o");
  213.                     System.out.println("(L)istar");
  214.                     System.out.println("(V)oltar");
  215.  
  216.  
  217.                     menuComprar = teclado.next().charAt(0);
  218.  
  219.                     teclado.nextLine();
  220.                     switch(menuComprar)
  221.                     {
  222.  
  223.                     case'M':          /* marcar primeiro item comprado*/
  224.                     case'm':
  225.                         if(nItens > 0){
  226.                             feito[0] = true;
  227.                         }
  228.                         break;
  229.  
  230.                     case'D':          /* desmarcar primeiro item comprado*/
  231.                     case'd':
  232.                         if(nItens > 0){
  233.                             feito[0] = true;
  234.                         }
  235.                         break;
  236.  
  237.                     case'N':          /* estado por nome*/
  238.                     case'n':
  239.                         System.out.println("Escreve nome do item para alterar estado: ");
  240.                         String itenName = teclado.next();
  241.                         for (int i = 0; i < nItens; i++){
  242.                             if (nome[i] == itemName){
  243.                                 feito[i] = !feito[i];
  244.                             }
  245.                         }
  246.                         break;
  247.  
  248.                     case'P':          /* estado por posi�ao*/
  249.                     case'p':
  250.                         System.out.println("Escreve nome do item para alterar estado: ");
  251.                         Integer pos = teclado.nextInt();
  252.                         if (pos >= 0 && post < nItens){
  253.                             feito[pos] = !feito[post];
  254.                         }
  255.                         break;
  256.  
  257.                     case'L':          /* listar*/
  258.                     case'l':
  259.                     {  
  260.                         char menuListar;  
  261.                         do{  
  262.                             System.out.println("Listar (t)odos os itens.");
  263.                             System.out.println("Listar itens (c)omprados");
  264.                             System.out.println("Listar itens (p)or comprar");
  265.  
  266.                             menuListar = teclado.next().charAt(0);
  267.  
  268.                             teclado.nextLine();
  269.                             switch(menuListar)
  270.                             {
  271.  
  272.                                 case'T':        
  273.                                 case't':
  274.                                     for (int i = 0; i < itemCount; i++)
  275.                                     {
  276.                                         System.out.printf("%-10s%-10s%-10s%-10s", name[i], quanto[i], preco[i], (feito[i] ? "x" : ""));
  277.                                     }
  278.                                     break;
  279.  
  280.                                 case'C':        
  281.                                 case'c':
  282.                                     for (int i = 0; i < itemCount; i++)
  283.                                     {
  284.                                         if (feito[i] == true)
  285.                                         {
  286.                                             System.out.printf("%-10s%-10s%-10s%-10s", name[i], quanto[i], preco[i], (feito[i] ? "x" : ""));
  287.                                         }
  288.                                        
  289.                                     }
  290.                                     break;
  291.  
  292.                                 case'P':        
  293.                                 case'p':
  294.                                     for (int i = 0; i < itemCount; i++)
  295.                                     {
  296.                                         if (feito[i] == false)
  297.                                         {
  298.                                             System.out.printf("%-10s%-10s%-10s%-10s", name[i], quanto[i], preco[i], (feito[i] ? "x" : ""));
  299.                                         }
  300.                                        
  301.                                     }
  302.                                     break;
  303.                             }
  304.  
  305.                         }while(menuListar !='V'&& menuListar !='v' );
  306.                     }
  307.                     break;
  308.  
  309.                     case'V':          
  310.                     case'v':
  311.                         break;
  312.                     default:
  313.                         System.out.println("op�ao Errada");
  314.                         break;
  315.  
  316.                     }
  317.                 }while(menuComprar !='V'&& menuComprar !='v' );
  318.             }break;
  319.  
  320.             case'C':         /* Fazer contas*/
  321.             case'c':
  322.             {  
  323.                 char menuContas;  
  324.                 do{  
  325.                     System.out.println("Quanto custa a (l)ista?");
  326.                     System.out.println("Quanto j� (g)astei?");
  327.                     System.out.println("Quanto custa o que (f)alta comprar?");
  328.                     System.out.println("Qual o pre�o (m)�dio por item?");
  329.  
  330.                     menuContas = teclado.next().charAt(0);
  331.  
  332.                     teclado.nextLine();
  333.                     switch(menuContas)
  334.                     {
  335.  
  336.                     case'L':        
  337.                     case'l':
  338.                      Double precoTotalDaLita = 0;
  339.                         for (int i = 0; i < nItens; i++)
  340.                         {
  341.                             precoTotalDaLita += preco[i] * quantidade[i];
  342.                         }
  343.                         System.out.printf("A lista custa %s", precoTotalDaLita);
  344.                         teclado.next();
  345.                         break;
  346.  
  347.                     case'G':        
  348.                     case'g':
  349.                         Double montanteGasto = 0;
  350.                         for (int i = 0; i < nItens; i++)
  351.                         {
  352.                             if(feito[i] == true)
  353.                             {
  354.                                 montanteGasto += preco[i] * quantidade[i];
  355.                             }
  356.                         }
  357.                         System.out.printf("Montante gastado na loja: %s", montanteGasto);
  358.                         teclado.next();
  359.                         break;
  360.  
  361.                     case'F':        
  362.                     case'f':
  363.                         Double precoTotalDosItensNaoComparado = 0;
  364.                         for (int i = 0; i < nItens; i++)
  365.                         {
  366.                             if(feito[i] == false)
  367.                             {
  368.                                 precoTotalDosItensNaoComparado += preco[i] * quantidade[i];
  369.                             }
  370.                         }
  371.                         System.out.printf("Preco de itens nao comparado: %s", precoTotalDosItensNaoComparado);
  372.                         teclado.next();
  373.                         break;
  374.  
  375.                     case'M':        
  376.                     case'n':
  377.                         // this is still not clear
  378.                         Double precoTotal2 = 0;
  379.                         for (int i = 0; i < nItens; i++)
  380.                         {
  381.                             precoTotal2 = preco[i] * quantidade[i];
  382.                         }
  383.                         System.out.printf("Preco medio: %s", precoTotal2 / nItens);
  384.                        
  385.                         teclado.next();
  386.                         break;
  387.  
  388.                     case'V':        
  389.                     case'v':
  390.                         break;
  391.                     default:
  392.                         System.out.println("op�ao Errada");
  393.                         break;
  394.                     }
  395.  
  396.                 }while(menuContas !='V'&& menuContas !='v' );
  397.                
  398.             }break;
  399.  
  400.  
  401.             case'S':         /* Op�ao sair*/
  402.             case's':
  403.                 break;
  404.                
  405.             default:
  406.                 System.out.println("op�ao Errada");
  407.                 break; 
  408.  
  409.             }
  410.  
  411.  
  412.         }while(menuPrincipal !='S'&& menuPrincipal !='s' );
  413.  
  414.         System.out.println("Volte sempre!");
  415.     }
  416. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement