java变量、数据类型和运算符-4

简介: 练习——升级“我行我素购物管理系统”,实现打印购物小票和计算积分功能

上机练习2


练习——升级“我行我素购物管理系统”,实现打印购物小票和计算积分功能


需求说明


在上机练习1的基础上,实现以下需求。

♦结算时用户支付1500元,打印购物小票。


♦计算此次购物获得的会员积分(每消费100元可获得3分)。


♦程序运行结果如图2.9所示。


代码:


package cn.dbit.demo;
public class pay2 {
    /*
     * 购物结算、打印小票并计算积分
     */
    public static void main(String[] args) {
        int shirtPrice = 245; //T恤价格
        int shoePrice = 570;  //网球鞋价格
        int padPrice = 320;   //网球拍价格
        int shirtNo=2;        //T恤件数
        int shoeNo =1;        //运动鞋数目
        int padNo = 1;        //网球拍数目
        double discount = 0.8;
        /*计算消费总金额*/
        double finalPay = (shirtPrice * shirtNo + shoePrice * shoeNo + padPrice * padNo) * discount;
        //System.out.println("消费总金额:" + finalPay);
        /*计算找钱*/
        double returnMoney = 1500-finalPay;
        /*打印购物小票*/
        System.out.println("**********消费单**********");
        System.out.println("\t购买物品\t" + "\t单价\t" + "\t个数\t"+ "\t金额\t");
        System.out.println("\tT恤\t" + "\t\t¥"+shirtPrice+ "\t"  + shirtNo+ "\t" + "\t¥"+(shirtPrice * shirtNo)+"\t");
        System.out.println("\t网球鞋\t" + "\t¥"+shoePrice + "\t"+ shoeNo+ "\t" + "\t¥"+(shoePrice * shoeNo)+ "\t");
        System.out.println("\t网球拍\t" + "\t¥"+padPrice + "\t"+ padNo+ "\t" + "\t¥"+(padPrice * padNo)+ "\t\n");
        System.out.println("折扣:\t8折");
        System.out.println("消费总金额\t" + "¥" + finalPay);
        System.out.println("实际交费\t¥1500");
        System.out.println("找钱\t" + "¥" + returnMoney);
        /*计算本次购物所获积分*/
        int score =  (int)finalPay / 100 * 3; //强制类型转换
        System.out.println("本次购物所获的积分是: " + score);}
}


结果展示:


提示:


使用 ”\t” 和 “\n” 控制购物小票的输出格式。

计算本次消费所获得的积分:所获积分=(int)消费总额*3/100o

在微软拼音输入法下,$键代表 “¥”。

上机练习3


指导——升级“我行我素购物管理系统”,模拟幸运抽奖


训练要点


运算符(%、/)的使用。

使用Scanner类接收用户输入。

关系运算符和boolean类型的用法。

需求说明


商场推出幸运抽奖活动,抽奖规则如下:

♦顾客的四位会员卡号的各位数字之和大于20,则为幸运顾客。


♦计算3569各位数字之和,程序运行结果如图2.10所示。


实现思路及关键代码


(1) 创建 Java 文件 GoodLuck.java。


(2) 使用Scanner类接收用户从控制台中输入的会员卡号,并保存在会员卡号变量中。


(3) 结合 "/" 和 "%" 运算符分解获得各个位上的数字。


例如:


int num = 5642;


用运算符%进行求余运算,num%10结果为2,即分解获得个位数字。


(4) 计算各数字之和。


参考解决方案:


package cn.dbit.demo;
import java.util.Scanner;
public class GoodLuck {
    /*
     * 幸运抽奖
     */
    public static void main(String[] args) {
        int custNo; // 客户会员号(说明:customer---客户)
        // 输入会员卡号
        System.out.println("请输入4位会员卡号:");
        Scanner input = new Scanner(System.in);
        custNo = input.nextInt();
        // 获得每位数字
        int gewei = custNo % 10; // 分解获得个位数
        int shiwei = custNo / 10 % 10; // 分解获得十位数
        int baiwei = custNo / 100 % 10; // 分解获得百位数
        int qianwei = custNo / 1000; // 分解获得千位数
        // 计算数字之和
        int sum = gewei + shiwei + baiwei + qianwei;
        System.out.println("会员卡号" + custNo + "各位之和: " + sum);
        boolean isLuck=sum>20;
        System.out.println("是幸运客户吗?" +isLuck);
    }
}




结果展示:


小技巧:使用另一种方法也可以分解获得各位数字。


qianwei = custNo / 1000;         // 分解获得千位数

baiwei = custNo % 1000 % 100;   // 分解获得百位数

shiwei = custNo % 100 / 10;      // 分解获得十位数

gewei = custNo % 10;              // 分解获得个位数


经验:同一个问题可能有多个解决方法,建议开拓思路,大胆尝试,并举一反三。


