适合新手练习的 java 小项目

article/2025/10/12 9:26:01

适合新手练习的 java 小项目

智能电话本

视频连接在下方↓ 包括源码也在下面

不要问我为什么推荐这个,因为我也只是一个新手,这个项目是纯命令行的,
不需要数据库和网页编程知识,做起来很简单,可以帮助新手巩固基础知识。

下面是运行截图


在这里插入图片描述

在这里插入图片描述

智能电话本视频链接 点这里☜

下面是我自己照着视频写的代码,先不要复制,搞清楚关系在复制,不然会报错!!!

******* App类 *******

package com.bjsxt;/**电话本项目入口类*/
public class App {/**启动电话本项目**/public static void main(String[] args) {App app = new App();app.start();}/**控制主菜单*/public void start(){Menu menu = new Menu();TelNoteRegex regex = new TelNoteRegex();Operate operate = new Operate();while (true){menu.mainMenu();int item = regex.menuItemValidate(1,6);switch (item){case 1: operate.addLogic();break;case 2:operate.searchLogic();break;case 3:operate.modifyLogic();break;case 4:operate.deleteLogic();break;case 5:operate.orderLogic();break;case 6:System.exit(0);}}}
}

******* Menu 类 *******

package com.bjsxt;/*
*生成项目中的所有菜单*/
public class Menu {//主界面public void mainMenu(){System.out.println("**************************");System.out.println("**      1 添加记录       **");System.out.println("**      2 查找记录       **");System.out.println("**      3 修改记录       **");System.out.println("**      4 删除记录       **");System.out.println("**      5 排序记录       **");System.out.println("**      6 退出系统       **");System.out.println("**************************");}//添加记录public void addMenu(){System.out.println("**************************");System.out.println("**      1 添加记录       **");System.out.println("**      2 查看记录       **");System.out.println("**      3 返回       **");System.out.println("**************************");}//查找界面public void searchMenu(){System.out.println("**************************");System.out.println("**      1 按姓名查找       **");System.out.println("**      2 按年龄查找       **");System.out.println("**      3 按性别查找       **");System.out.println("**      4 按号码查找       **");System.out.println("**      5 按住址查找       **");System.out.println("**      6 查看记录         **");System.out.println("**      7 返回            **");System.out.println("**************************");}//修改界面public void modifyMenu(){System.out.println("**************************");System.out.println("**      1 查看记录       **");System.out.println("**      2 修改指定记录    **");System.out.println("**      3 返回          **");System.out.println("**************************");}//修改子界面public void subModifyMenu(){System.out.println("**************************");System.out.println("**      1 修改姓名       **");System.out.println("**      2 修改年龄       **");System.out.println("**      3 修改性别       **");System.out.println("**      4 修改号码       **");System.out.println("**      5 修改住址       **");System.out.println("**      6 返回          **");System.out.println("**************************");}//删除界面public void deleteMenu(){System.out.println("**************************");System.out.println("**      1 查看记录       **");System.out.println("**      2 删除指定记录    **");System.out.println("**      3 删除全部记录    **");System.out.println("**      4 返回          **");System.out.println("**************************");}public void orderMenu(){System.out.println("**************************");System.out.println("**      1 按姓名排序     **");System.out.println("**      2 按年龄排序     **");System.out.println("**      3 按性别排序     **");System.out.println("**      4 查看记录       **");System.out.println("**      5 返回          **");System.out.println("**************************");}
}

******* Operate类 *******

