Java基础练习题

1:简单运算

训练技能点

Ø  根据需求提取数据的类型

Ø  不同数据类型间的简单运算

需求说明

张三因学习原因需要配置一台电脑,下表2.1列出了张三购买电脑的部分配置售价清单,请计算清单中的物品总价,并打印显示,显示结果如图2.2.1所示。

表2-2-1购物清单

商品

 

单价

 

个数

显示器

 

¥840

 

1

键盘

 

¥50

 

1

鼠标

 

¥100

 

2

 

图2.2.1打印购物总金额

实现思路

(1)       确定表示单价的数据和表示个数的数据的数据类型。

(2)       根据合适的数据类型,分别定义变量存储显示器、键盘、鼠标的单价和个数。

(3)       使用合理的表达式计算物品总价。

关键代码

(1)       定义参与运算的数据类型和取值

        // 定义参与运算的数据类型和取值

        int screenPrice     = 845;

        int keyBoradPrice   = 50;

        int mousePrice      = 100;

 

        int screenNo        = 1;

        int keyBoradNo      = 1;

        int mouseNo         = 2;

 

(2)       进行运算和打印结果

double finalPrice   = screenPrice * screenNo + keyBoradPrice * keyBoradNo + mousePrice * mouseNo;

System.out.println("消费总金额是:\t\t"+finalPrice);

 

 

 

