7-1 sdut-oop-2 Shift Dot(类和对象)
class Point:
def __init__(self, x,y):
self.x = x
self.y = y
def move(self,x1,y1):
self.x += x1
self.y += y1
def toString(self):
return "({},{})".format(self.x,self.y)
while 1:
try:
x,y,n=map(int,input().split())
a = Point(x,y)
for i in range(n):
x1,y1=map(int,input().split())
a.move(x1,y1)
print(a.toString())
except:
break
7-2 sdut-谁是最强的女汉子
class Girl:
def __init__(self, x, y):
self.x = x
self.y = y
l,Min=[],999999
n=int(input())
for i in range(n):
x,y = map(int,input().split())
l.append(Girl(x,y))
Min = min(Min,x)
sum,cut=0,0
for i in l:
if i.x==Min:
sum+=i.y
cut+=1
print(cut,sum)
7-3 sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)
from math import *
class Rect :
def __init__(self, l, h, z) :
if l<=0 or h<=0 or z<=0:
self.l,self.h,self.z=0.00,0.00,0.00
else :self.l,self.h,self.z= l,h,z
def getLength(self) :
return (self.l + self.h)*2.0
def getArea(self) :
return self.l*self.h
class Cubic(Rect) :
def __init__(self,l,h,z):
super().__init__(l,h,z)
def getVolume1(self):
return self.l*self.h*self.z
def getArea1(self):
return 2.0*((self.l*self.h)+(self.l*self.z)+(self.h*self.z))
class Pyramid(Rect):
def __init__(self,l,h,z):
super().__init__(l,h,z)
def getVolume2(self,):
return self.l*self.h*self.z/3.0
def getArea2(self):
return sqrt(self.z**2+(self.h/2.0)**2)*self.l+sqrt(self.z**2+(self.l/2.0)**2)*self.h+self.l*self.h
while 1:
try:
l,h,z=map(float,input().split())
c=Cubic(l,h,z)
p=Pyramid(l,h,z)
print("%.2f %.2f %.2f %.2f"%(c.getArea1(),c.getVolume1(),p.getArea2(),p.getVolume2()))
except:
break
7-4 sdut-oop-6 计算各种图形的周长(多态)
class Shape:
def length(self):
pass
class Triangle(Shape):
def __init__(self,a,b,c):
if a <= 0 or b <= 0 or c <= 0 or (not (a + b > c and a + c > b and b + c > a)):
self.a,self.b,self.c=0.00,0.00,0.00
else:self.a,self.b,self.c=a,b,c
def length(self):
return self.a+self.b+self.c
class Rectangle(Shape):
def __init__(self,a,b):
if a<=0 or b<=0:
self.a,self.b=0.00,0.00
else :self.a,self.b=a,b
def length(self):
return 2.0*(self.a+self.b)
class Circle(Shape):
def __init__(self,r):
self.r=max(r,0)
def length(self):
return 2.0*3.14*self.r
while 1:
try:
l=list(map(float,input().split()))
if len(l)==1:
c=Circle(l[0])
print("%.2f"%c.length())
elif len(l)==2:
r=Rectangle(l[0],l[1])
print("%.2f"%r.length())
else:
t=Triangle(l[0],l[1],l[2])
print("%.2f"%t.length())
except:
break
7-5 sdut-oop-9 计算长方形的周长和面积(类和对象)
class Rect:
def __init__(self,l,w):
if l<=0 or w<=0:
self.l,self.w=0,0
else :self.l,self.w=l,w
def area(self):
return self.l*self.w
def length(self):
return 2*(self.l+self.w)
while 1:
try:
l=list(map(int,input().split()))
if len(l)==1:
r=Rect(l[0],l[0])
print(r.l,r.w,r.length(),r.area())
elif len(l)==2:
r=Rect(l[0],l[1])
print(r.l,r.w,r.length(),r.area())
except:
break
7-6 sdut-oop-7 答答租车系统(类的继承与多态 面向对象综合练习)
class Che:
max_p=0
weight=0
def __init__(self, id, name, max_p, weight, rent):
self.id = id
self.name = name
self.max_p = max_p
self.weight = weight
self.rent = rent
def getMax_p(self, n):
return self.max_p * n
def getWeight(self, n):
return self.weight * n
def getRent(self, n):
return self.rent * n
class KeChe(Che):
def __init__(self, id, name, max_p, rent):
self.id = id
self.name = name
self.max_p = max_p
self.rent = rent
class HuoChe(Che):
def __init__(self, id, name, weight, rent):
self.id = id
self.name = name
self.weight = weight
self.rent = rent
ans = []
ans.append(KeChe(1, "A", 5, 800))
ans.append(KeChe(2, "B", 5, 400))
ans.append(KeChe(3, "C", 5, 800))
ans.append(KeChe(4, "D", 51, 1300))
ans.append(KeChe(5, "E", 55, 1500))
ans.append(Che(6, "F", 5, 0.45, 500))
ans.append(Che(7, "G", 5, 2.0, 450))
ans.append(HuoChe(8, "H", 3, 200))
ans.append(HuoChe(9, "I", 25, 1500))
ans.append(HuoChe(10, "J", 35, 2000))
x = int(input())
if x == 1:
n = int(input())
sum1,sum2,sum3=0.00,0.00,0.00
for i in range(n):
# a表示要租车的编号,
# b表示租用该车型的天数。
a, b = map(int, input().split())
sum1+=ans[a - 1].getMax_p(b)
sum2+=ans[a-1].getWeight(b)
sum3+=ans[a-1].getRent(b)
print(int(sum1),"%.2f"%sum2,int(sum3))
else:
print("0 0.00 0")