java编程思路思想及案例练习(最近学习总结)

前言:

学了java的基础语法,但运用还不是很流畅,所以练习些案例,整理些心得。

 编程思路思想

1,实验由多个方法组成,所以碰到需要实现的程序时,需要先分析程序,思考程序可以拆分成什么功能,然后根据功能去编写方法,尽可能实现每一个方法对应一项功能。

2,当程序划分成每一个方法时,分析方法是否需要接受数据

3,随即分析方法是是否需要返回数据

4,遇到需要通过判断数据在哪个区间执行的功能时,用if分支结构比较有效

5,遇到需要通过判断数据匹配哪个值执行的功能时,用switch分支结构有效

案例

练习1:飞机票案例

用户购买机票时,机票原价会按照淡季,旺季,头等舱还是经济舱的情况进行相应的优惠, 优惠方案如下:5-10月为旺季,头等舱9折,经济舱8.5折;11月到来年4月为淡季, 头等舱7折,经济舱6.5折,请开发程序计算出用户当前机票的优惠价

   public static void main(String[] args) {double pri=sys(1000, 11, "头等舱");System.out.println(pri);}public static double sys(double pri, int mon, String cang) {if (mon >= 5 && mon <= 10) {switch (cang) {case "头等舱":pri *= 0.9;break;case "经济舱":pri *= 0.85;break;}} else {switch (cang) {case "头等舱":pri *= 0.7;break;case "经济舱":pri *= 0.65;break;}}return pri;}

实验成功。

但实验时所遇到的问题是:如果在方法中设定了输出结果及返回值,那么在main方法中引用输出时,结果会输出两遍。

练习2:生成随机验证码

public class textdemo1 {public static void main(String[] args) {String re =code(5);System.out.println(re);}public static String code(int n){Random r = new Random();String fu = "";for (int i = 1; i <= n; i++) {int la = r.nextInt(3);switch (la){case 0 :fu += r.nextInt(10);break;case 1:char n1= (char)(r.nextInt(26)+65);fu += n1;break;case 2:char n2 =(char)(r.nextInt(26)+97);fu += n2;break;}}return fu;}
}

实验成功

实验时遇到的问题:同行输出数据需要用String相连,不然有可能会相加

实验3:评委打分,求出截断平均值(去除最大值及最小值)

public class textdemo2 {public static void main(String[] args) {System.out.println(la(6));}public static double la(int num){int [] lol = new int[num];Scanner sc = new Scanner(System.in);for (int i = 0; i < lol.length; i++) {System.out.println("请输入第"+(i +1)+"位老师的成绩");lol[i]=sc.nextInt();}int sum = 0;int max = lol[0];int min = lol[0];for (int i = 0; i < lol.length ; i++) {sum += lol[i];if (max < lol[i]){max=lol[i];}if (min > lol[i]){min = lol[i];}}double re=(sum-max-min)/(num -2);return re;}
}

实验成功

遇到的问题:1,最大索引为“length-1”,不是length;2,两种情况最好分别写代码。

实验4:数字加密

某系统的数字密码是一个四位数,如1983,为了安全,需要加密后再传输,加密规则是对密码中的每位数,都加5,在对10求余数,最后将所有数字顺序反转,得到一串加密后的新数请设计出满足本需求的加密程序

