Caso de desenvolvimento do projeto Python (1) ———— Sistema de gerenciamento de informações do aluno

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.

Acho que você gosta

Origin blog.csdn.net/weixin_38452841/article/details/108480075
Recomendado
Clasificación