DESAFIO

1. DESAFIO

Thiago Branco Meurer
thiagopriest

(usa Debian)

Enviado em 12/06/2008 - 01:19h

Crie um programa que faça o controle de matéria prima em uma fábrica. O programa, quando
executado é apresentado um menu com as opções: receber lote e consumir matéria. Ao selecionar a
opção de recebimento de lote é solicitado o código da matéria prima (int, de 1 a 200) e a quantidade
recebida (real), isto fará com que a estrutura que armazena as quantidades de matéria na empresa seja
atualizado para o que foi recebido adicionado ao que já se tinha. Quando a opção for consumir matéria,
é solicitado o código da matéria prima (int, de 1 a 200) e a quantidade consumida. A quantidade
consumida deve ser subtraída da estrutura que armazena as quantidades na empresa. Para acesso as
opções existe é necessário a digitação de um usuário e senha (existem dois usuários/senha para o
sistema: opera/senhaop e admin/senhaadm), somente o usuário admin fará o recebimento de lote, e o
consumo pode ser feito por qualquer um dois dois usuários. Toda vez depois de executar a operação
desejada, é apresentado novamente o menu.


Quem conseguir tem futuro no ramo.


  


2. Re: DESAFIO

Denis Doria
thuck

(usa Debian)

Enviado em 12/06/2008 - 10:50h

Não é tão complicado... Fiz em shell, depois passo para pythonsó por esporte hehehe


#!/bin/bash


echo "User: "
read USER
echo "Password"
stty -echo
read PASS
stty echo


[ "${USER}" == "admin" ] || [ "${USER}" == "opera" ] || QUIT=2

[ "${PASS}" == "senhaadm" ] || [ "${PASS}" == "senhaop" ] || QUIT=2

[ $QUIT ] && echo "usuario ou senha inválido" && exit 1

QUIT=0



function receber(){

local CHECK=0

[ ${USER} != "admin" ] && echo " Vc não pode fazer isso!!!" && return 1

echo "Digite o produto que deseja inserir: "
read PROD
[ ${PROD} -ge 1 ] && [ ${PROD} -le 200 ] || CHECK=1

PROD=$(echo ${PROD}|bc)

[ ${CHECK} -eq 1 ] && echo "Valor inválido" && return 1

echo "Digite a quantidade que deseja inserir: "
read QTA

VAL=$(echo $QTA|bc)

[ ${VAL} -eq 0 ] && echo "valor com problemas" && return 1

produto[${PROD}]=$((${produto[${PROD}]}+${VAL}))


}

function consumir(){

local CHECK=0

echo "Digite o produto que deseja retirar: "
read PROD

PROD=$(echo ${PROD}|bc)
[ ${PROD} -ge 1 ] && [ ${PROD} -le 200 ] || CHECK=1


[ ${CHECK} -eq 1 ] && echo "Valor inválido" && return 1

VAL=$(echo ${PROD}|bc)


echo "Digite a quantidade que deseja retirar: "
read QTA

VAL=$(echo $QTA|bc)

[ ${VAL} -eq 0 ] && echo "valor com problemas" && return 1


[ ${produto[${PROD}]} -lt ${VAL} ] && echo "Não pode retirar essa quantidade!!!" && return 1

produto[${PROD}]=$((${produto[${PROD}]}-${VAL}))

}

function mostrar_quantidade(){

for i in `seq 1 200`
do

echo ${produto[$i]}

done


}

produto=$(seq 1 200|tr '\n' ',')

for i in `seq 1 200`
do

produto[$i]=0

done

while [ $QUIT -eq 0 ]
do

echo "
1)Receber Lote
2)Consumir Lote
3)Mostrar quantidade
4)Sair
"

echo "Digite uma opção: "
read OPT

case ${OPT} in

1) receber
;;

2) consumir
;;

3) mostrar_quantidade
;;

4) QUIT=1
;;

*) echo "Opção inválida"
;;

esac

done









3. Re: DESAFIO

Thiago Branco Meurer
thiagopriest

(usa Debian)

Enviado em 12/06/2008 - 11:07h

Vou testar.

Parece legal mesmo.


4. Re: DESAFIO

Silvio Soares da Silva Junior
silviojunior

(usa Slackware)

Enviado em 12/06/2008 - 11:13h

Boa forma de conseguir resolver o problema da faculdade. Parabens.


5. Re: DESAFIO

Thiago Branco Meurer
thiagopriest

(usa Debian)

Enviado em 12/06/2008 - 11:16h

Sim na verdade queria uma segunda opinião, pois não estava conseguindo criar um elo da estrutura de repetição e o menu para todo fim de ação.

Agora assim deu uma luz.


6. kkk

Juliao Junior
juliaojunior

(usa Debian)

Enviado em 12/06/2008 - 11:20h

kkkkkkkk

pedindo arrego em público kkk

dessa eu gostei :)


7. Re: DESAFIO

Thiago Branco Meurer
thiagopriest

(usa Debian)

Enviado em 12/06/2008 - 11:21h

hahhahahahaahha


8. Re: DESAFIO

Denis Doria
thuck

(usa Debian)

Enviado em 12/06/2008 - 11:22h

Já dizia aquele sábio:

"Quem não cola não sai da escola"

hehehehe






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts