def main(): mainAction = ActionItem( '', '', [addAction, editAction, deleteAction, queryAction, sortAction], footerTip=''.center(34, '-'), headerTip='学生管理系统'.center(30, '-'), prompt='功能菜单', isMain=True) ActionItem.mainAction = mainAction mainAction.start()
def createStudent(cls, isAdd): no = cls.getInputStuno(isAdd) attrs = {} for attr in [{'key': 'name', 'name': '姓名'}, {'key': 'age', 'name': '年龄'}, {'key': 'score', 'name': '分数'}]: attrs[attr['key']] = ActionItem('', '', [], validate=False, prompt=f'学生{attr["name"]}').start() return Student(no, **attrs)
def getInputStuno(cls, isAdd=True, isAllowNull=False): if not isAdd and len(cls.allStus) == 0: print('还没有录入学生信息') ActionItem.mainAction.start() else: return ActionItem('', '', [], validate=lambda value, *args: cls.validateNo(value, isAdd, isAllowNull), prompt=f'学生编号{"(空表示所有)" if isAllowNull else ""}').start()
from common.ActionItem import ActionItem from module.Student import Student from data.Student import updateStudent # 添加学生 def update(isAdd=True): newStu = Student.createStudent(isAdd) operator = '添加' if isAdd else '修改' updateStudent(newStu, isAdd) print(f'学生信息[{newStu.toFileString()}]已经{operator}成功') # 新增信息 addAction = ActionItem('1', '录入学生信息', update) # 编辑信息 editAction = ActionItem('2', '修改学生信息', lambda: update(False))
from common.ActionItem import ActionItem from module.Student import Student from data.Student import delStudent # 添加学生 def delete(): delStudent(Student.getInputStuno(False)) print(f'学生[{stuno}]已经删除成功') deleteAction = ActionItem('3', '删除学生信息', delete)
from common.ActionItem import ActionItem from module.Student import Student from data.Student import sortStudent, getAllStudent # 添加学生 def sortFunc(sortKey): sortStudent(sortKey) print('排序完成结果为:') print('编号\t\t姓名\t\t年龄\t\t分数') for stu in getAllStudent(): print(stu) childrenAction = [ ActionItem(str(index + 1), item['name'], lambda item=item: sortFunc(item['key'])) for index, item in enumerate(Student.getSortableAttrs()) ] sortAction = ActionItem('5', '排序学生', childrenAction, prompt='排序类型')
from common.ActionItem import ActionItem from module.Student import Student from data.Student import queryStudent # 添加学生 def query(): stus = queryStudent(Student.getInputStuno(False, True)) print('查询结果为:') print('编号\t\t姓名\t\t年龄\t\t分数') for stu in stus: print(stu) queryAction = ActionItem('4', '查找学生信息', query)