美文网首页IT技术篇
12个Java小程序带你走进Java大世界

12个Java小程序带你走进Java大世界

作者: 游戏原画设计 | 来源:发表于2019-01-20 19:15 被阅读0次


    java学习关注,java免费学习群:479749726

    如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用。

    1、输出两个int数中的最大值

    import java.util.Scanner;

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请依次输入两个整数:a,b(以空格隔开)");

    /*比较两个数的大小*/

    int a = scanner.nextInt();

    int b = scanner.nextInt();

    int max;

    if(a >= b){

    max = a;

    }else {

    max = b;

    }

    System.out.println("最大值为"+max);

    }

    }

    }

    2、输出三个int数中的最大值

    package demo;

    import java.util.Scanner;

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请依次输入两个整数:a,b(以空格隔开)");

    int a = scanner.nextInt();

    int b = scanner.nextInt();

    int c = scanner.nextInt();

    scanner.close();

    /*方法一*/

    int d=(a>b)?a:b;

    int e=(d>c)?d:c;

    System.out.println("最大值为"+e);

    /*方法二*/

    if(a>b && a>c){

    System.out.println("最大值为"+a);

    }else if(b>c && b>a){

    System.out.println("最大值为"+b);

    }else if(c>b && c>a){

    System.out.println("最大值为"+c);

    }else{

    System.out.println("出现异常");

    }

    }

    }

    3、编写程序判断某一个年份是否是闰年

    package demo;

    import java.util.Scanner;

    /*判断闰年

    由用户输入任意一个年份,能被4整除但不能被100整除,或者能被400整除,是闰年。

    要求判断一个年份是否为闰年。

    要求输出:此年份是否是闰年

    */

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请输入年份:");

    int year = scanner.nextInt();

    /*方法一*/

    if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){

    System.out.println("这个年份是闰年");

    }else{

    System.out.println("这个年份不是闰年");

    }

    /*方法二*/

    boolean isLeapYear = (year % 4 ==0 && year % 100 !=0) || year%400 ==0;

    String string = isLeapYear?year+"是闰年":year+"不是闰年";

    System.out.println(string);

    }

    }

    4、完成成绩等级输出程序

    如果用户输入的分数正确(0-100),则根据表-1中的规则计算该分数所对应的的级别,并计算结果。

    package demo;

    import java.util.Scanner;

    /*

    * 成绩等级划分表

    * >= 90 A

    * >=80 B

    * >=60 C

    * <60 D

    *

    * 分数范围:0-100

    *

    * 需要有2个判断*/

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请输入分数:");

    double score = scanner.nextDouble();

    scanner.close();

    if(score < 0 || score >100){

    System.out.println("输入的分数不在0-100之间,不符合要求");

    }else if(score >= 90){

    System.out.println("A");

    }else if(score >= 80){

    System.out.println("B");

    }else if(score >= 60){

    System.out.println("C");

    }else{

    System.out.println("D");

    }

    }

    }

    5、完成命令解析程序

    问题:有一个命令解析程序,该程序提供三个功能选型供用户选择,用户选择某功能后,程序在界面上输出用户所选择的的功能名称。程序的交互如图:

    package demo;

    import java.util.Scanner;

    /*

    * 有一个命令解析程序,该程序提供三个功能选型供用户选择,

    * 用户选择某功能后,程序在界面上输出用户所选择的的功能名称。

    *

    * */

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请选择功能:1.显示全部记录 2.查询登录记录 0.退出");

    int command = scanner.nextInt();

    scanner.close();

    switch (command) {

    case 0:

    System.out.println("欢迎使用");

    break;

    case 1:

    System.out.println("显示全部记录……");

    break;

    case 2:

    System.out.println("查询登录记录……");

    break;

    default:

    System.out.println("输入错误!");

    }

    }

    }

    6、完成收银柜台收款程序

    编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;当总价大于或者等于500,享受8折优惠。控制台交互如下:

    package demo;

    import java.util.Scanner;

    /*

    * 需求:

    * 编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;

    * 当总价大于或者等于500,享受8折优惠。

    *

    */

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请输入单价(¥):");

    double price = scanner.nextDouble();

    System.out.println("请输入数量:");

    double amount = scanner.nextDouble();

    System.out.println("请输入收款金额:");

    double count = scanner.nextDouble();

    double totalMoney = price*amount;

    if(totalMoney > 500){

    totalMoney = totalMoney*0.8;

    }

    double change = count - totalMoney;

    System.out.println("应收金额为:"+totalMoney + "找零为:"+change);

    }

    }

    7、java从键盘输入三个整数,实现从小到大排序

    package demo;

    import java.util.Scanner;

    /*

    * java从键盘输入三个整数,实现从小到大排序

    *

    **/

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请输入三个整数,以空格隔开:");

    int a = scanner.nextInt();

    int b = scanner.nextInt();

    int c = scanner.nextInt();

    scanner.close();

    System.out.println("输入的值为:a = " + a + ", b = " + b + ", c = " + c);

    if(a > b){

    if ( b > c) {

    System.out.println("排序后的值为:" + c + "," + b + "," + a);

    }else if( c > a){

    System.out.println("排序后的值为:" + b + "," + a + "," + c);

    }else{

    System.out.println("排序后的值为:" + b + "," + a + "," + c);

    }

    }else{

    if(c < a){

    System.out.println("排序后的值为:" + c + "," + a + "," + b);

    }else if(c > b){

    System.out.println("排序后的值为:" + a + "," + b + "," + c);

    }else{

    System.out.println("排序后的值为:"+ a + "," + c + "," + b);

    }

    }

    }

    }

    8、计算个人所得税

    北京地区的个人所得税计算公式:

    纳税额 = (工资薪金所得 - 扣除数)*适用税率 - 速算扣除数

    其中,扣除数为3500,适用税率以及速算扣除数如下表所示:

    package demo;

    import java.util.Scanner;

    /*

    * 北京地区的个人所得税计算公式:

    应纳税额 = (工资薪金所得 - 扣除数)*适用税率 - 速算扣除数

    其中,扣除数为3500

    */

    public class demo {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请输入你的税前工资:");

    int salaryBeforeTax = scanner.nextInt();

    scanner.close();

    int taxSalary = salaryBeforeTax - 3500;

    double tax;

    /*方法一*/

    tax = taxSalary<0?0.0:

    taxSalary<=1500?taxSalary*0.03:

    taxSalary<=4500?taxSalary*0.1-105:

    taxSalary<=9000?taxSalary*0.2-555:

    taxSalary<=35000?taxSalary*0.25-1005:

    taxSalary<=55000?taxSalary*0.3-2755:

    taxSalary<=80000?taxSalary*0.35-5505:

    taxSalary*0.45-13505;

    System.out.println("个人应缴纳税款为:"+tax);

    /*方法二*/

    if( taxSalary < 0 ){

    tax = 0;

    }else if( taxSalary <= 1500){

    tax = taxSalary*0.03;

    }else if( taxSalary <= 4500){

    tax = taxSalary*0.1-105;

    }else if( taxSalary <= 9000){

    tax = taxSalary*0.2-555;

    }else if( taxSalary <= 35000){

    tax = taxSalary*0.25-1005;

    }else if( taxSalary <= 55000){

    tax = taxSalary*0.3-2755;

    }else if( taxSalary <= 80000){

    tax = taxSalary*0.35-5505;

    }else{

    tax = taxSalary*0.45-13505;

    }

    System.out.println("个人应缴纳税款为:"+tax);

    }

    }

    9、输入年份和月份,输出天数

    package demo;

    import java.util.Scanner;

    /*

    提示:

    1.需要判断是否是闰年,2月份的天数跟是否是闰年有关系;

    2.用switch-case判断每个月的天数

    */

    public class demo{

    public static void main(String[] args) {

    Scanner scanner = new Scanner(http://System.in);

    System.out.println("请输入年份:");

    int year = scanner.nextInt();

    System.out.println("请输入月份:");

    int month = scanner.nextInt();

    int dayNum = theDayNum(month); //先根据月份得出天数,如果是闰年,对2月份的天数重新获取

    if(isLeapYear(year)){

    if(month == 2){

    dayNum ++; //如果是闰年,2月份增加一天

    }

    System.out.print(year + "是闰年,");

    }else{

    System.out.print(year + "不是闰年,");

    }

    System.out.println(year + "年" + month + "月份共有" + dayNum + "天");

    }

    /*判断是否是闰年

    * 能被4整除但不能被100整除,或者能被400整除,是闰年

    */

    public static boolean isLeapYear(int year) {

    if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){

    return true;

    }else{

    return false;

    }

    }

    /*判断天数*/

    public static int theDayNum(int month) {

    switch (month) {

    case 1:

    return 31;

    case 2:

    return 28;

    case 3:

    return 31;

    case 4:

    return 30;

    case 5:

    return 31;

    case 6:

    return 30;

    case 7:

    return 31;

    case 8:

    return 31;

    case 9:

    return 30;

    case 10:

    return 31;

    case 11:

    return 30;

    case 12:

    return 31;

    default:

    System.out.println("对不起,您输入的月份有误!");

    return 0;

    }

    }

    }

    10、输出九九乘法表

    package demo;

    /* author:wendy

    * 问题:

    * 直接输出九九乘法表

    * */

    public class demo {

    public static void main(String[] args) {

    //i变量用于控制行数

    for(int i = 0; i <= 9; i++) {

    //j变量用于控制每行中参与计算的数值

    for(int j = 1; j <= i; j++) {

    System.out.print(j + "*" + i + "=" + i*j + "\t");

    }

    //每行输出之后需要换行

    System.out.println();

    }

    }

    }

    11、随机产生一个从0-100之间的整数,判断是否是质数

    质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 。

    package demo;

    import java.util.Random;

    public class primeNum {

    public static void main(String[] args) {

    int num;

    Random random = new Random();

    num = random.nextInt(100);

    System.out.println("随机产生的数为:" + num);

    System.out.println(isPrime(num));

    }

    public static boolean isPrime(int num) {

    if(num < 2) {

    return false;

    }

    if(num == 2) {

    return true;

    }

    if(num % 2 == 0) {

    return false;

    }

    for(int i = 3; i <= Math.sqrt(num); i += 2) {

    if(num % i == 0) {

    return false;

    }

    }

    return true;

    }

    }

    12、查找数组最小值,并将数组扩容成新数组

    package demo;

    import java.util.Arrays;

    import java.util.Random;

    /*

    * author:wendy

    * 问题:随机产生10个从0-100之间的整数,并查找最小值;

    * 将该数组扩容成新数组,把最小值存在新数组的第一个位置。

    * 步骤:

    * 1.构造一个长度为10的数组,利用Random随机产生10个0-100之间的整数;

    * 2.寻找最小值,利用for循环

    * 3.扩容 利用Arrays.coprOf()构造新数组,将其长度设置为11

    * 4.遍历新数组,从后往前遍历,以此赋值,然后将2中找到的最小值存在数组的第一个

    * */

    public class copyOf {

    public static void main(String[] args) {

    int [] arr = new int[10];

    //随机产生10个 0-100之间的整数

    Random random = new Random();

    for(int i = 0; i < 10; i ++) {

    arr[i] = random.nextInt(100);

    }

    //打印数组的内容

    System.out.println("随机产生的数组为:" + Arrays.toString(arr));

    //查找最小的值

    int min = arr[0];

    for(int j = 1; j < 10; j ++) {

    if(min > arr[j]) {

    min = arr[j];

    }

    }

    System.out.println("该数组最小的值为:" + min);

    //扩容,将最小值存在扩容之后的第一个

    int [] newArr = Arrays.copyOf(arr, 11);

    //从后往前遍历,将前面的值赋给后面的值,然后将第一个的值赋为最小值min

    for(int k = newArr.length-1; k >=1; k --) {

    newArr[k] = newArr[k-1];

    }

    //将第一个的值赋为最小值min

    newArr[0] = min;

    //打印数组的内容

    System.out.println("扩容之后的数组为:"+ Arrays.toString(newArr));

    }

    }

    最后,如果你跟我一样都喜欢java,想成为一名优秀的程序员,也在学习java的道路上奔跑,欢迎你加入java学习群:479749726群内每天都会分享java最新业内资料,分享java免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

    相关文章

      网友评论

        本文标题:12个Java小程序带你走进Java大世界

        本文链接:https://www.haomeiwen.com/subject/bmcfjqtx.html