python 面向对象版本学生管理系统

# coding:utf-8

class StudentInfo(object):
    def __init__(self, students):
        self.students = students
    #     菜单选择
    def select_menu(self):
        while True:
            print('1,查询所有学生;2,添加一个学生;3,批量添加学生;4,根据学号查询某个学生;5,根据名字模糊查询学生;6,根据学号删除学生;7,退出;')
            num = input("请根据数字选择菜单:")
            if num == '1':
                self.list_all_student()
            if num == '2':
                self.add_student(name='张紫菜', age=19, sex='boy', class_number="C")
            if num == '3':
                # 这里的学生数据使用了列表,当然也可以使用字典
                add_students = [
                    {'name': 'tom', 'age': 18, 'class_number': 'A', 'sex': 'girl'},
                    {'name': 'Jblllie', 'age': 16, 'class_number': 'B', 'sex': 'boy'}]
                self.list_add_student(add_students)
            if num == '4':
                self.query_student_by_id()
            if num == '5':
                self.query_student_by_name()
            if num == '6':
                self.delete_student_by_id()
            if num == '7':
                exit()

#     检查学生信息
    def check_student_info(self, **kwargs):
        if 'name' not in kwargs:
            return '没有学生姓名'
        if 'age' not in kwargs:
            return '没有学生年龄'
        if 'sex' not in kwargs:
            return '没有学生性别'
        if 'class_number' not in kwargs:
            return '没有学生班级'
        return True

#     添加学生信息(单条数据)
    def add_student(self, **student):

        check = self.check_student_info(**student)
        if check != True:
            print(check)
            return
        else:
            self.__add(**student)

    def __add(self, **student):
        one_student = {'id': str(len(self.students) + 1)}
        for key, value in student.items():
            one_student[key] = value
        self.students.append(one_student)

#     列出所有学生信息
    def list_all_student(self):
        if len(self.students) == 0:
            print('*' * 10 + '没有学生信息'+ '*' * 10)
        else:
            for item in self.students:
                print("学号:{id},姓名:{name}, 年龄:{age}, 班级:{class_number}, 性别:{sex}".format(id=item['id'], name=item['name'], age=item['age'], class_number=item['class_number'], sex=item['sex']))

#     批量添加学生
    def list_add_student(self, student_list):
        if len(student_list) == 0:
            print('请输入要添加的学生')
        else:
            for one in student_list:
                self.__add(**one)

#     根据学号查询某个学生
    def query_student_by_id(self):
        code = input('请输入学号:')
        for item in self.students:
            if item['id'] == code:
                print("姓名:{},年龄:{},班级:{},性别:{}".format(item['name'], item['age'], item['class_number'], item['sex']))
                break

#   根据名字模糊查询学生
    def query_student_by_name(self):
        name = input('请输入学生名字:')
        for item in self.students:
            if item['name'].find(name) != -1:
                print("姓名:{},年龄:{},班级:{},性别:{}".format(item['name'], item['age'], item['class_number'], item['sex']))

#   根据学生学号id删除某个学生
    def delete_student_by_id(self):
        del_id = input("请输入要删除的学生学号:")
        for item in self.students:
            if item['id'] == del_id:
                self.students.remove(item)
                return

init_student = [
    {'id': '1', 'name': 'None', 'age': 18, 'class_number': 'A', 'sex': 'boy'},
    {'id': '2', 'name': 'Nike', 'age': 18, 'class_number': 'A', 'sex': 'boy'}
]
stu = StudentInfo(init_student)
stu.select_menu()

有更好的建议请指正,3q

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值