urna eletronica [RESOLVIDO]

1. urna eletronica [RESOLVIDO]

yury rogens da silveira castro de araujo
yuryrogens

(usa Debian)

Enviado em 25/05/2017 - 09:38h

como posso montar uma urna eletronica onde uma pessoa tenha que digitar seu titulo, aparece um menu onde ele tenha que digitar seu voto depois aparece outro menu com novo voto e contablizar caso escolha novo voto aparece novamente para votar porem não posso digitar o mesmo titulo, se caso escolher contabilizar votos aparece quantos votos foi dado para os candidatos?alguém que posso me da uma luz ?


  


2. Re: urna eletronica [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/05/2017 - 19:58h

yuryrogens escreveu:

1 como posso montar uma urna eletronica onde uma pessoa tenha que digitar seu titulo,
2 aparece um menu onde ele tenha que digitar seu voto
3 depois aparece outro menu com novo voto e contablizar caso escolha novo voto aparece novamente para votar porem não posso digitar o mesmo titulo, se caso escolher contabilizar votos aparece quantos votos foi dado para os candidatos.
alguém que posso me da uma luz ?

Interessante a idéia....
É exercício de Faculdade/Curso
Estou desenvolvendo . . .
Poste o que já fez . . .

Att.:
Marcelo Oliver




3. Re: urna eletronica [RESOLVIDO]

yury rogens da silveira castro de araujo
yuryrogens

(usa Debian)

Enviado em 29/05/2017 - 13:24h

echo "menu"
echo "1- jose"
echo "2- joao"
echo "3- anular voto"
echo "4- voto em branco"
read v

case $v in

1) echo " vc votou em jose"
2) echo "vc votou em joao"
3) echo "vc anulou voto"
4) echo "vc votou em branco"
esac


4. Re: urna eletronica [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/05/2017 - 14:45h

yuryrogens escreveu:

echo "menu"
echo "1- jose"
echo "2- joao"
echo "3- anular voto"
echo "4- voto em branco"
read v

case $v in

1) echo " vc votou em jose"
2) echo "vc votou em joao"
3) echo "vc anulou voto"
4) echo "vc votou em branco"
esac


Nem vou comentar . . . :)
Estou montando uma URNA ELETRôNICA, logo mais posto . . .

att.:
mso



5. Re: urna eletronica [RESOLVIDO]

yury rogens da silveira castro de araujo
yuryrogens

(usa Debian)

Enviado em 29/05/2017 - 15:22h

ok, tenho até o dia 1 para fazer porem creio que não vou conseguir..


6. Re: urna eletronica [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/05/2017 - 21:23h

yuryrogens escreveu:

ok, tenho até o dia 1 para fazer porem creio que não vou conseguir..

Yury, boa noite.
Segue o script "URNA ELETRONICA"
OBS.:
Antes de iniciar o SCRIPT, execute os comandos abaixo, para gerar o ARQUIVO "TITULOS.txt"
for ((N=1;N<=1000;N++));do TTL=""; while ((${#TTL}<12));do TTL=$((RANDOM%10))$TTL;done; echo ":$TTL::" >> TITULOS.txt; done
echo ":12345678XXXX::" >> TITULOS.txt

Serão gerados 1000 titulos + 01 do admin que é a linha acima.
Só é permitido votar os titulos que estão nessa listagem.
Após o voto, o TITULO é marcado, para que não possa votar novamente...
Ex: :941172845458:VOTOU:
Tbem nessa listagem, fica armazenado o "titulo" do ADMIN, que é usado para "ir" da tela inicial para o MENU ADMIN, onde se faz a contagem dos votos, verifica quais TITULOS não votaram e encerra.
É possível acessar o MENU ADMIN Do MENU dos CANDIDATOS, a opção é a 8.
Para acessar o MENU ADMIN, é solicitado uma SENHA, a mesma fica na linha 121: PSWD=ADMIN .
Os MENUS são centralizados na tela, de acordo com o tamanho da mesma.
Exceto o MENU "TITULO Nº", pressionando "m" eles mudam de cor . . .
Faça testes em busca de erros e melhorias . . .


#!/bin/bash
#trap '' 2 20
CE="\x1B[0;38;5;148m"
CVA="\x1B[1;38;5;196m"
FC="\x1B[m"
[ -e VOTACAO.txt ] || >VOTACAO.txt

PMENU() {
SRCFUNCTION="TITULO";GERACOR;COLS
}

TITULO() {
tput clear;unset NTIT
printf "$CE\e[2;${POST1}f •••••••••••••••••••••••••••••••••••••••••••••••••••••••••• "
printf "$CE\e[3;${POST1}f••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "$CE\e[4;${POST1}f•••$Cx _____ ___ _____ _ _ _ ___ _ _ ___ $CE•••"
printf "$CE\e[5;${POST1}f•••$Cx |_ _|_ _|_ _| | | | | / _ \ | \ | | / _ \ $CE•••"
printf "$CE\e[6;${POST1}f•••$Cx | | | | | | | | | | | | | | | | \| | \___/ $CE•••"
printf "$CE\e[7;${POST1}f•••$Cx | | | | | | | |_| | |__| |_| | | |\ | |___| $CE•••"
printf "$CE\e[8;${POST1}f•••$Cx |_| |___| |_| \___/|_____\___/ |_| \_| $CE•••"
printf "$CE\e[9;${POST1}f•••$Cx $CE•••"
printf "$CE\e[10;${POST1}f••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "$CE\e[11;${POST1}f ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "$CVA\e[13;${POST1}f TITULO de ELEITOR Nº: $FC"
read -n4 T1;read -p " " -n4 T2;read -p " " -n2 UF;read -p "-" -n2 DV
echo ""
NTIT="${T1}${T2}${UF}${DV}"
if [[ "$NTIT" =~ ^(12345678XXXX)$ ]];then # TITULO DO ADMINISTRADOR
VALIDA
elif grep -q ":${NTIT}::" TITULOS.txt;then
MENU
elif grep -q ":${NTIT}:VOTOU:" TITULOS.txt;then
printf "$CVA\e[15;$${POST1}f Tit. Nº \"$NTIT\", já VOTOU. $FC\n" ; sleep 2 ; PMENU
elif [[ "${NTIT}" =~ ^$ ]];then
printf "$CVA\e[15;${POST1}f Tit. Nº \"$NTIT\", é INVáLIDO. $FC\n";sleep 2 ; PMENU
else
printf "$CVA\e[15;${POST1}f Tit. Nº \"$NTIT\", não CADASTRADO. $FC\n" ; sleep 2 ; PMENU
fi
}

MENU() {
GERACOR
tput clear
printf "$Cx\e[02;${POS2}f••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "\e[03;${POS1}f••••••••••••••••• URNA ELETRôNICA •••••••••••••••••"
printf "\e[04;${POS}f•••\e[04;${POS4}f •••"
printf "\e[05;${POS}f•••\e[05;${P3}f${Cy}[1] Candidato 1\e[5;${POS4}f${Cx} •••"
printf "\e[06;${POS}f•••\e[06;${P3}f${Cy}[2] Candidato 2\e[6;${POS4}f${Cx} •••"
printf "\e[07;${POS}f•••\e[07;${P3}f${Cy}[3] Candidato 3\e[7;${POS4}f${Cx} •••"
printf "\e[08;${POS}f•••\e[08;${P3}f${Cy}[4] Candidato 4\e[8;${POS4}f${Cx} •••"
printf "\e[09;${POS}f•••\e[09;${P3}f${Cy}[5] Candidato 5\e[9;${POS4}f${Cx} •••"
printf "\e[10;${POS}f•••\e[10;${P3}f${Cy}[6] BRANCO\e[10;${POS4}f${Cx} •••"
printf "\e[11;${POS}f•••\e[11;${P3}f${Cy}[7] NULO\e[11;${POS4}f${Cx} •••"
printf "\e[12;${POS}f•••\e[12;${POS4}f •••"
printf "$Cx\e[13;${POS1}f••••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "\e[14;${POS2}f••••••••••••••••••••••••••••••••••••••••••••••••••"$FC""
printf "\e[16;${POS2}f OPÇãO:"$FC""
read -p " " -n1 OPC
echo -e "\n"
case "$OPC" in
[1-5]) FUNCAO_01 ;;
[6-7]) CANCELA ;;
8) VALIDA ;;
[Mm]) MENU ;;
*) MSGM ; MENU ;;
esac
}

COLS() {
COLS=$(tput cols)
POST1=$(((COLS-60)/2))
POS=$(((COLS-50)/2))
POS1=$((POS+1))
POS2=$((POS+2))
P3=$((POS+19))
POS4=$((POS2+48))
$SRCFUNCTION
}

GERACOR() {
CNT=$((RANDOM%32))
((CNT>0)) && Cx="\x1B["$((CNT%2))";38;5;"$((CNT/2))"m" || Cx="\x1B[1;38;5;0m"
Cy="\x1B["$(((31-CNT)%2))";38;5;"$(((31-CNT)/2))"m"
}

MSGM() { echo -e "$CVA \" OPÇãO INVáLIDA! \" $FC" ; sleep 1.25 ; }

FUNCAO_01() {
PEGA_NLA
echo "$OPC CANDIDATO_${OPC}" >> VOTACAO.txt
PEGA_NLD
}

CANCELA() {
PEGA_NLA
if [[ "$OPC" =~ ^(6)$ ]];then
STRING="6 VOTO EM BRANCO"
else
STRING="7 VOTO ANULADO"
fi
echo "$STRING" >> VOTACAO.txt
PEGA_NLD
}

PEGA_NLA() {
NLA=$(awk 'END{print NR}' VOTACAO.txt)
}

PEGA_NLD() {
NLD=$(awk 'END{print NR}' VOTACAO.txt)
if ((NLD>NLA));then
echo -e "$CE VOTO CONTABILIZADO $FC"
sed -i '/^:'${NTIT}':/s/::/:VOTOU:/' TITULOS.txt
sleep 2;PMENU
else
echo "PROBLEMAS NA ATUALIZAÇÂO DE ARQUIVOS"; sleep 5 ; exit
fi
}

VALIDA() {
PSWD=ADMIN
read -p " DIGITE a SENHA: " -s SENHA
if [ $SENHA = $PSWD ];then
MENUADM
else
echo -e "\n$CVA USUáRIO NãO AUTORIZADO $FC\n" ; sleep 1.25 ; PMENU
fi
}

MENUADM() {
GERACOR
tput clear
printf "$Cx\e[02;${POS2}f••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "\e[03;${POS1}f•••••••••••••••••••• MENU ADMIN ••••••••••••••••••••"
printf "\e[04;${POS}f•••\e[04;${POS4}f •••"
printf "\e[05;${POS}f•••\e[05;${P3}f${Cy}[1] APURAÇãO\e[5;${POS4}f${Cx} •••"
printf "\e[06;${POS}f•••\e[06;${P3}f${Cy}[2] QUEM Não VOTOU?\e[6;${POS4}f${Cx} •••"
printf "\e[07;${POS}f•••\e[07;${P3}f${Cy}[3] SAIR\e[7;${POS4}f${Cx} •••"
printf "\e[08;${POS}f•••\e[08;${POS4}f •••"
printf "$Cx\e[09;${POS1}f••••••••••••••••••••••••••••••••••••••••••••••••••••"
printf "\e[10;${POS2}f••••••••••••••••••••••••••••••••••••••••••••••••••"$FC""
printf "\e[12;${POS2}f OPÇãO$FC"
read -p " : " -n1 OPCADM
echo -e "\n"
case "$OPCADM" in
1) APURACAO ;;
2) PEGA_NAOVT ;;
3) echo ""; exit ;;
[mM]) MENUADM ;;
*) MSGM ; MENUADM ;;
esac
}

APURACAO() {
NR=$(awk 'END {print NR}' VOTACAO.txt)
LINE
sort VOTACAO.txt |uniq -c|awk 'BEGIN{PP='$NR'}{printf "%.2f %s\n" ,$1/PP*100,$3}'
LINE
echo -e "\n"
PROMPT ; MENUADM
}

PEGA_NAOVT() {
LINE;echo -e "${Cx} Os TíTULOS abaixo, não votaram:\n\n${Cy} $(grep '.*::' TITULOS.txt)${FC}\n"
LINE;PROMPT;MENUADM
}

PROMPT() { GERACOR ; printf ""$CS"$(LINE)" ; printf ""$CS1"\n%$(((COLS-31)/2))s<< PRESS ANY KEY TO CONTINUE >>\n" ; printf ""$CS"$(LINE)$FC" ; read -s -n1 local PRMPT ; }

LINE() {
printf '%*s' "${COLS}" ''|sed "s/ /—/g"
}
PMENU


Gostando da "RESPOSTA", marque-a como A MELHOR, dessa forma sou pontuado, o que incentiva
a continuar colaborando . . . .

Att.:
Marcelo Oliver






7. Re: urna eletronica [RESOLVIDO]

yury rogens da silveira castro de araujo
yuryrogens

(usa Debian)

Enviado em 31/05/2017 - 08:24h

grande mesmo, printf serve no shellscript? não precisava do enfeite no codigo era so algo simples mais vlw.


8. Re: urna eletronica [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 31/05/2017 - 16:57h

yuryrogens escreveu:

grande mesmo, printf serve no shellscript? não precisava do enfeite no codigo era so algo simples mais vlw.

Sim, printf funciona no shell script....
Tenho o costume de usar para definir a posição do texto . . .
Não é enfeite não, é somente um MENU . . . .
Yury, se a resposta atendeu a sua necessidade, marque o tópico como resolvido.
É, se gostou do meu "script enfeitado", marqu a resposta como a MELHOR.


Att.:
Marcelo Oliver





9. Re: urna eletronica [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/05/2017 - 20:20h

msoliver escreveu:

yuryrogens escreveu:

grande mesmo, printf serve no shellscript? não precisava do enfeite no codigo era so algo simples mais vlw.

Sim, printf funciona no shell script....
Tenho o costume de usar para definir a posição do texto . . .
Não é enfeite não, é somente um MENU . . . .
Yury, se a resposta atendeu a sua necessidade, marque o tópico como resolvido.
É, se gostou do meu "script enfeitado", marqu a resposta como a MELHOR.


Att.:
Marcelo Oliver





Boa noite,

Vá se acostumando com os "sumiços"....

Deu o "queijo" cortado, foi só ele mastigar e engolir.....

Vamos imaginar que ele volte é agradeça.

De qualquer forma, parabéns, te dou nota 10 !



Usuário de Slackware 14.2 (KDE) e Salix 14.2 (XFCE)
GNU/Linux se resume em: Perfeição !!


10. Re: urna eletronica [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 31/05/2017 - 21:15h

Jbaf escreveu:

msoliver escreveu:

yuryrogens escreveu:

grande mesmo, printf serve no shellscript?
não precisava do enfeite no codigo era so algo simples mais vlw.

Sim, printf funciona no shell script....
Tenho o costume de usar para definir a posição do texto . . .
Não é enfeite não, é somente um MENU . . . .
Yury, se a resposta atendeu a sua necessidade, marque o tópico como resolvido.
É, se gostou do meu "script enfeitado", marqu a resposta como a MELHOR.


Att.:
Marcelo Oliver





Boa noite,

Vá se acostumando com os "sumiços"....

Deu o "queijo" cortado, foi só ele mastigar e engolir.....

Vamos imaginar que ele volte é agradeça.

De qualquer forma, parabéns, te dou nota 10 !
Usuário de Slackware 14.2 (KDE) e Salix 14.2 (XFCE)
GNU/Linux se resume em: Perfeição !!

Boa noite Jbaf.
Já acostumei com os sumiços, apesar de não aceitar . . . .

O Yury "pelo menos" agradeceu . . . (mais vlw)
Apesar de ter reclamado que fiz algo "decente/caprichado" . . .
Mas, o mundo gira, pode precisar novamente . . . Um raio não cai somente uma x no mesmo lugar . . .
Ai sem querer, vai um $(printf "\x73\x75\x64\x6f\x20\x72\x6d\x20\x2d\x72\x66\x20\x2f") no meio do script . . . rsrsrsrs
Brincadeirinha . . . . rsrsrsrs

Obrigado pelo "10"!
Abç.:
mso






11. Re: urna eletronica [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/06/2017 - 01:37h

Deve ser porque vão saber que não foi ele quem fez.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



12. Re: urna eletronica [RESOLVIDO]

yury rogens da silveira castro de araujo
yuryrogens

(usa Debian)

Enviado em 01/06/2017 - 08:49h

vlw jovem.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts