Python程序语言实验报告九
一、实验目的
1、综合掌握Python面向对象知识运用
二、实验内容
1.编写程序, 设计一个课程类,包括课程编号、课程名称、任课教师、上课地点等属性,把上课地点变量设为私有的,增加构造方法和显示课程信息的方法。
2.设计一个表示学生(Student)的类,该类的属性有姓名(name)、年龄(age)、成绩(scores)(成绩包括语文、数学和英语三科成绩,每科成绩的类型为整数),另外有3个方法。
(1)获取学生姓名的方法:get_name(),返回类型为String()。
(2)获取学生年龄的方法:get_age()方法,返回类型为int。
(3)返回3门科目中最高的分数:get_course(),返回类型为int。
并实例化测试
- 请定义一个交通工具(Vehicle)的类,其中有:
属性:速度(speed),体积(size)等等
方法:移动(move(int s)),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等.
最后测试中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。调用move方法输出移动距离
三、程序清单
# 实验一
class lesson:
def __init__(self,lesson_id,name,teacher,place):
self.lesson_id=lesson_id
self.name=name
self.teacher=teacher
self.__place=place
def showlesson(self):
print(f'课程名称:{self.name}\n课程编号:{self.lesson_id}\n'
f'任课老师:{self.teacher}\n上课地点:{self.__place}')
lesson1=lesson(lesson_id='01',teacher='JACK',name='不知道',place='第一阶梯教室')
lesson1.showlesson()
# 实验二
class student:
def __init__(self,name,scores,age):
self.name=name
self.scores=scores
self.age=age
# 获取名字
def get_name(self):
return str(self.name)
# 获取年龄
def get_age(self):
return int(self.age)
# 获取最高分
def get_course(self):
a=self.scores
b=list(a)
b.sort(reverse=True)
return int(b[0])
person1=student('小芳',[88,99,120],45)
print(f'名字:{person1.get_name()}\n年龄:{person1.get_age()}\n最高成绩:{person1.get_course()}')
# 实验三
import time
class Vehicle:
def __init__(self,color,size,speed=0,CountTime=0,distance=0):
self.color=color
self.speed=int(speed)
self.size=int(size)
self.CountTime=int(CountTime)
self.distance=int(distance)
def SetSpeed(self,speed):
self.speed=int(speed)
self.Distance()
def SpeedUP(self):
self.speed+=10
self.Distance()
def SpeedDown(self):
self.speed-=10
self.Distance()
# 计时器函数
def CountTime1(self):
self.CountTime+=1
def Distance(self):
self.distance += self.speed * self.CountTime
def move(self):
print(f'{self.color}颜色,体积为{self.size}的车,走了{self.CountTime}s,走了{self.distance}km')
Vehicle1=Vehicle('red',45)
# 设置初始速度
Vehicle1.SetSpeed(45)
# 进入循环
while (True):
a=int(input('是否继续走(1:走,0:停下)'))
if (a==1):
print("-"*36
,"请根据情况输入数字",
"1.速度加10",
"2.速度减10",
"3.显示当前信息",
'-'*36,sep='\n')
b=int(input('输入选项:'))
if(b==1):
Vehicle1.CountTime1()
Vehicle1.SpeedUP()
elif(b==2):
Vehicle1.CountTime1()
Vehicle1.SpeedDown()
elif(b==3):
Vehicle1.move()
else:
print('选项无效')
else:
Vehicle1.move()
break