吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统

import sqlite3

cx = sqlite3.connect('E:\\student3.db')

cx.execute( '''CREATE TABLE StudentTable(
    ID          INTEGER     PRIMARY KEY     AUTOINCREMENT,
    StuId       INTEGER     NOT NULL,
    NAME        TEXT        NOT NULL,
    CLASS       INT         NOT NULL
);''')

print("Table created successfully!")
Table created successfully!
cx.execute('''CREATE TABLE CourseTable  (
    CourseId        INT         NOT NULL,
    Name            TEXT        NOT NULL,
    Teacher         TEXT        NOT NULL,
    Classroom       TEXT        NOT NULL,
    StartTime       CHAR(11)    NOT NULL,
    EndTime         CHAR(11)    NOT NULL
);''')

cu = cx.cursor()

CourseTable = [('1', 'Qt', 'ming', 602, 'Monday9:00', 'Monday11:00'),('2', 'Linux', 'han', 605, 'Friday13:20', 'Friday14:20'),('3', 'sqlite3', 'hah', 608, 'Thursday15:00', 'Thursday17:00')]
cu.executemany("insert into CourseTable values(?, ?, ?, ?, ?, ?)", CourseTable)
cx.commit()
print("Table created successfully!")
Table created successfully!
cx.execute('''CREATE TABLE XuankeTable(
    ID      INTEGER     PRIMARY KEY     AUTOINCREMENT,
    StuId       INT     NOT NULL,
    CourseId    INT     NOT NULL
);''')

print("Table created successfully")
Table created successfully
def insert_stu():#插入学生信息
    cu = cx.cursor()
    stu_id = input("请输入学生学号:")
    cu.execute("select StuId from StudentTable where StuId =%s" %(stu_id))
    row = cu.fetchone()
    if row:
        print("Sorry,该学号已存在,请重新输入")
    else:
        stu_name = input("请输入学生姓名")
        stu_class = input("请输入学生班级")
        sql1 = "insert into StudentTable(StuId, NAME, CLASS) values(%s, '%s', %s);" % (stu_id, stu_name, stu_class)
        cu.execute(sql1)
        cx.commit()
        print("恭喜你,学生录入成功!")
    cu.close()
def xuanke():#学生选课
    cu = cx.cursor()
    stu_id = input("请输入要选课的学生学号:")
    sql2 = "select StuId from StudentTable where StuId =%s"%(stu_id)
    cu.execute(sql2)
    row = cu.fetchone()
    if row:
        sql3 = "select CourseId, Name, Teacher, Classroom, StartTime, EndTime from CourseTable"
        cu.execute(sql3)
        rows = cu.fetchall()
        for row in rows:
            print("CourseId = ", row[0])
            print("Name = ", row[1])
            print("Teacher = ", row[2])
            print("Classroom = ", row[3])
            print("StartTime = ", row[4])
            print("EndTime = ", row[5], "\n")
        cou_id = input("请输入要选的课程号是:")
        sql0 = "select CourseId from CourseTable where CourseId = %s"%(cou_id)
        cu.execute(sql0)
        row = cu.fetchone()
        if row:
            sql = "select StuId CourseId from XuankeTable where CourseId = %s and StuId = %s;" % (cou_id,stu_id)
            cu.execute(sql)
            row = cu.fetchone()
            if row:
                print("该课程已选,不能重复选课!")
            else:
                sqll = "insert into XuankeTable (stuId,CourseId) values (%s,%s);" % (stu_id,cou_id)
                cu.execute(sqll)
                cx.commit()
                print("带喜你,选课成功!")
        else:
            print("Sorry,该课程不存在!")
    else:
        print("Sorry,没有该学生号!")
    cu.close()
def stu_id_search():#通过学生Id,查询学生信息
    cu = cx.cursor()
    search_stu_id = input("请输入要查询的学号:")
    sql4 = "select ID,StuId,NAME,CLASS from StudentTable where StuId=%s"%(search_stu_id)
    cu.execute(sql4)
    row = cu.fetchone()
    cx.commit()
    if row:
        sql5 = "select ID,StuId,NAME,CLASS from StudentTable"
        cu.execute(sql5)
        rows = cu.fetchall()
        for row in rows:
            print("---------")
            print("您要查询的学生信息为:")
            print("ID=",row[0])
            print("StuId",row[1])
            print("NAME=",row[2])
            print("CLASS = ",row[3],"\n")
    else:
        print("Sorry, 没有该学生信息!")
    cu.close()
