项目简介:随着学校的规模变大,对应的学员回越来越多,相应的管理越来越难。 学员信息管理系统主要是对学员的各种信息进行管理,能够让学员的信息关系变得科学化、系统化和规范化。
知识点:实体类、成员变量属性
方法:输入与输出、异常类
受众:高级测试工程师
作业要求:
- 编写学员实体类 Student,对应成员变量包含:学号 id、姓名 name、性别 sex;
- 编写学员管理类 StudentManagement ,实现添加学员方法 addStudent();
- 编写StudentManagement的main()方法进行学员信息的添加:
学号:1001,姓名:张三,性别:男。
学号:1002,姓名:莉丝,性别:女。
学号:1003,姓名:王武,性别:男。 - 编写学员管理类 StudentManagement ,实现删除学员方法 deleteStudent(),根据学员id 删除以下学员:
学号:1002,姓名:莉丝,性别:女。 - 控制台打印字符串界面,提示用户根据编号选择对应功能,界面功能如下:
1.根据学号查看学员信息 2.添加学员 3.查看所有学员信息 - 自定义异常类:添加学员传入参数不合理时抛出自定义异常
list = [[1001, "张三", "男"], [1002, "莉丝", "女"], [1003, "王武", "男"]]
sutdent = []
sutdents = []
class Student:
def __init__(self, id, name, sex):
self.id = id
self.name = name
self.sex = sex
class StudentManagement:
def adstu(func):
def inner(*args, **kwargs):
print('添加学员信息如下:')
func(*args, **kwargs)
return inner
@adstu
def addStudent(self):
for i in range(0, len(list)):
aa = list[i]
ss = Student(aa[0], aa[1], aa[2])
print(f'学号:{ss.id},姓名:{ss.name},性别:{ss.sex}')
sutdent.append({"id": ss.id, "name": ss.name, "sex": ss.sex})
def main(self):
ss = StudentManagement.addStudent(list)
def destu(func):
def inners(*args, **kwargs):
print('要删除的学员信息如下:')
func(*args, **kwargs)
return inners
@destu
def deleteStudent(self):
for k in range(0, len(sutdent)):
if int(sutdent[k]["id"]) == 1002:
sss = sutdent[k]
dd = Student(sss["id"], sss["name"], sss["sex"])
print(f'学号:{dd.id},姓名:{dd.name},性别:{dd.sex}')
sutdent.pop(k)
break
else:
continue
def dedadd(func):
def innerss(*args, **kwargs):
print('删除后的学员信息如下:')
func(*args, **kwargs)
return innerss
@dedadd
def new_addn(self):
for j in range(0, len(sutdent)):
cc = sutdent[j]
# print(cc)
dd = Student(cc["id"], cc["name"], cc["sex"])
# print(f'dd={dd}')
print(f'学号:{dd.id},姓名:{dd.name},性别:{dd.sex}')
sutdents.append({"id": dd.id, "name": dd.name, "sex": dd.sex})
StudentManagement.main(list)
StudentManagement.deleteStudent(sutdent)
StudentManagement.new_addn(sutdent)
控制台交互部分
newlist = [[1001, "张三", "男"], [1002, "莉丝", "女"], [1003, "王武", "男"]]
class Stu_sql:
def leder_list():
print('------------欢迎来到学员信息管理系统------------')
print(' 1. 根据学号查看学员信息')
print(' 2. 添加学员')
print(' 3. 根据学号删除学员后,查看所有学员信息')
print(' 4. 查询当前所有学员信息')
print(' 5. 退出系统')
def addstu():
id = input('请输入学员编号:')
name = input('请输入学员姓名:')
sex = input('请输入学员性别:')
lis = [id, name, sex]
newlist.append(lis)
print(f'添加成功,添加的学员信息为:学号:{id},姓名:{name},性别:{sex}')
def delstu():
id = input('请输入想要删除的学员编号:')
for k in range(0, len(newlist)):
if int(id) == newlist[k][0]:
dd = newlist[k]
print(f'学号:{dd[0]},姓名:{dd[1]},性别:{dd[2]}')
newlist.pop(k)
print(f'删除成功,删除的学员信息为:学号:{dd[0]},姓名:{dd[1]},性别:{dd[2]}')
break
def lookall():
if newlist != []:
for k in range(0, len(newlist)):
sss = newlist[k]
print(f'学号:{sss[0]},姓名:{sss[1]},性别:{sss[2]}')
else:
print('学员信息为空')
def lookone(number):
if newlist != []:
sss = newlist[int(number)]
print(f'学号:{sss[0]},姓名:{sss[1]},性别:{sss[2]}')
else:
print('学员信息为空')
def look_list():
Stu_sql.leder_list()
number = input('请输入你的选择:')
if number in [1,2,3,4,5,'1','2','3','4','5']:
asas = []
for a in range(0, len(newlist)):
asas.append(str(newlist[a][0]))
if number == 1 or number == '1':
userid = input('请输入想要查找的学员编号:')
Stu_sql.lookone(number)
elif number == 2 or number == '2':
Stu_sql.addstu()
Stu_sql.lookall()
elif number == 3 or number == '3':
Stu_sql.delstu()
print('删除后的学员信息为:')
Stu_sql.lookall()
elif number == 4 or number == '4':
Stu_sql.lookall()
elif number == 5 or number == '5':
print('退出成功')
else:
print(f'您的输入错误:{number}')
def main():
Stu_sql.look_list()
if __name__ == '__main__':
try:
Stu_sql.main()
except Exception as e:
print(f'报错信息是{e}')