习题1-5 打折

一件衣服95元,若消费300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。

#include <stdio.h>
  int main()
  {
  	int n;
  	scanf("%d",&n);
  	if((n*95)>300)
  	{
  		printf("%0.2lf",n*95*0.85);
	}
	else
	{
		printf("%d",n*95);
	}
  }

### 关于UML类图的练习题及其解答 以下是几个典型的UML类图练习题以及对应的答案解析: #### 练习题 1:定义简单的类间关系 假设有一个图书馆管理系统,其中涉及三个主要实体:`Book`(书)、`Author`(作者)和`Library`(图书馆)。请绘制一个UML类图表示以下逻辑: - 一本书可以有多个作者。 - 一位作者可以写多本书。 - 图书馆可以存储多本书。 ##### 解答: ```plaintext +------------------+ +--------------------+ | Book |<------| Author | +------------------+ +--------------------+ | - title | | - name | | - ISBN | | | +------------------+ +--------------------+ +------------------+ | Library | +------------------+ | - books: List<Book>| +------------------+ ``` 上述类图展示了三者的关系。`Book` 和 `Author` 是一对多的关系[^1],而 `Library` 则通过集合属性关联到 `Book` 的实例列表[^2]。 --- #### 练习题 2:继承与接口实现 在一个电商系统中,存在两个核心概念:`Product`(商品)和 `DiscountedProduct`(打折商品),后者是从前者派生出来的子类。此外,还有一个名为 `IPurchasable` 的接口,规定任何可购买的商品都需要提供价格计算方法 `calculatePrice()`。请画出相应的UML类图并标注其关系。 ##### 解答: ```plaintext +-------------------+ | IPurchasable | +-------------------+ | + calculatePrice()| +-------------------+ ^ | +---------------------+ | | Product | | +---------------------+ | | - price |<--+ | - description | +---------------------+ ^ | +----------------------------+ | DiscountedProduct | +----------------------------+ | - discountRate | | | +----------------------------+ ``` 在这个例子中,`DiscountedProduct` 是 `Product` 的子类,同时两者均实现了 `IPurchasable` 接口中的抽象行为。 --- #### 练习题 3:组合与依赖关系 考虑一个汽车制造系统的场景,其中包括以下几个部分: - `Car` 类负责描述一辆车的整体特性; - `Engine` 表示发动机模块; - `Wheel` 描述轮胎组件。 具体需求如下: - 每辆车必须配备一台发动机。 - 车辆运行时会调用引擎的方法启动动力系统。 - 同时每辆车还需要四个轮子支持行驶功能。 ##### 解答: ```plaintext +-------------+ +------------+ | Car |<>----------->| Engine | +-------------+ +------------+ | - engine | | + start() | | - wheels[] | +------------+ +-------------+ ^ (composition) | +-------v--------+ | Wheel | +-------v--------+ | + rotate() | +----------------+ ``` 此案例体现了对象间的 **组合** 及 **依赖** 关系。注意,`Car` 对象完全拥有它的 `Engine` 实例,这表明这是强耦合形式下的整体/部分关联。 --- ### 提供的学习资源建议 为了进一步巩固对 UML 类图的理解,推荐访问在线平台获取更多实践机会,例如 LeetCode 或 GeeksforGeeks 上的相关教程。另外也可以尝试工具如 StarUML 来亲手创建自己的模型图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值