Sem resumo de edição Etiqueta: visualeditor |
Sem resumo de edição |
||
| Linha 923: | Linha 923: | ||
= Escopo = | = Escopo = | ||
* Objetivo da aplicação | * Objetivo da aplicação | ||
Desenvolver um software que tenha a capacidade de ler dados decorrentes dos funcionários de uma empresa que apresenta três turnos de serviço (matutino, vespertino e noturno), bem como realizar o cadastro dos mesmos com informações pessoais necessárias para que seja admitido como funcionário (identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, etc.). O armazenamento de dados dos funcionários será necessário para que seja calculado o salário final de cada um ao final de cada mês, baseando-se nas horas in itineres (horas extras) e as horas normais de serviço (de acordo com a Lei nº 10.243, de 19 de Junho de 2001), isto é, pelos registros dos horários de entrada e saída bem como dias de domingo e feriados.<br> | ** Desenvolver um software que tenha a capacidade de ler dados decorrentes dos funcionários de uma empresa que apresenta três turnos de serviço (matutino, vespertino e noturno), bem como realizar o cadastro dos mesmos com informações pessoais necessárias para que seja admitido como funcionário (identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, etc.). O armazenamento de dados dos funcionários será necessário para que seja calculado o salário final de cada um ao final de cada mês, baseando-se nas horas in itineres (horas extras) e as horas normais de serviço (de acordo com a Lei nº 10.243, de 19 de Junho de 2001), isto é, pelos registros dos horários de entrada e saída bem como dias de domingo e feriados.<br> | ||
<br> | |||
| Linha 931: | Linha 931: | ||
** Ex: quais dados serão digitados via teclado | ** Ex: quais dados serão digitados via teclado | ||
Identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, email, nome de funcionário, senha para login dos funcionários da empresa. | Identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, email, nome de funcionário, senha para login dos funcionários da empresa. | ||
<br> | |||
= Saídas = | = Saídas = | ||
| Linha 937: | Linha 937: | ||
** Ex: quais dados serão publicados na tela ou no papel | ** Ex: quais dados serão publicados na tela ou no papel | ||
Data e horário de entrada e saída de cada um dos funcionários e o salário final de cada um deles.<br> | Data e horário de entrada e saída de cada um dos funcionários e o salário final de cada um deles.<br> | ||
<br> | |||
= Armazenamento = | = Armazenamento = | ||
* O que será gravado em arquivo | * O que será gravado em arquivo | ||
** Indentidade, CPF, data de nascimento, email, senha, carteira de motorista, carteira de trabalho e horas trabalhadas de acordo com os horários de entrada e saída bem como os dias trabalhados para cada um dos funcionários da empresa.<br> | |||
<br> | |||
= Cálculos = | = Cálculos = | ||
* O que será processado? | * O que será processado? | ||
Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.<br> | ** Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.<br> | ||
<br> | |||
= Desenvolvedores = | = Desenvolvedores = | ||
Asaph Souza Diniz | * Asaph Souza Diniz | ||
* Camila Vieira Verardo | |||
* João Vitor Pereira Leite | |||
* Leticia de Almeira Takata | |||
* Pedro Henrique Machado Rodrigues | |||
<br> | <br> | ||
Edição das 22h09min de 26 de junho de 2016
Código
<syntaxhighlight lang="python3">
- -*- coding: utf-8 -*-
import sys import time import sqlite3
def arqexi(texto):
try:
arq = open(texto, "r")
arq.close()
return True
except IOError:
return False
def cpfv(a, b, c, d, e, f, g, h, i, j, k):
cpf = [str(a), str(b), str(c), str(d), str(e), str(f), str(g), str(h), str(i), str(j), str(k)]
A = a * 10 + b * 9 + c * 8 + d * 7 + e * 6 + f * 5 + g * 4 + h * 3 + i * 2
resto1 = A % 11
if resto1 == 0 or resto1 == 1:
j_ = 0
pass
else:
j_ = 11 - resto1
pass
B = a * 11 + b * 10 + c * 9 + d * 8 + e * 7 + f * 6 + g * 5 + h * 4 + i * 3 + j_ * 2
resto2 = B % 11
if resto2 == 0 or resto2 == 1:
k_ = 0
pass
else:
k_ = 11 - resto2
cpfv_ = [str(a), str(b), str(c), str(d), str(e), str(f), str(g), str(h), str(i), str(j_), str(k_)]
if cpf == cpfv_:
return True
else:
return False
def datav(m1, d1, a1):
anos = []
for i in range(1800, 3000, 4):
if i % 100 == 0:
if i % 400 == 0:
anos.append(i)
elif i % 4 == 0:
anos.append(i)
if m1 == 1 or m1 == 3 or m1 == 5 or m1 == 7 or m1 == 8 or m1 == 10 or m1 == 12:
if d1 <= 31 and d1 > 0:
return True
elif d1 > 31 and d1 < 0:
return False
elif m1 == 4 or m1 == 6 or m1 == 9 or m1 == 11:
if d1 <= 30 and d1 > 0:
return True
elif d1 > 30 and d1 < 0:
return True
elif m1 == 2:
if a1 in anos:
if d1 <= 29 and d1 > 0:
return True
elif d1 > 29 and d1 < 0:
return False
else:
if d1 <= 28 and d1 > 0:
return True
elif d1 > 28 and d1 < 0:
return False
else:
return False
aq = arqexi('tabela.db')
if not aq:
conn = sqlite3.connect('tabela.db')
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE adms (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
usuario TEXT NOT NULL,
senha TEXT NOT NULL,
data_de_nascimento TEXT NOT NULL,
cpf TEXT NOT NULL,
fone TEXT,
rg TEXT NOT NULL
);
""")
cursor.execute("""
CREATE TABLE cadastros (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
usuario TEXT NOT NULL,
senha TEXT NOT NULL,
data_de_nascimento TEXT NOT NULL,
cpf TEXT NOT NULL,
fone TEXT,
email TEXT NOT NULL,
turno TEXT NOT NULL,
rg TEXT NOT NULL,
salario NUMERIC NOT NULL,
data_de_admissao DATE NOT NULL
);
""")
cursor.execute("""
CREATE TABLE entrada (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
usuario TEXT NOT NULL,
senha TEXT NOT NULL,
data_de_entrada TEXT NOT NULL,
horario_de_entrada TEXT NOT NULL
);
""")
cursor.execute("""
CREATE TABLE saida (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
usuario TEXT NOT NULL,
senha TEXT NOT NULL,
data_de_saida TEXT NOT NULL,
horario_de_saida TEXT NOT NULL
);
""")
print('Tabelas criadas com sucesso.')
print('Cadastre o adm')
nome = input("Insira o nome: ")
print(nome)
print("Tem certeza ?")
aysn = input("s/n ?: ")
if aysn == "n" or aysn == "N":
while aysn == "n" or aysn == "N":
nome = input("Insira o nome: ")
print(nome)
print("Tem certeza ?")
aysn = input("s/n ?: ")
elif aysn == "s" or aysn == "S":
pass
usu = input('Insira seu nome de usuário: ')
print(usu)
print("Tem certeza ?")
aysu = input("s/n ?: ")
if aysu == "n" or aysu == "N":
while aysu == "n" or aysu == "N":
usu = input("Insira seu nome de usuário: ")
print(usu)
print("Tem certeza ?")
aysu = input("s/n ?: ")
elif aysu == "s" or aysu == "S":
pass
passw = input('Insira sua senha: ')
print(passw)
print("Tem certeza ?")
aysps = input("s/n ?: ")
if aysps == "n" or aysps == "N":
while aysps == "n" or aysps == "N":
passw = input("Insira sua senha: ")
print(passw)
print("Tem certeza ?")
aysps = input("s/n ?: ")
elif aysps == "s" or aysps == "S":
pass
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
m1 = int(data[3] + data[4])
d1 = int(data[0] + data[1])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
if d:
pass
else:
while not d:
print("Data inválida")
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
m1 = int(data[3] + data[4])
d1 = int(data[0] + data[1])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
br = (
str(data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[9]))
print(br)
print("Tem certeza ?")
aysb = input("s/n?: ")
if aysb == "n" or aysb == "N":
while aysb == "n" or aysb == "N":
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
d1 = int(data[0] + data[1])
m1 = int(data[3] + data[4])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
if d:
pass
else:
while not d:
print("Data inválida")
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/":
while len(b) != 10 or b[2] != "/" or b[5] != "/":
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
d1 = int(data[0] + data[1])
m1 = int(data[3] + data[4])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
br = (str(
data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[
9]))
print(br)
print("Tem certeza ?")
aysb = input("s/n?: ")
elif aysb == "s" or aysb == "S":
pass
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[2] == cpf[
4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
if not veri:
print("CPF inválido")
while not veri:
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
pass
cp = (str(
cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[10] + cpf[
11] + cpf[12] + cpf[13]))
print(cp)
print("Tem certeza ?")
aysc = input("s/n ?: ")
if aysc == "n" or aysc == "N":
while aysc == "n" or aysc == "N":
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
if not veri:
print("CPF inválido")
while veri != True:
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == \
cpf[1] == cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
pass
cp = (str(
cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[
10] + cpf[11] + cpf[12] + cpf[13]))
print(cp)
print("Tem certeza ?")
aysc = input("s/n?: ")
elif aysc == "s" or aysc == "S":
pass
p_fone = input('Fone(XX)XXXX-XXXX: ')
if len(p_fone) == 14:
if p_fone[4] == '9':
pass
elif p_fone[4] != '9':
while p_fone[4] != '9':
print('Telefone inválido')
p_fone = input('Fone(XX)XXXX-XXXX: ')
elif len(p_fone) < 13:
while len(p_fone) < 13:
print('Por favor, verifique seu telefone')
p_fone = input('Fone(XX)XXXX-XXXX: ')
p_rg = input('RG: ')
print(p_rg)
print('Tem certeza ?')
aysrg = input('s/n?: ')
if aysrg == 'n' or aysrg == 'N':
p_rg = input('RG: ')
print(p_rg)
print('Tem certeza ?')
aysrg = input('s/n?: ')
else:
pass
cursor.execute("""
INSERT INTO adms (nome, usuario, senha, data_de_nascimento, cpf, fone, rg)
VALUES (?,?,?,?,?,?,?)
""", (nome, usu, passw, br, cp, p_fone, p_rg))
conn.commit()
print('Dados inseridos com sucesso.')
conn.close()
else:
pass
while True:
usuhellow = (input('Digite seu usuário: '))
conn = sqlite3.connect('tabela.db')
cursor = conn.cursor()
usu1 = []
pass1 = []
pass2=[]
usu2 = []
cursor.execute("""
SELECT usuario FROM cadastros
""")
for linha in cursor.fetchall():
usu2.append(linha[0])
cursor.execute("""
SELECT senha FROM cadastros
""")
for linha in cursor.fetchall():
pass2.append(linha[0])
cursor.execute("""
SELECT usuario FROM adms
""")
for linha1 in cursor.fetchall():
usu1.append(linha1[0])
cursor.execute("""
SELECT senha FROM adms
""")
for linha1 in cursor.fetchall():
pass1.append(linha1[0])
if usuhellow not in usu1 and usuhellow not in usu2:
while usuhellow not in usu1 and usuhellow not in usu2:
print('Usuario não cadastrado')
usuhellow = (input('Digite seu usuário novamente: '))
if usuhellow in usu2:
passhellow = input('Digite sua senha: ')
if passhellow not in pass2:
while passhellow not in pass2:
print('Senha incorreta')
passhellow = input('Digite novamente sua senha: ')
pass
if passhellow in pass2:
while True:
conn = sqlite3.connect('tabela.db')
cursor = conn.cursor()
calendario = ['Ano', 'Mês', 'Dia', 'Hora', 'Minuto', 'Segundo']
a12 = list(time.localtime())
dic = {}
for i in range(6):
dic[calendario[i]] = a12[i]
i -= 1
data = '{0}/{1}/{2}'.format(dic['Dia'], dic['Mês'], dic['Ano'])
horario = '{0}:{1}:{2}'.format(dic['Hora'], dic['Minuto'], dic['Segundo'])
cursor.execute("""
INSERT INTO entrada (usuario, senha, data_de_entrada, horario_de_entrada)
VALUES (?,?,?,?)
""", (usuhellow, passhellow, data, horario))
conn.commit()
saida = str('O funcionário ' + usuhellow + ' entrou dia ' + data + ' às ' + horario)
print(saida)
conn.close()
sys.exit(':)')
elif usuhellow in usu1:
passhellow1 = input('Digite sua senha: ')
if passhellow1 not in pass1:
while passhellow1 not in pass1:
print('Senha incorreta')
passhellow1 = input('Digite novamente sua senha: ')
pass
if passhellow1 in pass1:
while True:
conn = sqlite3.connect('tabela.db')
cursor = conn.cursor()
print(80 * '=')
hello = 'Bem vindo ao gerenciador de expediente'
print(hello.center(80, ' '))
print('Digite:\n1 Cadastrar\n2 Atualizar dados\n3 Deletar\n4 Listar funcionários\n5 Gerar folha de pagamento\n6 Listar folhas de pagamento\n9 Sair')
opc = input('=> ')
if opc == '1':
nome = input("Insira o nome: ")
print(nome)
print("Tem certeza ?")
aysn = input("s/n ?: ")
if aysn == "n" or aysn == "N":
while aysn == "n" or aysn == "N":
nome = input("Insira o nome: ")
print(nome)
print("Tem certeza ?")
aysn = input("s/n ?: ")
elif aysn == "s" or aysn == "S":
pass
usu = input('Insira seu nome de usuário: ')
print(usu)
print("Tem certeza ?")
aysu = input("s/n ?: ")
if aysu == "n" or aysu == "N":
while aysu == "n" or aysu == "N":
usu = input("Insira seu nome de usuário: ")
print(usu)
print("Tem certeza ?")
aysu = input("s/n ?: ")
elif aysu == "s" or aysu == "S":
pass
passw = input('Insira sua senha: ')
print(passw)
print("Tem certeza ?")
aysps = input("s/n ?: ")
if aysps == "n" or aysps == "N":
while aysps == "n" or aysps == "N":
passw = input("Insira sua senha: ")
print(passw)
print("Tem certeza ?")
aysps = input("s/n ?: ")
elif aysps == "s" or aysps == "S":
pass
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
m1 = int(data[3] + data[4])
d1 = int(data[0] + data[1])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
if d:
pass
else:
while not d:
print("Data inválida")
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
m1 = int(data[3] + data[4])
d1 = int(data[0] + data[1])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
br = (
str(data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[9]))
print(br)
print("Tem certeza ?")
aysb = input("s/n?: ")
if aysb == "n" or aysb == "N":
while aysb == "n" or aysb == "N":
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
d1 = int(data[0] + data[1])
m1 = int(data[3] + data[4])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
if d:
pass
else:
while not d:
print("Data inválida")
b = list(input("Data de nascimento(DD/MM/YYYY): "))
if len(b) != 10 or b[2] != "/" or b[5] != "/":
while len(b) != 10 or b[2] != "/" or b[5] != "/":
print("Por favor, verifique a data de nascimento")
b = input("Data de nascimento(DD/MM/YYYY): ")
data = b
d1 = int(data[0] + data[1])
m1 = int(data[3] + data[4])
a1 = int(data[6] + data[7] + data[8] + data[9])
d = datav(m1, d1, a1)
br = (str(
data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[
9]))
print(br)
print("Tem certeza ?")
aysb = input("s/n?: ")
elif aysb == "s" or aysb == "S":
pass
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[2] == cpf[
4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
if not veri:
print("CPF inválido")
while not veri:
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
pass
cp = (str(
cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[10] + cpf[
11] + cpf[12] + cpf[13]))
print(cp)
print("Tem certeza ?")
aysc = input("s/n ?: ")
if aysc == "n" or aysc == "N":
while aysc == "n" or aysc == "N":
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
if not veri:
print("CPF inválido")
while veri != True:
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == \
cpf[1] == cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
print("Por favor, verifique o CPF")
cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
else:
pass
a = int(cpf[0])
b = int(cpf[1])
c = int(cpf[2])
d = int(cpf[4])
e = int(cpf[5])
f = int(cpf[6])
g = int(cpf[8])
h = int(cpf[9])
i = int(cpf[10])
j = int(cpf[12])
k = int(cpf[13])
veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
pass
cp = (str(
cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[
10] + cpf[11] + cpf[12] + cpf[13]))
print(cp)
print("Tem certeza ?")
aysc = input("s/n?: ")
elif aysc == "s" or aysc == "S":
pass
email = (input('e-mail: '))
emailv=[]
conn = sqlite3.connect('tabela.db')
cursor = conn.cursor()
cursor.execute("SELECT email FROM cadastros;")
for l in cursor.fetchall():
emailv.append(l[0])
if email in emailv:
while email in emailv:
print('Usuário já cadastrado')
email=input('Digite outro e-mail: ')
if '@' in email:
print(email)
print('Tem certeza ?')
aysem = input('s/n?: ')
if aysem == 's' or aysem == 'S':
pass
elif aysem == 'n' or aysem == 'N':
while aysem == 's' or aysem == 'S':
email = (input('e-mail: '))
print(email)
print('Tem certeza ?')
aysem = input('s/n?: ')
elif '@' not in email:
while '@' not in email:
print('e-mail inválido, porfavor digite novamente')
email = (input('=> '))
print(email)
print('Tem certeza ?')
aysem = input('s/n?: ')
if aysem == 's' or aysem == 'S':
pass
elif aysem == 'n' or aysem == 'N':
while aysem == 's' or aysem == 'S':
email = (input('e-mail: '))
print(email)
print('Tem certeza ?')
aysem = input('s/n?: ')
p_fone = input('Fone(XX)XXXX-XXXX: ')
if len(p_fone) == 14:
if p_fone[4] == '9':
pass
elif p_fone[4] != '9':
while p_fone[4] != '9':
print('Telefone inválido')
p_fone = input('Fone(XX)XXXX-XXXX: ')
elif len(p_fone) < 13:
while len(p_fone) < 13:
print('Por favor, verifique seu telefone')
p_fone = input('Fone(XX)XXXX-XXXX: ')
p_rg = input('RG: ')
print(p_rg)
print('Tem certeza ?')
aysrg = input('s/n?: ')
if aysrg == 'n' or aysrg == 'N':
p_rg = input('RG: ')
print(p_rg)
print('Tem certeza ?')
aysrg = input('s/n?: ')
else:
pass
print('Turno (início "xx:xx/xx:xx" fim), no formato de 24 horas')
turno = input('=> ')
if '/' not in turno or ':' not in turno or len(turno)!=11:
while '/' not in turno or ':' not in turno or len(turno)!=11:
print('Turno inválido')
turno = input('Digite o turno novamente(início "xx:xx/xx:xx" fim): ')
print(turno)
print('Tem certeza ?')
aystr = input('s/n?: ')
if aystr == 'n' or aystr == 'N':
while aystr == 'n' or aystr == 'N':
print('Turno (início "xx:xx/xx:xx" fim), no formato de 24 horas')
turno = (input('=> '))
if '/' not in turno or ':' not in turno or len(turno)!=11:
while '/' not in turno or ':' not in turno or len(turno)!=11:
print('Turno inválido')
turno = input('Digite o turno novamente(início "xx:xx/xx:xx" fim): ')
elif aystr == 's' or aystr == 'S':
pass
salario = float(input('Salário: R$ '))
print(salario)
print('Tem certeza ?')
ayssl = input('s/n?: ')
if ayssl == 'n' or ayssl == 'N':
while ayssl == 'n' or ayssl == 'N':
salario = float(input('Salário: R$ '))
elif ayssl == 's' or ayssl == 'S':
pass
dic = {}
a12 = list(time.localtime())
calendario = ['Ano', 'Mês', 'Dia', 'Hora', 'Minuto', 'Segundo']
for i in range(6):
dic[calendario[i]] = a12[i]
i -= 1
dataadm = '{0}/{1}/{2}'.format(dic['Dia'], dic['Mês'], dic['Ano'])
cursor.execute("""
INSERT INTO cadastros (nome, usuario, senha, data_de_nascimento, cpf, fone, rg, turno, email, salario, data_de_admissao)
VALUES (?,?,?,?,?,?,?,?,?,?,?)
""", (nome, usu, passw, br, cp, p_fone, p_rg, turno, email, salario, dataadm))
conn.commit()
print('Dados inseridos com sucesso.')
conn.close()
elif opc == '42':
import turtle
import math
import random
wn = turtle.Screen()
wn.bgcolor('black')
Albert = turtle.Turtle()
Albert.speed(0)
Albert.color('white')
rotate=int(360)
def drawCircles(t,size):
for i in range(10):
t.circle(size)
size=size-4
def drawSpecial(t,size,repeat):
for i in range (repeat):
drawCircles(t,size)
t.right(360/repeat)
drawSpecial(Albert,100,10)
Steve = turtle.Turtle()
Steve.speed(0)
Steve.color('yellow')
rotate=int(90)
def drawCircles(t,size):
for i in range(4):
t.circle(size)
size=size-10
def drawSpecial(t,size,repeat):
for i in range (repeat):
drawCircles(t,size)
t.right(360/repeat)
drawSpecial(Steve,100,10)
Barry = turtle.Turtle()
Barry.speed(0)
Barry.color('blue')
rotate=int(80)
def drawCircles(t,size):
for i in range(4):
t.circle(size)
size=size-5
def drawSpecial(t,size,repeat):
for i in range (repeat):
drawCircles(t,size)
t.right(360/repeat)
drawSpecial(Barry,100,10)
Terry = turtle.Turtle()
Terry.speed(0)
Terry.color('orange')
rotate=int(90)
def drawCircles(t,size):
for i in range(4):
t.circle(size)
size=size-19
def drawSpecial(t,size,repeat):
for i in range (repeat):
drawCircles(t,size)
t.right(360/repeat)
drawSpecial(Terry,100,10)
Will = turtle.Turtle()
Will.speed(0)
Will.color('pink')
rotate=int(90)
def drawCircles(t,size):
for i in range(4):
t.circle(size)
size=size-20
def drawSpecial(t,size,repeat):
for i in range (repeat):
drawCircles(t,size)
t.right(360/repeat)
drawSpecial(Will,100,10)
elif opc == '2':
cursor.execute("""
SELECT * FROM cadastros;
""")
ids = []
for linha in cursor.fetchall():
print('Funcionário: {0} ---- ID: {1}'.format(linha[1], linha[0]))
ids.append(linha[0])
id_cliente = int(input('Digite o id do funcionário: '))
if id_cliente in ids:
pass
else:
while id_cliente not in ids:
id_cliente = int(input('Digite o id do funcionário: '))
novo_usuario = input('Digite o novo nome de usuário: ')
novo_fone = input('Digite o novo nº de telefone (XX)XXXX-XXXX: ')
nova_senha = input('Digite a nova senha: ')
cursor.execute(
UPDATE cadastros
SET usuario = ?, senha = ?, fone = ?
WHERE id = ?
, (novo_usuario, nova_senha, novo_fone, id_cliente))
conn.commit()
print('Dados atualizados com sucesso.')
conn.close()
elif opc == '3':
cursor.execute("""
SELECT * FROM cadastros;
""")
ids = []
for linha in cursor.fetchall():
print('Funcionário: {0} ---- ID: {1}'.format(linha[1], linha[0]))
ids.append(linha[0])
id_cliente = int(input('Digite o id do funcionário: '))
if id_cliente in ids:
pass
else:
while id_cliente not in ids:
id_cliente = int(input('Digite o id do funcionário: '))
cursor.execute("""
DELETE FROM cadastros
WHERE id = ?
""", (id_cliente,))
conn.commit()
print('Registro excluido com sucesso.')
conn.close()
elif opc == '4':
while True:
conn = sqlite3.connect('tabela.db')
cursor = conn.cursor()
print('Digite o primeiro nome como foi cadastrado(no mínimo 4 letras) ou 9 para sair')
pesq = input('=> ')
if pesq == '9':
break
if len(pesq) < 4:
while len(pesq) < 4:
print('No mínimo 4 letras')
pesq = input('=> ')
cursor.execute('SELECT * FROM cadastros WHERE nome LIKE "{}%"'.format(pesq))
for lista in cursor.fetchall():
listagem = '\nFuncionário: {}\nUsuário: {}\nTelefone: {}\ne-mail: {}\nCPF: {}\nRG: {}\nData de nascimento: {}\nData de admissão: {}\nSalário: {}\n\n'.format(
lista[1], lista[2], lista[6], lista[7], lista[5], lista[9], lista[4], lista[11], lista[10])
print(listagem.center(80,' '))
conn.close()
elif opc == '5':
print('Ainda não implementado')
elif opc == '6':
print('Ainda não implementado')
elif opc == '9':
print(':)')
break
</syntaxhighlight>
Escopo
- Objetivo da aplicação
- Desenvolver um software que tenha a capacidade de ler dados decorrentes dos funcionários de uma empresa que apresenta três turnos de serviço (matutino, vespertino e noturno), bem como realizar o cadastro dos mesmos com informações pessoais necessárias para que seja admitido como funcionário (identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, etc.). O armazenamento de dados dos funcionários será necessário para que seja calculado o salário final de cada um ao final de cada mês, baseando-se nas horas in itineres (horas extras) e as horas normais de serviço (de acordo com a Lei nº 10.243, de 19 de Junho de 2001), isto é, pelos registros dos horários de entrada e saída bem como dias de domingo e feriados.
- Desenvolver um software que tenha a capacidade de ler dados decorrentes dos funcionários de uma empresa que apresenta três turnos de serviço (matutino, vespertino e noturno), bem como realizar o cadastro dos mesmos com informações pessoais necessárias para que seja admitido como funcionário (identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, etc.). O armazenamento de dados dos funcionários será necessário para que seja calculado o salário final de cada um ao final de cada mês, baseando-se nas horas in itineres (horas extras) e as horas normais de serviço (de acordo com a Lei nº 10.243, de 19 de Junho de 2001), isto é, pelos registros dos horários de entrada e saída bem como dias de domingo e feriados.
Entradas
- O que o sistemas receberá de dados?
- Ex: quais dados serão digitados via teclado
Identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, email, nome de funcionário, senha para login dos funcionários da empresa.
Saídas
- O que será gerado de resultado impresso?
- Ex: quais dados serão publicados na tela ou no papel
Data e horário de entrada e saída de cada um dos funcionários e o salário final de cada um deles.
Armazenamento
- O que será gravado em arquivo
- Indentidade, CPF, data de nascimento, email, senha, carteira de motorista, carteira de trabalho e horas trabalhadas de acordo com os horários de entrada e saída bem como os dias trabalhados para cada um dos funcionários da empresa.
- Indentidade, CPF, data de nascimento, email, senha, carteira de motorista, carteira de trabalho e horas trabalhadas de acordo com os horários de entrada e saída bem como os dias trabalhados para cada um dos funcionários da empresa.
Cálculos
- O que será processado?
- Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.
- Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.
Desenvolvedores
- Asaph Souza Diniz
- Camila Vieira Verardo
- João Vitor Pereira Leite
- Leticia de Almeira Takata
- Pedro Henrique Machado Rodrigues