实验名称:面向对象练习

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

目录

一、实验目的

二、实验环境

三、实验步骤

四、实验结果

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

五、实验心得

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

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

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

相关推荐
我是陈泽2 分钟前
一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码
开发语言·python·程序员·编程·python教程·python学习·python教学
hakesashou3 分钟前
python全栈开发是什么?
python
创作小达人21 分钟前
家政服务|基于springBoot的家政服务平台设计与实现(附项目源码+论文+数据库)
开发语言·python
ZPC821032 分钟前
Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)
开发语言·python·matplotlib
镜花照无眠33 分钟前
Python爬虫使用实例-mdrama
开发语言·爬虫·python
aaasssdddd9644 分钟前
python和c
c语言·开发语言·python
爱写代码的小朋友1 小时前
Python的几个高级特性
python
Eric.Lee20211 小时前
数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall
python·深度学习·算法·目标检测·计算机视觉·数据集·螃蟹检测
一丝晨光1 小时前
C++、Ruby和JavaScript
java·开发语言·javascript·c++·python·c·ruby
sp_wxf2 小时前
Lambda表达式
开发语言·python