# -*- coding:utf-8 -*-
import sqlite3
#模块类
class Student(object):
connect = sqlite3.connect("datebase.db")
cursor = connect.cursor()
sql = "create table Stu(num integer primary key,name text,age INTEGER,phone TEXT)"
#初始化中给对象属性赋值
def __init__(self):
# self.name=""
# self.age=""
# self.phone=""
self.student_list=[]
#添加学员函数
def add_student(self):
# 输入学员姓名、年纪、电话
self.num = input("请输入学员学号:")
self.name = input("请输入学员姓名:")
self.age = input("请输入学员年纪:")
self.phone = input("请输入学员电话:")
sql = "INSERT INTO Stu(num,name,age,phone) VALUES ({},"{}",{},"{}")".format(self.num,self.name,self.age,self.phone)
try:
# 履行sql语句
self.cursor.execute(sql)
print("****添加学员胜利****")
except Exception as e:
print("该学号学员信息已存在!!!")
# 提交履行sql
self.connect.commit()
#查询学员的函数
def query_student(self):
#1.查询所有学员
#2.输入学员姓名 查询学员 得到查询的学员的序号
print("*******学员信息列表*********")
print("1.查询所有学员")
print("2.依据姓名,查询学员信息")
num = input("请选择您的操作:")
# 转换为整数
num = int(num)
# 断定选择学员序号是不是在规模内
while num not in range(1,3):
# 不在规模,重新选择
num = input("没有选项,请重选:")
num = int(num)
if num==1:
sql = "select * from Stu "
rs = self.cursor.execute(sql)
for x in rs:
# print(x)
num,name,age,phone=x
print("学号:{} 姓名:{}年纪:{}电话:{}".format(num,name,age,phone))
else:
name = input("请输入要查询学员的姓名:")
while 1:
a=False
sql = "select * from Stu where name={}".format(name)
try:
rs = self.cursor.execute(sql)
for x in rs:
num, name, age, phone = x
print("学号:{} 姓名:{}年纪:{}电话:{}".format(num, name, age, phone))
a = True
except Exception as e:
name = input("您要查询的学生不在该表,重新输入查询学员的姓名:")
else:
break
#修正学员的函数
def update_student(self):
sql = "select * from Stu "
rs = self.cursor.execute(sql)
for x in rs:
# print(x)
num, name, age, phone = x
print("学号:{} 姓名:{}年纪:{}电话:{}".format(num, name, age, phone))
index = input("请选择要修正的学员学号:")
# 转换为整数类型
index = int(index)
sql1 = "select * from Stu where num={}".format(index)
rs = self.cursor.execute(sql1)
for x in rs:
# print(x)
num, name, age, phone = x
print("学号:{} 姓名:{}年纪:{}电话:{}".format(num, name, age, phone))
new_num = input("请输入修正后的学号 :")
new_name = input("请输入修正后的姓名 :")
new_age = input("请输入修正后的年纪 :")
new_phone = input("请输入修正后的电话 :")
sql2 = "update Stu set num={}, name={}, age={}, phone={} where num={}".format(new_num,new_name,new_age,new_phone,index)
self.cursor.execute(sql2)
self.connect.commit()
print("-----------修正数据完成------------")
#删除学员信息
#1.依据序号删除 2.删除所有学员 3.依据学员姓名删除(有同名的,把同名的都删除)
def delete_student(self):
print("1.依据学员序号删除")
print("2.删除所有学员")
num = int(input("请输入您的选择:"))
# 断定选择的选项是不是在规模内
while num not in range(1, 3):
#获得输入的内容 并转换为整数类型
num = int(input("没有改选项,请重选:"))
#断定选择选项
if num==1:
# 1.展现所有学员信息
sql = "select * from Stu "
rs = self.cursor.execute(sql)
for x in rs:
# print(x)
num, name, age, phone = x
print("学号:{} 姓名:{}年纪:{}电话:{}".format(num, name, age, phone))
# 2.选择删除的序号
index = input("请选择要删除的学员学号:")
# 转换为整数类型
index = int(index)
sql1 = "select * from Stu where num={}".format(index)
self.cursor.execute(sql1)
self.connect.commit()
rs = input("肯定要删除该成员?y(是的)/n(不是):")
if rs == "y":
sql1 = "delete from Stu where num={}".format(index)
self.cursor.execute(sql1)
self.connect.commit()
print("-----------删除胜利-----")
else:
# student_list.clear()
rs = input("肯定要删除全体成员?y(是的)/n(不是):")
if rs == "y":
# 删除列表中全体数据
sql1 = "delete from Stu"
self.cursor.execute(sql1)
self.connect.commit()
else:
print("删除数据操作已撤消!")
def start(self):
#声明一个大列表,寄存所有学员信息
self.student_list=[]
#2.while重复
while True:
print("**************学员管理体系v2.0************")
print("************出品人:智游团体**********")
print("1.添加学员")
print("2.查询学员")
print("3.修正学员")
print("4.删除学员")
print("0.退出程序")
# 选择操作
num = input("请输入您的选择:")
#转换为整数
num = int(num)
# 断定选择的选项是不是在规模内
while num not in range(0, 5):
#重新选择
num = input("没有改选项,请重选:")
#把字符串类型转换整数类型
num = int(num)
#依据选择的选项履行对应的操作
if num==1:
#调用添加学员的函数
self.add_student()
elif num==2:
#调用查询学员的函数
self.query_student()
elif num==3:
#调用修正学员的函数
self.update_student()
elif num==4:
#调用删除学员的函数
self.delete_student()
else:
# print(self.student_list)
print("-----------程序运行停止-------------")
break
# 关闭游标
self.cursor.close()
# 关闭数据库衔接
self.connect.close()
if __name__=="__main__":
st=Student()
st.start()
# -*- coding:utf-8 -*-
import sqlite3
#模块类
cla