package com.bjsxt;import java.util.*;/**核心业务类*/
public class Operate {private final List<Person> list;public Operate(){this.list = new ArrayList<>();}/***/public void addLogic(){Menu menu = new Menu();TelNoteRegex telNoteRegex = new TelNoteRegex();while (true){menu.addMenu();int item = telNoteRegex.menuItemValidate(1,3);switch (item){case 1: this.addOperation();break;case 2: this.showAll();break;case 3:return;}}}/***/public void searchLogic(){Menu menu = new Menu();TelNoteRegex telNoteRegex = new TelNoteRegex();while (true){menu.searchMenu();int item = telNoteRegex.menuItemValidate(1,7);switch (item){case 1: this.searchByName();break;case 2: this.searchByAge();break;case 3: this.searchBySex();break;case 4: this.searchByTelNum();break;case 5: this.searchByAdd();break;case 6: this.showAll();break;case 7: return;}}}/***/public void modifyLogic(){Menu menu = new Menu();TelNoteRegex telNoteRegex = new TelNoteRegex();while (true){menu.modifyMenu();int item = telNoteRegex.menuItemValidate(1,3);switch (item){case 1: this.showAll();break;case 2: this.modifyOperation();break;case 3: return;}}}/***/public void deleteLogic(){Menu menu = new Menu();TelNoteRegex telNoteRegex = new TelNoteRegex();while (true){menu.deleteMenu();int item = telNoteRegex.menuItemValidate(1,4);switch (item){case 1: this.showAll();break;case 2: this.deleteOperation();break;case 3: this.deleteALlOperation();break;case 4: return;}}}/***/public void orderLogic(){Menu menu = new Menu();TelNoteRegex telNoteRegex = new TelNoteRegex();while (true){menu.orderMenu();int item = telNoteRegex.menuItemValidate(1,5);switch (item){case 1: this.orderName();break;case 2: this.orderAge();break;case 3: this.orderSex();break;case 4: this.showAll();break;case 5: return;}}}/***/public void addOperation(){TelNoteRegex telNoteRegex = new TelNoteRegex();String name = telNoteRegex.nameValidate();String age = telNoteRegex.ageValidate();String sex = telNoteRegex.sexValidate();String telNum = telNoteRegex.telNumValidate();String address = telNoteRegex.addressValidate();Person person = new Person(name,age,sex,telNum,address);this.list.add(person);person.setId(this.list.size());}/***/public void showAll(){for (int i = 0; i < this.list.size(); i++) {System.out.println(this.list.get(i));}}/***/public void searchByName(){TelNoteRegex telNoteRegex = new TelNoteRegex();String name = telNoteRegex.nameValidate();boolean flag = true;for (int i = 0; i < this.list.size(); i++) {if (name.equals(this.list.get(i).getName())){System.out.println(this.list.get(i));flag = false;}}if (flag){System.out.println("没有此人记录");}}/**/public void searchByAge(){TelNoteRegex telNoteRegex = new TelNoteRegex();String age = telNoteRegex.ageValidate();boolean flag = true;for (int i = 0; i < this.list.size(); i++) {if (age.equals(this.list.get(i).getAge())){System.out.println(this.list.get(i));flag = false;}}if (flag){System.out.println("没有此人记录");}}/**/public void searchBySex(){TelNoteRegex telNoteRegex = new TelNoteRegex();String sex = telNoteRegex.sexValidate();boolean flag = true;for (int i = 0; i < this.list.size(); i++) {if (sex.equals(this.list.get(i).getSex())){System.out.println(this.list.get(i));flag = false;}}if (flag){System.out.println("没有此人记录");}}/**/public void searchByTelNum(){TelNoteRegex telNoteRegex = new TelNoteRegex();String TelNum = telNoteRegex.telNumValidate();boolean flag = true;for (int i = 0; i < this.list.size(); i++) {if (TelNum.equals(this.list.get(i).getTelNum())){System.out.println(this.list.get(i));flag = false;}}if (flag){System.out.println("没有此人记录");}}/**/public void searchByAdd(){TelNoteRegex telNoteRegex = new TelNoteRegex();String Address = telNoteRegex.addressValidate();boolean flag = true;for (int i = 0; i < this.list.size(); i++) {if (Address.equals(this.list.get(i).getAddress())){System.out.println(this.list.get(i));flag = false;}}if (flag){System.out.println("没有此人记录");}}/**/public void modifyOperation(){TelNoteRegex telNoteRegex = new TelNoteRegex();Menu menu = new Menu();//对被修改的记录的序号进行验证System.out.println("请输入记录的序号:");int item = telNoteRegex.menuItemValidate(1,this.list.size());menu.subModifyMenu();int menuItem = telNoteRegex.menuItemValidate(1,6);switch(menuItem){case 1: String name = telNoteRegex.nameValidate();(this.list.get(item - 1)).setName(name);break;case 2: String age = telNoteRegex.ageValidate();(this.list.get(item - 1)).setAge(age);break;case 3: String sex = telNoteRegex.sexValidate();(this.list.get(item - 1)).setSex(sex);break;case 4: String telNum = telNoteRegex.telNumValidate();(this.list.get(item - 1)).setTelNum(telNum);break;case 5: String address = telNoteRegex.addressValidate();(this.list.get(item - 1)).setAddress(address);break;case 6: return;}}/**/public void deleteOperation(){Scanner scanner = new Scanner(System.in);boolean flag = true;while(flag){boolean flag2 = true;System.out.println("请输入序号:");String item = scanner.nextLine();try{Integer haoma = Integer.parseInt(item);int xuhao = haoma;while(flag2){if(xuhao > 0 && xuhao<=this.list.size()){list.remove((xuhao-1));System.out.println("成功删除序号为"+xuhao+"的用户");flag = false;flag2 = false;}else {System.out.println("输入的序号不正确!");flag2 = false;}}for(int i = 0; i < this.list.size(); i++){(this.list.get(i)).setId(i + 1);}}catch(NumberFormatException e){System.out.println(e.getLocalizedMessage());System.out.println("您输入的数字格式不正确,或者不是数字");}}}/**/public void deleteALlOperation(){list.removeAll(list);System.out.println("已删除全部记录。");}/**/public void orderName(){Collections.sort(this.list,new OrderByName());for(int i = 0; i < this.list.size(); i++){(this.list.get(i)).setId(i + 1);}for(Person l : list){System.out.println(l);}}/**/public void orderAge(){Collections.sort(this.list,new OrderByAge());for(int i = 0; i < this.list.size(); i++){(this.list.get(i)).setAge(String.valueOf(i + 1));}for(Person l : list){System.out.println(l);}}/**/public void orderSex(){Collections.sort(this.list,new OrderBySex());for(int i = 0; i < this.list.size(); i++){(this.list.get(i)).setSex(String.valueOf(i + 1));}for(Person l : list){System.out.println(l);}}/**/class OrderByName implements Comparator<Person>{@Overridepublic int compare(Person o1, Person o2) {return o1.getName().compareTo(o2.getName());}}/**/class OrderByAge implements Comparator<Person>{@Overridepublic int compare(Person o1, Person o2) {return o1.getAge().compareTo(o2.getAge());}}/**/class OrderBySex implements Comparator<Person>{@Overridepublic int compare(Person o1, Person o2) {return o1.getSex().compareTo(o2.getSex());}}
}

******* Person类 *******

package com.bjsxt;/*** 实体类*/
public class Person {private int id;private String name;private String age;private String sex;private String telNum;private String address;public Person(){}public Person(String name, String age, String sex, String telNum, String address){this.name = name;this.age = age;this.sex = sex;this.telNum = telNum;this.address = address;}public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getAge(){return age;}public void setAge(String age){this.age = age;}public String getSex(){return sex;}public void setSex(String sex){this.sex = sex;}public String getTelNum(){return telNum;}public void setTelNum(String telNum){this.telNum = telNum;}public String getAddress(){return address;}public void setAddress(String address){this.address = address;}@Overridepublic String toString(){StringBuffer sb = new StringBuffer();sb.append("序号").append(this.id).append("#").append("\t");sb.append("姓名").append(this.name).append("\t\t");sb.append("年龄").append(this.age).append("\t\t");sb.append("性别").append(this.sex).append("\t\t");sb.append("电话号码").append(this.telNum).append("\t\t");sb.append("住址").append(this.address);return sb.toString();}
}

******* TelNoteRegex类 *******

package com.bjsxt;import java.util.Scanner;/**1. 数据校验类*/
public class TelNoteRegex {/**** @param min* @param max* @return*/public int menuItemValidate(int min,int max){//定义验证菜单项的正则表达式String regex = "[1-9]";//创建键盘输入对象Scanner scanner = new Scanner(System.in);while (true){System.out.println("请输入正确数字,最小是:"+min+"\t"+"最大是:"+max);String input = scanner.nextLine();if (input.matches(regex)){int inputNum = Integer.parseInt(input);if (inputNum >= min && inputNum <= max){return inputNum;}else {System.out.println("您输入的菜单项不符,请重新输入! ! !");}}else {System.out.println("输入数字错误,请检查! ! !");}}}/**** @return*/public String nameValidate(){//验证姓名的正则表达式String regex = "[a-zA-Z]{1,10}";//创建Scanner对象Scanner scanner = new Scanner(System.in);while (true){System.out.println("请输入姓名,格式为:大写或小写之间的字母");String input = scanner.nextLine();if (input.matches(regex)){return input;}else {System.out.println("您当前输入的姓名有误,请重新输入! ! !");}}}/**** @return*/public String ageValidate(){//对年龄验证的正则表达式String regex = "[1-9][0-9]";//创建Scanner对象Scanner scanner = new Scanner(System.in);while (true){System.out.println("请输入年龄,格式为:10-99之间");String input = scanner.nextLine();if (input.matches(regex)){return input;}else {System.out.println("您输入的年龄格式有误,请重新输入! ! !");}}}/***** @return*/public String sexValidate(){//对性别验证的正则表达式String regex ="[mMfF]";//创建Scanner对象Scanner scanner = new Scanner(System.in);while (true){System.out.println("输入性别: (男 m or M) (女 f or F)");String input = scanner.nextLine();if (input.matches(regex)){return input;}else {System.out.println("输入性别格式有误,请重新输入! ! !");}}}/***** @return*/public String telNumValidate(){//对电话号码验证的正则表达式String regex = "(\\d{3,4}-\\d{7,8})|(\\d{6,11})";//创建Scanner对象Scanner scanner = new Scanner(System.in);while (true){System.out.println("请输入电话号码: 可以是座机号或者是手机号");String input = scanner.nextLine();if(input.matches(regex)){return input;}else {System.out.println("您输入的电话号码有误,请重新输入! ! !");}}}/***** @return*/public String addressValidate(){//对地址验证的正则表达式String regex = "\\w{1,50}";//创建Scanner对象Scanner scanner = new Scanner(System.in);while (true){System.out.println("请输入地址: 格式为字母或数字,长度为1-50");String input = scanner.nextLine();if(input.matches(regex)){return input;}else {System.out.println("您输入的地址格式有误,请重新输入! ! !");}}}public static void main(String[] args) {TelNoteRegex regex = new TelNoteRegex();
//        String name = regex.nameValidate();String age = regex.ageValidate();System.out.println(age);}
}

以上就是视频和代码了,看完了要记得点个关注再走哟🌹。


http://chatgpt.dhexx.cn/article/VPKvCBQZ.shtml

相关文章

JavaWeb新手小项目以及源码

此项目主要实现的功能有&#xff1a; jsp连接数据库、MD5加密、验证码验证、Ajax、文件的上传与下载、session登录验证等。 先来几张截图&#xff1a; 一、首先写登录页面 login.jsp <% page language"java" import"java.util.*" pageEncoding&qu…

java小项目水果摊

介绍 刚学完java 集合和IO流&#xff0c;想做了一个简单的小项目来练手&#xff0c;于是我就运用一些基础知识做了这个水果摊。水果摊的主要功能有&#xff1a; 进货查看水果列表购买水果查看购物车结账退出 都是一些简单的功能&#xff0c;下面就来展示代码&#xff1b; …

Java个人Web小项目

JavaWeb-HTML实列开发 目录源代码链接部分效果图 目录 #1.用户列表开发 新建一个Maven项目 创建包&#xff1a;com.iflytek 在项目中 在com.iflytek.controller中新建一个类为控制器类&#xff1a;(本网址为/UserController.java) UserController.java package com.iflytek…

Java小项目(一)---超市管理系统

超市管理系统 一、使用技术二、实现功能三、运行效果图3.1 货物清单3.2 增加货物3.3 删除货物3.4 修改货物3.5 退出 四、实现的代码4.1 Good商品货物类4.2 ShoppingSystem超市管理系统测试类 一、使用技术 Java SE 二、实现功能 使用选择结构&#xff0c;循环结构&#xff0…

Java小项目另一个水果摊

文章目录 前言一、包和表截图二、源代码1.JDBC连接Mysql数据管理员界面&#xff1a;增删查改用户界面 &#xff1a;查找水果建立断开连接 2.GUI窗口界面开始选择界面用户购买水果界面管理员登录界面管理员界面 3.水果属性4.main方法 总结拒绝白嫖&#xff0c;给个三连鼓励一下吧…

JavaWeb之综合小项目

案例需求&#xff1a; 使用Java程序操作数据库&#xff0c;并把结果显示在jsp页面上。 &#xff08;这里只做查询操作&#xff0c;增删改操作类似如此&#xff09; 使用工具&#xff1a; maven&#xff0c;idea&#xff0c;tomcat&#xff0c;MySQL数据库。 使用技术&#xff1…

20个Java小项目,献给嗜学如狂的人,拿来练练手

给大家推荐一条由浅入深的JAVA学习路径&#xff0c;首先完成 Java基础、JDK、JDBC、正则表达式等基础实验&#xff0c;然后进阶到 J2SE 和 SSH 框架学习。最后再通过有趣的练手项目进行巩固。 JAVA基础 1. Java编程语言&#xff08;新版&#xff09; 2. Java进阶之设计模式…

Java面试:java小项目实例

前言 本人是底层 211 本科,刚毕业,⽆科研经历,但是有些项⽬经历。 在国内监控行业某头部企业做过一段时间的实习。 想着投下字节,可以积累⼀下⾯试经验和为金九银十面招做准备。投了简历之后,过了一段时 间,HR 就打电话跟我约时间, 说明一下,我投的是北京 office。 以下就是一…

java 练手小项目

学习了javaSE的基础&#xff0c;为了巩固对Java面向对象编程&#xff0c;以及java多线程编程的理解&#xff0c;使用swing 写了一个很简单的小项目&#xff0c;源码github地址: https://github.com/pythondever/swing-demo 喜欢的同学可以学习学习 整体代码流程 * 1. JFra…

javaWeb小项目

作为一个学习加Java的小白&#xff0c;非常开心能记录下自己的成长历程。技术有限&#xff0c;请见谅&#xff01; 我主要学习的是Java后端&#xff0c;当我学着做了一个web小项目之后对javaee项目也有了初步见解&#xff01; 老师说万物皆对象&#xff0c;万物皆增删改查。我的…

java练习小项目(一)

学习java有一段时间了&#xff0c;都是处于那种三天打鱼&#xff0c;两天晒网的状态&#xff0c;没有效率&#xff0c;因为方法不对&#xff0c;一直是在看资料&#xff0c;看视频&#xff0c;并没有实际上手项目&#xff0c;就算当时看了&#xff0c;记住了&#xff0c;最后还…

适合Java新手练手的小项目!

对于很多朋友来说&#xff0c;Java是学习编程的开始&#xff0c;也有很多朋友希望通过Java可以找到工作&#xff0c;那么当我们学习了Java的基础知识之后&#xff0c;我们急需要一些项目去帮我们整理一下自己学习的知识点以及提高一下编程能力&#xff0c;对小的工程有一个大致…

Java小项目谁看谁都会(图书管理)

在我之前的几篇博客中对于Java语法&#xff0c;思想等等进行了总结&#xff0c;但是还是差点那味&#xff0c;就是没有将这些知识串起来那么今天的这篇博客我就将Java中&#xff1a;类 对象 封装 继承 多态 抽象类 接口等等知识共同使用完成一个Java的小项目一起来看 介绍 我…

推荐几个适合新手的Java练手项目(好玩又有趣)

Java练手项目第一波 一、坦克大战 链接&#xff1a;https://www.bilibili.com/video/BV1zP4y1b7gw/?spm_id_from333.337.search-card.all.click Java练手小项目&#xff0c;熟练掌握面向对象编程思想、对象池的使用、IO流、多线程、GUI等基础。 二、贪吃蛇 链接&#xff1a;ht…

10个优质的Java练手项目

10个优质的Java练手项目 最近有很多小伙伴私信我说推荐几个毕设项目&#xff0c;还有就是学了Java有一段时间了&#xff0c;想找几个项目想练练手&#xff0c;在面试的时候也可以增加一点项目经验。 在这里我收集了10个可以直接导入运行的项目。 由简单到复杂&#xff0c;分别…

JAVA小项目(一)——一个简单的记帐本【轻松入门,附源码】

目录 1. 实现效果 2.项目架构 3. 细节代码实现 &#x1f31e;哈喽&#xff0c;大家好丫&#xff0c;你们的小郭子又来啦 ~ &#x1f31e;今天我们用java来写一个简单的小项目——【记账本】&#xff0c;嘿嘿 话不多说&#xff0c;直接上干货&#xff0c; 1. 实现效果 2.项目…

【目标定位】基于matlab TDOA GPS混合定位【含Matlab源码 2310期】

⛄一、基于粒子滤波污染源定位简介 1 混合定位的系统结构 本文提出的GPS/TDOA混合定位系统结构可见于图1。 移动终端集成了无线通信模块和GPS接收模块,终端可同时测得通信网络中相对于服务基站的TDOA和GPS卫星到终端的伪距。在CDMA通信系统中,从通信终端测量TDOA的具体方法和…

基于图像的目标检测与定位方法概述

目录 1. 目标检测与定位概念2. 目标检测与定位方法2.1 传统目标检测流程2.2 two-stage检测算法2.2.1 R-CNN2.2.2 two-stage其他算法2.2.2.1 Spatial Pyramid Pooling&#xff08;空间金字塔池化&#xff09;2.2.2.2 Fast-RCNN2.2.2.3 P11 Faster RCNN 2.3 One-Stage2.3.1 YOLO2…

大疆无人机实现目标定位

大疆无人机实现目标定位 大疆无人机回传的实时视频可以帮助飞友观察发现美景&#xff0c;就称为目标吧&#xff0c;你偏偏对目标很感兴趣&#xff0c;迫切想知道目标的位置&#xff0c;最好是经纬度坐标。你查找大疆Document&#xff0c;欣喜地发现大疆提供了定位机体本身的定…

2-基于单目视觉的目标定位

1-四种坐标系描述 一、世界坐标系 客观三维世界的绝对坐标系&#xff0c;也称客观世界坐标系&#xff0c;是以目标为原点建立起来的坐标系。 二、摄像机坐标系 摄像机坐标系是以摄像机的光心作为坐标系的原点&#xff0c;&#xff3a;c&#xff0e;轴与光轴重合&#xff0c;并…