上机练习4


指导——升级“我行我素购物管理系统”,实现判断商品折扣价格


训练要点


关系运算符的使用。

boolean类型的使用。

需求说明


从键盘上接收商品折扣,并判断商品享受此折扣后价格是否低于100,程序运行结果如图2.11所示。


实现思路及关键代码


(1) 声明变量存储商品价格信息。


(2) 从键盘上接收折扣,并保存。


(3) 计算商品享受折扣后的价格。


(4) 输出商品折扣后,价格是否低于100。


参考解决方案


package cn.dbit.demo;
import java.util.Scanner;
public class Pay3 {
    /*
     * 商品打折
     */
    public static void main(String[] args) {
        int shirtPrice = 245; //T恤价格
        int shoePrice = 570;  //网球鞋价格
        int padPrice = 320;   //网球拍价格
        Scanner input = new Scanner(System.in);
        System.out.println("请输入折扣:");
        double discount =input.nextDouble(); //商品折扣
        //计算商品享受折扣后的价格
        double shirtPriceDis = shirtPrice*discount; //T恤折扣价
        double shoePriceDis = shoePrice*discount;  //网球鞋折扣价
        double padPriceDis = padPrice*discount;   //网球拍折扣价
        //判断商品折后价是否低于100
        boolean shirtPriceDisBool=shirtPriceDis<100;
        boolean shoePriceDisBool=shoePriceDis<100;
        boolean padPriceDisBool=padPriceDis<100;
        System.out.println("T恤折扣价低于100吗?" + shirtPriceDisBool);
        System.out.println("网球鞋折扣价低于100吗?" + shoePriceDisBool);
        System.out.println("网球拍折扣价低于100吗?" + padPriceDisBool);
    }
}

bef963c36a054c929878a40f72ff6d44.png

相关文章
|
2月前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
193 2
|
2月前
|
Java Go 开发工具
【Java】(4)五种运算符的说明(&&、||、>=、>、<=、<)、4种控制语句(if、for、while、dowhile)、输入和输出说明
扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的的类型byte类型,无论怎么进行加或追减,最终该变量的数据类型还是byte类型。注:一个表达式中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果。当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果。当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给a。并且,连接运算之后的结果还是一个字符串类型。表达式1 : 表达式2。
140 1
|
2月前
|
Java Go 开发工具
【Java】(2)Java数据类型阐述、基本数据类型的占用和范围、二进制的讲述
数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。例如:十进制例如:二进制计算机在任何情况下都只能识别二进制。
121 1
|
3月前
|
安全 Java
使用Java多态性进行数据类型转换
以上示范了如何通过多态性来执行安全有效地对于Java对象间相互之间进行正确方式与场合下正确格式与条件限定内对于各个层级关系内部成员及其功能调取与应有操作处理过程,并通过 `instanceof`关键字确保了程序运行期间遵循逻辑合理并符合预设规则条件限定内正常工作流程而无需担忧潜藏风险问题出现可能带来影响结果质量问题情况存在可能。
123 12
|
9月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
159 13
|
4月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
5月前
|
存储 人工智能 JavaScript
Java中的数据类型转换
本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。
247 0
|
6月前
|
人工智能 Java
Java运算符中的隐式转换
本文介绍了 Java 运算符中的隐式类型转换规则,涵盖算数、逻辑、位、关系、赋值及其他运算符。重点分析了算数和位运算符在处理小于 int 位长的数据时会自动转换为 int 类型的特性,并通过代码示例说明可能引发的类型不匹配错误。逻辑、关系、赋值及其他运算符则不涉及类型转换。总结指出,部分运算符在计算时会将小位长数据隐式转为 int 类型,结果也为 int。
|
6月前
|
人工智能 Rust Java
Java中的算数、关系、逻辑、条件、赋值 五大运算符详解
本文介绍了Java中的运算符及其优先级,包括算数运算符(如+、-、*、/、%、++、--)、关系运算符(如&lt;、&gt;、==、!=)、逻辑运算符(如&&、||、!)、条件运算符(三目运算符)和赋值运算符(如=、+=、-=等)。详细解释了每种运算符的功能与用法,例如自增自减运算符的特点、逻辑运算符的短路法运算以及位运算符的操作规则。最后还提供了运算符优先级表格,帮助开发者理解复杂表达式的计算顺序。文中提醒,在实际开发中,建议使用括号明确运算顺序以提高代码可读性。
289 0
|
9月前
|
SQL IDE 算法
《从头开始学java,一天一个知识点》之:运算符与表达式:算术、比较和逻辑运算
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列为你打造Java「速效救心丸」,每天1分钟,地铁通勤、午休间隙即可完成学习。直击高频考点和实际开发中的「坑位」,拒绝冗长概念,每篇都有可运行的代码示例。明日预告:《控制流程:if-else条件语句实战》。
190 6