Harmonyos应用实例114:购物折扣计算器
·
应用实例四:购物折扣计算器
知识点:应用百分数解决实际问题(折扣、纳税、利息)。
功能:模拟购物场景。输入商品原价,选择折扣率(如“八折”、“九五折”),应用自动计算现价、节省金额。可以添加“满减”规则,对比不同折扣方案,培养学生比较和决策能力。
// DiscountCalculator.ets
@Entry
@Component
struct DiscountCalculator {
@State originalPrice: number = 200;
@State discountRate: number = 0.8; // 80%
@State currentPrice: number = 160;
@State savedAmount: number = 40;
build() {
Column({ space: 20 }) {
Text('购物折扣计算器')
.fontSize(28)
TextInput({ placeholder: '输入商品原价', text: this.originalPrice.toString() })
.width('80%')
.type(InputType.Number)
.onChange((value) => {
this.originalPrice = parseFloat(value) || 0;
this.calculate();
})
Text('选择折扣:')
Flex({ wrap: FlexWrap.Wrap, justifyContent: FlexAlign.Center }) {
Button('九折').onClick(() => { this.discountRate = 0.9; this.calculate(); }).margin(5)
Button('八五折').onClick(() => { this.discountRate = 0.85; this.calculate(); }).margin(5)
Button('八折').onClick(() => { this.discountRate = 0.8; this.calculate(); }).margin(5)
Button('七折').onClick(() => { this.discountRate = 0.7; this.calculate(); }).margin(5)
}
Column({ space: 10 }) {
Text(`折扣率: ${(this.discountRate * 100).toFixed(0)}%`).fontSize(18)
Text(`现价: ¥${this.currentPrice.toFixed(2)}`).fontSize(24).fontWeight(FontWeight.Bold).fontColor('#E91E63')
Text(`节省: ¥${this.savedAmount.toFixed(2)}`).fontSize(20).fontColor('#4CAF50')
}
.padding(20)
.backgroundColor('#FFF3E0')
.borderRadius(10)
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
.padding(20)
}
calculate() {
this.currentPrice = this.originalPrice * this.discountRate;
this.savedAmount = this.originalPrice - this.currentPrice;
}
}
更多推荐


所有评论(0)