python打造简单学员信息管理系统并将数据保存到文件中

准备

开发环境:Windows 7

开发工具:pycharm

开发语言:python3.7

思路及功能分析

  1. 创建一个学生类Student,并定义初始化__init__方法,学生信息包含姓名,年龄,性别,数学成绩,python成绩,学号属性
  2. 定义一个初始化学员信息的方法init_student,即默认添加一些测试数据。
  3. 定义一个读取文件的方法,用于将文件中的学员信息读取出来并保存的类的属性students中,用于后续操作只用
  4. 定义一个写文件的方法,用于将类属性students中的学员信息重新写入到文件中
  5. 定义一个检查学号是否存在的方法,用于在操作学员时检查
  6. 定义添加学员信息的方法,首先判断学号是否已经存在,如果存在则一直提示重新输入,直到学号不存在时将信息保存到类属性students中并调用写文件的方法将数据写入文件
  7. 定义删除,更新,查询和显示所有学员信息的方法
  8. 在主函数中创建学生对象并调用初始化方法添加默认数据
  9. 循环打印提示信息,接收用户输入并执行对应操作

代码实现

import datetime

class Student():
    '''
    清华大学
    '''
    students = []
    def __init__(self,name='',age='',sex='',math=0,python=0,num =''):
        self.name = name
        self.age = age
        self.sex = sex
        self.math = math
        self.python = python
        self.num = num
    
    def __str__(self):
        msg = "学生信息:name=%s, age=%s, sex=%s, math=%s, python=%s, num=%s" % (self.name,self.age,self.sex,self.math,self.python,self.num)
        return msg

    #初始化学员信息并保存到文件中,即添加几条默认数据
    def init_students(self):
        array = [
            ['小米',18,'女 ',78,76,180815],
            ['小红',19,'女',87,68,180817],
            ['小明',18,'男',98,89,180801],
            ['小花',19,'女',67,68,180805],
            ['小霞',17,'女',76,87,180809]]
        with open('write_data.txt','w', encoding='utf-8') as f:
            for row in array:
                f.write('%s,%s,%s,%s,%s,%s'%(row[0],row[1],row[2],row[3],row[4],row[5]))
                f.write('\n')
        self.read_students_from_file()

    def read_students_from_file(self):
        with open('write_data.txt','r', encoding='utf-8') as f:
            for s in f:
                stu = s.split(',')
                self.students.append(Student(stu[0],stu[1],stu[2],stu[3],stu[4],stu[5]))

    def write_students_to_file(self):
         with open('write_data.txt','w', encoding='utf-8') as f:
            for stu in self.students:
                f.write('%s,%s,%s,%s,%s,%s'%(stu.name,stu.age,stu.sex,stu.math,stu.python,stu.num))
                f.write('\n')

    def check_stuno(self,num):
        no_exists = False
        for stu in self.students:
            if num == stu.num:
                no_exists = True
                break
        return no_exists

    def add_student(self):
        num = input("请输入要添加的学员学号:")
        while self.check_stuno(num):
            num = input("该学号已存在,请重新输入:")
          
        name = input("请输入学生姓名:")
        age = input("请输入学生年龄:")
        sex = input("请输入学生性别:")
        math = input("请输入学生数学成绩:")
        python = input("请输入学生python成绩:")
        stu = Student(name,age,sex,math,python,num)
        self.students.append(stu)
        self.write_students_to_file()

    def remove_student(self):
        num = input("请输入要删除的学员学号:")
        for stu in self.students:
            if stu.num == num:
                self.students.remove(stu)
                print('学员%s已被删除'%num)
                self.write_students_to_file()
                break
        else:
            print('学员不存在')

    def update_student(self):
        num = input("请输入要修改的学员学号:")
        for stu in self.students:
            if num == stu.num:
                stu.name = input("请输入学生姓名:")
                stu.age = input("请输入学生年龄:")
                stu.sex = input("请输入学生性别:")
                stu.math = input("请输入学生数学成绩:")
                stu.python = input("请输入学生python成绩:")
                self.students[self.students.index(stu)] = stu
                self.write_students_to_file()
                print('修改成功')
                break
        else:
            print("学员不存在")


    def select_student(self):
        num = input("请输入要查询的学员学号:")
        for stu in self.students:
            if num == stu.num:
                print("查询到的学生信息:",stu)
                break
        else:
            print("学员不存在")

    def print_student_info(self):
        for stu in self.students:
            print(stu)


if __name__ == "__main__":
    day = datetime.datetime.now()
    print("---------------------------------------------")
    print("当前的时间:",day)
    print("---------------------------------------------")
    print("欢迎登录学生管理系统")
    print("***************************")

    stu = Student()
    stu.init_students()#添加默认数据
    
    while True:
        step = input(
"""====================================
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.显示所有学员信息
6.退出系统
====================================
请选择操作:""")
        step = int(step)
        if step == 1:
            stu.add_student()
            stu.print_student_info()
        elif step == 2:
            stu.remove_student()
            stu.print_student_info()
        elif step == 3:
            stu.update_student()
            stu.print_student_info()
        elif step == 4:
            stu.select_student()
        elif step == 5:
            stu.print_student_info()
        elif step == 6:
            print('退出系统')
            break
        else:
            print('指令有误,请重新输入')
    

 

你可能感兴趣的:(技术,人生苦短,我用python)