吴裕雄--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 = [('', 'Qt', 'ming', 602, 'Monday9:00', 'Monday11:00'),('', 'Linux', 'han', 605, 'Friday13:20', 'Friday14:20'),('', '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 == '':
student()
stu = input("您已进入学生录入系统,请再次输入选择菜单:")
print("---------------------")
if stu == '':
insert_stu()
continue
if stu == '':
continue
else:
print("输入的选项不存在,请重新输入!")
continue if x == '':
#进入造课信息系统
Course()
cou = input("您已进入学生选课系统,请再次输入选择菜单:")
print("------------------")
if cou == '':
xuanke()
continue
if cou == '':
continue
else:
print("输入的选项不存在,请重新输入!")
continue if x == '':
#进入学生选课信息表
information()
inf = input("您已进入学生选课信息系统,请再次输入选择菜单:")
print("------------------")
if inf == '':
stu_id_search()
continue
if inf == '':
stu_id_cou()
continue
if inf == '':
cou_id_serach()
continue
if inf == '':
cou_id_stu()
else:
print("输入的选项不存在,请重新输入!")
continue if x == '':
print("谢谢使用")
exit()
else:
print("输入的选项不存在,请重新输入!")
continue
吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统的更多相关文章
- 吴裕雄--python学习笔记:sqlite3 模块
1 sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的 ...
- 吴裕雄--python学习笔记:通过sqlite3 进行文字界面学生管理
import sqlite3 conn = sqlite3.connect('E:\\student.db') print("Opened database successfully&quo ...
- 吴裕雄--python学习笔记:os模块的使用
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径下 ...
- 吴裕雄--python学习笔记:os模块函数
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...
- 吴裕雄--python学习笔记:BeautifulSoup模块
import re import requests from bs4 import BeautifulSoup req_obj = requests.get('https://www.baidu.co ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- 吴裕雄--python学习笔记:爬虫包的更换
python 3.x报错:No module named 'cookielib'或No module named 'urllib2' 1. ModuleNotFoundError: No module ...
- 吴裕雄--python学习笔记:爬虫
import chardet import urllib.request page = urllib.request.urlopen('http://photo.sina.com.cn/') #打开网 ...
- Python学习笔记之模块与包
一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...
随机推荐
- linux设置网络三种方法
http://blog.csdn.net/u010003835/article/details/52233296
- 实体机安装Ubuntu系统
今天windows突然蓝屏了,索性安装个 Ubuntu 吧,这次就总结一下实体机安装 Ubuntu 的具体步骤 note: 本人实体机为笔记本 型号为:小米pro U盘为金士顿:8G 安装系统:Ubu ...
- Python3 Windows服务器简单实现 手机访问
设备 1. PC with Win10 2. Python 3.5.1 步骤 打开CMD,cd 到e盘,mkdir pythonWebserver 建立文件夹 //在E盘建立文件夹,作为服务器的根目录 ...
- 【模式分解】无损连接&保持函数依赖
首先引入定义 无损分解指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后应能通过自然联接运算恢复起来.反之,则称为有损分解. 保持函数依赖的分解指的是对关系分解时,原关系的闭包与分解后关系 ...
- 在win10下安装ubuntu双系统总结
在打算装双系统前两天,我事先在网上买了一个16G大小的U盘,用来坐启动盘.后来发现其实有4G大小就远远足够的,16G的太浪费了,忘后来人吸取教训.呜呜呜.....下面给大家讲讲我的安装步骤: 参考文章 ...
- CodeForces 91B Queue (线段树,区间最值)
http://codeforces.com/problemset/problem/91/B B. Queue time limit per test: 2 seconds memory limit p ...
- [LC] 451. Sort Characters By Frequency
Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...
- PHP小点注意
(1)控制器不可以有list,因为它属于thinkPHP的保留关键字,不可以重名
- 吴裕雄--天生自然python学习笔记:python 用pygame模块游戏开发
游戏开发在软件开发领域占据了非常重要的位直.游 戏开发需要用到的技术相当广泛,除了多媒体.图片.动 画的处理外,程序设计更是游戏开发的核心内容. Py game 是为了让 Python 能够进行游戏开 ...
- F. Maximum Weight Subset(贪心or树形dp解法)
题:https://codeforces.com/contest/1249/problem/F 题意:给一颗树,边权为1,节点有点权,问取到一个点集,俩俩之间路径超过k,是点权和最大 思路:贪心地取点 ...