文章目录

  • ==java代码==
    • 1.书本样例2-7,计算税收
    • 2.书本样例2-8,计算每月天数
    • 3.书本样例2-9
    • 4.计算程序运行时间
    • 5.书p39两个编程题
    • 6.项目实训:基于控制台设计简易的打折与累加计算器
    • 7.Arrays类相关
    • 8.静态方法与非静态方法区别

java代码

1.书本样例2-7,计算税收

补充

创建Scanner类输入数据会出现“Resource leak: 'xxx' is never closed ”的报错
原因:数据输入扫描仪(Scanner),系统就会为它分配相应的内存空间,但是在程序结时却没有释放该内存,会造成资源浪费,从而出现警告。(百度)
解决方法,用xxx.close();释放空间即可。
声明变量后有时会出现 “The value of the local variable sb7 is not used”  的错误
原因:是因为定义的变量在代码中并未使用且无法访问。java在编译的时候会出现这样的警告(scdn)
解决方法:加上“@SuppressWarnings("unused")”即可
import java.util.Scanner;
public class Ex2_7
{public static void main(String [] args){int status = scanfStatus();double income = scanfIncome();double tax = 0;tax = getTax(status,income);System.out.println("纳税人需要交税额为" + tax +"¥");}public static int scanfStatus(){int status = 0;System.out.println("请输入纳税人类型:0-单身,1-已婚,2,家庭");Scanner inStatus = new Scanner(System.in);if(inStatus.hasNextInt())status = inStatus.nextInt();inStatus.close();return status;}public static double scanfIncome(){double income = 0;System.out.println("请输入可征税收入");Scanner in = new Scanner(System.in);if(in.hasNextDouble())income = in.nextDouble();in.close();return income;}public static double getTax(int status , double income){double tax = 0;if(status==0){if(income<=6000)tax = income * 0.10;else if(income<=27950)tax = 6000*0.10 + (income - 6000)*0.15;else if(income<=67700)tax = 6000*0.10 + (27950 - 6000)*0.15 + (income - 27950) *0.27;else if(income<=141250)tax = 6000*0.10 + (27950 - 6000)*0.15 + (67700 - 277950) * 0.27 + (income - 67700)*0.30;else tax = 6000*0.10 + (27950 - 6000)*0.15 + (67700 - 277950) * 0.27 + (141250 - 67700)*0.30 + (income - 141250)*0.35;}else if(status==1){if(income<=12000)tax = income * 0.10;else if(income<=46700)tax = 12000*0.10 + (income - 6000)*0.15;else if(income<=112850)tax = 12000*0.10 + + (46700 - 12000)*0.15 + (income - 46700) *0.27;else if(income<=171950)tax = 12000*0.10 + + (46701 - 12000)*0.15  + (112850 - 46701) *0.27 + (income - 112850)*0.30;else tax = 12000*0.10 + + (46701 - 12000)*0.15  + (112850 - 46701) *0.27 + (171950 - 112850)*0.30 + (income - 171905)*0.35;}else if(status==2){if(income<=10000)tax = income * 0.10;else if(income<=37450)tax = 10000*0.10 + (income - 10000)*0.15;else if(income<=96700)tax = 10000*0.10 + (37450 - 10000)*0.15 + (income - 37450) *0.27;else if(income<=156600)tax = 10000*0.10 + (37450 - 10000)*0.15 + (96700 - 37450) * 0.27 + (income - 96700)*0.30;else tax = 10000*0.10 + (37450 - 10000)*0.15 + (96700 - 37450) * 0.27 + (156600 - 96700)*0.30 + (income - 156600)*0.35;}return tax;}
}

2.书本样例2-8,计算每月天数

import java.util.Scanner;
public class Ex2_8 {public static void main(String[] args) {int year = getYear();int month = getMonth();int numday = 0;numday = getDay(year,month);System.out.println(year + " 年" + month + "月" + "有" + numday + "天");}public static int getYear(){int year;System.out.println("输入年份");Scanner inYear = new Scanner(System.in);year = inYear.nextInt();inYear.close();return year;}public static int getMonth(){int month;System.out.println("输入月份");Scanner inMonth = new Scanner(System.in);month = inMonth.nextInt();inMonth.close();return month;}public static int getDay(int year , int month){int day = 0;switch (month){case 1: case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:if(year%4==0&&year%100!=0||year%400==0)day = 29;elseday = 28;break;}return day;}}

3.书本样例2-9

思路

