134 lines
3.7 KiB
Python
Executable File
134 lines
3.7 KiB
Python
Executable File
class student_entry:
|
||
def __init__(self, name, id, cls):
|
||
self.name = name
|
||
self.id = id
|
||
self.cls = cls
|
||
|
||
|
||
class database:
|
||
def __init__(self):
|
||
self.data = []
|
||
self._length = 0
|
||
self.data.append(['Name', 'ID', 'Class'])
|
||
self.data.append([])
|
||
|
||
def insert(self, entry):
|
||
stu = [entry.name, entry.id, entry.cls]
|
||
for entry in self.data[1]:
|
||
if stu[1] in entry:
|
||
print("主键 ID 重复,添加失败")
|
||
return
|
||
self.data[1].append(stu)
|
||
self._length += 1
|
||
print("添加成功!")
|
||
|
||
# 可使用任意属性删除
|
||
def delete(self, to_delete):
|
||
for i in range(0, self._length + 1):
|
||
if to_delete in self.data[1][i]:
|
||
del self.data[1][i]
|
||
return
|
||
print("不存在该记录")
|
||
|
||
def update(self, attr_name, old, new):
|
||
entry: list
|
||
for entry in self.data[1]:
|
||
if old in entry:
|
||
if attr_name == 'Name':
|
||
entry[0] = new
|
||
return
|
||
elif attr_name == 'ID':
|
||
entry[1] = new
|
||
return
|
||
elif attr_name == 'Class':
|
||
entry[2] = new
|
||
return
|
||
else:
|
||
print("没有该属性!")
|
||
return
|
||
print("没有该记录!")
|
||
|
||
def read(self, to_read):
|
||
for title in self.data[0]:
|
||
print(title, end='\t\t')
|
||
print('')
|
||
for entry in self.data[1]:
|
||
if to_read in entry:
|
||
for attr in entry:
|
||
print(attr, end='\t\t')
|
||
print('')
|
||
|
||
def print(self):
|
||
print("------------------")
|
||
for title in self.data[0]:
|
||
print(title, end='\t')
|
||
print('')
|
||
for entry in self.data[1]:
|
||
for attr in entry:
|
||
print(attr, end='\t')
|
||
print('')
|
||
|
||
|
||
def interact(db):
|
||
while 1:
|
||
print("----请选择操作, 输入0退出----")
|
||
print("1. 新增\t2. 删除")
|
||
print("3. 查找\t4. 修改\t5. 查看所有记录")
|
||
print("请输入:", end="")
|
||
op = eval(input())
|
||
while op > 5 or op < 0:
|
||
print("非法输入,请重新输入:", end="")
|
||
op = eval(input())
|
||
|
||
if op == 1:
|
||
name = input("请输入姓名:")
|
||
id = input("请输入学号:")
|
||
cls = input("请输入班级:")
|
||
db.insert(student_entry(name, id, cls))
|
||
db.print()
|
||
|
||
elif op == 2:
|
||
val = input("请输入要删除的姓名或学号:")
|
||
db.delete(val)
|
||
|
||
elif op == 3:
|
||
val = input("请输入要查找的姓名或学号:")
|
||
db.read(val)
|
||
|
||
elif op == 4:
|
||
val = input("请输入要修改的属性(Name/ID/Class):")
|
||
old = input("请输入要修改的值:")
|
||
new = input("请输入新值:")
|
||
db.update(val, old, new)
|
||
|
||
elif op == 5:
|
||
db.print()
|
||
|
||
else:
|
||
break
|
||
|
||
|
||
if __name__ == '__main__':
|
||
db = database()
|
||
|
||
print('-----增加两个初始数据-----')
|
||
stu1 = student_entry('刘燕', '0204284', '软件203班')
|
||
db.insert(stu1)
|
||
db.insert(student_entry('小明', '0204200', '软件222班'))
|
||
db.print()
|
||
|
||
interact(db)
|
||
|
||
# print('-----更新值-----')
|
||
# db.update('ID', '0204200', '0204211')
|
||
# db.update('Name', '小明', '小红')
|
||
# db.print()
|
||
#
|
||
# print('-----查找值-----')
|
||
# db.read('小红')
|
||
# db.read('软件203班')
|
||
#
|
||
# print('-----删除小红-----')
|
||
# db.delete('小红')
|
||
# db.print()
|