结合sqlite3的学生信息成绩管理系统(五):查询学生信息query.py

本文档介绍了如何使用Python的sqlite3库创建一个学生信息查询系统,包括查询特定学生信息和按不同标准排序查询。query.py模块包含了查询相关函数,如按学号、居住地查询,以及按学号、总分、单科成绩排序等功能。
摘要由CSDN通过智能技术生成

一、系列文章链接

(一):程序介绍和流程图
(二):主要文件main.py
(三):基础文件basics.py
(四):管理学生信息manage.py
(五):查询学生信息query.py
(六):导入数据文件import_data.py
(七):导出数据文件export_data.py

二、实现效果

(1)查询特定的学生

在这里插入图片描述

(1)查询特定的学生

在这里插入图片描述

菜单:

在这里插入图片描述

①学号

在这里插入图片描述

②居住地

(如果多个学生居住地相同,就显示多个)
在这里插入图片描述

(2)排序查询

在这里插入图片描述

菜单:

在这里插入图片描述

①按学号排序查看

在这里插入图片描述

②按总分排序查看

在这里插入图片描述

③按单科成绩排序

在这里插入图片描述

三、query.py的函数简介

重点: 这部分主要是用于查询,所以要多次用到查询语句,有很多个函数是为了使差不多类型的查询语句多次使用

  1. class Display():
    “”“多个显示函数的集合”""

  2. def main( cn):
    “”“判断是否有学生存在,并根据选项调用函数query_all 和query_some “””

(1)排序查询

  1. def query_all( cn):
    “”“排序查询全部的学生,调用以下三个sort_by_函数”""

  2. def sort_by_sno( cn):
    “”“按学号排序查看”""

  3. def sort_by_total( cn):
    “”“按总分排序查看”""

  4. def sort_by_single( cn):
    “”“按单科成绩排序”""

  5. class ShowReports():
    “”“展示成绩表里的信息,多个显示函数的集合”""

(2)查询特定的学生

  1. 按输入的参数返回"全部信息"的两个函数 :
    def returnall_stu( cn, sel, sinfo):
    “”“按学生表里的某个信息进行查找,返回全部信息”""
    def returnall_repo( cn, sel, sinfo):
    “”“按学生表里的某个信息进行查找,返回全部信息”""

  2. def query_some( cn):
    “”“查询特定的学生,调用以下不同参数的 common “””

  3. def som_common( cn, sel, sinfo):
    “”“query_some( cn) 里的选项可以通用的函数,可以根据 sel 的实参的不同而查询不同信息的学生”""
    #如som_common( cn, ‘Sname’, sname)

  4. def other_to_sno( cn, sel, sinfo):
    “”“将Students表里的其他信息转换成 sno 返回”""

  5. def show_students( information):
    “”“展示学生表里的信息”""


四、代码

import os
import basics as ba

class Display():
    """多个显示函数的集合"""
    def __init__(self):
        pass

    def prefix( self, name):
        print("****************************")
        print("  %s菜单" % name)
        print("****************************")

    def main_show(self):
        self.prefix("查询学生信息")
        print("\t 1:查询特定的学生")
        print("\t 2:排序查询")
        print("\t 0:返回主菜单")
        print("****************************\n")

    def some_show(self):
        self.prefix("查询特定的学生")
        print("\t 1:按学号")
        print("\t 2:按姓名")
        print("\t 3:按性别")
        print("\t 4:按班级")
        print("\t 5:按居住地")
        print("\t 0:返回查询菜单")
        print("****************************\n")

    def all_show(self):
        self.prefix("  排序查询")
        print("\t 1:按学号排序查看")
        print("\t 2:按总分排序查看")
        print("\t 3:按单科成绩排序")
        print("\t 0:返回查询菜单")
        print("****************************\n")

#   按输入的参数返回"全部信息"的两个函数
def returnall_stu( cn, sel, sinfo):
    """按学生表里的某个信息进行查找,返回全部信息"""
    sql = '''SELECT DISTINCT Sno, Sname, Sgender, 
                    Sbirth, Sclass, Snative
            FROM Students WHERE %s = '%s'
         ''' % ( sel, sinfo)
    return common( cn, sql)

def returnall_repo( cn, sel, sinfo):
    """按学生表里的某个信息进行查找,返回全部信息"""
    sql = '''SELECT DISTINCT Racademicyear, 
                    Rterm, Sno, Cno, Grade
            FROM Reports WHERE %s = '%s'
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值