Marcelo Posted June 21, 2012 at 01:46 AM Report Share #464509 Posted June 21, 2012 at 01:46 AM 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 at 05:13 AM Report Share #464515 Posted June 21, 2012 at 05:13 AM 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 at 08:04 AM Report Share #464521 Posted June 21, 2012 at 08:04 AM 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 at 11:09 AM Author Report Share #464555 Posted June 21, 2012 at 11:09 AM (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 at 11:09 AM by Marcelo Link to comment Share on other sites More sharing options...
polska Posted June 21, 2012 at 11:41 AM Report Share #464559 Posted June 21, 2012 at 11:41 AM 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 at 12:25 PM Report Share #464567 Posted June 21, 2012 at 12:25 PM 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 at 01:10 PM Author Report Share #464569 Posted June 21, 2012 at 01:10 PM (edited) Nao percebo nada disto pessoal desculpem!! Edited June 21, 2012 at 09:29 PM by Marcelo LP adicionada ao GeSHi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 21, 2012 at 02:05 PM Report Share #464582 Posted June 21, 2012 at 02:05 PM 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 at 02:20 PM Report Share #464587 Posted June 21, 2012 at 02:20 PM (edited) EDIT: NVM, já alterou... Edited June 21, 2012 at 02:21 PM by Flinger Link to comment Share on other sites More sharing options...
Marcelo Posted June 21, 2012 at 02:28 PM Author Report Share #464592 Posted June 21, 2012 at 02:28 PM nvm??? Link to comment Share on other sites More sharing options...
Flinger Posted June 21, 2012 at 02:45 PM Report Share #464599 Posted June 21, 2012 at 02:45 PM Nevermind.... Link to comment Share on other sites More sharing options...
Marcelo Posted June 21, 2012 at 02:57 PM Author Report Share #464610 Posted June 21, 2012 at 02:57 PM Nevermind.... nao sei onde possa estar isso... Link to comment Share on other sites More sharing options...
Rubemlrm Posted June 21, 2012 at 04:31 PM Report Share #464647 Posted June 21, 2012 at 04:31 PM 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