"""
步骤一:
数据模型类:StudentModel
数据:姓名 name,年龄 age,成绩 score,编号 id
逻辑控制类:StudentManagerController
数据:学生列表 _stu_list
行为:获取列表stu_List
添加学生 add_student
修改学生 update_student(new_stu)
根据成绩升序排列 order_by_score
步骤二:
界面视图类:StudentManagerView
行为:
显示菜单__display_menu,
选择菜单项__select_menu_item,入口逻辑main,
输入学生__input_students,
显示学生信息__output_students
删除学生信息__delete_student
修改学生信息__modify_student
"""
class StudentModel:
def __init__(self, name, age, score, id=0):
self.name = name
self.age = age
self.score = score
self.id = id
class StudentManagerController:
init_id = 1000
@classmethod
def __generate__id(cls, stu):
stu.id = cls.init_id
cls.init_id += 1
def __init__(self):
self.__stu_list = []
@property
def stu_list(self):
return self.__stu_list
def add_student(self, stu):
StudentManagerController.__generate__id(stu)
self.__stu_list.append(stu)
def remove_student(self, stu_id):
"""
移除学生信息
:param stu_id:
:return:
"""
for item in self.__stu_list:
if item.id == stu_id:
self.__stu_list.remove(item)
return True
return False
def update_student(self, new_stu):
for item in self.__stu_list:
if item.id == new_stu.id:
item.name = new_stu.name
item.age = new_stu.age
item.score = new_stu.score
return True
return False
def order_by_score(self):
for r in range(len(self.__stu_list) - 1):
for c in range(r + 1, len(self.__stu_list)):
if self.__stu_list[r] > self.__stu_list[c]:
self.__stu_list[r], self.__stu_list[c] = self.__stu_list[c], self.__stu_list[r]
class StudentManagerView:
"""
学生管理视图:负责界面逻辑
"""
def __init__(self):
self.__controller = StudentManagerController()
def __display_menu(self):
print("1)添加学生信息")
print("1)显示学生信息")
print("1)删除学生信息")
print("1)修改学生信息")
print("1)根据成绩升序排列")
def __select_menu(self):
item = input("请输入选项:")
if item == "1":
self.__input_student()
elif item == "2":
self.__output_students()
elif item == "3":
self.__delete_students()
elif item == "4":
self.__modify_students()
elif item == "5":
self.__output_students_order_by_score()
def main(self):
while True:
self.__display_menu()
self.__select_menu()
def __input_student(self):
name = input("请输入学生姓名:")
score = int(input("请输入学生成绩:"))
age = int(input("请输入学生年龄:"))
stu = StudentModel(name, age, score)
self.__controller.add_student(stu)
def __output_students(self):
for item in self.__controller.stu_list:
print('学生编号:%d,姓名是%s,年龄是%d,成绩是%d.' % (item.id, item.name, item.age, item.score))
def __delete_students(self):
stu_id = (input('请输入编号:'))
if self.__controller.remove_student(stu_id):
print('删除成功')
else:
print('删除失败')
def __modify_students(self):
stu = StudentModel()
id = int(input('请输入需要修改的学生编号'))
stu.name = int(input('请输入需要修改的学生姓名'))
stu.age = int(input('请输入需要修改的学生年龄'))
stu.score = int(input('请输入需要修改的学生成绩'))
# stu = StudentModel(name, age, score, id)
if self.__controller.update_student(stu):
print('修改成功')
else:
print('修改失败')
def __output_students_order_by_score(self):
self.__controller.order_by_score()
self.__output_students()
view = StudentManagerView()
view.main()
# # 测试
# controller = StudentManagerController()
# data01 = StudentModel('悟空', 23, 96)
# controller.add_student(data01)
# controller.remove_student(1006)
# controller.update_student(StudentModel('孙悟空', 24, 97, 1000))
# for i in controller.stu_list:
# print(i.id, i.name)
相关推荐
基于Java实现(MVC)图书管理系统
用户可在该界面输入用户名、密码、及验证码进行登录,在登录过程中,后台会自动识别该用户的权限等级,根据权限来显示不同的操作菜单。util包为工具包:封装一些反射Dao类、常量类、数据库连接池类、读写Excel工表格类等。用户登录后会根据是否是管理员显示不同的操作菜单,用户可以根据不同的需要来选择对应的操作。若出现用户名或密码、验证码错误的情况,都会出现对应提示,如下图所示。工程名:library-management,具体结构如图所示。系统用户分为:借阅者(包括学生、教师及其他用户)、管理员。
基于MVC三层架构实现旅游管理系统项目
基于mvc三成架构实现前端和后端的 “旅游管理系统” 1、MVC三层架构描述 1.1、用户界面层(User Interface Layer),其中,用户界面层用来展示数据以及接收用户输入的数据,给用户的交互提供界面 1.2、 业务逻辑层(Business Logic Layer),其中,业务逻辑层,是项目的核心部分,接收到用户请求数据之后进行业务处理 1.3、 数据访问层(Data Access Layer),其中,数据访问层,又称为数据持久层,对业务逻辑层处理的数据进行持久化操作 1.4、都是对项目进行
构建基于MVC的学生信息管理系统项目教程
MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程领域的架构模式,特别是在Web开发中占有举足轻重的地位。MVC的核心思想是将数据(Model)、界面(View)和控制逻辑(Controller)分离开来,使得开发者可以在不同的层面上独立工作,提高代码的可维护性和可扩展性。
基于MVC的学生信息管理系统
一个基于MVC的学生信息管理系统
构建基于MVC架构的用户信息管理系统
MVC(Model-View-Controller)是一种软件架构模式,用于组织代码以分离内部数据表示(Model)、用户界面(View)和控制逻辑(Controller)。MVC模式的核心优势在于通过分层来实现关注点分离,使得代码易于维护和扩展,同时降低了不同模块之间的耦合性。自1999年最初发布以来,JavaEE(Java Platform, Enterprise Edition)一直是企业级应用开发的标准平台。
全面掌握ASP.NET MVC+EF+EasyUI的信息管理系统开发
ASP.NET MVC框架是微软.NET平台的一部分,它支持开发者构建动态的Web应用。通过MVC模式,将应用分为三个主要组件:模型(Model):处理数据和业务逻辑。视图(View):向用户展示数据的界面。控制器(Controller):处理用户输入,与模型交互,并选择视图进行渲染。ASP.NET MVC不仅支持强类型视图,还允许使用Razor视图引擎,提高开发效率,同时它与.NET Framework的其他部分如Entity Framework无缝集成。
mvc三层架构(用户信息管理系统)
mvc三层架构(实战项目 用户信息管理系统) 一、三层架构 View 层:用于接收用户提交请求的代码。 Service 层:系统的业务逻辑主要在这里完成。 Dao 层:直接操作数据库的代码。 二、三层架构图 三、用户信息管理系统 ...
MVC经典后台管理系统
MVC经典后台管理系统1、这是一款有关MVC后台管理系统的源码,能帮您熟悉MVC如何进行前后台数据交互,并且做出一套漂亮的后台管理界面。感兴趣的可以下载哦。 2、注意,本源码只是一个管理界面的框架,功能均未实现,适用于二次开发和学习,欢迎下载
亿豪的python学习 day12
今天的学习内容 注:今天写了一天的学生管理系统,代码如下所示 """ 学生管理系统 数据模型类:StudentModel 数据:编号 id,姓名 name,年龄 age,成绩 score 逻辑控制类:StudentManagerController 数据:学生列表 __stu_list 行为:获取列表 stu_list,添加学生 add_student, 删除学生remove_...
学生信息管理系统MVC版本
简单的学生管理系统,适合新手入门学习,欢迎各位下载学习
MVC员工管理系统
MVC三层架构员工管理系统,有增删改查功能,通过入口文件index.php加后缀:?controller=login&method=index(压缩包附带数据库文件)
java+mysql 银行信息管理系统MVC架构
1.包含源程序,数据库脚本。代码和数据库脚本都有详细注释。 2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善 开发环境: 代码已经上传github,下载地址:https://github.com/21503882/bank-info Eclipse ,MYSQL,JDK1.8,Tomcat 8.5 涉及技术点: MVC模式、SpringBoot、Mybatis、Redis、HTML、l...
基于MVC的个人信息管理系统
系统采用MVC模式(JSP+JavaBean+Servlet),内容比较简单适用于JavaWeb初学者,
MVC模式——学生信息管理系统升级版
学习记录贴(三)学生信息管理系统Plus 使用工具Navicat、Eclipse、Firefox MVC模式 M:model —— 模型层 , 用于封装数据 V: view —— 视图层 , 用于显示 C:controller —— 控制层 , 用于接收页面请求 servlet层要调用service层,service层再调用Dao层 数据库 一、Model层 1、封装学生对象Studen...
基于MVC的新生信息管理系统
毕业设计基于MVC的新生信息管理系统 ,使用 的是MySQL数据库 ,并配有数据库文件 导入可直接运行
【数字IC设计】Centos 7桌面版 安装Synopsys EDA Tools
简称DC,是Synopsys公司用于做电路综合的核心工具,可以将HDL描述的电路转换为基于工艺库的门级网表。
Java_web(MVC) 三层架构的信息管理系统
信息管理系统 架构:三层架构(MVC设计模式) 表示层(Web):用户看的到界面,用户可以通过界面上的组件和服务器进行交互(JSP+Servlet) 业务逻辑层(Service):处理业务逻辑的,调用Dao层方法和View层的参数/数据进行处理。 数据访问层(Dao):操作数据存储文件,一些增删改查的具体实现。 实体库(Model):用来封装数据的实体类,通过set/get方法存和取。 功能: 管理员登录:账号、密码、验证码 添加用户 修改用户: 通过查找进行页面信息的回显,选择性的修改 删除用户:
Mac 不小心断开移动硬盘导致磁盘无法读取和加载(顺利解决!)
Mac移动硬盘不正确断开连接导致无法读取加载的解决方法,亲测有效
基于mvc java jsp的家教信息管理系统struts
struts基于mvc模式的家教信息管理系统编号为jsp654,开发软件有:Myeclipse,mysql数据库,Tomcat服务器,使用MVC三层分层思想,通过这些技术的实现,整个系统的性能得到了大大的提高。并且文档方面包括,任务书,开题报告,答辩ppt等,本系统是独立的运行,不依附于其他系统,可移植,可扩展。 教师可以浏览信息并可以进行注册。 (1)教师注册:在这个界面中,要加盟到家教信息管理系统中的老师,可以通过注册用户的方式,给自己在系统中申请一个合法的登录账户名称,并提交自己的详细信息。 (2)
如何使用ArcGIS Pro制作带基底三维地图
点击运行生成范围线,因为之前对高程进行了夸大,导致生成的范围线和地形边缘不重合,我们打开范围线的图层属性,选择高程选项卡,要素位于选择地面上,如下图所示。目前制作的三维地图下面是空的一片,现在添加一个基底,在工具箱内点击“3D Analyst工具\栅格\转换\栅格范围”,调用栅格范围工具,如下图所示。打开ArcGIS Pro,新建一个局部场景,在高程表面下,地面上点击右键,选择添加高程源图层,将需要制作三维地图的DEM数据加载进来,如下图所示。在要素图层菜单内,类型选择绝对高度,如下图所示。
Ansys CFX Pre 中 RGP 表的高级配置与优化策略
本文深入探讨了Ansys CFX Pre中RGP表的高级配置与优化策略,旨在帮助用户将仿真从“能用”提升至“精准好用”。文章重点解析了如何根据具体仿真场景,科学设定温度压力范围、选择流体类型,并针对相变等复杂工况实施网格加密与分离建表等关键优化技术,以显著提升计算精度与稳定性。
PHP中用MVC模式写一个信息管理系统(综合应用)
PHP中用MVC模式写一个信息管理系统(综合应用) 本次作业几乎凝聚了本人本学期PHP所有的知识。 要求: 进入首页需要登录 成功登录之后用session方法记住此用户。 成功登录后对于collections可以实现增删改查的操作。 对于collections中对应的cars可以实现增删的操作。 目录结构: 代码如下: app/controller/CarsController.php <?php include_once 'controller/Controller.php';
Log4Shell漏洞复现:从原理到实战的完整指南
日志记录是软件开发中用于追踪应用状态和排查问题的关键技术。然而,当日志组件对用户输入进行不当解析时,可能引发严重的安全风险。Log4j2作为Java生态中广泛使用的日志框架,其Lookup功能允许在日志中动态插入变量,这一设计初衷虽为便利,却因递归解析机制埋下了隐患。攻击者通过构造特定的JNDI(Java命名和目录接口)查询字符串,可诱使应用加载并执行远程恶意代码,从而实现远程命令执行。这种漏洞的价值在于其极低的利用门槛和极高的潜在危害,常被用于渗透测试和安全评估中,以验证系统的防御能力。本文以CVE-20
1552



被折叠的 条评论
为什么被折叠?



