JAVA基础两个项目案例代码
1.JAVA使用ArrayList上架菜品案例
视频参考链接
创建一个Food.java类
package org.example;// 菜品类
public class Food {private String name; // 菜品名private double price; // 价格private String desc; // 菜品描述public Food() {}public Food(String name, Double price, String desc) {this.name = name;this.price = price;this.desc = desc;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return price*/public Double getPrice() {return price;}/*** 设置* @param price*/public void setPrice(Double price) {this.price = price;}/*** 获取* @return desc*/public String getDesc() {return desc;}/*** 设置* @param desc*/public void setDesc(String desc) {this.desc = desc;}public String toString() {return "Food{name = " + name + ", price = " + price + ", desc = " + desc + "}";}
}
创建一个FoodOperator.java类
package org.example;import java.util.ArrayList;
import java.util.Scanner;// 菜品操作类
public class FoodOperator {private ArrayList<Food> foodList = new ArrayList<>();// 上架菜品public void addFood(){// 创建菜品对象Food food = new Food();// 创建扫描器(录入商品信息)Scanner scanner = new Scanner(System.in);// 录入商品名System.out.println("请输入商品名称:");String nextName = scanner.next();food.setName(nextName);// 录入商品价格System.out.println("请输入商品价格:");double i = scanner.nextDouble();food.setPrice(i);// 录入商品描述System.out.println("请输入商品描述:");String sc = scanner.next();food.setDesc(sc);// 将商品信息存入ArrayList集合内foodList.add(food);System.out.println("录入商品信息成功");}// 展示菜品public void showAllFood(){// 从集合中将所有商品遍历出来(foodList.fori快捷键)for (int i = 0; i < foodList.size(); i++) {// 获取当前商品信息Food food = foodList.get(i);// 展示当前信息的内容(商品名,价格,描述)System.out.println("商品为:"+food.getName()+"; 价格为: "+food.getPrice()+"; 描述为: "+food.getDesc());}}// 负责展示操作界面public void start(){System.out.println("请选择操作内容:1.上架菜品,2.展示菜品,3.退出操作界面");while (true){Scanner scanner = new Scanner(System.in);System.out.println("请选择你的操作: ");String i = scanner.next();switch (i){case "1":addFood();break;case "2":showAllFood();break;case "3":System.out.println("已退出系统!");return;default:System.out.println("你输入的命令不存在");}}}
}
main.java内容如下,进行代码测试(温馨提示,这个main.java和上面两个要放在同一个包下,否则自行记得导包操作)
package org.example;public class Main {public static void main(String[] args) {FoodOperator foodOperator = new FoodOperator();// 展示操作界面foodOperator.start();}
}
2.ATM项目
新建Account.java,放入以下代码
package org.example.atm;
// 账户类
public class Account {private String cardId; // 卡号private String userName; // 姓名private char sex; // 性别private String passWord; // 密码private double money; // 余额private double limit; // 限额public Account() {}public Account(String cardId, String userName, char sex, String passWord, double money, double limit) {this.cardId = cardId;this.userName = userName;this.sex = sex;this.passWord = passWord;this.money = money;this.limit = limit;}/*** 获取* @return cardId*/public String getCardId() {return cardId;}/*** 设置* @param cardId*/public void setCardId(String cardId) {this.cardId = cardId;}/*** 获取* @return userName*/public String getUserName() {return userName;}/*** 设置* @param userName*/public void setUserName(String userName) {this.userName = userName;}/*** 获取* @return sex*/public String getSex() {return sex=='男'?"先生":"女士";}/*** 设置* @param sex*/public void setSex(char sex) {this.sex = sex;}/*** 获取* @return passWord*/public String getPassWord() {return passWord;}/*** 设置* @param passWord*/public void setPassWord(String passWord) {this.passWord = passWord;}/*** 获取* @return money*/public double getMoney() {return money;}/*** 设置* @param money*/public void setMoney(double money) {this.money = money;}/*** 获取* @return limit*/public double getLimit() {return limit;}/*** 设置* @param limit*/public void setLimit(double limit) {this.limit = limit;}public String toString() {return "Account{cardId = " + cardId + ", userName = " + userName + ", sex = " + sex + ", passWord = " + passWord + ", money = " + money + ", limit = " + limit + "}";}
}
新建ATM.java放入以下代码
package org.example.atm;import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;// 账户操作类
public class ATM {private ArrayList<Account> accounts = new ArrayList<>();private Scanner sc = new Scanner(System.in); // 扫描器private Account loginAcc; // 记住登陆成功后的账户// 启动欢迎页面public void start() {while (true) {System.out.println("==欢迎进入ATM系统==");System.out.println("1.用户登录,2.用户开户,3.退出系统");System.out.println("请选择: ");int command = sc.nextInt();switch (command) {case 1://用户登录login();break;case 2:// 用户开户createAccount();break;case 3:// 退出系统System.out.println("您退出了系统");return;default:System.out.println("你输入的命令有误");}}}// 登录功能实现private void login() {System.out.println("======系统登录======");// 判断系统中是否有账户,没有账户赢直接结束登录操作if (accounts.size() == 0) {System.out.println("系统中暂无账户,请先开户");return;}while (true) {// 系统存在账号,可以登录System.out.println("请输入你的卡号");String cardId = sc.next();// 3. 根据cardId找到当前账户Account acc = getAccountByCardId(cardId);if (acc == null) {System.out.println("查无此账户");} else {while (true) {// 4. 查到账号后System.out.println("请输入登录密码");String password = sc.next();if (acc.getPassWord().equals(password)) {// 密码正确,登录成功this.loginAcc = acc;System.out.println("恭喜" + acc.getUserName() + "登陆成功,您的卡号为: " + acc.getCardId());showUserCommand();return;} else {System.out.println("您输入的密码有误,请重新输入");}}}}}// 登陆成功后展示的功能private void showUserCommand() {System.out.println(loginAcc.getUserName() + "您可以选择如下功能进行账户的处理");while (true) {System.out.println("1.查询,2.存款,3.取款,4.转账,5.密码修改,6.退出,7.注销当前账户");int command = sc.nextInt();switch (command) {case 1:// 查询当前账户showLoginAccount();break;case 2:// 存款depositMoney();break;case 3:// 取款drawMoney();break;case 4:// 转账transferMoney();break;case 5:// 修改密码updatePassword();return;case 6:// 退出System.out.println(loginAcc.getUserName() + "您退出系统成功");return; // 跳出并结束当前循环case 7:// 注销当前账户if (deleteAccount()) {return;}break;default:System.out.println("您输入的命令有误,请重新输入");}}}//密码修改private void updatePassword() {System.out.println("===账户密码修改操作===");while (true) {// 认证当前密码System.out.println("请输入当前账户密码");String password = sc.next();// 验证当前密码是否正确if(loginAcc.getPassWord().equals(password)){while (true) {// 认证通过System.out.println("请输入新密码");String newpassword = sc.next();System.out.println("再次输入确认新密码");String againNewpassword = sc.next();if(newpassword.equals(againNewpassword)){// 密码修改成功loginAcc.setPassWord(againNewpassword);System.out.println("密码修改成功");return;}else{System.out.println("两者密码不一致,请重新输入");}}}else{System.out.println("输入当前密码有误");}}}// 账户注销private boolean deleteAccount() {System.out.println("===用户销户===");// 询问用户while (true) {System.out.println("请问你确认销户吗?y/n");String command = sc.next();switch (command) {case "y":// 确认销户// 判断账户是否有钱if (loginAcc.getMoney() == 0) {// 执行销户accounts.remove(loginAcc);System.out.println("销户成功");return true;} else {System.out.println("账户存在余额,不允许销户");return false;}default:// 这里默认输入除了y以外的都是保留System.out.println("好的,账户保留");return false;}}}// 用户转账模块private void transferMoney() {System.out.println("===用户转账===");// 判断系统中是否有其他账户if (accounts.size() < 2) {System.out.println("当前账户中只有一个账户,无法发起转账");return;}// 判断自己账户是否有钱if (loginAcc.getMoney() == 0) {System.out.println("余额为0,无法转账");return;}// 开始执行转账逻辑while (true) {System.out.println("==请输入对方卡号==");String cardId = sc.next();// 判断卡号是否正确Account acc = getAccountByCardId(cardId);if (acc == null) {System.out.println("您输入的卡号不存在");} else {// 对方账户存在,让用户认证姓氏while (true) {String name = "*" + acc.getUserName().substring(1);System.out.println("请您输入" + name + "姓氏");String preName = sc.next();// 判断姓氏是否正确if (acc.getUserName().startsWith(preName)) {while (true) {// 认证通过了,真正转账了System.out.println("请输入给对方转账的金额");double money = sc.nextDouble();// 判断金额是否超过余额if (loginAcc.getMoney() >= money) {// 转给对方了// 更新自己的账户余额loginAcc.setMoney(loginAcc.getMoney() - money);// 更新对方账户余额acc.setMoney(acc.getMoney() + money);System.out.println("转账成功,余额为: " + loginAcc.getMoney());// 退出转账return;} else {System.out.println("余额不足,转账失败,最多可转" + loginAcc.getMoney());}}}}}}}// 取款功能实现private void drawMoney() {System.out.println("===取款操作===");if (loginAcc.getMoney() < 100) {System.out.println("您的账户余额不足100元,不允许取钱");return;}System.out.println("请输入取款金额");double money = sc.nextDouble();// 判断用户取钱金额是否超过余额if (loginAcc.getMoney() >= money) {// 余额足够// 判断当前取款金额是否超过每日限额if (money > loginAcc.getLimit()) {System.out.println("您当前的取款超出了每次限额,您每次最多可以取: " + loginAcc.getLimit());} else {loginAcc.setMoney(loginAcc.getMoney() - money);System.out.println("取款" + money + "成功,取款后剩余" + loginAcc.getMoney() + "元");}} else {System.out.println("余额不足,您的账户余额为" + loginAcc.getMoney());}}// 展示当前登录的账户信息private void showLoginAccount() {System.out.println("卡号" + loginAcc.getCardId());System.out.println("户主" + loginAcc.getUserName());System.out.println("性别" + loginAcc.getSex());System.out.println("余额" + loginAcc.getMoney());System.out.println("每次取现额度" + loginAcc.getLimit());}// 存款功能的实现private void depositMoney() {System.out.println("====存款操作====");System.out.println("请输入存款金额");double money = sc.nextDouble();loginAcc.setMoney(loginAcc.getMoney() + money);System.out.println("恭喜您,您存钱 " + money + "成功,存钱后余额为: " + loginAcc.getMoney());}// 开户功能实现(当前类调用的方法建议私有化,需要暴漏出去的公有方法建议public)private void createAccount() {System.out.println("=======系统开户操作=======");// 1.创建账户对象Account acc = new Account();//2. 用户输入账户信息System.out.println("请输入你的账户名称");String name = sc.next();acc.setUserName(name);while (true) {System.out.println("请输入你的性别");char sex = sc.next().charAt(0); // 将字符串第一个字取出来,检查性别if (sex == '男' || sex == '女') {acc.setSex(sex);break;} else {System.out.println("您输入的性别有误,请重新输入");}}while (true) {System.out.println("请输入你的账户密码");String password = sc.next();System.out.println("请确认你的账户密码");String okPassword = sc.next();if (password.equals(okPassword)) {acc.setPassWord(okPassword);break;} else {System.out.println("你输入的2次密码不一致,请重新输入");}}System.out.println("请输入您的取现额度");double limit = sc.nextDouble();acc.setLimit(limit);// 生成卡号String newCardId = createCardId();acc.setCardId(newCardId);//3.将账户存入到集合中accounts.add(acc);System.out.println("恭喜" + acc.getUserName() + acc.getSex() + "开户成功, 您的卡号为: " + newCardId);}// 生成卡号,8位数字,并且不与其他账号的卡号重复private String createCardId() {while (true) {// 1.定义一个String类型的变量String cardId = "";// 使用循环,每次产生一个随机数字给cardId连接起来Random r = new Random();for (int i = 0; i < 8; i++) {int data = r.nextInt(10); // 0-9cardId += data;}// 3.判断cardId中记住的卡号是否与其他账户的卡号重复了,没有重复,才可以作为一个新卡号返回Account acc = getAccountByCardId(cardId);if (acc == null) {// 代表没有重复卡号,可以返回卡号return cardId;}}}// 根据卡号查询账户对象返回private Account getAccountByCardId(String cardId) {for (int i = 0; i < accounts.size(); i++) {Account account = accounts.get(i);// 判断这个账户对象的卡号是否是我们要找的卡号if (account.getCardId().equals(cardId)) {return account; // 查到了}}return null; // 查无此账户}
}
新建Test.java放入以下代码
package org.example.atm;// 测试类
public class Test {public static void main(String[] args) {ATM atm = new ATM();// 启动欢迎页面atm.start();}
}
上面的java文件都是放到同一个包下面
相关文章:
JAVA基础两个项目案例代码
1.JAVA使用ArrayList上架菜品案例 视频参考链接 创建一个Food.java类 package org.example;// 菜品类 public class Food {private String name; // 菜品名private double price; // 价格private String desc; // 菜品描述public Food() {}public Food(String name, Double …...
asp.net core 网页接入微信扫码登录
创建微信开放平台账号,然后创建网页应用 获取appid和appsecret 前端使用的vue,安装插件vue-wxlogin 调用代码 <wxlogin :appid"appId" :scope"scope" :redirect_uri"redirect_uri"></wxlogin> <scri…...
【板栗糖GIS】如何给微软拼音输入法加上小鹤双拼
【板栗糖GIS】如何给微软拼音输入法加上小鹤双拼 用过在注册表里新建的方法,结果弄完没有出现小鹤双拼方案,想到了自己写reg表 目录 1. 新建一个txt文件 2. 把.txt的后缀名改成.reg,双击运行 3. 在设置中找到微软输入法-常规 1. 新建一个…...
如何解决微信小程序无法使用css3过度属性transition
由于微信小程序不支持CSS3过度属性transition,所以我们需要利用微信小程序api进行画面过度的展示 首先是官方示例: wxml: <view animation="{{animationData}}" style="background:red;height:100rpx;width:100rpx"></view> js: Page(…...
【软件设计师知识点】九、网络与信息安全基础知识
文章目录 计算机网络的概念网络分类网络拓扑结构网络体系结构ISO/OSI 7层参考模型TCP/IP 4层模型TCP/IP 协议族应用层协议传输层协议网络层协议IP 地址IPV4 数据报IP 地址分类子网划分子网掩码IPv6地址...
广东省道路货物运输资格证照片回执可手机线上办理
广东省道路运输资格证是从事道路运输业务、危险品道路运输人员的必要证件,而在办理该证件的过程中,驾驶员照片回执是一项必不可少的材料。随着科技的发展和移动互联网的普及,现在办理驾驶员照片回执已经不再需要亲自前往照相馆,而…...
【微信小程序——案例——本地生活(列表页面)】
案例——本地生活(列表页面) 九宫格中实现导航跳转——以汽车服务为案例(之后可以全部实现页面跳转——现在先实现一个) 在app.json中添加新页面 修改之前的九宫格view改为navitage 效果图: 动态设置标题内容—…...
【设计模式】SOLID设计原则
1、什么是SOLID设计原则 SOLID 是面向对象设计中的五个基本设计原则的首字母缩写,它们是: 单一职责原则(Single Responsibility Principle,SRP): 类应该只有一个单一的职责,即一个类应该有且只…...
基于java+springboot+vue实现的智能停车计费系统(文末源码+Lw+ppt)23-30
摘 要 随着人们生活水平的高速发展,智能停车计费信息管理方面在近年来呈直线上升,人们也了解到智能停车计费的实用性,因此智能停车计费的管理也逐年递增,智能停车计费信息的增加加大了在管理上的工作难度。为了能更好的维护智能…...
IntelliJ IDEA 2022.3.2 解决decompiled.class file bytecode version:52.0(java 8)
1 背景 使用idea 打开一个Kotlin语言编写的demo项目,该项目使用gradle构建。其gradle文件如下: plugins {id javaid org.jetbrains.kotlin.jvm version 1.8.20 } group me.administrator version 1.0-SNAPSHOTrepositories {mavenCentral()jcenter()…...
C++11 设计模式1. 模板方法(Template Method)模式学习。UML图
一 什么是 "模板方法(Template Method)模式" 在固定步骤确定的情况下,通过多态机制在多个子类中对每个步骤的细节进行差异化实现,这就是模板方法模式能够达到的效果。 模板方法模式属于:行为型模式。 二 &…...
HarmonyOS实战开发-自定义分享
介绍 自定义分享主要是发送方将文本,链接,图片三种类型分享给三方应用,同时能够在三方应用中展示。本示例使用数据请求 实现网络资源的获取,使用屏幕截屏 实现屏幕的截取,使用文件管理 实现对文件,文件目录的管理&…...
Spring源码刨析之配置文件的解析和bean的创建以及生命周期
public void test1(){XmlBeanFactory xmlBeanFactory new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));user u xmlBeanFactory.getBean("user",org.xhpcd.user.class);// System.out.println(u.getStu());}先介绍一个类XmlBeanFac…...
如何使用 Grafana 监控文件系统状态
当 JuiceFS 文件系统部署完成并投入生产环境,接下来就需要着手解决一个非常重要的问题 —— 如何实时监控它的运行状态?毕竟,它可能正在为关键的业务应用或容器工作负载提供持久化存储支持,任何小小的故障或性能下降都可能造成不利…...
智能革命:未来人工智能创业的天地
智能革命:未来人工智能创业的天地 一、引言 在这个数字化迅速变革的时代,人工智能(AI)已经从一个边缘科学发展成为推动未来经济和社会发展的关键动力。这一技术领域的飞速进步,不仅影响着科技行业的每一个角落,更是为创业者提供了…...
4月14日总结
java学习 一.多线程 简介:多线程是计算机科学中的一个重要概念,它允许程序同时执行多个任务或操作。在单个程序内部,多线程使得代码可以并行执行,从而提高程序的性能和响应速度。 这里先来介绍一下创建多线程的几种方法。 1.扩展…...
kafka---broker相关配置
一、Broker 相关配置 1、一般配置 broker.id 当前kafka服务的sid(server id),在kafka集群中,该值是唯一的(unique),如果未设置此值,kafka会自动生成一个int值;为了防止自动生成的值与用户设置…...
【Golang学习笔记】从零开始搭建一个Web框架(二)
文章目录 模块化路由前缀树路由 前情提示: 【Golang学习笔记】从零开始搭建一个Web框架(一)-CSDN博客 模块化路由 路由在kilon.go文件中导致路由和引擎交织在一起,如果要实现路由功能的拓展增强,那将会非常麻烦&…...
高精度地图导航论文汇总
文章目录 2021基于车载激光点云的高精地图矢量化成图[J] 2022基于高精度地图的智能车辆路径规划与跟踪控制研究[M] 2023一种无人驾驶融合决策方案的设计与实现[M] 2021 基于车载激光点云的高精地图矢量化成图[J] 摘要: 针对车载激光点云中对各特征物提取结果后矢量…...
【域适应】基于域分离网络的MNIST数据10分类典型方法实现
关于 大规模数据收集和注释的成本通常使得将机器学习算法应用于新任务或数据集变得异常昂贵。规避这一成本的一种方法是在合成数据上训练模型,其中自动提供注释。尽管它们很有吸引力,但此类模型通常无法从合成图像推广到真实图像,因此需要域…...
从零实现诗词GPT大模型:pytorch框架介绍
专栏规划: https://qibin.blog.csdn.net/article/details/137728228 因为咱们本系列文章主要基于深度学习框架pytorch进行,所以在正式开始之前,现对pytorch框架进行一个简单的介绍,主要面对深度学习或者pytorch还不熟悉的朋友。 一、安装pytorch 这一步很简单,主要通过p…...
[目标检测] OCR: 文字检测、文字识别、text spotter
概述 OCR技术存在两个步骤:文字检测和文字识别,而end-to-end完成这两个步骤的方法就是text spotter。 文字检测数据集摘要 daaset语言体量特色MTWI中英文20k源于网络图像,主要由合成图像,产品描述,网络广告(淘宝)MS…...
Windows环境下删除MySQL
文章目录 一、关闭MySQL服务1、winR打开运行,输入services.msc回车2、服务里找到MySQL并停止 二、卸载MySQL软件1、打开控制模板--卸载程序--卸载MySQL相关的所有组件 三、删除MySQL在物理硬盘上的所有文件1、删除MySQL的安装目录(默认在C盘下的Program …...
uniapp:uview-plus的一些记录
customStyle 并不是所有的组件都有customStyle属性来设置自定义属性,有的还是需要通过::v-deep来修改内置样式 form表单 labelStyle 需要的是一个对象 :labelStyle"{color: #333333,fontSize: 32rpx,fontWeight: 500}"dateTimePicker选择器设置默认值…...
OLTP 与 OLAP 系统说明对比和大数据经典架构 Lambda 和 Kappa 说明对比——解读大数据架构(五)
文章目录 前言OLTP 和 OLAPSMP 和 MPPlambda 架构Kappa 架构 前言 本文我们将研究不同类型的大数据架构设计,将讨论 OLTP 和 OLAP 的系统设计,以及有效处理数据的策略包括 SMP 和 MPP 等概念。然后我们将了解经典的 Lambda 架构和 Kappa 架构。 OLTP …...
步骤大全:网站建设3个基本流程详解
一.领取一个免费域名和SSL证书,和CDN 1.打开网站链接:https://www.rainyun.com/z22_ 2.在网站主页上,您会看到一个"登陆/注册"的选项。 3.点击"登陆/注册",然后选择"微信登录"选项。 4.使用您的…...
利用Sentinel解决雪崩问题(二)隔离和降级
前言: 虽然限流可以尽量避免因高并发而引起的服务故障,但服务还会因为其它原因而故障。而要将这些故障控制在一定范围避免雪崩,就要靠线程隔离(舱壁模式)和熔断降级手段了,不管是线程隔离还是熔断降级,都是对客户端(调…...
基于springboot的房产销售系统源码数据库
基于springboot的房产销售系统源码数据库 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于房产销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了房产…...
【MATLAB】基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据(附代码)
基于Wi-Fi指纹匹配的室内定位-仿真获取WiFi RSSI数据 WiFi指纹匹配是室内定位最为基础和常见的研究,但是WiFi指纹的采集可以称得上是labor-intensive和time-consuming。现在,给大家分享一下我们课题组之前在做WiFi指纹定位时的基于射线跟踪技术仿真WiFi…...
深圳晶彩智能ESP32-3248S035R使用LovyanGFX实现手写板
深圳晶彩智能ESP32-3248S035R介绍 深圳晶彩智能出品ESP32-3248S035R为3.5寸彩色屏采用分辨率480x320彩色液晶屏,驱动芯片是ST7796。板载乐鑫公司出品ESP-WROOM-32,Flash 4M。型号尾部“R”标识电阻膜的感压式触摸屏,驱动芯片是XPT2046。 Lo…...
wordpress的开发者/自己建网站要多少钱
一.为什么学习节点操作 获取元素通常使用两种方式: 1.利用DOM提供的方法获取元素 document.getElementByld()document.getElementsByTagName()document.querySelector等逻辑性不强、繁琐 2.利用节点层级关系获取元素 利用父子兄节点关系获…...
网站建设 千佳网络/阿里云域名查询和注册
题目链接 AtCoder:https://agc010.contest.atcoder.jp/tasks/agc010_c 洛谷:https://www.luogu.org/problemnew/show/AT2304 Solution 窝yy了好久的dpQAQ 标算很巧妙:我们考虑算每条边被经过了多少次,这里把一个叶子节点到另一个叶…...
网站如何做双语言/网站在线生成app
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。…...
wp网站怎么用插件做html网页/济南优化网站关键词
直接把下面代码复制到你要填写的url地址 <?php //定义常量token define(TOKEN,weixin); //检查标签function checkSignature(){//先获取到这三个参数$signature $_GET[signature]; $nonce $_GET[nonce]; $timestamp $_GET[timestamp]; //把这三个参数存到一个数组里面…...
岱岳区建设信息网站/外贸网站建站平台
A1 网友年龄 某君新认识一网友。当问及年龄时,他的网友说:“我的年龄是个2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” 请你计算:网友的年龄一共有多少种可能情况&…...
b2b免费发布信息网站/如何免费自己创建网站
随着互联网的深入发展,前端开发工程师已成为市场上极具竞争力的人才。许多学生,包括以前的UI,java,或完全零基础,想学习的前端。那么话不多说,直接上干货,希望能帮助到大家。 前端开发受欢迎程度…...