Olá, galera. Bem, eu preciso criar um programa para gerenciamento de uma empresa de construção civil e suas obras. Cada obra contém as seguintes informações:
Nome > Nome da Obra > char [40]
Início > Data de Início da Obra > char[10]
Fim > Data de finalização da Obra > char[10]
Orçamento > Orçamento da Obra > Material[30]
Cada material utilizado contém as seguintes informações:
ID > Identificador da Obra > int
Nome > Nome do Material > char[40]
Quantidade > Quantidade necessária > float
Preço > Preço unitário do material > float
De acordo com estas especificações, o programa deverá utilizar um vetor de obras de 10
posições. O programa deverá fornecer um conjunto de 11 opções (números de 1 a 11). Além
das 10 opções apresentadas a seguir, a opção 11 significa que o usuário deseja sair do
programa.
Cada opção do programa deve oferecer as seguintes funcionalidades:
OPÇÃO 1 - CADASTRAR UMA OBRA
Esta é uma operação onde o usuário fornece as informações de ID, Nome, Início e Final de uma
obra e esta obra é cadastrada em uma posição vazia no vetor. Todas as informações (ID,
Nome, Início e Final) são obrigatórias.
OPÇÃO 2 - CADASTRAR UM MATERIAL EM UMA OBRA
Para esta operação, o usuário deve especificar o ID da obra desejada para cadastrar o material
e informar as informações do material, que são Nome, Quantidade e Preço. Caso o ID digitado
não seja encontrado no programa, uma mensagem de erro deve ser mostrada ao usuário.
OPÇÃO 3 - CONSULTAR OS DADOS DE UMA OBRA
Nesta operação, o usuário deve especificar o ID da obra desejada e mostrar todos os detalhes
desta obra, ou seja, seu Nome, data de início, data prevista para finalização e as informações
de cada material cadastrado (Nome, Preço e Quantidade). Caso o ID digitado não seja
encontrado no programa, uma mensagem de erro deve ser mostrada ao usuário.
OPÇÃO 4 - CALCULAR O VALOR TOTAL DAS OBRAS
Para esta operação, o programa deve mostrar, para cada obra, o valor total dela. Para calcular
o valor total de uma obra, o programa deve percorrer os materiais cadastrados nela,
multiplicar a quantidade pelo preço unitário e somar. Se não houver obras cadastradas, uma
mensagem de erro deve ser mostrada ao usuário.
OPÇÃO 5 - EXCLUIR UMA OBRA
Para excluir uma obra, o usuário deve digitar o ID da obra a ser excluída e, caso exista uma
obra com este ID, o programa deve excluir a obra e os seus materiais. Caso o ID digitado não
seja encontrado no programa, uma mensagem de erro deve ser mostrada ao usuário.
OPÇÃO 6 - IMPRIMIR A OBRA DE MAIOR VALOR
Nesta opção, o programa deve calcular os valores das obras cadastradas e imprimir somente a
obra de maior valor (imprimir Nome, Data de início, Data Final e Valor total da obra). Se não
houver obras cadastradas, uma mensagem de erro deve ser mostrada ao usuário.
OPÇÃO 7 - IMPRIMIR O VALOR MÉDIO DAS OBRAS
Para imprimir o valor médio das obras, o programa deve calcular a média do valor total das
obras cadastradas e imprimir na tela. Se não houver obras cadastradas, uma mensagem de
erro deve ser mostrada ao usuário.
OPÇÃO 8 - IMPRIMIR OBRAS COM VALORES ACIMA DA MÉDIA
Basicamente, o programa deve imprimir apenas as obras (com seu Nome, Data de Inicio, Data
Final e Valor Total) cujo valor total está acima da média das obras cadastradas. Se não houver
obras cadastradas, uma mensagem de erro deve ser mostrada ao usuário.
OPÇÃO 9 - IMPRIMIR APENAS OBRAS ACIMA DE UM VALOR ESPECIFICADO PELO USUÁRIO
Dado um valor em que o usuário deve digitar, o programa deve imprimir apenas as obras (com
seu Nome, Data de Inicio, Data Final e Valor Total) cujo valor total está acima do valor
especificado pelo usuário. Se não houver obras cadastradas, uma mensagem de erro deve ser
mostrada ao usuário.
OPÇÃO 10 - ORDENAR AS OBRAS POR ORDEM ALFABÉTICA
Nesta opção, o programa deve ordenar as obras em ordem alfabética do nome da obra
(usando strcmp para comparar os nomes) e imprimir na tela as obras ordenadas. Se não
houver obras cadastradas, uma mensagem de erro deve ser mostrada ao usuário.
OBS:
• Cada uma das operações do programa deve ser realizada por funções (ou
procedimentos). Em outras palavras, não deve-se fazer todas estas funções
“apenas” dentro do programa principal (main).
• Procurem usar comentários para explicar como cada função foi realizada
• Possivelmente pode-se precisar de outras funções além das 10 que
representam as funções do programa.
É isso aí, galera. Como vocês já devem estar pensando, o programa é realmente gigantesco. No entanto, eu ainda estou completamente "emperrado" e não consigo sequer iniciar.
Por favor apenas gostaria de dicas e conselhos de como conseguir montar isso tudo. À medida que vocês forem me enviando recomendações, eu vou postando aqui o progresso e lendo os comentários de vocês. Qualquer ajuda é bem-vinda e agradeço desde já pela atenção.
Bem, começando pelo começo... como eu poderia iniciar esse programa, pessoal?