简单贪心,由题意可知商品1,单个金币获得的生命最多,所以只需保证1越多越好即可
import java.util.Scanner;
public class Ex2_9
{static final int FGVALUE = 20;static final int GSVALUE = 16;static final int FGLIFE = 30;static final int GSLIFE = 20;public static void main(String [] args){int goldcoin = getGold();getRes(goldcoin);}public static int getGold(){System.out.println("请输入金币数量");Scanner inGold = new Scanner(System.in);inGold.close();return inGold.nextInt();}public static void getRes(int goldcoin){int fgnum = 0;int gsnum = 0 ;int maxlife = 0;if(goldcoin-FGVALUE>=0){fgnum = goldcoin/FGVALUE;maxlife += fgnum*FGLIFE;goldcoin = goldcoin - fgnum*FGVALUE;}if(goldcoin-GSVALUE>=0){gsnum = goldcoin/GSVALUE;maxlife += gsnum*GSLIFE;goldcoin = goldcoin - gsnum*GSVALUE;}System.out.printf("购买宝物最多能增加%d你的生命力\n",maxlife);System.out.println("购买仙草数量为"+ fgnum);System.out.println("购买银河锁的对数量为"+gsnum);}}

4.计算程序运行时间

//计算程序运行时间
@SuppressWarnings("unused")
public class P35_2_5_4 {public static void main(String [] args){//毫秒时间System.out.println(currentTimeMillis()+"ms");//纳秒时间System.out.println(nanoTime()+"ns");}public static long currentTimeMillis(){long startTime = System.currentTimeMillis();int sum = 0;for(int i = 0 ; i < 100000000 ; i ++){sum += i;}long endTime = System.currentTimeMillis();return endTime - startTime;}public static long nanoTime(){long startTime = System.nanoTime();int sum = 0;for(int i = 0 ; i < 100000000 ; i ++){sum += i;}long endTime = System.nanoTime();return endTime - startTime;}
}

5.书p39两个编程题

  • 输出三位数的水仙花数

    //输出水仙花数
    public class P39 {public static void main(String [] args){narcissisticNumber();}public static void narcissisticNumber(){for(int i = 100 ; i <= 999 ; i ++){int unit = i % 10;int ten = i / 10 % 10;int  hundredth =i / 100;//调用Math类的pow方法处理三次方if(Math.pow(unit, 3) + Math.pow(ten, 3) + Math.pow(hundredth, 3)==i)System.out.println(i);}}
    }
    
  • 交换两个数

    注意

    如果想构造方法交换两个数,不能直接传实参交换,因为实参与形参互不干扰(与C语言一样)
    可以传一个数组进行交换
    
    public class P39_2 {public static void main(String[] args) {int a = 10;int b = 1;//交换前System.out.println(a+" "+b);int temp = a; a = b; b = temp;//交换后System.out.println(a+" "+b);}
    }

6.项目实训:基于控制台设计简易的打折与累加计算器

 //基于控制台设计简易的打折与累加计算器、import java.util.Scanner;
public class Project01 {public static void main(String [] args){System.out.println("欢迎使用计算器");System.out.println("请输入0或1,1-计算,0-退出");Scanner inx = new Scanner(System.in);int bool = inx.nextInt();while(true){if(bool == 1){input_output();}else if(bool == 0){System.out.println("谢谢使用!");break;}System.out.println("请输入0或1,1-计算,0-退出");bool = inx.nextInt();}inx.close();}public static void input_output(){System.out.println("请输入第一个数:");Scanner in = new Scanner(System.in);int data1 = in.nextInt();System.out.println("请输入运算符:");String sign = in.next();System.out.println("请输入第二个数:");int data2 = in.nextInt();int res = countData(data1,sign,data2);if(res == -99999999)System.out.println("数据错误");elseSystem.out.println("答案为"+res);}public static int countData(int data1 , String sign ,int data2){int data = 0;if(sign.equals("+"))data = data1 + data2;else if(sign.equals("-"))data = data1 - data2;else if(sign.equals("*"))data = data1 * data2;else if(sign.equals("/"))data = data1 / data2;elsedata = -99999999;return data;}
}

7.Arrays类相关

//数组的相关操作
import java.util.Arrays;
public class Arr {public static void main(String[] args) {int [] arr = new int [33];int []  b = {88,92,9};//复制System.arraycopy(b, 1, arr, 0, 1);//大小System.out.println(arr.length);//遍历输出System.out.println(Arrays.toString(arr));//比较System.out.println(Arrays.equals(b,arr));//填充int [] a = new int [4];Arrays.fill(a,1);System.out.println(Arrays.toString(a));//排序Arrays.sort(b);System.out.println(Arrays.toString(b));}
}

8.静态方法与非静态方法区别

1.静态方法是属于类的,可以直接通过类加函数名调用(类名.静态方法);非静态方法,是属于实例化后类的方法,调用前需要实例化,才能调用;
public class Function {public static void main(String [] agrs){//调用静态方法Test.function1();//调用非静态方法Test a = new Test();//实例化类a.function2();}
}class Test{public static void function1(){System.out.println("HelloWorld");}public void function2(){System.out.println("HelloWorld");}
}
2.静态方法只能只允许访问静态成员(即静态成员变量和静态方法),不允许访问实例成员(即实例成员变量和实例方法),而实例方法不存在这个限制。

2021404209陈聪blog相关推荐

  1. 第一周总结--------陈聪

