此文章非原创,只是自己百度和修改,看别人的都不能运行,需要自己修改,为了像我这样的同学少走一些弯路,给大家一些参考。
import sqlite3
cx = sqlite3.connect('D:/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!")
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!")
cx.execute('''CREATE TABLE XuankeTable(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
StuId INT NOT NULL,
CourseId INT NOT NULL
);''')
print("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)"
sql1 += " 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"
sql += "where CourseId = %s and StuId = %s"%(cou_id,stu_id)
cu.execute(sql)
row = cu.fetchone()
if row:
print("该课程已选,不能重复选课!")
else:'''
sql3 = "insert into XuankeTable (stuId,CourseId) values(%s,%s)"%(stu_id,cou_id)
cu.execute(sql3)
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], "\n")
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