实验名称:面向对象练习

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

目录

一、实验目的

二、实验环境

三、实验步骤

四、实验结果

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)属性,并定义初始化函数。在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),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能

python 复制代码
#1.设计一个圆类(Cirle),该类中包含圆心位置、半径、颜色等属性,还包括构造函数和计算圆的周长、面积的方法,设计完成后,测试类的功能
PI = 3.1415926
class Circle:
    def __init__(self,tup,radius,color):
        self.center = tup
        self.radius = radius
        self.color = color

    def calculate_destination(self):
        return (2 * PI * self.radius)
    def calculate_area(self):
        return self.radius * self.radius * PI

circle1 = Circle((2,3),7,"pink")
print(circle1)
print(circle1.calculate_destination())
print(circle1.calculate_area())

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

python 复制代码
# 2.设计一个课程类(Course),该类包含课程名name、课程编号number、任课老师teacher、上课地点location共4个属性,还有构造函数和显示课程信息的方法。
# 其中,上课地点为location私有属性,设计完成后测试类的功能
class Course:
    def __init__(self,name,number,teacher,location):
        self.name = name
        self.number = number
        self.teacher = teacher
        self.__location = location
    def getlocation(self):
        return self.__location
    def 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)

python 复制代码
# 3.好友关系系统(page111)
class Friend:
    def __init__(self,name,group = "未分组",remark='',):
        self.name = name
        self.group = group
        self.remark = remark

class 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("删除成功")
                return
    print("无法找到该好友!")

    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 = remark
                print("修改备注成功!")
                return
        print("无法找到该好友!")

    def showGroups(self,name,group):
        for friend in self.friends:
            if friend.name == name:
                friend.group =group
                print("修改分组成功!")
                return
        print("无法找到该好友!")

    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)属性,并定义初始化函数。

python 复制代码
class User:
    def __init__(self, name, password):
        self.name = name
        self.password = password
    def get_name(self):
        return self.name
    def get_password(self):
        return self.password
    def set_password(self, new_password):
        self.password = new_password

    class User:
        def __init__(self, name, password):
            self.name = name
            self._password = password

        def get_name(self):
            return self.name

        def get_password(self):
            return self._password

        def set_password(self, new_password):
            self._password = new_password

    class Admin(User):
        def __init__(self, name, password, authority):
            super().__init__(name, password)
            self.authority = authority

五、实验心得

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

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

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

相关推荐
游客5203 分钟前
opencv中的各种滤波器简介
图像处理·人工智能·python·opencv·计算机视觉
Eric.Lee20216 分钟前
moviepy将图片序列制作成视频并加载字幕 - python 实现
开发语言·python·音视频·moviepy·字幕视频合成·图像制作为视频
Dontla11 分钟前
vscode怎么设置anaconda python解释器(anaconda解释器、vscode解释器)
ide·vscode·python
qq_529025291 小时前
Torch.gather
python·深度学习·机器学习
数据小爬虫@1 小时前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
終不似少年遊*1 小时前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧
Python之栈1 小时前
【无标题】
数据库·python·mysql
袁袁袁袁满2 小时前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
老大白菜2 小时前
Python 爬虫技术指南
python