Java学习之基础训练一
来源:互联网 发布:fifa隐藏属性数据库 编辑:程序博客网 时间:2024/05/24 04:09
一、闰年的判断
- 要求:键盘录入年份,判断是否为闰年。
- 判断方法:能被4整除,且不能被100整除,或者能被400整除,则为闰年
代码:
import java.util.Scanner;//闰年的判断public class LeapYear {//闰年类 public static void main(String[] args) {//程序主入口 Scanner scan = new Scanner(System.in);//创建键盘录入对象 System.out.println("请输入年份:");//控制台输出提示信息 int year = scan.nextInt();//记录键盘录入的年份 if(year%4==0 && year%100!=0 || year%400==0) {//根据判断条件判断是否为闰年 System.out.println(year+"是闰年");//若判断条件为true则输出这个 }else { System.out.println(year+"不是闰年");//否则输出这个 } /* * 或者使用三目运算符 boolean ? s1 : s2; * 如果boolean为true,则输出s1,若为false则输出s2 */// boolean flag = (year%4==0 && year%100!=0) // || // year%400==0; // String str = flag ? year+"是闰年" : year+"不是闰年";// System.out.println(str); }}
运行结果:
二、柜台收银程序
- 要求:某顾客购买某商品,要求输入单价、数量以及顾客消费卡里面的余额,超市有优惠活动(满300打9折,满500打8折,否则没优惠),通过计算,算出顾客消费卡余额是否够付款,若够则扣除消费金额并给出提示; 若不够则给出提示欠的金额。
- 分析:要求输入需用到Scanner;判断是否满足优惠条件需用的if_esle以及if_esle if语句。
代码:
import java.util.Scanner;//柜台收银程序public class Cashier {//类名 public static void main(String[] args) {//主函数 Scanner scan = new Scanner(System.in);//键盘录入 System.out.println("请输入单价:");//提示输入单价 double price = scan.nextDouble();//记录单价 System.out.println("请输入数量:");//提示输入数量 double amount = scan.nextDouble();//记录数量 System.out.println("请输入消费卡余额:");//提示输出消费卡余额 double money = scan.nextDouble();//记录余额 //计算总价(单价*数量) double totalPrice = price*amount; if(totalPrice>=300 && totalPrice<500){ //满300 totalPrice*=0.9; //打9折 }else if(totalPrice >= 500) {//满500 totalPrice*=0.8;//打8折 } if(money>=totalPrice){ //消费卡余额够 double change = money-totalPrice; //计算余额(给的钱-总价) System.out.println("总价为:"+totalPrice+",余额为:"+change); }else{ //不够 System.out.println("SORRY!您的消费卡余额不足!,还差"+(totalPrice-money)); } }}
运行结果:
三、命令功能解析
- 要求:输入数字1、2、3显示不同功能。
- 分析:使用switch_case语句
代码:
import java.util.Scanner;public class CommandBySwitch {//类名 public static void main(String[] args) {//主函数 Scanner scan = new Scanner(System.in);//键盘录入 System.out.println("请选择功能: 1.查询话费 2.修改密码 0.退出");//提示信息 int input = scan.nextInt();//记录键盘录入的数字 //switch_case语句 switch(input){ case 1: System.out.println("查询话费");//若输入的是1,则输出 break; case 2: System.out.println("修改密码");//若输入的是2,则输出 break; case 0: System.out.println("欢迎下次再来");//若输入的是0,则输出 break; default: System.out.println("输入错误");//若输入其他数,则输出 } }}
运行结果:
四、猜数字小游戏
- 要求:随机生成一个1-1000的整数,让人猜。这里生成的随机数显示出来为了方便验证程序的运行
- 分析:随机数生成需Math.random()表示随机生成0-1的数,可以通过运算得到1-1000的数;此程序每输入猜的数就需要判断,因此可以使用do_while语句,do语句下通过if判断是否正确。
import java.util.Scanner;//猜数字小游戏public class Guessing {//类名 public static void main(String[] args) {//主函数 Scanner scan = new Scanner(System.in);//键盘录入 int num = (int)(Math.random()*1000+1); //1到1000之内的随机数 System.out.println(num); //显示生成的随机数,以便我们观察程序 int guess; do{ System.out.println("猜吧!");//提示 guess = scan.nextInt(); //记录输入的数 if(guess==0){//如果输入0,则退出程序 break; } if(guess>num){//猜的数大于要猜的数 System.out.println("太大了");//输出提示信息 }else if(guess<num){//猜的数小于要猜的数 System.out.println("太小了");//输出提示信息 } }while(guess!=num); //如果猜的数不是要猜的数,则进行do,直到猜对了退出do_while语句 if(guess==num){//如果猜对了,给出提示 System.out.println("恭喜你,猜对了!"); }else{//输入0时退出do_while,进入else,输出提示语句 System.out.println("下次再来吧!"); } }}
运行结果:
五、模拟随机加法运算
- 要求:程序随机给出10道加法题目,答题者输入答案,最后统计成绩,输入-1退出程序。
- 分析:需要生成随机数Math.random();判断是否正确需if语句;要进行10此运算可用for循环。
import java.util.Scanner;public class Addition {//类名 public static void main(String[] args) {//主函数 Scanner scan = new Scanner(System.in);//键盘录入对象 int score = 0; //用于记分 for(int i=1;i<=10;i++){ //10次 int a = (int)(Math.random()*100); //随机生成0-100的整数,记为加数a int b = (int)(Math.random()*100); //随机生成0-100的整数,记为加数b int result = a+b; //计算和,并记录 System.out.println("("+i+")"+a+"+"+b+"=?"); //打印出题目 System.out.println("算吧!");//提示信息 int answer = scan.nextInt(); //玩家答题,输入答案 if(answer==-1){ //判断答案,如果输入-1退出for循环 break; } if(answer==result){ //计算对了 System.out.println("答对了"); score += 10; //得10分 }else{//答错了扣5分 score -= 5; System.out.println("答错了"); } } System.out.println("得分为:"+score);//输出成绩 }}
运行结果:
总结
- 这些小程序都是通过基本语句实现的,实现方法有很多种,跟我一样开始学习的java的伙伴们,循环块就可以使用不同的循环来实现。
- 这些语句其实不难,但当要实现某些简单的功能时,有时却无从下手,我想这可能是理解不够以及训练的较少,代码真的要自己多敲敲。
- 此外我觉得自己可以想想有没有其他方法,我想这对以后的学习,以及编程的思想有一些帮助吧。
- 希望在此和跟我一样的人共同进步吧!
阅读全文
1 0
- Java学习之基础训练一
- 学习Linux C编程之操作系统基础训练
- Java学习之基础训练二-----数组定义、赋值、求最值、排序、复制、扩容
- Java学习之基础训练三-----猜字符小游戏(自定义函数,在main函数中调用)
- ios基础训练(一)
- 算法基础训练题(一)
- 算法基础训练题(一)
- 算法基础训练题(一)
- JAVA基础训练之模拟双色球实现案列
- <蓝桥杯>基础训练之入学考试
- JAVA基础训练五十道
- 算法基础训练题(一)
- 基础训练
- 基础训练
- heu acm基础训练之1002
- JAVA基础训练50道(修订版)
- 学习java之基础一
- java学习之数组(一)
- 面向对象
- [bzoj 3240--Noi2013]矩阵游戏
- Swift
- Java后台框架篇--Springsecurity(二)
- 2017-09-29校训练题题解
- Java学习之基础训练一
- BZOJ2301 Problemb
- 浅谈数字逻辑代数的基本定理和规矩(一)
- 机器学习
- Linux 下打开 Core Dump
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 关于表单的重复提交(3种)
- Java设计模式——备忘录模式(Memento Pattern)
- 【bzoj2004】[Hnoi2010]Bus 公交线路