Escopo
- O FAQ discente visa atender alunos de escolas e universidades com o objetivo de esclarecer dúvidas relacionadas ao cotidiano acadêmico através de um ambiente interativo que possibilita cadastro de informações e perguntas.
Funcionalidades
- Pesquisar dúvidas
- Cadastrar Perguntas/respostas
- Avaliar Perguntas/Respostas
- Contato de Coordenações/instituições
- Top 10 perguntas mais frequentes
- Cadastro de alunos
- Sites importantes
Código
<syntaxhighlight lang="python3">
- C�digo fonte, adicionado os comandos de tratamento de arquivo
- Ao abrir e fechar o programa, os dados salvos desaparecem
print("Bem vindo ao FAQ discente!") arquivo = open('arquivofaq.txt', 'w') donos=["Jos�",'\n',"Fl�vio",'\n',"Vit�ria",'\n',"Sabrina",'\n'] users=[] senhausers=[] sites=[] nsites=[] contatos=[] ncontatos=[] pergunta_mat = [] resposta_mat = [] pergunta_atv= [] resposta_atv= [] arquivo.writelines(donos) arquivo.writelines(users) arquivo.writelines(senhausers) arquivo.writelines(sites) arquivo.writelines(nsites) arquivo.writelines(contatos) arquivo.writelines(ncontatos) arquivo.writelines(pergunta_mat) arquivo.writelines(resposta_mat) arquivo.writelines(pergunta_atv) arquivo.writelines(resposta_atv) arquivo.close() pal_chave=1 nmat=0 natv=0 y=0 teste=0 i=0 op2=0 a=0 b=0 c=0 d=0 e=0 f=0 g=0 h=0 j=0 k=0 nomeuser="a" ndeuser=0 nacesso=0 w=0 u=0 arquivo = open('arquivofaq.txt', 'a') sobre_nos="O FAQ discente visa atender alunos de escolas e universidades com o objetivo de esclarecer d�vidas relacionadas ao cotidiano acad�mico atrav�s de um ambiente interativo que possibilita cadastro de informa��es e perguntas.\nQualquer d�vida, entre em contato: jose.gomide@ufu.br\n" arquivo.writelines(sobre_nos) arquivo.close() def goto(linenum):
global line line = linenum
line=1 while (True):
if line==1:
entrada=int(input("Deseja fazer: \n1.Cadastro\n2.Login\nDigite o n�mero referente a fun��o: "))
if entrada == 1:
goto(2)
elif entrada == 2:
goto(3)
while (entrada<1 or entrada >2 and i<1):
print("Fun��o inv�lida")
entrada=int(input("Deseja fazer:\n1.Cadastro\n2.Login\nDigite o n�mero referente a fun��o: "))
i+=1
if (line==2):
print("Realize seu cadastro!")
arquivo = open('arquivofaq.txt','a')
users.append(input("Digite seu nome de usu�rio: "))
users.append('\n')
senhausers.append(input("Digite sua senha senha: "))
if (users[-1] in users [0:-1]):
print("User j� escolhido! :(")
print("Realize seu cadastro")
users.append(input("Digite seu nome de usu�rio: "))
senhausers.append(input("Digite sua senha senha: "))
else:
print ("Cadastro Realizado")
goto(3)
arquivo.writelines(users)
arquivo.writelines(senhausers)
arquivo.close()
elif line ==3:
print ("Realize o seu login!")
nomeuser=input("Digite o nome de usu�rio: ")
senhauser=input("Digite sua senha: ")
if (nomeuser in donos and senhauser=="04572" and i<1):
i+=1
while(True):
Op = int(input('Funcionalidades:\n1.Cadastrar Perguntas/respostas\n2.Pesquisar d�vidas\n3.Perguntas mais frequentes\n4.Contato de Coordena��es/institui��es e Sites importantes\n5.Sobre n�s\n6.Sair\nDigite a op��o desejada:'))
if Op == 1:
arquivo = open('arquivofaq.txt','a')
print("Cadastro de perguntas e Respostas!")
print("Palavras chaves dispon�veis:\n1.Matr�cula\n2.Atividades extracurriculares")
pal_chave=int(input("Digite o n�mero referente a Palavra Chave: "))
if (pal_chave==1):
pergunta_mat.append(input("\nPergunta: "))
resposta_mat.append(input("\nResposta: "))
elif (pal_chave==2):
pergunta_atv.append(input("\nPergunta: "))
resposta_atv.append(input("\nResposta: "))
else:
print ("Palavra chave inv�lida")
arquivo.writelines(pergunta_mat)
arquivo.writelines(resposta_mat)
arquivo.writelines(pergunta_atv)
arquivo.writelines(resposta_atv)
arquivo.close()
if Op==2:
print ("Fun��o de pesquisa de Perguntas!")
print("Pesquise uma Palavra Chave para ter acesso �s perguntas\nPalavras chave dispon�veis: \n1.Matr�cula\n2.Atividades Extracurriculares")
pal_chave=int(input("Digite o n�mero referente a Palavra Chave: "))
while (pal_chave==1 and y<len(pergunta_mat)):
arquivo = open('arquivofaq.txt','r')
arquivo.readline()
print ("Pergunta: %s\nResposta: %s" %(pergunta_mat[y],resposta_mat[y]))
y+=1
nmat+=1
arquivo.close()
while (pal_chave==2 and j<len(pergunta_atv)):
arquivo=open('arquivofaq.txt','r')
arquivo.readline()
print ("Pergunta: %s\nResposta: %s" %(pergunta_atv[j],resposta_atv[j]))
j+=1
natv+=1
arquivo.close()
if Op==3:
y=0
arquivo=open('arquivofaq.txt','r')
arquivo.readline()
print ("Perguntas mais frequentes")
while (k<len(pergunta_mat) and (nmat>natv)):
print ("Pergunta: %s\nResposta: %s" %(pergunta_mat[k],resposta_mat[k]))
k+=1
while (a<len(pergunta_atv) and (natv>nmat)):
print ("Pergunta: %s\nResposta: %s" %(pergunta_atv[a],resposta_atv[a]))
a+=1
arquivo.close()
if Op==4:
print ("Contato de Coordena��es e Institui��es, sites importantes\nOp��es:\n1. Para cadastrar novos Contatos\n2.Para cadastrar novos Sites\n3.Para visualizar contatos j� cadastrados\n4.Para visualizar sites j� cadastrados")
op2=int(input("Digite o n�mero referente a op��o que deseja: "))
if (op2==1):
arquivo = open('arquivofaq.txt','a')
print("Cadastro de Contatos!")
contatos.append(input("\nDigite o Nome do Contato: "))
ncontatos.append(input("\nDigite o n�mero do contato: "))
elif (op2==2):
print ("Cadastro de novos Sites importantes!")
sites.append(input("\nDigite o nome do Site: "))
nsites.append(input("\nDigite o endere�o do Site: "))
arquivo.writelines(contatos)
arquivo.writelines(ncontatos)
arquivo.writelines(sites)
arquivo.writelines(nsites)
arquivo.close()
elif (op2==3):
arquivo=open('arquivofaq.txt','r')
arquivo.readline()
while (w<len(contatos)):
print ("Contato: %s\n%s" %(contatos[w], ncontatos[w]))
w+=1
arquivo.close()
elif (op2==4):
arquivo=open('arquivofaq.txt','r')
arquivo.readline()
while (u<len(sites)):
print ("Site: %s\n%s" %(sites[u], nsites[u]))
u+=1
arquivo.close()
if Op==5:
print ("Sobre n�s!\n%s"%(sobre_nos))
if Op==6:
break
print ("Sair")
while (1>Op or Op>6):
print ("Fun��o inv�lida")
elif (nomeuser not in users or nomeuser not in donos and senhauser not in senhausers) :
try:
print ("Usu�rio ou senha inv�lidos")
goto(1)
except ValueError:
print ("Usu�rio ou senha inv�lidos")
goto(1)
elif (nomeuser in donos and senhauser!="04572"):
try:
print ("Usu�rio ou senha inv�lidos")
goto(1)
except ValueError:
print ("Usu�rio ou senha inv�lidos")
goto(1)
elif (nomeuser in users and users.index(nomeuser)!=senhausers.index(senhauser)):
try:
print ("Usu�rio ou senha inv�lidos")
goto(1)
except ValueError:
print ("Usu�rio ou senha inv�lidos")
goto(1)
elif (nomeuser not in donos and users.index(nomeuser)==senhausers.index(senhauser)):
while(True and i<1):
i+=1
while(True):
Op = int(input('Funcionalidades:\n1.Pesquisar d�vidas\n2.Perguntas mais frequentes\n3.Contato de Coordena��es/institui��es e Sites importantes\n4.Sobre n�s\n5.Sair\nDigite a op��o desejada:'))
if Op == 1:
arquivo=open('arquivofaq.txt','r')
arquivo.readline()
print ("Fun��o de pesquisa de Perguntas!")
print("Pesquise uma Palavra Chave para ter acesso �s perguntas\nPalavras chave dispon�veis:\n1.Matr�cula\n2.Atividades Extracurriculares")
pal_chave=int(input("Digite o n�mero referente a Palavra Chave: "))
while (pal_chave==1 and b<len(pergunta_mat)):
print ("Pergunta: %s\nResposta: %s" %(pergunta_mat[b],resposta_mat[b]))
b+=1
nmat+=1
while (pal_chave==2 and c<len(pergunta_atv)):
print ("Pergunta: %s\nResposta: %s" %(pergunta_atv[c],resposta_atv[c]))
c+=1
natv+=1
arquivo.close()
if Op==2:
arquivo = open('arquivofaq.txt','r')
arquivo.readline()
y=0
print ("Perguntas mais frequentes")
while (d<len(pergunta_mat) and (nmat>natv)):
print ("Pergunta: %s\nResposta: %s" %(pergunta_mat[d],resposta_mat[d]))
d+=1
while (e<len(pergunta_atv) and (natv>nmat)):
print ("Pergunta: %s\nResposta: %s" %(pergunta_atv[e],resposta_atv[e]))
e+=1
arquivo.close()
if Op==3:
arquivo=open('arquivofaq.txt','r')
arquivo.readline()
print ("Contato de Coordena��es e Institui��es, sites importantes")
while (f<len(contatos)):
print ("Contato: %s\n%s" %(contatos[f], ncontatos[f]))
f+=1
while (g<len(sites)):
print ("Site: %s\n%s" %(sites[g], nsites[g]))
g+=1
arquivo.close()
if Op==4:
print ("Sobre n�s!\n%s"%(sobre_nos))
if Op==5:
print ("Sair")
break
while (1>Op or Op>5):
print ("Fun��o inv�lida")
Op=int(input('Digite a op��o desejada:'))
</syntaxhighlight>