当前位置: 首页 > news >正文

sdut-python-实验六-面向对象编程

7-1 sdut-oop-2 Shift Dot(类和对象)

分数 10

作者 周雪芹

单位 山东理工大学

给出平面直角坐标系中的一点,并顺序给出n个向量,求该点根据给定的n个向量位移后的位置。

设计点类Point,内含:

(1)整型属性x和y,表示点的横坐标和纵坐标;

(2)带参构造方法,便于使用初始值构造该类对象;

(3)点移动的方法move(x1,y1),其 中x1和y1表示移动的向量,该方法返回移动后的新的点对象;

(4)展示点对象的字符串方法toString(),以“(横坐标,纵坐标)”的形式。

输入格式:

多组输入。

第一行是三个整数x,y,n,表示点的坐标(x,y),和向量的个数n。

接下来n行,每行两个数xi,yi,表示第i个向量。

题目中所有数据不会超出整型范围。

输出格式:

对于每组输入,输出一行,形式为:"(x,y)",表示点的最终点位置的横坐标和纵坐标。

输入样例:

0 0 1

2 3

0 0 2

1 2

2 3

输出样例:

(2,3)

(3,5)

实现代码:

while True: try: x,y,n=map(int,input().split()) for i in range(n): a,b=map(int,input().split()) x+=a y+=b print(f"({x},{y})") except: break

7-3 sdut-谁是最强的女汉子

分数 10

作者 周雪芹

单位 山东理工大学

众所周知,一年一度的女汉子大赛又来啦。由于最近女汉子比较流行,所以参加女汉子比赛的人数变得很多很多。所以赛事组找来了你,让你写一个程序找出谁是最强的女汉子。

大家都知道,越是不漂亮的女生就越容易成为女汉子(漂亮的怎么会成为汉子?),而越是力量大的女生也越成为女汉子(毕竟女汉子还是比较有力量的)。

所以,就给女汉子两个属性,一个是漂亮值x,一个是力量值y。当然x的值越大,就代表这个女生就越漂亮。现在想让你求出来最不漂亮的女生有多少个,她们的力量和是多少。

输入格式:

先输入一个T,代表有T个人(T<10000)。

接下来T行,每行有两个数字x,y,分别代表这个女汉子的漂亮值和力量值(x,y<2*109) 。中间有1个空格分隔。

输出格式:

输出一行,有两个数字,分别代表最强的女汉子的数量,和她们的力量和。中间用1个空格分隔。

输入样例:

5

1 1

2 2

1 4

2 10

10 100

输出样例:

2 5

实现代码:

n=int(input()) cnt=99 sum=0 aa=0 while n: n-=1 x,y=map(int,input().split()) if x<cnt: cnt=x sum=1 aa=y elif x==cnt: sum+=1 aa+=y print(sum,aa)

7-4 sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)

分数 10

作者 周雪芹

单位 山东理工大学

计算如下立体图形的表面积和体积。

从图中观察,可抽取长方体和四棱锥两种立体图形的共同属性到父类Rect中:长度:l 宽度:h 高度:z。

编程要求:

(1)在父类Rect中,定义求底面周长的方法length( )和底面积的方法area( )。

(2)定义父类Rect的子类立方体类Cubic,计算立方体的表面积和体积。其中表面积area( )重写父类的方法。

(3)定义父类Rect的子类四棱锥类Pyramid,计算四棱锥的表面积和体积。其中表面积area( )重写父类的方法。

(4)在主程序中,输入立体图形的长(l)、宽(h)、高(z)数据,分别输出长方体的表面积、体积、四棱锥的表面积和体积。

提示:

(1)四棱锥体积公式:V=31​Sh,S——底面积 h——高

(2)在Java中,利用Math.sqrt(a)方法可以求得a的平方根(方法的参数及返回结果均为double数据类型)

(3)在Python中,利用math模块的sqrt(a)方法,求得a的平方根。

输入格式:

输入多行数值型数据(double);

每行三个数值,分别表示l、h、z,数值之间用空格分隔。

若输入数据中有0或负数,则不表示任何图形,表面积和体积均为0。

输出格式:

行数与输入相对应,数值为长方体表面积 长方体体积 四棱锥表面积 四棱锥体积(中间有一个空格作为间隔,数值保留两位小数)。

输入样例:

1 2 3

0 2 3

-1 2 3

3 4 5

输出样例:

22.00 6.00 11.25 2.00

0.00 0.00 0.00 0.00

0.00 0.00 0.00 0.00

94.00 60.00 49.04 20.00

