实验名称:面向对象练习

门门都精通,头发去无踪。

目录

一、实验目的

二、实验环境

三、实验步骤

四、实验结果

1.设计一个圆类(Cirle),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能

2.设计一个课程类(Course),该类包含课程名name、课程编号number、任课老师teacher、上课地点location共4个属性,还有构造函数和显示课程信息的方法。其中,上课地点为location私有属性,设计完成后测试类的功能

3.好友关系系统(page111)

4.a.定义一个表示用户(User)的Python类并定义初始化方法。

属性有:用户名(name)、密码(password)

方法有:获得用户名、获取密码、设置密码。

b.如何将第一个编程题中用户(User)定义到模块(mysystem)中?

定义一个测试模块(test),在test中书写python程序入口,

并在入口中调用用户类中的设置密码的方法。

c.修改用户类(User),创建管理员的类(Admin)。

要求:

Admin类继承于User类,修改User类

要求其成员变量name可以被继承,password不可以被继承。

2)在Admin类中增加一个权限(authority)属性,并定义初始化函数。

五、实验心得


一、实验目的

1.设计一个圆类(Cirle),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能

2.设计一个课程类(Course),该类包含课程名name、课程编号number、任课老师teacher、上课地点location共4个属性,还有构造函数和显示课程信息的方法。其中,上课地点为location私有属性,设计完成后测试类的功能

3.好友关系系统(page111)

4.a.定义一个表示用户(User)的Python类并定义初始化方法。

属性有:用户名(name)、密码(password)

方法有:获得用户名、获取密码、设置密码。

b.如何将第一个编程题中用户(User)定义到模块(mysystem)中?

定义一个测试模块(test),在test中书写python程序入口,

并在入口中调用用户类中的设置密码的方法。

c.修改用户类(User),创建管理员的类(Admin)。

要求:

Admin类继承于User类,修改User类

要求其成员变量name可以被继承,password不可以被继承。

2)在Admin类中增加一个权限(authority)属性,并定义初始化函数。

二、实验环境

安装pycharm2023.3.4 

安装适配的jdk

三、实验步骤

1.设计一个圆类(Cirle),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能

  • 定义一个圆类及其圆心位置/半径/颜色
  • 定义构造函数获取并输出圆的周长以及面积
  • 实例化对象,输入圆类数据,测试圆类的功能

2.设计一个课程类(Course),该类包含课程名name、课程编号number、任课老师teacher、上课地点location共4个属性,还有构造函数和显示课程信息的方法。其中,上课地点为location私有属性,设计完成后测试类的功能

  • 定义课程类及其属性(课程名/课程编号/任课老师/上课地点)
  • 定义构造函数(获取并设置课程位置、展示课程信息)
  • 输入课程信息,并打印出来

3.好友关系系统(page111)

  • 首先,定义一个好友类,其中包括属性(姓名、分组、备注)
  • 其次,定义一个好友管理类,其中包含(1.添加好友信息2.删除好友信息3.展示好友信息4.备注好友信息5.给好友分组6.退出好友管理系统)
  • 实例化对象,赋值给对象,调用好友管理类的方法与功能
  • 显示功能菜单,让用户选择需要使用的功能对应的数字
  • 使用while循环,进入类所定义的功能函数,进行不同的操作,按下exit键退出

4.a.定义一个表示用户(User)的Python类并定义初始化方法。

属性有:用户名(name)、密码(password)

方法有:获得用户名、获取密码、设置密码。

b.如何将第一个编程题中用户(User)定义到模块(mysystem)中?

定义一个测试模块(test),在test中书写python程序入口,

并在入口中调用用户类中的设置密码的方法。

c.修改用户类(User),创建管理员的类(Admin)。

要求:

Admin类继承于User类,修改User类

要求其成员变量name可以被继承,password不可以被继承。

2)在Admin类中增加一个权限(authority)属性,并定义初始化函数。

  • 将用户名和密码作为参数,并将其分别赋予对象的属性
  • Get_name和get_password用于获取用户名和密码,set_password用于修改密码
  • 在admin类中增加属性authority,并在初始化函数中进行赋值
  • 使用super().__init__(name,password)调用父类的初始化函数,以便将_name和_password的      初始化工做交给父类完成

四、实验结果

1.设计一个圆类(Cirle),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能

#1.设计一个圆类(Cirle),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能
PI = 3.1415926
class Circle:def __init__(self,tup,radius,color):self.center = tupself.radius = radiusself.color = colordef calculate_destination(self):return (2 * PI * self.radius)def calculate_area(self):return self.radius * self.radius * PIcircle1 = Circle((2,3),7,"pink")
print(circle1)
print(circle1.calculate_destination())
print(circle1.calculate_area())

2.设计一个课程类(Course),该类包含课程名name、课程编号number、任课老师teacher、上课地点location共4个属性,还有构造函数和显示课程信息的方法。其中,上课地点为location私有属性,设计完成后测试类的功能

# 2.设计一个课程类(Course),该类包含课程名name、课程编号number、任课老师teacher、上课地点location共4个属性,还有构造函数和显示课程信息的方法。
# 其中,上课地点为location私有属性,设计完成后测试类的功能
class Course:def __init__(self,name,number,teacher,location):self.name = nameself.number = numberself.teacher = teacherself.__location = locationdef getlocation(self):return self.__locationdef showcourse(self):return self.name,self.number,self.teacher
course1 = Course("python",1,"暑锋老师","e教")
print(course1.getlocation())
print(course1.showcourse())
course2 = Course("数据存储",2,"马文海老师","红楼")
print(course2.getlocation())
print(course2.showcourse())
course3 = Course("javaweb",3,"波波老师","红楼")
print(course3.getlocation())
print(course3.showcourse())

3.好友关系系统(page111)

# 3.好友关系系统(page111)
class Friend:def __init__(self,name,group = "未分组",remark='',):self.name = nameself.group = groupself.remark = remarkclass FriendManager:def __init__(self):self.friends = []def addFriend(self,name,group="未分组",remark=''):friend = Friend(name,group,remark)self.friends.append(friend)print("好友添加成功!")def deleteFriend(self,name):for friend in self.friends:if friend.name == name:self.friends.remove(friend)print("删除成功")returnprint("无法找到该好友!")def showFriends(self):if not self.friends:print("无法找到该好友!")for friend in self.friends:print(f"该好友名字为{friend.name},分组为{friend.group},备注为:{friend.remark}")def remarkFriends(self,name,remark=''):for friend in self.friends:if friend.name == name:friend.remark = remarkprint("修改备注成功!")returnprint("无法找到该好友!")def showGroups(self,name,group):for friend in self.friends:if friend.name == name:friend.group =groupprint("修改分组成功!")returnprint("无法找到该好友!")def exitSystem(self):exit()__name__ = "__main__"
fm =FriendManager()
while True:print("欢迎来到您的好友管理系统!")print("__1.添加好友信息__")print("__2.删除好友信息__")print("__3.展示好友信息__")print("__4.备注好友信息__")print("__5.给好友分组__")print("__6.退出好友管理系统__")option = input("请根据提示选择您所需要功能对应的数字:")if option == "1":name = input("请输入您要添加的好友名称:")group = input("请输入好友的分组:")remark = input("请输入好友的备注名:")fm.addFriend(name,group,remark)elif option == "2":name = input("请输入您要删除的好友名称:")fm.deleteFriend(name)elif option == "3":fm.showFriends()elif option == "4":name = input("请输入您要修改备注名好友的姓名:")remark = input("请输入要修改的备注名:")fm.remarkFriends(name,remark)elif option == "5":fm.showGroups(name,group)else:fm.exitSystem()

4.a.定义一个表示用户(User)的Python类并定义初始化方法。

属性有:用户名(name)、密码(password)

方法有:获得用户名、获取密码、设置密码。

b.如何将第一个编程题中用户(User)定义到模块(mysystem)中?

定义一个测试模块(test),在test中书写python程序入口,

并在入口中调用用户类中的设置密码的方法。

c.修改用户类(User),创建管理员的类(Admin)。

要求:

Admin类继承于User类,修改User类

要求其成员变量name可以被继承,password不可以被继承。

2)在Admin类中增加一个权限(authority)属性,并定义初始化函数。

class User:def __init__(self, name, password):self.name = nameself.password = passworddef get_name(self):return self.namedef get_password(self):return self.passworddef set_password(self, new_password):self.password = new_passwordclass User:def __init__(self, name, password):self.name = nameself._password = passworddef get_name(self):return self.namedef get_password(self):return self._passworddef set_password(self, new_password):self._password = new_passwordclass Admin(User):def __init__(self, name, password, authority):super().__init__(name, password)self.authority = authority

五、实验心得

本次实训,是对我本事的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是十分有意义的。经过这次实训,我收获了很多。这次实训丰富了我各方面的知识,提高了我的综合素质。

首先,它锻炼了我做项目的本事,提高了独立思考问题、自我动手操作的本事,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。

将课堂的知识学以致用,把自己学过的东西再检验一遍,不仅仅可以温习知识,确认自己是否真的学会了;并且还可以学到新的东西;当没有思路的时候,在网上搜索的信息可以打开你的思维,扩充你的知识面。实验报告带给我们的收获比我们想象中还要更多。原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/22445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法004:盛水最多的容器

这道题比较简单,使用双指针。 要求的是最大面积,对于一个水桶(水杯来说),面积的算法是固定的,就是底乘以高。 在这个题中,我们把左边的位置设为left,右边的位置设为right&#xff…

一个月飙升 9k star!打破常规的 git 客户端

作为一名程序员,想必大家每天都要使用 git 来管理自己的代码吧。有些大佬喜欢使用命令行来进行 git 的操作,有些新入门的小白程序员则比较喜欢使用各种 git 客户端来可视化的管理代码,而有些程序员则喜欢使用 IDE 中集成的 git 功能来做代码的…

XXE漏洞介绍

XXE(XML External Entity)漏洞是一种安全漏洞,它发生在应用程序解析XML输入时。如果应用程序没有正确地限制对外部实体的引用,攻击者可以利用XXE漏洞执行各种恶意操作,例如访问敏感文件、执行远程服务请求、甚至可能导…

1、企业会计准则--基本准则

根据《国务院关于〈企业财务通则〉、〈企业会计准则〉的批复》(国函[1992]178号)的规定,财政部对《企业会计准则》(财政部令第5号)进行了修订,修订后的《企业会计准则--基本准则》已经部务会议讨论通过,现予公布,自2007年1月1日起施行。 二○○六年二月十五日 企业会计…

云计算导论(3)---分布式文件系统

文章目录 1. 概述2. 基本架构3. GFS和HDFS4. 云存储 1. 概述 1. 文件系统是操作系统用来组织磁盘文件的方法和数据结构。  传统的文件系统指各种UNIX平台的文件系统,包括UFS等,它们管理本地的磁盘存储资源,提供文件到存储位置的映射&#xf…

鸿蒙开发接口定制管理:【@ohos.enterpriseDeviceManager (企业设备管理)】

企业设备管理 说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import enterpriseDeviceManager from ohos.enterpriseDeviceManager;enterpriseDeviceManager.activateAdmin activate…

力扣234. 回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true # Definition for singly-linked list. # c…

R语言探索与分析17-CPI的分析和研究

一、选题背景 CPI(居民消费价格指数)作为一个重要的宏观经济指标,扮演着评估通货膨胀和居民生活水平的关键角色。在湖北省这个经济活跃的地区,CPI的波动对于居民生活、企业经营以及政府宏观经济政策制定都具有重要的影响。因此&a…

打造卓越任务调度体系:实用攻略与技巧解析

写这篇文章,想和大家从头到脚说说任务调度,希望大家读完之后,能够理解实现一个任务调度系统的核心逻辑。 1 Quartz Quartz 是一款 Java 开源任务调度框架,也是很多 Java 工程师接触任务调度的起点。 下图显示了任务调度的整体流…

基于STC12C5A60S2系列1T 8051单片机实现一主单片机与一从单片机相互发送数据的RS485通信功能

基于STC12C5A60S2系列1T 8051单片机实现一主单片机与一从单片机相互发送数据的RS485通信功能的RS485通信功能 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串…

QTreeWidget双击节点响应

1、双击子节点,槽函数响应。传回两个参数,一个是双击的子节点,一个是列序号。 connect(ui.treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(ShowImage(QTreeWidgetItem *,int)));2、下列是槽函数的代码。 void…

zdppy_api 中间件请求原理详解

单个中间件的逻辑 整体执行流程: 1、客户端发起请求2、中间件拦截请求,在请求开始之前执行业务逻辑3、API服务接收到中间件处理之后的请求,和数据库交互,请求数据4、数据库返回数据5、API处理数据库的数据,然后给客户…

【第十一课】空间数据基础与处理——属性数据管理

一、前言 Arcgis分析离不开两大主体数据,一是空间,二是经济属性。在运用 Aecgis 进行分析时,经常会碰到一些涉及多要素的属性更改或填写, 如果按照普通的方法,每个属性进行修改或填写的话,工作量是很大的&…

Apache OFBiz 路径遍历导致RCE漏洞复现(CVE-2024-36104)

0x01 产品简介 Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 漏洞概…

【深入理解计算机系统第3版】补码加法

感觉这部分有点难,所以稍微整理记一下。 抱歉中英混合,来回切换输入法真的很折磨人。 负溢出 正常 正溢出 以4位补码加法为例,理解下表(书中P64) 补码最大值Tmax 2^3 - 1 7, 补码最小值Tmin -2^3 -8 xyz x yz z mod 2^4zU2Tw(z)溢…

超燃混剪热门视频素材去哪里找? 爆款超燃网站合集分享

在今天的数字时代,短视频已成为传播信息和个人表达的主流方式。无论你是混剪爱好者还是自媒体创作者,掌握如何获取和利用高质量的视频素材是关键。本文将介绍几个顶级的视频素材网站,包括国内外的平台,帮助你创建引人入胜的视频作…

Elasticsearch--easy-ES框架使用,轻松操作查询Elasticsearch,简化开发

Easy-Es(简称EE)是一款基于ElasticSearch(简称Es)官方提供的RestHighLevelClient打造的ORM开发框架,在 RestHighLevelClient 的基础上,只做增强不做改变,为简化开发、提高效率而生,您如果有用过Mybatis-Plus(简称MP),那么您基本可…

【数据结构】二叉搜索树--BST,Binary Search Tree

文章目录 二叉搜索树1. 二叉搜索树的概念2. 二叉搜索树的接口2.1 查找非递归查找递归查找 2.2 中序遍历2.3 插入非递归插入递归插入 2.4 删除非递归删除递归删除 3. 二叉搜索树的应用key搜索模型kv搜索模型 5. oj题 二叉搜索树 1. 二叉搜索树的概念 二叉搜索树又称二叉排序树…

12-学生们参加各科测试的次数(高频 SQL 50 题基础版)

12-学生们参加各科测试的次数 -- 学生表中,id是唯一的,将他作为主表 -- CROSS JOIN产生了一个结果集,该结果集是两个关联表的行的乘积 -- 2行表,与3行表使用cross join,得到2*36行数据 select st.student_id, st.student_name,su.subject_na…

Ubuntu22.04配置脚本开机自启动

1. 脚本增加可执行权限 sudo chmod x /path/to/quick_install.sh将/path/to/quick_install.sh替换为您的脚本实际所在的路径。 2. 创建systemd服务单元: 使用文本编辑器(如nano或vim)创建一个新的服务单元文件。例如,您可以将其…