Jump to content

Programa de gestao de produtos


Recommended Posts

Posted

A loja de informática BitByte pretende um programa para ajudar a gerir o seu stock de

produtos. Para o efeito basta uma aplicação em modo de texto, que permita manter um registo

do material em stock e do vendido.

A aplicação deve usar os seguintes dados:

Fornecedores

Cada fornecedor é descrito por:

Número de fornecedor; Nome; Contribuinte; Morada [máx. 500 caracteres];

Comentários [máx. 500 caracteres]

Produtos

Cada produto é descrito por:

Referência [até 6 caracteres alfanuméricos]; Nome; Descrição; Quantidade

em stock; Fornecedor [número]

Vendas

As vendas são registadas por um programa de faturação externo. O programa de

faturação gera um ficheiro de texto, com campos separados por ponto e vírgula, em que cada

linha corresponde a uma venda de um produto, no formato:

Data [formato Ano/mês/dia];Referência do produto;Quantidade

Cada produto pode aparecer mais do que uma vez no ficheiro.

Funcionamento do programa

O programa deve apresentar as seguintes funcionalidades:

1) Gerir fornecedores. Deve ser possível ver fornecedores, alterar dados e

introduzir novos.

2) Gerir produtos. Deve ser possível ver os produtos, alterar dados e introduzir

novos produtos.

3) Ver relatórios de vendas. Deve ser possível ver as vendas, por produto e por

fornecedor, entre duas datas introduzidas pelo utilizador.

4) Controlo de stocks. O programa deve permitir ver as quantidades em stock de

cada produto, filtrando ou não por fornecedor.

5) Notas de encomenda. Para gerar uma nota de encomenda, o utilizador deve

escolher o fornecedor e o período para o qual quer encomendar. O programa

deve então gerar uma lista de todos os produtos desse fornecedor e calcular

quanto deve ser vendido no período em causa. Por exemplo, se o período for

de 2 meses e nos últimos 2 meses foram vendidos 50 computadores, o

programa deve sugerir que sejam encomendados mais 50. (Podem ser usados

métodos mais eficazes, mas este é perfeitamente aceitável). O relatório deve

ser mostrado no ecrã e gravado num ficheiro de texto, com os campos

separados por ponto e vírgula.

Por favor ajudem me!!

Ja fiz isto:

#include<stdio.h>
#include<string.h>

char *MainMenu[] = {
 "1.Inserir Registo",
 "2.Alterar Registo",
 "3.Apagar Registo",
 "4.Listar Registo",
 "5.Pesquisas",
 "0.Sair",
 NULL */Acabaram as opcoes*/
};

FILE *fp; /*Variavel global pois e util ao longo do programa*/
typedef struct {int ano,mes,dia;} Data;
struct_Fornecedores {
 int numero_fornecedor[10];
 char nome[50];
 int contribuinte[9];
 char morada[500];
 char comentario[500];
};

struct_Produtos {
 float referencia[6];
 char nome[50];
 char descricao[500];
 int quantidade_stock[500];
 int numero_fornecedor[10];
};

struct_vendas {
 int Data;
 char referencia_do_produto[6];
 int quantidade_stock;
};
Posted

neste fórum existe imensas pessoas que, pela simples sensação de realização de entre ajuda, perdem tempo para ajudar a tirar dúvidas das pessoas.

no entanto, por saberem (porque já passaram pelo processo normal de aprendizagem) o que é melhor para alguém que está a começar, não resolvem enunciados de ninguém.

se tiveres uma dúvida concreta teremos todos o gosto em explicar e/ou corrigir, caso contrário, o post é normalmente ignorado.

o código que apresentaste não tem absolutamente nada a não ser um conjunto de definições.

se estás a perguntar se estas definições de estruturas são suficientes/correctas para resolver o enunciado, então digo-te já que não, porque basta dizer que não faz sentido teres array's de int para guardar um número do registo.

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Posted

Ja fiz isto:

Vais no bom caminho ...

Tenho duas sugestões:

a) Não uses variáveis globais, mesmo quando são uteis ao longo do programa. Tirando casos muito excepcionais, é preferível (embora origine funções com mais parametros) não as usar.

b) porque é que Data é um typedef e as outras estruturas não são? Mete todas as estruturas com o mesmo esquema (eu prefiro não usar typedef).

c) também podes indentar as estruturas "como se fossem código"

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted (edited)

Vais no bom caminho ...

Tenho duas sugestões:

a) Não uses variáveis globais, mesmo quando são uteis ao longo do programa. Tirando casos muito excepcionais, é preferível (embora origine funções com mais parametros) não as usar.

b) porque é que Data é um typedef e as outras estruturas não são? Mete todas as estruturas com o mesmo esquema (eu prefiro não usar typedef).

c) também podes indentar as estruturas "como se fossem código"

Muito obrigado vou ja agora modificar essas coisas.

Posso ja pedir ao utilizador as informacoes nao posso?

Edited by Marcelo
Posted

Uma coisa, por exemplo, "Referência [até 6 caracteres alfanuméricos]" , não faz sentido pores um vector de float como fizeste:

float referencia[6];

Se 6 números nunca ultrapassam a capacidade de um float.. a não ser que mais tarde queiras alterar caracteres dessa mesma referência..

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Posted

Posso ja pedir ao utilizador as informacoes nao posso?

Poder podes, mas (acho que) não é a maneira habitual de fazer as coisas.

O normal é meteres dados "à pata" no ficheiro e testar outras funcionalidades antes de escrever o código para interacção com o utilizador.

Quando escreves a parte de interacção com o utilizador podes não reparar que precisas de alterar as estruturas ... e quando fores fazer as outras funcionalidades tens que voltar atrás e alterar a parte já feita.

Se deixares essa parte para o fim ela sai bem logo à nascença.

Mas faz à tua maneira!

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

acho isso de compilar er não aparecer nada muito estranho.

se não soubesse parece que tens alguma coisa na tua compilação que te anda a redireccionar o stdout para um ficheiro ou algo parecido.

tenta fazer estes teste:

- cria uma aplicação nova mas agora tenta por só um "hello, world" usando a função puts.

- alterar a aplicação anterior para usar a função fputs

IRC : sim, é algo que ainda existe >> #p@p

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.