Marcelo Posted June 21, 2012 Report Share Posted June 21, 2012 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; }; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 21, 2012 Report Share Posted June 21, 2012 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. 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
pmg Posted June 21, 2012 Report Share Posted June 21, 2012 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! Link to comment Share on other sites More sharing options...
Marcelo Posted June 21, 2012 Author Report Share Posted June 21, 2012 (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 June 21, 2012 by Marcelo Link to comment Share on other sites More sharing options...
polska Posted June 21, 2012 Report Share Posted June 21, 2012 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. Link to comment Share on other sites More sharing options...
pmg Posted June 21, 2012 Report Share Posted June 21, 2012 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! Link to comment Share on other sites More sharing options...
Marcelo Posted June 21, 2012 Author Report Share Posted June 21, 2012 (edited) Nao percebo nada disto pessoal desculpem!! Edited June 21, 2012 by Marcelo LP adicionada ao GeSHi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 21, 2012 Report Share Posted June 21, 2012 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 Portugol Plus Link to comment Share on other sites More sharing options...
Flinger Posted June 21, 2012 Report Share Posted June 21, 2012 (edited) EDIT: NVM, já alterou... Edited June 21, 2012 by Flinger Link to comment Share on other sites More sharing options...
Marcelo Posted June 21, 2012 Author Report Share Posted June 21, 2012 nvm??? Link to comment Share on other sites More sharing options...
Flinger Posted June 21, 2012 Report Share Posted June 21, 2012 Nevermind.... Link to comment Share on other sites More sharing options...
Marcelo Posted June 21, 2012 Author Report Share Posted June 21, 2012 Nevermind.... nao sei onde possa estar isso... Link to comment Share on other sites More sharing options...
Rubemlrm Posted June 21, 2012 Report Share Posted June 21, 2012 nao sei onde possa estar isso... NVM e uma expressão que quer dizer deixa la 😉 não tem a haver com o código. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now