     目录 部分题目题解 周总结 部分题目题解 7-2 L2-求求别再发表情包了! 小c是某聊天平台上的一活跃用户,他非常喜欢根据自己的心情发一些奇奇怪怪的表情包.如小c今天的心情指数为k,他会发给别人2 ...

  2. php amqp扩展安装,Linux下PHP扩展amqp安装

    本次测试环境 系统:CentOS5.8 x86-64 PHP:5.2.16(源码编译安装的) 扩展是C写的,由于C与RabbitMQ通信一般需要依赖rabbitmq-c库(也就是librabbitmq ...

  3. 【转】SFU级联解决方案——Licode

    文章目录 1. 引言 2. SFU 2.1 SFU简介 2.2 单SFU问题 2.2.1 人数限制 2.2.2 地理分布,就近接入 2.3 解决方案:级联SFU 2.3.1 解决人数限制 2.3.2 ...

  4. C++中的虚函数表介绍

            在C++语言中,当我们使用基类的引用或指针调用一个虚成员函数时会执行动态绑定.因为我们直到运行时才能知道到底调用了哪个版本的虚函数,所以所有虚函数都必须有定义.通常情况下,如果我们不使 ...

  5. 懂球帝 X 七牛云:纯粹有趣的足球遇上简单可信赖的技术

    64 场比赛 32 支球队 1 个大力神杯 10 亿人次收看 如果只用三个字来概括这个夏天,那么这三个字一定是「世界杯」. 从赛场上小将戈洛文的一战成名,到赛场外铺天盖地「慌得一比」的表情包,世界杯不 ...

  6. 国家卫健委:我国男女性成人平均身高分别为169.7厘米和158厘米

    [#我国男女性成人平均身高分别为169.7厘米和158厘米#]国家卫健委副主任李斌23日说,根据<中国居民营养与慢性病状况报告(2020年)>,我国18-44岁男性和女性的平均身高分别为1 ...

  7. 解密迈向量产的百度Apollo自动驾驶技术与产品

    百度在 AI 上走的是平台化,生态化路线,"All in AI"的百度正忙着让 AI 产品快速落地.在前不久的百度世界大会上,李彦宏公布了一条令人兴奋的消息:Apollo 开放平台 ...

  8. HTML+CSS+JavaScript复习笔记持更(八)——CSS3常用属性之列表

    列表属性 之前已经介绍过了列表标签.主要有有序列表和无序列表,为了更好地控制这两种列表,CSS还提供了这两种列表的样式设置. list-style(简写属性,把所有列表的属性设置写到一个声明中) li ...

  9. 音视频技术开发周刊 82期

    『音视频技术开发周刊』由LiveVideoStack团队出品,专注在音视频技术领域,纵览相关技术领域的干货和新闻投稿,每周一期.点击『阅读原文』,浏览第82期内容,祝您阅读愉快. 架构 基于Licod ...

最新文章

  1. 漫画:百度从Google学来的面试题,想进大厂必备!
  2. 恭喜我的同事丁宇入选年度 IT 领军人物
  3. 【中级软考】软件质量模型的六大特性27个子特性(软件质量特性:功能性、可靠性、易用性、效率性、软件维护性、软件可移植性)
  4. 外部编辑Infopath的表单模板(xsn)
  5. 【机器学习基础】数学推导+纯Python实现机器学习算法18:奇异值分解SVD
  6. 计算机中减法英语,计算机中的减法运算
  7. Captcha插件后门分析和修复
  8. CIA公布了收集和存储美国公民信息的新规则
  9. Redis面试复习大纲在手面试不慌,内含福利
  10. 2015计算机类专业课类试卷,2015年自考《计算机应用基础》模拟试题及答案
  11. 90后互联网打工人:为了买小两居,爸妈打零工帮我凑首付
  12. SparkSql学习笔记(包含IDEA编写的本地代码)
  13. 用css样式修改input控件和button控件
  14. linux运维零基础学习,没有基础怎么学习Linux运维?Linux学习
  15. springboot+爱心捐赠小程序 毕业设计-附源码211711
  16. 超声B mode聚焦成像仿真(ultrasound B mode fcous imaging simulation)
  17. 自己动手实现简易STL
  18. B端产品的筛选场景调研与设计优化实践
  19. 国际贸易相关术语-DDP
  20. Python实现手机号自动判断男女性别

热门文章

  1. 刘桉齐:敏捷回顾会七步成诗法 | 真北群友作品
  2. 企业级BYOD实践与挑战:如何改善BYOD策略
  3. 普通IT中年自救指南(一)
  4. 3D游戏建模真的很累吗?前景怎么样?又需要哪样的基础
  5. 以小25倍参数量媲美GPT-3的检索增强自回归语言模型:RETRO
  6. 兼容并“包”NLP评价指标:Robustness Gym框架
  7. linux之/proc/cpuinfo详解
  8. 数据分析:Day01软件安装及基础
  9. 生成带有logo的二维码
  10. 7628刷breed_遇到懒官方怎么办?袋鼠云路由拆机,7620A+7612EN刷入breed、Padavan固件教程...