txt学生管理系统 项目实现: 1.创建数据模型类StudentModel 2.创建逻辑控制类StudentManagerController 3.完成数据:学生列表 __stu_list 4.行为:获取列表 stu_list, 5.添加学生方法 add_student 6.根据编号删除学生remove_student 7.根据编号修改学生update_student 8.在界面视图类中,根据编号删除学生. 9.在界面视图类中,根据编号修改学生信息.
python"""
定义数据模型
"""
class StudentModel:
"""
学生模型
"""
def __init__(self, name="", age=0, score=0, id=0):
"""
创建学生对象
:param name: 姓名,str类型.
:param age: 年龄,int类型
:param score: 成绩,float类型
:param id: 编号(该学生对象的唯一标识)
"""
self.name = name
self.age = age
self.score = score
self.id = id
python"""
业务逻辑处理
"""
class StudentManagerController:
"""
学生管理控制器,负责业务逻辑处理.
"""
# 类变量,表示初始编号.
__init_id = 1000
def __init__(self):
self.__stu_list = []
@property
def stu_list(self):
"""
学生列表
:return: 存储学生对象的列表
"""
return self.__stu_list
def add_student(self, stu_info):
"""
添加一个新学生
:param stu_info: 没有编号的学生信息
"""
stu_info.id = self.__generate_id()
self.__stu_list.append(stu_info)
def __generate_id(self):
StudentManagerController.__init_id += 1
return StudentManagerController.__init_id
def remove_student(self, id):
"""
根据编号移除学生信息
:param id: 编号
:return:
"""
for item in self.__stu_list:
if item.id == id:
self.__stu_list.remove(item)
return True # 表示移除成功
return False # 表示移除失败
def update_student(self, stu_info):
"""
根据stu_info.id修改其他信息
:param stu_info: 学生对象
:return: 是否修改成功
"""
for item in self.__stu_list:
if item.id == stu_info.id:
item.name = stu_info.name
item.atk = stu_info.atk
item.score = stu_info.score
return True
return False
def order_by_score(self):
"""
根据成绩,对self.__stu_list进行升序排列
"""
for r in range(len(self.__stu_list) - 1):
for c in range(r + 1, len(self.__stu_list)):
if self.__stu_list[r].score > self.__stu_list[c].score:
self.__stu_list[r], self.__stu_list[c] = self.__stu_list[c], self.__stu_list[r]
python"""
界面代码
"""
from bll import *
from model import *
class StudentManagerView:
"""
学生管理器视图
"""
def __init__(self):
self.__manager = StudentManagerController()
def __display_menu(self):
print("1)添加学生")
print("2)显示学生")
print("3)删除学生")
print("4)修改学生")
print("5)按照成绩升序显示学生")
def __select_menu(self):
item = input("请输入:")
if item == "1":
self.__input_student()
elif item == "2":
self.__output_students(self.__manager.stu_list)
elif item == "3":
self.__delete_student()
elif item == "4":
self.__modify_student()
elif item == "5":
self.__output_student_by_score()
def main(self):
"""
界面视图入口
:return:
"""
while True:
self.__display_menu()
self.__select_menu()
def __input_number(self,message):
while True:
try:
number = int(input(message))
return number
except:
print("输入有误")
def __input_student(self):
name = input("请输入姓名:")
# age = int(input("请输入年龄:"))
# score = int(input("请输入成绩:"))
age = self.__input_number("请输入年龄:")
score = self.__input_number("请输入成绩:")
stu = StudentModel(name, age, score)
self.__manager.add_student(stu)
def __output_students(self, list_output):
for item in list_output:
print(item.id, item.name, item.atk, item.score)
def __delete_student(self):
# id = int(input("请输入编号:"))
id = self.__input_number("请输入编号:")
if self.__manager.remove_student(id):
print("删除成功")
else:
print("删除失败")
def __modify_student(self):
stu = StudentModel()
# stu.id = int(input("请输入需要修改的学生编号:"))
stu.id = self.__input_number("请输入需要修改的学生编号:")
stu.name = input("请输入新的学生名称:")
# stu.atk = int(input("请输入新的学生年龄:"))
# stu.score = int(input("请输入新的学生成绩:"))
stu.atk = self.__input_number("请输入新的学生年龄:")
stu.score = self.__input_number("请输入新的学生成绩:")
if self.__manager.update_student(stu):
print("修改成功")
else:
print("修改失败")
def __output_student_by_score(self):
self.__manager.order_by_score()
self.__output_students(self.__manager.stu_list)
python"""
程序入口
"""
from ui import *
# 限制只能从当前模块才执行。
if __name__ =="__main__":
try:
view = StudentManagerView()
view.main()
except:
print("出错啦")
本文作者:赵耀伟
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!