def stu_id_cou():#通过学生Id,查询学生Id的课程信息
    cu = cx.cursor()
    stu_id = input("请输入要查询学生号:")
    sql5 = "select StuId from StudentTable where stuId =%s" % (stu_id)
    cu.execute(sql5)
    row = cu.fetchall()
    if row:
        sql6 = "select * from XuankeTable a left join CourseTable b on a.CourseId=b.CourseId"
        cu.execute(sql6)
        rows = cu.fetchall()
        for row in rows:
            print("该学生所选课程为:")
            print("StuId = ",row[1])
            print("CourseId = ",row[2])
            print("Name = ", row[4])
            print("Teacher = ", row[5])
            print("Classroon =",row[6])
            print("StartTime = ",row[7])
            print("EndTime = ", row[8], "\n")
            print("-----------------")
    else:
        print("sorry,没有该学生选课信息!")
    cu.close()
def cou_id_serach():#通过课程Id,查询课程信息
    cu = cx.cursor()
    cou_id = input("请输入要查询的课程号:")
    sql7 = "select CourseId,Name,Teacher,Classroom,StartTime,EndTime from CourseTable where CourseId =%s"%(cou_id)
    cu.execute(sql7)
    row = cu.fetchone()
    if row:
        print("您要查询的课程信息为:")
        print("CourseId = ", row[0])
        print("Name = ", row[1])
        print("Teacher = ", row[2])
        print("Classroom = ", row[3])
        print("StartTime = ",row[4])
        print("EndTime = ", row[5], "\n")
    else:
        print("Sorry,没有该课程信息!")
    cu.close()
def cou_id_stu():#通过课程号查询所选学生信息
    cu = cx.cursor()
    cou_id = input("请输入课程号:")
    sql8 = "select CourseId from XuankeTable where CourseId =%s" % (cou_id)
    cu.execute(sql8)
    row = cu.fetchone()
    if row:
        sql9 = "select * from XuankeTable a left join StudentTable b on a.StuId=b.StuId"
        cu.execute(sql9)
        rows = cu.fetchall()
        for row in rows:
            print("-----------------------------")
            print("选择该课程的学生为:")
            print("StuId = ", row[1])
            print("NAME = ", row[5])
            print("CLASS = ", row[6])
        else:
            print("Sorry,没有该课程信息!")
        cu.close()
def menu():
    print("1.进入学生信息系统(学生信息录入)")
    print("2.进入学生选课系统(学生选课操作)")
    print("3.进入学生选课信息系统(学生信息查询和选课情况查询)")
    print("4.退出程序")
def student():
    print("1.录入学生信息")
    print("2.返回主菜单")
    
def Course():
    print("1.开始选课")
    print("2.返回主菜单")

def information():
    print("1.按学号查询学生信息")
    print("2.按学号查看学生选课课程列表")
    print("3.按课程号查看课程信息")
    print("4.按课程号查看选课学生列表")
    print("5.返回主菜单")
while True:
    menu()
    print("---------------------")
    x = input("请输入您的选择菜单号:")
    if x == '1':
        student()
        stu = input("您已进入学生录入系统,请再次输入选择菜单:")
        print("---------------------")
        if stu == '1':
            insert_stu()
            continue
        if stu == '2':
            continue
        else:
            print("输入的选项不存在,请重新输入!")
            continue
 
    if x == '2':
        #进入造课信息系统
        Course()
        cou = input("您已进入学生选课系统,请再次输入选择菜单:")
        print("------------------")
        if cou == '1':
            xuanke()
            continue
        if cou == '2':
            continue
        else:
            print("输入的选项不存在,请重新输入!")
            continue
 
    if x == '3':
        #进入学生选课信息表
        information()
        inf = input("您已进入学生选课信息系统,请再次输入选择菜单:")
        print("------------------")
        if inf == '1':
            stu_id_search()
            continue
        if inf == '2':
            stu_id_cou()
            continue
        if inf == '3':
            cou_id_serach()
            continue
        if inf == '4':
            cou_id_stu()
        else:
            print("输入的选项不存在,请重新输入!")
            continue
 
    if x == '4':
        print("谢谢使用")
        exit()
    else:
        print("输入的选项不存在,请重新输入!")
        continue

猜你喜欢

转载自www.cnblogs.com/tszr/p/11932132.html