用Java编写经典小程序

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

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

import java.util.Scanner; 

public class demo {
 public static void main(String[] args) {
 Scanner scanner = new Scanner(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(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(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(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(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(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(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(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(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();
 }
 }
}<strong>
</strong> 

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算法和思维的学员有很大的帮助,小编会给大家提供相关帮助,请多多关注我们。

(0)

相关推荐

  • Java实现表白小程序

    今天闲来无事,教大家一个哄妹子的小case.我们需要创建一个心形图案,按照心形图案的位置和长度,对所创建的字符串进行截断并在所需的位置上输出,最终能呈现在屏幕上满满的爱心.废话不多说,直接上源码看效果 ~ package ddd; import java.awt.*; import javax.swing.JFrame; public class Cardioid extends JFrame { //获取屏幕大小 private static final int WIDTH = 500; pr

  • java实现俄罗斯方块小程序

    这是java课最后做的课程设计,由于java是初学的,所以做的时候有参考一些技术大牛的博客,在此表示感谢. 发在这里跟大家交流学习一下. 如需要完整工程文件.说明文档以及可运行jar文件,下载地址:点击打开链接 RussianBlocksGame.java package RussiaBlocksGame; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.Bor

  • java实现微信小程序登录态维护的示例代码

    相信不少喜欢开发的朋友都已经知道微信小程序是个什么物种了,楼主也是从小程序内测期间就开始关注,并且也写过几个已经上线的微信小程序.但是基本上都是写的纯前端,最近楼主从后端到前端写一个完整的小程序项目,中间碰到了一些问题,楼主会找一些个人觉得有学习价值的点不定时的拿出来跟大家分享,希望对你有一些帮助. 本次就从最基本的微信小程序登录态维护开始吧.小程序官方api文档里面有对登录态的一个完整的解释,并且有相关的代码.想看详情,可以出门右转:https://mp.weixin.qq.com/debug

  • Java解密微信小程序手机号的方法

    本文实例为大家分享了Java解密微信小程序手机号的具体代码,供大家参考,具体内容如下 第一步:创建AES解密工具类:代码如下 import org.apache.commons.codec.binary.Base64; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySp

  • Java中基于Shiro,JWT实现微信小程序登录完整例子及实现过程

    小程序官方流程图如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html : 本文是对接微信小程序自定义登录的一个完整例子实现 ,技术栈为 : SpringBoot+Shiro+JWT+JPA+Redis. 如果对该例子比较感兴趣或者觉得言语表达比较啰嗦,可查看完整的项目地址 : https://github.com/EalenXie/shiro-jwt-applet

  • 拳皇(Java简单的小程序)代码实例

    刚开始学习Java,看完老九君的视频根据他的内容敲的代码,感觉还挺有成就感的,毕竟刚学习Java. package helloasd;import java.util.*; public class hellojava { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("输入名称: "); //用户自己输入名字 String userna

  • java实现验证码小程序

    手动制作java的验证码,具体内容如下 Web应用验证码的组成: (1)输入框 (2)显示验证码的图片 验证码的制作流程: 生成验证码的容器使用 j2ee的servlet 生成图片需要的类: (1) BufferedImage 图像数据缓冲区 (2)Graphic绘制图片 (3)Color获取颜色 (4)Random生成随机数 (5)ImageIO输入图片 具体实现流程: (1)定义一个Servlet,用于生成验证码 (2)定已BufferedImage对象,主要作用就是制作一个图片缓冲区,作为

  • 微信小程序调用微信登陆获取openid及java做为服务端示例

    一.微信小程序 第一步:调用 wx.login获取code 文档地址 第二步:判断用户是否授权读取用户信息 文档地址 第三步:调用wx.getUserInfo读取用户数据 文档地址 第四步:由于小程序后台授权域名无法授权微信的域名,所以我们只能通过我们自己的服务器去调用微信服务器去获取用户信息,故我们将wx.login获取code 和 wx.getUserInfo 获取的encryptedData与iv 通过wx.request 请求传入后台 服务器返回的数据: 小程序代码: //调用登录接口,

  • Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import java.util.Calendar; public class CalendarBean { String day[]; int year=2005,month=0; public void setYear(int year) { this.year=year; } public int getYear

  • 用Java编写经典小程序

    如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用 1.输出两个int数中的最大值 import java.util.Scanner; public class demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请依次输入两个整数:a,b(以空格隔开)"); /*比较两个数的大小*/

  • Java编程经典小游戏设计-打砖块小游戏源码

    [程序中使用的数据结构和符号说明] HitBrick类 GreenBallThread控制小球路线 xUp,yUp,bouncing定义变量存储16位数值形式 x,y小球坐标 xDx,yDy坐标增量 MAX_X,MAX_Y坐标最大值 renew初始化 label标签 Rx,Ry横板坐标 Brick[]砖块 ball小球 HitBrick()定义小球横板及砖块位置坐标 keyPressd(keyEent)定义小球启动键(按空格键启动) keyReleased(keyEvent)接收键盘事件侦听器接

  • java实现发牌小程序

    本文实例为大家分享了java实现发牌小程序的具体代码,供大家参考,具体内容如下 关键字:掌握Java数组.方法的基本定义 内容要求: 编写程序,项目名和类名均为PokerGame. 实现功能: (1) 共有m幅扑克牌,每幅扑克牌不包括大王和小王共52张牌. (2) 可能有n个人参与扑克游戏,2<=n<=52. (3) 程序运行时输入扑克牌幅数m和人数n,然后所有牌分别依次分发给n个人.不能整除时,每个人的牌数可以不同,如3个人1幅牌,则第1个人18张,第2个和第3个人17张牌. (4) 发牌完

  • java与微信小程序实现websocket长连接

    本文实例为大家分享了java与微信小程序实现websocket长连接的具体代码,供大家参考,具体内容如下 背景: 需要在小程序实现地图固定坐标下实时查看消息 java环境 :tomcat7 jdk1.7 1.java websocket 类 package com.qs.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.

  • 抖音上用记事本编写爱心小程序教程

    本文实例为大家分享了抖音上用记事本编写爱心小程序的具体代码,供大家参考,具体内容如下 先上一波效果图: 一颗旋转的小心心 七夕的前一天晚上,当我满怀期待的把这颗"爱心"展示给我女朋友的时候,我以为她会very..very..happy 但是..她和我说你给我颗大蒜干什么啊.. Why are you giving me a garlic.. 也就是那个时候,我突然觉得这真的像一颗大蒜哎 好啦,不多说了.直接上源代码: <!DOCTYPE html> <html lan

  • java实现微信小程序加密数据解密算法

    一.概述 微信推出了小程序,很多公司的客户端应用不仅具有了APP.H5.还接入了小程序开发.但是,小程序中竟然没有提供Java版本的加密数据解密算法.这着实让广大的Java开发人员蛋疼. 微信小程序提供的加密数据解密算法链接 我们下载的算法示例如下: 木有Java!! 木有Java!! 木有Java!! 那么如何解决这个问题,我们一起来实现Java版本的微信小程序加密数据解密算法. 二.实现Java版本的微信小程序加密数据解密算法 1.创建项目 这里,我们创建一个Maven工程,具体创建步骤略.

  • typescript编写微信小程序创建项目的方法

    创建项目 在微信开发者工具创建项目,在语言中选择 TypeScript 改造项目 编辑 package.json 文件,修改 miniprogram-api-typings 和 typescript 版本 { "name": "miniprogram-ts-quickstart", "version": "1.0.0", "description": "", "scripts&

  • Java编写网络聊天程序实验

    本文实例为大家分享了Java编写网络聊天程序的具体代码,供大家参考,具体内容如下 课程名称 高级Java程序设计 实验项目 Java网络编程 实验目的: 使用客户机/服务器模式.基于TCP协议编写一对多“群聊”程序.其中客户机端单击“连接服务器”或“断开连接”按钮,均能即时更新服务器和所有客户机的在线人数和客户名. 实验要求: 设计一对多的网络聊天程序,要求: 1.基于TCP/IP设计聊天程序2.采用图形界面设计3.能够进行一对多聊天 项目截图 服务器端代码: import javax.swin

  • Java点餐小程序之黑心商人

    很久以前,有一个女人,开了一家酒店,她的名字叫孙二娘.下面是她找人做的点餐小程序.代码如下: import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.ArrayList; import java.util.Scanner; import java.util.Set; public class MyDianCai { sta

随机推荐