实现代码:

from math import sqrt while True: try: l,h,z=map(float,input().split()) if l<=0 or h<=0 or z<=0: print("0.00 0.00 0.00 0.00") else: s1=(l*h+h*z+l*z)*2 v1=l*h*z s2=(l*h+l*sqrt(z**2+(h/2)**2)+h*sqrt(z**2+(l/2)**2)) v2=v1/3 print(f"{s1:.2f} {v1:.2f} {s2:.2f} {v2:.2f}") except: break

7-5 sdut-oop-6 计算各种图形的周长(多态)

分数 10

作者 周雪芹

单位 山东理工大学

定义接口或类 Shape,定义求周长的方法length()。

定义如下类,实现接口Shape或父类Shape的方法。

(1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。

定义测试类ShapeTest,用Shape接口(或类)定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。

提示: 计算圆周长时PI取3.14。

输入格式:

输入多组数值型数据(Python类型float,Java类型double);

一行中若有1个数,表示圆的半径;

一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。

一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。(需要判断三个边长是否能构成三角形)

若输入数据中有0或负数,则不表示任何图形,周长为0。

输出格式:

行数与输入相对应,数值为根据每行输入数据求得的图形的周长。

输入样例:

在这里给出一组输入。例如:

1

2 3

4 5 6

2

-2

-2 -3

输出样例:

在这里给出相应的输出。例如:

6.28

10.00

15.00

12.56

0.00

0.00

实现代码:

while True: try: numbers=[float(num) for num in input().split()] if len(numbers)==1: if numbers[0]<=0: print("0.00") else: print(f"{numbers[0]*2*3.14:.2f}") elif len(numbers)==2: if numbers[0]<=0 or numbers[1]<=0: print("0.00") else: print(f"{(numbers[0]+numbers[1])* 2:.2f}") elif len(numbers)==3: if numbers[0]<=0 or numbers[1]<=0 or numbers[2]<=0: print("0.00") elif numbers[0]+numbers[1]<=numbers[2] or numbers[2]+numbers[1]<=numbers[0] or numbers[0]+numbers[2]<=numbers[1]: print("0.00") else: print(f"{(numbers[0]+numbers[1]+numbers[2]):.2f}") except: break

7-6 sdut-oop-9 计算长方形的周长和面积(类和对象)

分数 10

作者 周雪芹

单位 山东理工大学

设计一个长方形类Rect,计算长方形的周长与面积。

成员变量:整型、私有的数据成员length(长)、width(宽);

构造方法如下:

(1)Rect(int length) —— 1个整数表示正方形的边长

(2)Rect(int length, int width)——2个整数分别表示长方形长和宽

成员方法:包含求面积和周长。(可适当添加其他方法)

要求:编写主函数,对Rect类进行测试,输出每个长方形的长、宽、周长和面积。

输入格式:

输入多组数据;

一行中若有1个整数,表示正方形的边长;

一行中若有2个整数(中间用空格间隔),表示长方形的长度、宽度。

若输入数据中有负数,则不表示任何图形,长、宽均为0。

输出格式:

每行测试数据对应一行输出,格式为:

长度 宽度 周长 面积(数据之间有1个空格分隔)

输入样例:

在这里给出一组输入。例如:

1

2 3

4 5

2

-2

-2 -3

输出样例:

在这里给出相应的输出。例如:

1 1 4 1

2 3 10 6

4 5 18 20

2 2 8 4

0 0 0 0

0 0 0 0

实现代码:

while True: try: n=[int(num) for num in input().split()] if len(n)==1: if n[0]<=0: print("0 0 0 0") else: print(f"{n[0]} {n[0]} {4*n[0]} {n[0]*n[0]}") else: if n[0]<=0 or n[1]<=0: print("0 0 0 0") else: print(f"{n[0]} {n[1]} {(n[0]+n[1])*2} {n[0]*n[1]}") except: break

7-7 sdut-oop-7 答答租车系统(类的继承与多态 面向对象综合练习)

分数 10

作者 周雪芹

单位 山东理工大学

各位面向对象的小伙伴们,在学习了面向对象的核心概念——类的封装、继承、多态之后,答答租车系统开始营运了。

请你充分利用面向对象思想,为公司解决智能租车问题,根据客户选定的车型和租车天数,来计算租车费用,最大载客人数,最大载载重量。

公司现有三种车型(客车、皮卡车、货车),每种车都有名称和租金的属性;其中:客车只能载人,货车只能载货,皮卡车是客货两用车,即可以载人,也可以载货。

下面是答答租车公司的可用车型、容量及价目表:

要求:根据客户输入的所租车型的序号及天数,计算所能乘载的总人数、货物总数量及租车费用总金额。

输入格式:

首行是一个整数:代表要不要租车 1——要租车(程序继续),0——不租车(程序结束);

第二行是一个整数,代表要租车的数量N;

接下来是N行数据,每行2个整数m和n,其中:m表示要租车的编号,n表示租用该车型的天数。

输出格式:

若成功租车,则输出一行数据,数据间有一个空格,含义为:
载客总人数 载货总重量(保留2位小数) 租车金额(整数)
若不租车,则输出:
0 0.00 0(含义同上)

输入样例:

1

2

1 1

2 2

输出样例:

在这里给出相应的输出。例如:

15 0.00 1600

实现代码:

n=int(input()) s1=0 s2=0 s3=0 if n==0: print("0 0.00 0") else: x=int(input()) while x: x-=1 a,b=map(int,input().split()) if a==1: s1+=5*b s3+=800*b elif a==2: s1 += 5 * b s3 += 400 * b elif a==3: s1 += 5 * b s3 += 800 * b elif a==4: s1 += 51 * b s3 += 1300 * b elif a==5: s1 += 55 * b s3 += 1500 * b elif a==6: s1 += 5 * b s2+=0.45*b s3 += 500 * b elif a==7: s1 += 5 * b s2+=2*b s3 += 450 * b elif a==8: s2+=3*b s3 += 200 * b elif a==9: s2+=25*b s3 += 1500 * b elif a==10: s2+=35*b s3 += 2000 * b print(f"{s1} {s2:.2f} {s3}")
http://www.cnnetsun.cn/news/1421982.html

相关文章:

  • Hutool之Http工具类URL编码问题解析
  • 从ImageNet到RingMo:为什么遥感领域需要专属基础模型?
  • 救命神器!全行业通用AI论文网站,千笔ai写作 VS 学术猹
  • OpenClaw定时任务实践:GLM-4.7-Flash实现24/7自动化监控
  • 如何用毫米波雷达实现8.6米非接触式生命体征监测?mmVital-Signs完整指南
  • LTspice层次化设计实战:如何像搭积木一样构建复杂电路(附SubCircuit.asc示例)
  • 告别标注烦恼:用GraphCL对比学习,5分钟搞定图节点无监督表示
  • eVTOL低空经济低空无人机AI识别自动处理图像项目蓝图设计方案:实现从图像采集、实时传输、AI识别到结果输出的全流程自动化
  • 单片机/C/C++八股:(十九)栈和堆的区别?
  • 单片机/C/C++八股:(二十)指针常量和常量指针
  • Three.js TSL实战:5分钟打造酷炫粒子鼠标跟随效果(附完整代码)
  • QCustomPlot图表范围控制完全指南:从rescaleAxes到setRange的5种应用场景
  • Anaconda管理深度学习训练环境:多版本Python控制
  • 嵌入式SHA256轻量实现:抗侧信道、恒定时间、MCU级哈希引擎
  • HarmonyOS开发实战指南(三)——从零构建鸿蒙原子化服务与Ability框架解析
  • 解决Overleaf中伪代码排版难题:从基础到高级配置全指南
  • 基于STM32+LiteOS的多传感器空气质量监测系统设计
  • java毕业设计基于springboot+vue的企业员工考勤管理系统
  • M2LOrder GPU算力适配方案:RTX 3060显存优化+FP16推理加速实测
  • 哪个降AI率的好?先看这5个评判标准再做选择
  • OpenClaw版本升级:Qwen3-32B兼容性测试与回滚方案
  • 效率直接起飞!AI论文网站 千笔·专业论文写作工具 VS Checkjie,全行业通用首选
  • ThinkPHP 6.x 安全漏洞深度解析:如何避免任意文件写入风险
  • Qwen3-ForcedAligner-0.6B应用实战:快速为卡拉OK音频生成精准歌词字幕
  • 嵌入式系统中的数据驱动编程实践
  • 5个实用技巧:轻松掌握BilibiliDown的视频下载功能
  • 从Kaggle实战看损失函数选择:为什么我的交叉熵模型总过拟合?(附解决方案)
  • 别再傻傻分不清了!一文搞懂Java中的ISO 8601、RFC 3339和微信支付time_expire
  • 从DHCP到静态IP:Ubuntu22.04网络配置全面解析(附Netplan最佳实践)
  • 告别手动配置!用Python脚本自动化你的CanFestival PDO映射(附源码)