博客信息

Python基础之面向对象(数据持久化学生管理系统)

发布时间:『 2019-06-27 00:48』  博客类别:Python  阅读(666)

考核点 :函数+文件处理+学生管理系统

考核内容

学生管理系统:

1、添加学生功能

2、删除学生功能

3、查看所有学生功能

4、退出系统功能

数据结构:

students = ['学生名1','学生名2'...]

实现数据持久化:

第一次操作完退出系统,下次进来的时候,

上次操作完的数据依旧存在(退出前,先保存数据,

登陆时,先加载上次保存的数据<如果文件存在再加

载>)

(注意不同功能尽量使用函数封装)


import os
#存储所有学生
students = []
#控制循环结束的变量
end = False
#存储数据的文件名字
fileName = 'student.txt'
#展示主菜单
def showMenu():
    print("1.添加学生")
    print("2.删除学生")
    print("3.展示所有")
    print("4.退出系统")
#添加学生
def addStudent(stu):
    students.append(stu)
#判断是否包含学生
def hasStu(stu):
    return stu in students
#删除学生
def delStu(stu):
    if hasStu(stu):
        students.remove(stu)
#展示所有学生
def showAllStudent():
    print(students)
#系统退出
def systemExit():
    print("谢谢使用")
    global end
    end = True
#从文件中加载数据 返回加载得到的列表
def loadData(fileName):
    #如果文件存在
    if os.path.exists(fileName):
        file = open(fileName,'r',encoding='utf-8')
        #读取所有数据
        stus = file.read()
        #使用换行符分割字符串
        stus = stus.split('\n')
        #删除最后一个元素(最后一个元素为换行符)
        stus.pop()
        file.close()
        return stus
    #如果文件不存在,返回空列表
    else:
        return []
#将数据写入到文件中
def saveData(fileName):
    file = open(fileName,'w',encoding='utf-8')
    for i in range(len(students)):
        file.write(students[i]+'\n')
        file.flush()
    file.close()
#程序开始的时候,先从文件中加载之前数据
students = loadData(fileName)
while not end:
    showMenu()
    choice = input("请选择 1-4:")
    if choice == '1':
        stu = input("请输入学生姓名:")
        addStudent(stu)
        print("添加成功")
    elif choice == '2':
        stu = input("请输入学生姓名:")
        delStu(stu)
    elif choice == '3':
        showAllStudent()
    elif choice == '4':
        #退出程序的时候,保存文件
        saveData(fileName)
        systemExit()



over......


关键字:     Python基础       面向对象  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有