Python学生信息管理系统修改版
发布时间:2020-05-24 19:28:22 所属栏目:Python 来源:互联网
导读:在学习之前先要了解sqlite游标的使用方法python使用sqlite3时游标的使用方法继上篇博客Python实现学生信息管理系统后,我就觉得写的太复杂了,然后又是一通优化、优化、优化;
|
在学习之前先要了解sqlite游标的使用方法python使用sqlite3时游标的使用方法 继上篇博客Python实现学生信息管理系统后,我就觉得写的太复杂了,然后又是一通优化、优化、优化; 本次优化主要修改了: 1.使用游标的方法连接、增、删、改、查数据库;
#-*- coding:utf-8 -*-
import sqlite3
#打开本地数据库用于存储用户信息
cx = sqlite3.connect('student.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(
ID INTEGER PRIMARY KEY AUTOINCREMENT,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);''')
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 = raw_input("请输入学生姓名:")
stu_class = input("请输入学生班级:")
sql1 = "INSERT INTO StudentTable(StuId,NAME,CLASS)"
sql1 += " VALUES(%d,'%s',%d);"%(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 = %d;"%(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 =%d;"%(cou_id)
cu.execute(sql0)
row = cu.fetchone()
if row:
sql = "select StuId CourseId from XuankeTable "
sql += "where CourseId = %d and StuId=%d;"%(cou_id,stu_id)
cu.execute(sql)
rows = cu.fetchone()
if row:
print "该课程已选,不能重复选课!"
break
else:
sql3 = "insert into XuankeTable (StuId,CourseId) values (%d,%d)"%(stu_id,cou_id)
cu.execute(sql3)
cx.commit()
print "恭喜你,选课成功!"
else:
print "sorry,该课程不存在!"
else:
print "sorry,没有该学生号"
cu.close()
def stu_id_search():#按照学生学号查询学生信息
cu = cx.cursor()
search_stu_id = input("请输入要查询的学号:")
sql4 = "SELECT ID,StuId,CLASS from StudentTable "
sql4 += "where StuId= %d;" % (search_stu_id)
cu.execute(sql4)
row = cu.fetchone()
if row:
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():#按照学生学号查询该学生所选课程
cu = cx.cursor()
stu_id = input("请输入要查询学生号:")
sql5 = "select StuId from StudentTable where StuId = %d;"%(stu_id)
cu.execute(sql5)
row = cu.fetchone()
if row :
sql6 = "select A.*,B.*,C.* from XuankeTable A,CourseTable B,StudentTable C
where A.StuId = %d and A.CourseId=B.CourseId and A.StuId=C.StuId"%(stu_id)#连表查询
cu.execute(sql6)
rows = cu.fetchall()
for row in rows:
print "该学生所选课程为:"
print "StuId=",row[1]
print "CourseId=",row[2]
print "Name = ",row[7]
print "Teacher = ",row[8]
print "Classroom = ",row[9]
print "StartTime = ",row[10]
print "EndTime = ",row[11],"n"
print
else:
print "sorry,没有该学生选课信息!"
cu.close()
def cou_id_search(): #按照课程号查询课程信息
cu = cx.cursor()
cou_id = input("请输入要查询的课程号:")
sql7 = "select CourseId,EndTime from CourseTable "
sql7 += "where CourseId = %d;"%(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 = ",没有该课程信息!"
cu.close()
def cou_id_stu():#按照课程号查询选择该课程的学生列表
cu = cx.cursor()
cou_id = input('请输入课程号:')
sql8 = "select CourseId from XuankeTable where CourseId =%d;"%(cou_id)
cu.execute(sql8)
row = cu.fetchone()
if row:
sql9 = "select A.*,StudentTable C
where A.CourseId = %d and A.CourseId=B.CourseId and A.StuId=C.StuId"%(cou_id)
cu.execute(sql9)
rows = cu.fetchall()
for row in rows:
print
print "选择该课程的学生为:"
print "StuId = ",row[1]
print "CourseId = ",row[2]
print "NAME = ",row[14]
print "CLASS = ",row[15],没有该课程信息!"
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 = raw_input('请输入您的选择菜单号:')
if x == '1':
#进入学生信息系统
student()
stu = raw_input('您已进入学生录入系统,请再次输入选择菜单:')
print
if stu == '1':
insert_stu()
continue
if stu == '2':
continue
else:
print "输入的选项不存在,请重新输入!"
continue
if x == '2':
#进入选课信息系统
Course()
cou = raw_input('您已进入学生选课系统,请再次输入选择菜单:')
print
if cou == '1':
xuanke()
continue
if cou == '2':
continue
else:
print "输入的选项不存在,请重新输入!"
continue
if x == '3':
#进入学生选课信息表
information()
inf = raw_input('您已进入学生选课信息系统,请再次输入选择菜单:')
print
if inf == '1':
stu_id_search()
continue
if inf == '2':
stu_id_cou()
continue
if inf == '3':
cou_id_search()
continue
if inf == '4':
cou_id_stu()
continue
if inf == '5':
continue
else:
print "输入的选项不存在,请重新输入!"
continue
if x == '4':
print "谢谢使用!"
exit()
else:
print "输入的选项不存在,请重新输入!"
continue
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 您可能感兴趣的文章:
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
