1. Sistema de gerenciamento de informações do aluno
Este capítulo usa a linguagem Python para desenvolver um sistema de gerenciamento de informações do aluno, que pode ajudar os professores a inserir rapidamente as informações do aluno e realizar operações básicas de adição, exclusão, modificação e verificação nas informações do aluno; também pode ser visualizado em uma visão macro com base na função de classificação As notas dos alunos são organizadas de cima para baixo para manter a par do status de aprendizagem recente dos alunos a qualquer momento e salvar as informações do aluno em um arquivo de disco em tempo real.
1.1 Análise de demanda
A fim de atender às necessidades dos usuários de obter dados na era da Internet, o sistema de gerenciamento de informações do aluno deve ter as seguintes funções:
- Adicione informações sobre alunos e notas;
- Salve as informações do aluno em um arquivo;
- Modificar e excluir informações do aluno;
- Consultar informações do aluno;
- Classifique de acordo com o desempenho do aluno;
- Conte a pontuação total dos alunos.
1.2 Projeto do sistema
1.2.1 Estrutura de funções do sistema
O sistema de gerenciamento de informações do aluno é dividido em 7 módulos funcionais, que incluem principalmente o módulo de entrada de informações do aluno, o módulo de pesquisa de informações do aluno, o módulo de exclusão de informações do aluno, o módulo de modificação de informações do aluno, o módulo de classificação de desempenho do aluno, o número total de módulo de estatísticas dos alunos e o módulo de exibição de todas as informações do aluno. A estrutura funcional do sistema de gerenciamento de informações do aluno é mostrada na Figura 1.1.
Figura 1.1 Diagrama da estrutura de funções do sistema
1.2.2 Processo de negócios do sistema
Antes de desenvolver um sistema de gerenciamento de informações do aluno, é necessário entender o processo de negócios do sistema. De acordo com a análise da demanda e a estrutura funcional do sistema de gerenciamento de informações do aluno, projete o processo de negócios do sistema conforme mostrado na Figura 1.2.
1.3 Requerido para o desenvolvimento do sistema
1.3.1 Ambiente de desenvolvimento do sistema
O desenvolvimento de software e o ambiente operacional deste sistema são os seguintes:
- Sistema operacional: Windows7, Windows10;
- Versão Python: Python 3.7;
- Ferramentas de desenvolvimento: Python IDLE;
- Módulos integrados do Python: os, re.
1.3.1 Estrutura de organização de pastas
A estrutura de pastas do sistema de gerenciamento de informações do aluno é relativamente simples, incluindo apenas um arquivo Python. Ao executar o programa, um arquivo chamado students.txt será criado automaticamente no diretório raiz do projeto para salvar as informações do aluno.
1.4 Projeto de função principal
1.4.1 Visão geral da função
A função principal main () do sistema de gerenciamento de informações do aluno é usada principalmente para realizar a interface principal do sistema. Na função principal main (), a função menu () é chamada para gerar o menu de seleção de função e a instrução if é usada para controlar a chamada de cada subfunção, de modo a realizar as funções de entrada, consulta, exibição, modificação, classificação e estatísticas de informações do aluno.
1.4.2 O processo de negócios da função principal
Ao projetar a função principal do sistema de gerenciamento de informações do aluno, devemos primeiro classificar seu processo de negócios e tecnologia de implementação. De acordo com as funções a serem realizadas pela função principal do sistema de gerenciamento de informações do aluno, o processo de negócios mostrado na figura é projetado.
1.4.3 Implementar a função principal
Para executar o sistema de gerenciamento de informações do aluno, você primeiro entrará na interface de seleção do menu de funções principal, onde todas as funções do programa são listadas. O usuário pode inserir o número correspondente à função a ser executada ou pressionar a tecla de seta no teclado para inserir o correspondente Na subfunção. Em segundo lugar, na função menu (), a função print () é usada principalmente para gerar um menu funcional composto de texto e caracteres especiais do console. Quando o usuário insere o número da função ou seleciona a função correspondente, o programa irá chamar funções diferentes de acordo com o número da função selecionada pelo usuário (se a função for selecionada pelas teclas de seta, o programa irá extrair automaticamente o número correspondente). O número específico indica a função como Conforme mostrado na Tabela 1.1.
Numeração | Recursos |
0 | Sair do sistema |
1 | Insira as informações do aluno e chame a função insert () |
2 | Encontre as informações do aluno, chame a função search () |
3 | Para excluir as informações do aluno, chame a função delete () |
4 | Modifique as informações do aluno, chame a função modify () |
5 | Classifique as notas dos alunos e chame a função sort () |
6 | Conte o número total de alunos e chame a função total () |
7 | Exiba as informações de todos os alunos, chame a função show () |
Tabela 1.1 As funções indicadas pelos números no menu
O código de implementação da função principal main () é o seguinte:
def main():
ctrl = True #标记是否退出系统
while (ctrl):
menu() #显示菜单
option = input(“请选择:”) #选择菜单项
option_str = re.sub("\D","",option) #提取数字
if option_str in ['0','1','2','3','4','5','6','7']:
option_int = int(option_str)
if option_int == 0: #退出系统
print('您已退出学生信息管理系统!')
ctrl = False
elif option_int ==1: #录入学生成绩信息
insert()
elif option_int ==2: #查找学生成绩信息
search()
elif option_int ==3: #删除学生成绩信息
delete()
elif option_int ==4: #修改学生成绩信息
modify()
elif option_int ==5: #排序
sort()
elif option_int ==6: #统计学生总数
total()
elif option_int ==7: #显示所有学生信息
show()
1.4.4 Exibir o menu principal
Na função principal main (), a função menu () é chamada para exibir o menu de funções. Seu código específico é o seguinte:
def menu():
#输出菜单
print("'
------------------学生信息管理系统-----------------
| |
|====================功能菜单====================|
| |
| |
| 1 录入学生信息 |
| 2 查找学生信息 |
| 3 删除学生信息 |
| 4 修改学生信息 |
| 5 排序 |
| 6 统计学生总人数 |
| 7 显示所有学生信息 |
| 0 退出系统 |
| |
| |
| |
| |
| |
|=============================================== |
| |
|------------------------------------------------|
"')
1.5 Projeto do módulo de manutenção de informações do aluno
1.5.1 Visão geral do módulo de manutenção de informações do aluno
O módulo de manutenção de informações do aluno é usado para manter as informações do aluno no sistema de gerenciamento de informações do aluno. Inclui principalmente inserir informações do aluno, modificar as informações do aluno e excluir as informações do aluno.Essas informações do aluno serão salvas em um arquivo de disco. Entre eles, quando o usuário insere o número "1" na interface de seleção de função (ou usa as teclas de seta para selecionar o item de menu "1 Inserir informações do aluno"), o usuário pode inserir a função de inserção de informações do aluno. Aqui você pode inserir as informações do aluno em lotes e salvá-las em um arquivo de disco.O efeito de execução é mostrado na figura.
Quando o usuário insere o número "3" na interface de seleção de função (ou usa as teclas de seta para selecionar o item de menu "3 excluir informações do aluno"), ele acessa a interface da função excluir informações do aluno. Aqui você pode excluir as informações do aluno especificadas do arquivo do disco de acordo com a ID do aluno, e o efeito de execução é mostrado na figura.
Quando o usuário insere o número "4" na interface de seleção de função (ou usa as teclas de seta para selecionar o item de menu "4 modificar informações do aluno"), ele acessa a interface de função para modificar as informações do aluno. Aqui você pode modificar as informações do aluno especificadas de acordo com a ID do aluno.
1.5.2 Realizar a função de inserir informações do aluno
1. Visão geral da função
A função de inserir informações do aluno é principalmente obter as informações do aluno inseridas pelo usuário no console e salvá-las em um arquivo de disco para atingir o objetivo de preservação permanente. Por exemplo, insira a função número 1 no menu de funções e pressione a tecla <Enter>. O sistema solicitará a inserção do número do aluno, nome do aluno, pontuação em inglês, pontuação em Python e pontuação em linguagem C. Após inserir as informações corretas, o sistema Pergunte se deseja continuar adicionando, conforme mostrado na figura. Insira "y", o sistema solicitará que o usuário insira as informações do aluno novamente e insira "n", o sistema salvará as informações do aluno inseridas em um arquivo.
2. Processo de Negócios
Ao perceber a função de inserir informações do aluno, devemos primeiro classificar o processo de negócios e a tecnologia de implementação. O processo de negócios e a tecnologia de implementação para inserir as informações do aluno são mostrados na figura.
3. Realização concreta
(1) Escreva uma função para gravar o conteúdo especificado no arquivo e nomeie-a como save (). A função tem um parâmetro do tipo lista para especificar o conteúdo a ser gravado. O código específico da função save () é o seguinte:
#将学生信息保存到文件
def save(student)
try:
student_txt = open(filename,"a") #以追加模式打开
except Exception as e:
student_txt = open(filename,"w") #文件不存在,创建文件并打开
for info in student:
student_txt.write(str(info)+"\n") #按行存储,添加换行符
student_txt.close() #关闭文件
- No código acima, um arquivo será aberto no modo anexar e a instrução try ... except será usada para capturar a exceção. Se ocorrer uma exceção, isso significa que não há nenhum arquivo a ser aberto. Em seguida, crie e abra o arquivo no modo de gravação. Em seguida, escreva os elementos da lista no arquivo, linha por linha, através da instrução for, e adicione uma nova linha no final de cada linha.
(2) Escreva a função insert () que chama a função principal e insere as informações do aluno. Nesta função, primeiro defina uma lista vazia para salvar as informações do aluno e, em seguida, configure um loop while, no qual o usuário deve inserir informações do aluno (incluindo ID do aluno, nome, pontuação em inglês, pontuação em Python e linguagem C por meio da função input () Notas). Se esses conteúdos atenderem aos requisitos, salve-os no dicionário e, em seguida, adicione o dicionário à lista e pergunte se deseja continuar a entrada; se não estiver mais inserido, encerre o loop while e chame a função save () para salvar as informações do aluno inseridas Salvar em arquivo. O código específico da função insert () é o seguinte:
def insert():
stdentList = [] #保存学生信息的列表
mark = True #是否继续添加
while mark:
id = input(“请输入ID(如1001):”)
if not id: #ID为空,跳出循环
break
name = input("请输入名字:")
if not name: #名字为空,跳出循环
break
try:
english = int(inpu("请输入英语成绩:"))
python = int(inpu("请输入Python成绩:"))
c = int (inpu("请输入C语言成绩:"))
except:
print("输入无效,不是整型数值....重新录入信息")
continue
#将输入的学生信息保存到字典
stdent = {"id":id,"name":name,"english":english,"python":python,"c":c}
stdentList.append(stdent) #将学生字典添加到列表中
inputMark = input("是否继续添加?(y/n):")
if inputMark == "y": #继续添加
mark = True
else: #不继续添加
mark = False
save(stdentList) #将学生信息保存到文件
print("学生信息录入完毕!!!")
- No código acima, uma marca de variável de marca é definida para controlar se deve sair do loop.
(3) Após inserir as informações do aluno, um arquivo chamado students.txt será criado no diretório raiz do projeto e as informações do aluno serão armazenadas no arquivo. Por exemplo, depois de inserir 2 informações, o conteúdo do arquivo students.txt é mostrado na figura.
1.5.3 Realizar a função de exclusão de informações do aluno
1. Visão geral da função
A função de excluir as informações do aluno é principalmente a ID do aluno inserida pelo usuário no console, localizar as informações do aluno correspondente no arquivo do disco e excluí-lo. Por exemplo, insira o número da função "3" no menu de funções e pressione a tecla <Enter>, o sistema solicitará que insira o número do aluno a ser excluído, após inserir a ID do aluno correspondente, o sistema excluirá diretamente as informações do aluno do arquivo, e Pergunte se deseja continuar excluindo, conforme mostrado na figura. Digite "y", o sistema solicitará ao usuário novamente que digite o número do aluno a ser excluído e digite "n" para sair da função de exclusão.
2. Processo de Negócios
Ao implementar a função de exclusão de informações do aluno, devemos primeiro classificar o processo de negócios e a tecnologia de implementação. De acordo com a função a ser realizada, projete o processo de negócios e a tecnologia de realização conforme mostrado na figura.
3. Realização concreta
Escreva a função delete () chamada na função principal para excluir as informações do aluno. Nesta função, configure um loop while. Neste loop, o usuário deve inserir a ID do aluno a ser excluída por meio da função input (); em seguida, o arquivo que salva as informações do aluno é aberto no modo somente leitura e seu conteúdo é lido e salvo em uma lista Meio; em seguida, abra o arquivo que salva as informações do aluno no modo de gravação, percorra a lista de informações do aluno salvas e converta cada elemento em um dicionário, de modo que seja conveniente determinar se é a informação a ser excluída de acordo com a ID do aluno inserida. Se não forem as informações a serem excluídas, grave-as de volta no arquivo. O código específico da função delete () é o seguinte:
def delete():
mark = True #标记是否循环
while mark:
studentId = input("请输入要删除的学生ID:")
if studentId is not "": #判断是否输入要删除的学生
if os.path.exists(filename): #判断文件是否存在
with open(filename,'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
else:
student_old = []
ifdel = False #标记是否删除
if student_old: #如果存在学生信息
with open(filename,'w')as wfile: #以写方式打开文件
d = {}
for list in student_old:
d= dict(eval(list)) #字符串转字典
if d['id'] != studentId:
wfile.write(str(d) + "\n") #将一条学生信息写入文件
else:
ifdel = True #标记已经删除
if ifdel:
print("ID为%s的学生信息已经被删除..." % studentId)
else:
print("没有找到ID为 %s 的学生信息..." % studentId)
else: #不存在学生信息
print("无学生信息...")
break #退出循环
show() #显示全部学生信息
inputMark = input("是否继续删除?(y/n):")
if inputMark == "y":
mark = True #继续删除
else:
mark = False #退出删除学生信息功能
- No código acima, a função show () é chamada para exibir as informações do aluno, que serão apresentadas na seção 1.6.4.
1.5.4 Realizar a função de modificar as informações do aluno
1. Visão geral da função
A função de modificar as informações do aluno é principalmente encontrar as informações do aluno correspondentes no arquivo do disco de acordo com a ID do aluno inserida pelo usuário no console e, em seguida, modificá-la. Por exemplo, insira o número da função "4" no menu de funções e pressione a tecla <Enter>. O sistema primeiro exibe uma lista de todas as informações do aluno e, em seguida, solicita a inserção do número do aluno a ser modificado. Depois de inserir a ID do aluno correspondente, o sistema buscará as informações do aluno no arquivo e, se encontrado, solicitará a modificação das informações correspondentes, caso contrário, não será modificado. Finalmente, é perguntado se deseja continuar a modificar, conforme mostrado na figura. Digite "y", o sistema solicitará ao usuário novamente que digite o número do aluno a ser modificado e digite "n" para sair da função de modificação.
2. Processo de Negócios
Ao perceber a função de modificar as informações do aluno, devemos primeiro classificar o processo de negócios e a tecnologia de implementação. como mostra a imagem.
3. Realização concreta
Escreva a função modify () chamada na função principal para modificar as informações do aluno. Nesta função, chame a função show () para exibir todas as informações do aluno e, a seguir, determine se o arquivo que salva as informações do aluno existe. Se existir, abra o arquivo no modo somente leitura, leia todas as informações do aluno e salve-o na lista, caso contrário, volte. Em seguida, o usuário é solicitado a inserir a ID do aluno a ser modificada e o arquivo é aberto no modo somente gravação. Depois de abrir o arquivo, percorra a lista de informações salvas do aluno, converta cada elemento em um dicionário e, em seguida, julgue se são as informações a serem modificadas de acordo com a ID do aluno inserida. Se forem as informações a serem modificadas, o usuário é solicitado a inserir as novas informações e salvá-las no arquivo, caso contrário, elas são gravadas diretamente no arquivo. O código específico da função modify () é o seguinte:
def modify():
show() #显示全部学生信息
if os.path.exists(filename): #判断文件是否存在
with open(filename,'r') as rfile: #打开文件
student_old = rfile.readlines()
else:
return
studentid = input("请输入要修改的学生ID:")
with open(filename,"w") as wfile: #以只写模式打开文件
for student in student_old:
d = dict(eval(student)) #字符串转字典
if d["id"] == studentid: #是否为要修改的学生
print("找到了这名学生,可以修改他的信息!")
while True: #输入要修改的信息
try:
d["name"] = input("请输入姓名:")
d["english"] = int(input("请输入英语成绩:"))
d["python"] = int(input("请输入Python语言:"))
d["c"] = int(input("请输入C语言:"))
except:
print("您的输入有误,请重新输入。")
else:
break #跳出循环
student = str(d) #将字典转换为字符串
wfile.write(studnet + "\n") #将修改的信息写入到文件
print("修改成功!")
else:
wfile.write(student) #将未修改的信息写入到文件
mark = input("是否继续修改其他学生信息?(y/n):")
if mark == "y":
modify() #重新执行修改操作
1.6 Design do Módulo de Consulta / Estatística
1.6.1 Visão geral do módulo de consulta / estatística
No sistema de gerenciamento de informações do aluno, o módulo de consulta / estatística é usado para consultar e contar as informações do aluno. Inclui principalmente a busca de informações do aluno com base no número ou nome do aluno, contando o número total de alunos e exibindo todas as informações do aluno. Ao exibir as informações obtidas do aluno, a pontuação total é calculada automaticamente. Entre eles, quando o usuário insere o número "2" na interface de seleção de funções ou usa as teclas de seta para selecionar o item de menu "2 Find Student Information", a função de localizar informações do aluno pode ser inserida. Aqui você pode encontrar informações do aluno com base no número ou nome do aluno e o efeito de corrida é mostrado na figura.
Quando o usuário insere o número "6" na interface de seleção de função (ou use as teclas de seta para selecionar o item de menu "6 Contar o número total de alunos"), você pode inserir a função de contagem do número total de alunos. As estatísticas podem ser realizadas aqui e a informação do número total de alunos pode ser exibida.O efeito de corrida é mostrado na figura.
Quando o usuário insere o número "7" na interface de seleção de função (ou usa as teclas de seta para selecionar o item de menu "7 Mostrar todas as informações do aluno"), você pode inserir a função exibir todas as informações do aluno. Aqui você pode exibir todas as informações do aluno (incluindo a pontuação total do aluno) e o efeito de corrida é mostrado na figura.
1.6.2 Realize a função de encontrar informações do aluno
1. Visão geral da função
A função de localizar informações do aluno é localizar as informações do aluno correspondentes no arquivo do disco, de acordo com a entrada do usuário na ID ou nome do aluno no console. Por exemplo, insira o número da função "2" no menu de funções e pressione a tecla <Enter>, o sistema irá pedir ao usuário para escolher se deseja consultar pelo número do aluno ou pelo nome do aluno, se o usuário inserir "1", o usuário deve inserir a ID do aluno , Significa pesquisar por carteira de estudante. Em seguida, insira a ID do aluno que deseja consultar, o sistema pesquisará as informações do aluno e, se encontrado, ele será exibido. Caso contrário, "Nenhuma informação de dados" é exibido. Finalmente, se ele perguntar se deseja continuar a pesquisa e inserir “y”, o sistema solicitará ao usuário novamente para selecionar o método de pesquisa e inserir “n” para sair da função de pesquisar informações do aluno.
2. Processo de Negócios
Ao perceber a função de consultar as informações dos alunos, devemos primeiro classificar o processo de negócios e a tecnologia de implementação. De acordo com a função a ser realizada, projete o processo de negócios e a tecnologia de realização conforme mostrado na figura.
3. Realização concreta
Escreva a função search () chamada na função principal para encontrar as informações do aluno, configure um loop e primeiro julgue se o arquivo que armazena as informações do aluno existe no loop, se não existir, forneça um prompt e retorne, caso contrário, peça ao usuário para selecionar o método de consulta; Em seguida, encontre as informações do aluno correspondentes no arquivo que salva as informações do aluno de acordo com o método selecionado e chame a função show_student () para exibir o resultado da consulta. O código específico da função search () é o seguinte:
def search():
mark = True
student_query = [] #保存查询结果的学生列表
while mark:
id = ""
name = ""
if os.path.exists(filename): #判断文件是否存在
mode = input("按ID查输入1;按姓名查输入2:")
if mode == "1":
id = input("请输入学生ID:") #按学生编号查询
elif mode == "2":
name = input("请输入学生姓名:") #按学生姓名查询
else:
print("您的输入有误,请重新输入!")
search() #重新查询
with open(filename,'r')as file: #打开文件
student = file.readlines() #读取全部内容
for list in student:
d = dict(eval(list)) #字符串转字典
if id is not "": #判断是否按ID查询
if d['id'] == id:
student_query.append(d) #将找到的学生信息保存到列表中
elif name is not "": #判断是否按姓名查询
if d['name'] == name:
student_query.append(d)
show_student(student_query) #显示查询结果
student_query.clear() #清空列表
inputMark = input("是否继续查询?(y/n):")
if inputMark == "y":
mark = True
else:
mark = False
else:
print("暂未保存数据信息...")
return
No código acima, a função show_student () é chamada para exibir a lista obtida no formato especificado. O código específico da função show_student () é o seguinte:
#将保存的列表中的学生信息显示出来
def show_student(studentlist):
if not studentlist:
print("无数据信息\n")
return
#定义标题显示格式
format_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^10}"
print(format_title.format("ID","名字",
"英语成绩","Python成绩","C语言成绩","总成绩"))#按指定格式显示标题
#定义具体内容显示格式
format_data = "{:^6}{:^12}\t{:^12}\t{:^12}\t{:^12}\t{:^12}"
for info in studentList: #通过for循环将列表中的数据全部显示出来
print(format_data.format(info.get("id"),
info.get("name"),str(info.get("english")),str(info.get("python")),
str(info.get("c")),
str(info.get("english")+info.get("python")+
info.get("c")).center(12)))
No código acima, o método string format () é usado para formatá-lo. Ao especificar o formato de exibição da string, o número indica a largura, o símbolo "^" indica o visor central e "\ t" indica a adição de um caractere de tabulação.
1.6.3 Realize a função de contar o número total de alunos
1. Visão geral da função
A função de contar o número total de alunos é principalmente contar o número de informações do aluno salvas no arquivo de informações do aluno. Por exemplo, selecione "6 Contar o número de alunos" no menu de funções e pressione a tecla <Enter>. O sistema contará e exibirá automaticamente o número total de alunos.
2. Processo de Negócios
Ao perceber a função de contar o número total de alunos, devemos primeiro classificar seu processo de negócios e tecnologia de implementação, conforme mostrado na figura.
3. Realização concreta
Escreva a função show () chamada na função principal para contar o número total de alunos. Nesta função, adicione uma instrução if para determinar se o arquivo salvo para as informações do aluno existe, se existir, abra o arquivo no modo somente leitura, leia todo o conteúdo do arquivo e salve-o em uma lista. Em seguida, percorra a lista, converta seus elementos em um dicionário e adicione-o a uma nova lista.Finalmente, chame a função show_student () para exibir as informações na nova lista. O código específico da função show () é o seguinte:
def show():
student_new = []
if os.path.exists(filename): #判断文件是否存在
with open(filename,'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
for list in student_old:
studdent_new.append(eval(list)) #将找到的学生信息保存到列表中
if student_new:
show_student(student_new)
else:
print("暂存保存数据信息...")
1.6.4 Realizar a função de exibir todas as informações do aluno
1. Visão geral da função
A função de exibir todas as informações do aluno é principalmente obter e exibir todas as informações do aluno salvas no arquivo de informações do aluno. Por exemplo, selecione o item de menu "7 Exibir todas as informações do aluno" no menu de funções e pressione a tecla <Enter>, o sistema obterá e exibirá todas as informações do aluno.
2. Processo de Negócios
Ao perceber a função de exibir todas as informações do aluno, devemos primeiro classificar o processo de negócios e a tecnologia de implementação, conforme mostrado na figura.
3. Realização concreta
Escreva a função show () chamada na função principal para contar o número total de alunos. Nesta função, adicione uma instrução if para determinar se o arquivo que salva as informações do aluno existe, se existir, abra o arquivo no modo somente leitura, leia todo o conteúdo do arquivo e salve-o em uma lista. Em seguida, itere pela lista, converta seus elementos em um dicionário e adicione-o a uma nova lista e, finalmente, chame a função show_student () para exibir as informações na nova lista. O código específico da função show () é o seguinte:
def show():
student_new = []
if os.path.exists(filename): #判断文件是否存在
with open(filename,'r') as rfile: #打开文件
student_old = rfile.readlines() #读取全部内容
for list in student_old:
student _new.append(eval(list)) #将找到的学生信息保存到列表中
if student_new:
show_student(student _new)
else:
print("暂未保存数据信息...")
- O código acima chama a função show_student () para exibir as informações do aluno no console. A função show_student () foi criada na seção 1.6.2.
1,7
1.7.1 Visão geral do módulo de classificação
No sistema de gerenciamento de informações do aluno, o módulo de classificação é usado para classificar as informações do aluno por série. Inclui principalmente pontuação em inglês, pontuação em Python, pontuação em linguagem C e pontuação total em ordem crescente ou decrescente. Entre eles, quando o usuário insere o número "5" na interface de seleção de função, ou usa as teclas de seta para selecionar o item de menu "5 sort", a função de classificação pode ser acessada. Aqui, as informações do aluno são exibidas na ordem de entrada (não classificadas) e, em seguida, o usuário deve selecionar o método de classificação e a exibição é classificada de acordo com o método de seleção.
1.7.2 Obter classificação por desempenho do aluno
1. Visão geral da função
A função de classificação por notas do aluno é classificar as informações do aluno em ordem crescente ou decrescente de notas de inglês, notas de Python, notas de linguagem C ou notas totais. Por exemplo, insira o número da função "5" e pressione a tecla <Enter>, o sistema exibirá primeiro todas as informações do aluno não classificadas. Em seguida, você será solicitado a selecionar o método de classificação por linguagem de programação (insira "2" aqui) e, em seguida, selecione a classificação decrescente (entrada 1), as informações do aluno serão classificadas e exibidas em ordem decrescente de pontuações Python.
2. Processo de Negócios
Ao implementar a função de classificação pelas notas do aluno, devemos primeiro classificar seu processo de negócios e tecnologia de implementação, conforme mostrado na figura abaixo.
3. Realização concreta
Escreva a função de classificação sort () chamada na função principal. Nesta função, primeiro determine se o arquivo que salva as informações do aluno existe, se existir, abra o arquivo para ler todas as informações do aluno, converta cada informação do aluno em um dicionário e salve-o em uma nova lista, e então obtenha a entrada do usuário De acordo com o resultado da seleção, o método de classificação é executado de acordo e, finalmente, a função show_student () é chamada para exibir o resultado da classificação. O código específico da função sort () é o seguinte:
def sort():
show()
if os.path.exists(filename):
with open(filename,'r') as file:
student_old = file.readlines()
student_new = []
for list in student_old:
d = dict(eval(list)) #字符串转字典
student_new.append(d) #将转换后的字典添加到列表中
else:
return
ascORdesc = input("请选择(0升序;1降序):")
if ascORdesc == "0": #按升序排序
ascORdescBool = False
elif ascORdesc == "1":
ascORdescBool = True #按降序排序
else:
print()
sort()
mode = input()
if mode == "1": #按英语成绩排序
student_new.sort(key=lambda x: x["english"],reverse=ascORdescBool)
elif mode == "2": #按Python成绩排序
student_new.sort(key=lambda x: x["python"],reverse=ascORdescBool)
elif mode == "3": #按C语言成绩排序
student_new.sort(key=lambda x: x["c"],reverse=ascORdescBool)
elif mode == "0": #按总成绩排序
student_new.sort(key=lambda x: x["english"]+x["python"]+x["c"],reverse=ascORdescBool)
else:
print(“您的输入有误,请重新输入!”)
sort()
show_student(student_new) #显示排序结果
No código acima, a classificação obtida pela chamada do método sort () da lista é classificada pela regra de classificação especificada pela expressão lambda. Por exemplo, "key = lambda x: x [" english "]" na linha 22 do código significa classificar de acordo com a chave em inglês do dicionário; "reverse = ascORdescBool" significa se está classificando em ordem decrescente e o valor da variável mark ascORdescBool é True, o que significa Classifique em ordem decrescente.
1.8 Empacotado como um arquivo executável .exe
Após a conclusão do projeto Python, ele pode ser compactado em um arquivo executável .exe, para que o projeto possa ser executado em outros computadores, mesmo se o ambiente de desenvolvimento Python não estiver instalado neste computador.
Para empacotar o arquivo executável .exe, você precisa usar o módulo PyInstaller, que é um módulo de terceiros e precisa ser instalado separadamente. O módulo PyInstaller oferece suporte a vários sistemas operacionais, como Windows, Linux, Mac OS X, etc., mas o módulo não oferece suporte a operações de plataforma cruzada. Por exemplo: o arquivo executável .exe compactado no sistema operacional Windows, o arquivo só pode ser executado no ambiente Windows.
Aqui, o sistema operacional Windows é um exemplo para apresentar a instalação do módulo PyInstaller. A maneira mais fácil de instalar o módulo PyInstaller é inserir o comando "pip install pyinstaller" na "Janela de prompt de comando" para instalar, conforme mostrado na figura. Se for uma atualização ou atualização, você pode usar o comando "pip install --upgrade pyinstaller".
- No sistema operacional Windows, ao usar pip ou easy_install para instalar o módulo PyInstaller, o PyWin32 será instalado automaticamente.
- Após a instalação do módulo PyInstaller, você pode inserir o comando "pyinstaller - version" na "Janela do prompt de comando" para verificar se a instalação foi bem-sucedida, consultando a versão do módulo PyInstaller.
Após a instalação do módulo PyInstaller, você pode empacotar o arquivo .py como um arquivo .exe. O método específico é o seguinte.
(1) Abra a janela "Prompt de comando" através do comando CMD e insira na posição atual do cursor: pyinstaller + -F + (o caminho absoluto do arquivo .py a ser empacotado), por exemplo, se o arquivo for salvo no diretório "", você pode usar o seguinte O código para empacotá-lo:
pyinstaller -F E: \ tmp \ studentsystem \ studentsystem.py
- No código acima, o parâmetro -F significa que apenas um arquivo executável com a extensão .exe é gerado.
(2) Digite o código acima e pressione a tecla <Enter>, o arquivo executável .exe será gerado automaticamente, o processo específico é mostrado na figura.
(3) No local mostrado na figura, encontre o caminho de salvamento do arquivo .exe e encontre o arquivo executável .exe gerado neste caminho, clique duas vezes no arquivo para executar este projeto.
- No programa de empacotamento do módulo PyInstaller introduzido, recursos como imagens, arquivos de texto, áudio e vídeo usados no projeto não podem ser empacotados em arquivos executáveis. Portanto, esses recursos precisam ser copiados para o mesmo diretório do arquivo executável após o empacotamento.
1.9 Resumo
Esta seção usa principalmente a linguagem Python para desenvolver um sistema de gerenciamento de informação do aluno.O núcleo do projeto é operar em arquivos, listas e dicionários. Dentre eles, o funcionamento do arquivo é utilizado para salvar permanentemente as informações do aluno, e o armazenamento das informações do aluno na lista em forma de dicionário é para facilitar a busca, modificação e exclusão das informações do aluno. Com o estudo desta seção, os leitores devem primeiro ser proficientes e dominar os métodos de criação, abertura e modificação de arquivos e, em segundo lugar, também devem dominar os métodos de operação de dicionários e listas, especialmente as regras de classificação personalizadas para listas. As dificuldades deste projeto exigem que os leitores compreendam e compreendam cuidadosamente.