编辑
2024-10-01
Python
00
请注意,本文编写于 264 天前,最后修改于 126 天前,其中某些信息可能已经过时。

目录

一、需求分析
二、数据模型
三、业务逻辑
四、界面实现
五、主程序入口

一、需求分析

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("出错啦")
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:赵耀伟

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!