public static voidmain(String[] args) {

      int screenprice=845;//显示器单价

      int keybordprice=50;//键盘单价

      int mouseprice=100;//鼠标单价

      int screenno=1;//显示器个数

      int keybordeno=1;//键盘个数

      int mouseno=2;//鼠标个数

      double screenzprice=screenno*screenprice;//显示器总金额

      double keyzprice=keybordeno*keybordprice;//键盘总金额

      double mousezprice=mouseno*mouseprice;//鼠标总金额

      double yuanjia=screenzprice+keyzprice+mousezprice;//原价

      System.out.println("消费金额是"+"\t\t"+""+yuanjia+"");

 

2:简单运算和运算结果的格式化显示

训练技能点

Ø  Java的格式化打印

Ø  混合运算符和混合数据类型之间的运算

需求说明

使用实训任务1中给出的列表,根据下面的要求,继续购物运算。

要求计算消费总金额的时候,按照如下规则进行处理:所有商品打8折销售,购物使用1500元人民币,计算找零;根据支付的商品价格,每支付100元获得3个消费积分,计算本次消费的最终积分并打印。

最终的程序运行结果如图2.2.2所示,要严格按照格式打印。

图2.2.2打印购物详单

实现思路

(1)定义打折额度变量discount,为double型。

(2)定义缴费额pay,为double型。

(3)定义消费总金额totalPrice和找零exchange,还有购物积分credit,分别是double型、double型和int型。

(4)按照实际商场的打折、收款逻辑进行运算。

(5)格式化输出需要的结果。

public static voidmain(String[] args) {

        

         int screenprice=845;//显示器单价

         int keybordprice=50;//键盘单价

         int mouseprice=100;//鼠标单价

         int screenno=1;//显示器个数

         int keybordeno=1;//键盘个数

         int mouseno=2;//鼠标个数

         double dazhe=0.8;//打折率

         double allmoney=1500;//一共所有的钱

         double screenzprice=screenno*screenprice;//显示器总金额

         double keyzprice=keybordeno*keybordprice;//键盘总金额

         double mousezprice=mouseno*mouseprice;//鼠标总金额

         double yuanjia=screenzprice+keyzprice+mousezprice;//原价

         double getmoney= dazhe*yuanjia;//打折之后的价格

         double demoney=allmoney-getmoney;//应找回的钱

         int jifen=(int)(demoney/100)*3;

         System.out.println("** * * * * * * 消费清单 ** * * * * * *");

         System.out.println("购买物品\t单价\t个数\t金额");

         System.out.println("显示器"+"\t"+""+screenprice+"\t"+screenno+"\t"+""+screenzprice);

         System.out.println("键盘"+"\t"+""+keybordprice+"\t"+keybordeno+"\t"+""+keyzprice);

         System.out.println("鼠标"+"\t"+""+mouseprice+"\t"+mouseno+"\t"+""+mousezprice+"\n\n");

         System.out.println("折扣:"+"\t\t"+dazhe);

         System.out.println("消费总金额:"+"\t"+""+getmoney);

         System.out.println("实际缴费"+"\t\t"+""+allmoney);

         System.out.println("找钱:"+"\t\t"+"&"+demoney);

         System.out.println("本次购物获得的积分是:"+"\t"+jifen);

3:你中奖了么

训练技能点

Ø  使用Scanner对象获得一个整数

Ø  获得一个整型数字的各个数位上数字的方法

需求说明

某大卖场针对即将到来的五一假期展开了购物抽奖活动,根据顾客的购物小票ID号,计算顾客是否获奖。

计算规则:顾客小票总共5位数,计算每位上的数字之和,如果这个和能被9整除,则表示该顾客中奖,打印“恭喜中奖”字样。

实现思路

(1)       使用Scanner的对象接收一个5位整数。

(2)       计算这个5位整数各个数位上的数字。

(3)       将5个数字相加,看看能否被9整除,以判断是否中奖。

关键代码

下面给出一个5位数各个数位上数字的计算方法,代码中的unit1– unit5 分别代表个、十、百、千、万位上的数字。

int unit1 = input % 10;

int unit5 = input / 10000;

int unit4 = input / 1000 % 10;

int unit3 = input / 100 % 10;

int unit2 = input / 10 % 10;

package com.vcz;

 

import java.util.Scanner;

 

public class Bc {

 

   public static void main(String[] args) {

      Scanner a=new Scanner(System.in);

      int input=a.nextInt();

      System.out.println("您小票的数字是:"+input);

      int unit1 = input % 10;//获得个位的数字

      int unit2 = input / 10 % 10;//获得十位的数字

      int unit3 = input / 100 % 10;//获得百位的数字

      int unit4 = input / 1000 % 10;//获得千位的数字

      int unit5 = input / 10000;//获得万位的数字

     

      int num=unit1+unit2+unit3+unit4+unit5;

      if(num/9==0){

         System.out.println("恭喜中奖");

      }

      else{

         System.out.println("谢谢惠顾");

      }

 

   }

 

}

4:摄氏和华氏温度的转换

训练技能点

使用合适的数据类型进行混合运算

需求说明

小红到美国旅游,可是那里的温度是以华氏为单位记录的,需要一个程序将华氏温度转化为摄氏温度,并以华氏度和摄氏度为单位分别显示该温度。

编写程序达成小红的心愿,首先求100华氏度是多少摄氏度,然后求35摄氏度是多少华氏度。输出效果如下图2.2.2所示。

       图2.2.3摄氏度与华氏度的转换

 

实现思路

(1)       提示:摄氏度与华氏度的转换公式为:摄氏度=5/9 *(华氏度-32)。

(2)       根据提示进行温度转换的计算。

 

 

packagecom.vcz;

 

importjava.util.Scanner;

 

public class Cc {

 

   public static voidmain(String[] args) {

      System.out.println("摄氏度和华氏度的转换     1摄氏度    2华氏度");

      System.out.print("您的选择是");

      Scanner a=newScanner(System.in);

      int i=a.nextInt();

      if(i==1){

         System.out.print("您输入的摄氏度为");

         Scanner b=newScanner(System.in);

         int e=b.nextInt();

          double f=e*1.8+32;

         System.out.println("转换为华氏温度为"+f);

      }

      else if(i==2){

         System.out.print("您输入的华氏度为");

         Scanner w=newScanner(System.in);

         int j=w.nextInt();

         double k=(j-32)/1.8;

         System.out.print("转换为摄氏度为"+k);

      }

      else{

         System.out.println("您输入的数字不正确,请核对。");

      }

   }

   }

 

5:计算员工工资

训练技能点

Ø  Java的格式化打印

Ø  混合运算符和混合数据类型之间的运算

需求说明

       商场为员工提供了基本工资,物价津贴及房租津贴。其中,物价津贴为基本工资的40%,房屋津贴为基本工资的25%。要求:从控制台输入基本工资,并计算和输出实领工资,输出效果如下图2.2.3所示。

图2.2.4计算员工工资

实现思路

(1)       创建Scanner的对象。

(2)       使用Scanner接收一个double型数据作为基本工资salary。

(3)       根据百分比,计算员工的物价津贴allowance和房屋津贴allowance2,再累加员工的薪水totalIncome。

(4)       选择合适的格式输出公司细目。

 

 

packagecom.vcz;

 

importjava.util.Scanner;

 

public class Dc {

 

   public static voidmain(String[] args) {

      System.out.println("请输入基本工资");

      Scanner a=newScanner(System.in);

      double b=a.nextDouble();

      double all=b*0.4;//物价津贴

      double all1=b*0.25;//房屋津贴

      double xinshui=b+all+all1;//全部工资

      System.out.println("基本工资为"+b);

      System.out.println("物价津贴为"+all);

      System.out.println("房屋津贴为"+all1);

      System.out.println("实际工资为"+xinshui);

   }

 

}

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值