public static void main(String[] args) {System.out.println("结果为:"+la(1983));}public static String la (int num){int [] nums = ll(num);String fu = "";for (int i = 0; i <nums.length ; i++) {nums[i] = (nums[i] + 5)%10;}re(nums);for (int i = 0; i < nums.length; i++) {fu +=nums[i];}return fu;}public static void re (int [] nums){for (int i = 0, j = nums.length -1; i < j ; i++,j--) {int temp = nums[j];nums[j]= nums[i];nums[i]=temp;}}public static int [] ll (int num){//1983拆成数组int [] nums = new int[4];nums [0] = num / 1000 ;nums [1] = (num /100)%10;nums [2] = (num /10)%10;nums [3] = num %10;return  nums;}

实验成功

没遇到太多的问题

练习5:复制数列

请把一个整形数组,例如存了数据:11,22,33,拷贝成一个一模一样的新数组出来

public static void main(String[] args) {int [] num = {11,22,33};int [] num1 = la(num);ll(num1);}
public static void ll(int [] num){System.out.print("[");for (int i = 0; i < num.length ; i++) {System.out.print(i == num.length-1? num[i]:num[i]+",");}System.out.print("]");
}public static int [] la (int []num){int [] num1 = new int [num.length];for (int i = 0; i < num.length; i++) {num1[i] = num [i];}return num1;}

实验成功

没有遇到大问题

总结:

需要注意空行和空列的问题,同时需要注意方法的输出引用及返回值的使用!

撒花!

---------------------------------------------------------------------------------------------------------------------------------

最后 

如果您看到了这篇文章,同时您也在学习java,希望您阅读这篇文章,希望与您一起讨论

基于黑马程序员的java学习笔记(持续更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT4-AIl本地部署-chat AI本地使用

文章目录 GPT4-AIl本地部署GPT4客户端下载地址&#xff1a;对应的下载下载后的文件点击安装&#xff0c;改一下文件存放路径&#xff0c;下面都是默认下一步进度条100%后&#xff0c;点击完成 安装完桌面生成图标&#xff0c;点击选择都是NO&#xff0c;不进行数据上传点击后&a…

TensorFlow Hub模型

TensorFlow Hub是一个库&#xff0c;用于分享和发现预训练的机器学习模型。 可以在TensorFlow Hub上找到各种用于不同任务的模型&#xff0c;包括但不限于以下类型&#xff1a; 文本处理: BERT (Bidirectional Encoder Representations from Transformers)ALBERT (A Lite BERT…

大数据 - 大数据入门第一篇 | 关于大数据你了解多少?

&#x1f436;1.1 概述 大数据&#xff08;BigData):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 大数据主要解决、海量数据的采…

【C++】命名空间、输入输出、缺省参数和函数重载详解

文章目录 前言命名空间命名空间的定义命名空间的使用 C输入输出缺省参数缺省参数定义缺省参数分类 函数重载函数重载的概念函数名修饰规则extern "C"的使用 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; C 是一门强大而灵活的编程语言…

Embedding模型在大语言模型中的重要性

引言 随着大型语言模型的发展&#xff0c;以ChatGPT为首&#xff0c;涌现了诸如ChatPDF、BingGPT、NotionAI等多种多样的应用。公众大量地将目光聚焦于生成模型的进展之快&#xff0c;却少有关注支撑许多大型语言模型应用落地的必不可少的Embedding模型。本文将主要介绍为什么…

C ++类

定义一个Person类&#xff0c;私有成员int age&#xff0c;string &name&#xff0c;定义一个Stu类&#xff0c;包含私有成员double *score&#xff0c;写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数&#xff0c;完成对Person的运算符重载(算术运算符、条件运算…

Linux服务器搭建笔记-005:为用户添加sudo权限及删除账户

一、为指定用户添加sudo权限 命令&#xff1a;usermod suEVA-01:~$ sudo usermod -aG sudo XXX上述命令会生为名字为 XXX 的用户添加sudo权限。 二、删除用户账户 命令&#xff1a;userdel suEVA-01:~$ sudo userdel -r XXX上述命令会删除用户名为XXX的用户&#xff0c;并…

【ROS2】MOMO的鱼香ROS2(四)ROS2入门篇——ROS2节点通信之话题与服务

ROS2节点通信之话题与服务点 引言1 理解从通信开始1.1 TCP&#xff08;传输控制协议&#xff09;1.2 UDP&#xff08;用户数据报协议&#xff09;1.3 基于共享内存的IPC方式 2 ROS2话题2.1 ROS2话题指令2.2 话题之RCLPY实现2.2.1 编写发布者2.2 2 编写订阅者2.2.3 运行测试 3 R…

OSG读取和添加节点学习

之前加载了一个模型&#xff0c;代码是&#xff0c; osg::Group* root new osg::Group(); osg::Node* node new osg::Node(); node osgDB::readNodeFile("tree.osg"); root->addChild(node); root是指向osg::Group的指针&#xff1b; node是 osg:…

udp进行数据发送与接收

1&#xff1a;udp发送&#xff08;这是广播局域网的形式&#xff0c;可以修改为指定IP地址&#xff09; SneakyThrowspublic static void main(String[] args) {String message"中文";DatagramSocket dgSocket new DatagramSocket();byte[] bytes message.getBytes…

字节高级Java面试真题

今年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验…

appium入门基础

介绍 appium支持在不同平台的UI自动化&#xff0c;如web,移动端,桌面端等。还支持使用java&#xff0c;python&#xff0c;js等语言编写自动化代码。主要用于自动化测试脚本&#xff0c;省去重复的手动操作。 Appium官网 安装 首先必须环境有Node.js用于安装Appium。 总体来…

设计模式—行为型模式之模板方法模式

设计模式—行为型模式之模板方法模式 在模板模式&#xff08;Template Pattern&#xff09;中&#xff0c;一个抽象类公开定义了执行它的方法的方式模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。 模板方法&#xff08;Template Metho…

TransNeXt:稳健的注视感知ViT学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2311.17132.pdf 代码地址&#xff1a; GitHub - DaiShiResearch/TransNeXt: Code release for TransNeXt model 可以直接在ImageNet上训练的分类代码&#xff1a;GitHub - athrunsunny/TransNext-classify 代码中读取数据的部分修改…

Rust学习笔记006:代码组织

Crate 在Rust中&#xff0c;“crate” 是指 Rust 的代码单元&#xff0c;它可以包含一个或多个模块&#xff08;modules&#xff09;。Rust 的 crate 分类主要有两个方面&#xff1a;库&#xff08;Library Crates&#xff09;和二进制&#xff08;Binary Crates&#xff09;。…

css中的BFC

定义 BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域&#xff0c;只有Block-level box参与&#xff0c; 它规定了内部的Block-level Box如何布局&#xff0c;并且与这个区域外部毫不相干。 涉及概念 box Box 是 CSS 布局的对象…

前端工程化及其实践1

前端工程化及其实践1 前端工程化及其实践又名&#xff1a;写毕设到企业级前端&#xff08;第一天&#xff09; 前端工程化简介 目录 前端工程化及其实践 前端工程化简介传统和现代化开发的案例对比 传统前端案例现代化前端 现代前端案例现代化项目结构举例 vue简单化的项目结…

【Java面试题】HTTP与 HTTPS 的区别

HTTP 与 HTTPS 的区别 &#xff1a; 主要体现在三个方面&#xff0c;分别是 信息传输安全、证书和身份验证 、连接方式 信息传输安全&#xff1a; HTTP 是超文本传输协议&#xff0c;HTTP下的信息是明文传输的&#xff0c;因此使用HTTP协议可能导致信息被截获或者第三方恶意…

病理HE学习贴(自备)

目录 正常结构 癌症HE 在线学习 以胃癌的学习为例 正常结构 1&#xff1a;胃粘膜正常结构和细胞分化 ●表面覆盖小凹上皮细胞(主要标志物&#xff1a;MUC5AC)以保护黏膜。 ●胃底腺固有腺体由黏液颈细胞(MUC6)、主细胞(Pepsinogen l)和壁细胞(Proton pump α-subunit)组…

中科亿海微Flash擦写读

引言 在数字存储技术的领域中&#xff0c;闪存&#xff08;Flash&#xff09;是一种非易失性存储器&#xff0c;以其高速读写、低功耗和较高的可靠性而备受关注。相比于传统的磁盘存储技术&#xff0c;闪存具有更小的体积、更高的数据密度和更长的寿命&#xff0c;因此在各种应…