Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 900 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Faça uma aplicação para simular o funcionamento de um caixa de restaurante, com as 
seguintes características:
Os produtos disponíveis são:
Bebidas
• Refrigerante = R$ 5,90 p/ und
• Água mineral = R$ 4,00 p/und
• Cerveja = R$ 8,50 p/und
Alimentos
• Sanduiche queijo = R$ 20,00 p/und
• Sanduiche misto = R$ 29,00 p/und
• Self service = R$ 39,90 p/ Kg
• Sobremesa = R$ 45,90 p/Kg
Brindes
• Boné = R$ 49,90 p/und
• Chaveiro = R$ 14,90 p/und
Deve existir a possibilidade de acrescentar ou excluir produtos à lista.
Ao final da digitação dos dados a conta do cliente deve ser mostrada em uma listbox.
A aplicação deve permitir cancelar produtos e recalcular a conta do cliente.

 

 

Pessoal me dêem uma luz, com.o eu poderia fazer isto no listbox? Eu adicionaria no listbox os dados da conta com zeros a direita tipo assim

 

Prod.          Nome do prod.   Qtde. Valor

0001.          produto teste.    10.     100.00

 

Mas a dúvida como seria recalculado a conta? Através de um while?

 

Isto e um teste pra vaga de emprego. Mas fiquei confuso por usar um listbox.  

 

 

O que eu fiz até agora foi a classe orientada a objetos do cadastro de produto,  se fosse   se fosse com dbgrid até seria mais tranquilo usando tabela temporária e chamar minha classe pra gravar a venda 

 

 

 

 

 

 

 

Postado
unit uVendaItem;

interface

type

  TVendaItem = class
  private
    FIDVendaItem: Integer;
    FIDVenda: Integer;
    FProduto: String;
    { private declarations }
  protected
    { protected declarations }
  public
    { public declarations }
    property IDVendaItem: Integer read FIDVendaItem write FIDVendaItem;
    property IDVenda: Integer read FIDVenda write FIDVenda;
    property Produto: string read FProduto write FProduto;
  published
    { published declarations }
  end;

implementation

end.

 

 

unit uVenda;

interface

uses
  System.Generics.Collections, System.SysUtils, uVendaItem, Dialogs;

type

  TVenda = class
  private
    FIDVenda: Integer;
    FData: TDateTime;
    FListaVendaItem: TObjectList<TVendaItem>;
    { private declarations }
  protected
    { protected declarations }
  public
    { public declarations }
    property IDVenda: Integer read FIDVenda write FIDVenda;
    property Data: TDateTime read FData write FData;
    property ListaVendaItem: TObjectList<TVendaItem> read FListaVendaItem
      write FListaVendaItem;
    constructor Create;
    destructor Destroy; override;
    procedure AdicionarVendaItem(pProduto: String);
    procedure Remover(Index: Integer);
    function Count: Integer;
  published
    { published declarations }
  end;

implementation

{ TVenda }

procedure TVenda.AdicionarVendaItem(pProduto: String);
var
 I: Integer;
begin
  FListaVendaItem.Add(TVendaItem.Create);
  I := FListaVendaItem.Count -1;
  FListaVendaItem[I].IDVendaItem := I;
  FListaVendaItem[I].IDVenda     := FIDVenda;
  FListaVendaItem[I].Produto     := pProduto;
end;

function TVenda.Count: Integer;
begin
   Result := FListaVendaItem.Count;
end;

constructor TVenda.Create;
begin
  inherited;
  FIDVenda        := 0;
  FData           := EncodeDate(1900,1,1);
  FListaVendaItem := TObjectList<TVendaItem>.Create;

end;

destructor TVenda.Destroy;
begin
  FreeAndNil(FListaVendaItem);
  inherited;
end;

procedure TVenda.Remover(Index: Integer);
begin
  if Index < Count then
     FListaVendaItem.Delete(Index)
  else
    ShowMessage('Item não encontrado!');

end;

end.

 

O que vocês acham? Agora vou implementar os campos de valores R$ e percorrer a lista a ideia seria esta mesmo?

  • Este tópico foi criado há 900 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.