# -*- coding = utf-8 -*-
# @Time : 2022/8/11 21:55
# @Auther : xy
# @File : Stu_manager_system.py
# @Software : PyCharm
"""
小项目:学生管理系统
要求:
首先得用类的思想来完成
需要自己写模块,然后导入模块来实现
学员信息存储在本地文件中
系统功能有:添加、删除、修改、查询、显示、退出
"""
import student
class StudentManagerSystem(object):
"""
学生的信息:姓名、学号、电话号码、家庭地址(简单就这些吧)
采用文件编写:启动该系统的时候要将文件的信息全部读出,存入列表中
关系系统的时候再将学生系统中的信息重新写入文件(重写 而不是追加)
"""
def __init__(self):
self.students = []
def show_menu(self):
print('*'*7 + ' <学生管理系统> ' + '*' * 7)
print('*'*8 + ' 1.添加学生 ' + '*'*8)
print('*'*8 + ' 2.删除学生 ' + '*'*8)
print('*'*8 + ' 3.修改学生 ' + '*'*8)
print('*'*8 + ' 4.查询学生 ' + '*'*8)
print('*'*8 + ' 5.显示学生 ' + '*'*8)
print('*'*8 + ' 6.退出系统 ' + '*'*8)
print('*' * 26)
def add_student(self):
stu_name = input("学生姓名:")
stu_num = input("学生学号:")
stu_pho = input("学生电话:")
stu_add = input('学生家庭地址:')
stu = student.Student(stu_name, stu_num, stu_pho, stu_add)
self.students.append(stu) # 列表添加的是对象
def show_student(self):
# 小改进:调整了输出的格式
print('name'.center(10,' '),'num'.center(4,' '),'phone'.center(12,' '),'address'.center(20,' '))
for i in self.students:
print(i.name.ljust(10,' '),i.num.ljust(4,' '),i.pho.ljust(12,' '),i.add.ljust(20,' '))
def del_student(self):
del_name = input("你想删除学生的姓名:")
for i in self.students:
if i.name == del_name:
self.students.remove(i)
break
else:
print("查无此人")
def alter_student(self):
alter_name = input("输入你想修改的学生姓名:")
for i in self.students:
if i.name == alter_name:
i.num = input("修改学号:")
i.pho = input("修改电话号码:")
i.add = input("修家庭地址:")
print("修改成功")
break
else:
print("查无此人")
def find_student(self):
find_name = input("输入你想查找学生的姓名:")
for i in self.students:
if i.name == find_name:
print(i.name.ljust(10,' '),i.num.ljust(4,' '),i.pho.ljust(12,' '),i.add.ljust(20,' '))
break
else:
print("查无此人")
def save_student(self):
# 以w的方式打开文件
f = open('student_info','w')
"""
小知识:
__dirt__ 在类中存放类函数、静态函数、普通函数、全局变量以及一些内置属性
对象的__dict__中存储了一些self。xxx的东西
"""
new_list = [i.__dict__ for i in self.students]
f.write(str(new_list))
f.close()
def load_student(self):
# 以读的方式打开文件 由于r的方法要保证文件是存在的
try:
f = open('student_info','r')
except:
f = open('student_info','w')
else:
# 将文件中的数据全部读入data中
data = f.read()
# 将data处理成存放字典的列表
new_list = eval(data)
# 将新的列表存放在self.students中
self.students = [student.Student(i['name'],i['num'],i['pho'],i['add']) for i in new_list]
finally:
f.close()
def run(self):
# 加载学生信息
self.load_student()
while True:
self.show_menu()
menu_num = int(input("请选择:"))
if menu_num == 1:
self.add_student()
elif menu_num == 2:
self.del_student()
elif menu_num == 3:
self.alter_student()
elif menu_num == 4:
self.find_student()
elif menu_num == 5:
self.show_student()
elif menu_num == 6:
self.save_student()
break
else:
print("input error")
# 测试代码
if __name__ == '__main__':
student_manager = StudentManagerSystem()
student_manager.run()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
### 一、实现要求 - 在面向对象编程思想完成学员管理系统的开发 - 学生的信息要实现永久化保存 - 系统要有如下功能: - 添加学生信息 - 修改学生信息 - 查询学生信息 - 显示所有学生信息 - 退出系统并保存学生信息 ### 二、类框架的搭建 我们需要定义两个类: - student类,存储学生的相关信息(姓名、学号、电话号码、地址)。 - StudentManagerSystem类 ,管理所有学生信息和操作学生信息。 **2.StudentManagerSystem类基本框架的定义:** - 需要定义列个列表存储学所有学生信息 - 定义一个run函数,实现学生管理系统的相关操作。 - run函数就是运行学生管理系统,运行后,首先我们需要在文件中加载已经存储好的学生信息。 - 打印学生管理系统的功能菜单 - 然后输入选项,执行相应的功能(添加、删除、查找、显示、修改、退出系统并保存) - 由于我们并不只进行一次操作所以我们需要对上诉两步进行循环操作,只有当选择退出系统操作后,才结束循环
资源详情
资源评论
资源推荐
收起资源包目录
学生管理系统.7z (3个子文件)
main.py 254B
Stu_manager_system.py 5KB
student.py 374B
共 3 条
- 1
FoLiaGe丶
- 粉丝: 62
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0