【自学笔记】简单java电话本管理系统v2.0源码

【数据结构课程设计报告】电话号码查询系统(Java实现) 第三章 电话号码查询系统 电话号码查询系统存储结构设计采用散列表存储结构,其业务活动包括:电话信息的添加、查看电话信息、按电话号查询电话信息和删除电话信息等,需对指定内容进行分析设计利用计算机加以实现。... 阅读详情

虽然只是一个小小的练习,还是想把东西做到最优,目前都是用的自己学到的知识,大神勿喷,相对上个版本,这次将方法及设计逻辑优化,简化了代码,去掉了用不到的接口。更易阅读

import java.util.Scanner;
/**
*@Yq
*【电话本管理系统v2.0】修改,提取了3个方法,去掉了用不到的接口,修改了变量名,简化了代码,添加了部分说明
*1.添加	2.删除	3.修改	4.查询所有	5.根据姓名查询	6.退出,,
*/
/**
*电话本的数据存储类,用数组来存储各类数据,这里只定义了101个长度,最多存101个联系人
*/
class TelBook {
	static boolean i = true; // 主要用于执行整个系统的循环以及可用循环时
	String[] name = new String[100];
	String[] sex = new String[100];
	int[] age = new int[100];
	long[] tel = new long[100];
	long[] qq = new long[100];
	String[] location = new String[100];
}
/**
*电话本的操作类,添加,删除,修改,查询所有,名字查询,退出,操作类继承了数据类以便获取数据;
*/
class TellAllHandle extends TelBook {
//---------------------添加操作方法-----------------------------
	public void add() {
		int numAdd=0;
		for (int y=0 ; y < name.length;y++) {
			if (name[y]!=null) { //判断是否有数据,如果有,就将本次添加的数据添加到下一个角标,添加到不同位置避免覆盖
				numAdd++;
			}
		}
		addOrAlter(numAdd); // 调用添加操作方法
		printAll(numAdd);  // 调用打印信息方法
		System.out.println("\n"+"添加成功");
	}
//---------------------删除操作方法-----------------------------
	public void delete() { // 删除操作
		int numDelete = nameRead(0,0); // 调用名字查询方法,并且将返回的角标值赋,加以判断
		if (name[numDelete] != null) {
			System.out.println("确定要删除吗?【1(是),0(否)】"+"\n"+"输入选项:");
			Scanner input = new Scanner(System.in);
			int ifDelete = input.nextInt();
			switch (ifDelete) {
				case 1: //如果输入为1,则将查询到的对应数据全部设置为空或0,表示为删除
					System.out.println("\n"+"正在删除:"+"["+name[numDelete]+"]"+"的所有信息");
					name[numDelete] = null;
					sex[numDelete] = null;
					age[numDelete] = 0;
					tel[numDelete] = 0L;
					qq[numDelete] = 0L;
					location[numDelete] = null;
					System.out.println("\n"+"删除成功");
				break;
				case 0:
					System.out.println("\n"+"您未作任何删除");
				break;
				default:
					System.out.println("\n"+"您的输入有误,请重新选择业务");
				break;
			}
		}
	}
//---------------------修改操作方法-----------------------------
	public void update() { // 修改操作
		int numUpdate = nameRead(0,0);
		if (name[numUpdate] != null) {
			System.out.println("\n"+"请重新输入信息:");
			addOrAlter(numUpdate);
			printAll(numUpdate);
			System.out.println("\n"+"修改成功");
		}
	}
//---------------------查询所有操作方法-----------------------------
	public void read() { // 查询所有
		int numR1 = 0;
		int numR2 = 0;
		while (numR1 < name.length-1) {
			if (name[numR1] != null) {
				printAll(numR1);
				numR2 = 0;
			}
			else {
				numR2 = 1;
			}
			numR1++;
		}
		if (numR2 != 0) {
			System.out.println("\n"+"以上为所有联系人,按 1 添加更多联系人");
		}
	}
//---------------------姓名查找操作方法-----------------------------
	public int nameRead(int numIf1,int numIf2) {
		System.out.print("\n"+"请输入需要查找/修改/删除的联系人姓名:");
		Scanner input = new Scanner(System.in);
		String inputName = input.next();
		while(numIf1 < name.length-1) { //防止未找到角标越界,-1
			if(inputName.equals(name[numIf1])) { //遍历数组,查找是否有和输入字符相同的元素,如果有,则打印这个对应角标的所有信息。以表示查找到了要删除的信息
				printAll(numIf1);
				numIf2 = 0;
				break; //如过找到了则直接结束本次循环
			}
			else { //如果都没有找到和输入相匹配的字符,则将值numIf2赋值为1
				numIf2 = 1;
			}
			numIf1++;
		}
		if (numIf2 != 0) { //为了不重复打印此语句,在循环外判断最后numIf2的值来达到提示未查找到
			System.out.println("\n"+"抱歉,查询错误,无该人信息");
		} return numIf1;
	}
//---------------------退出操作方法-----------------------------
	public void exit() {
		i = false; // 将MainInterface类mainSelect方法循环的条件i赋值为false,致循环结束,退出系统
	}
//----------------------添加或修改联系人输入方法--------------------
	public void addOrAlter(int in) {
		Scanner input = new Scanner(System.in);
		System.out.print("姓名:");
		name[in] = input.next();
		System.out.print("性别:");
		sex[in] = input.next();
		System.out.print("年龄:");
		age[in] = input.nextInt();
		System.out.print("电话:");
		tel[in] = input.nextLong();
		System.out.print("Q Q:");
		qq[in] = input.nextLong();
		System.out.print("地址:");
		location[in] = input.next();
	}
//----------------------打印联系人详情方法--------------------------
	public void printAll(int p) {
		System.out.println("\n"+"姓名:"+name[p]+","+"性别:"+sex[p]+","+"年龄:"+age[p]+","+"电话:"+tel[p]+","+"Q Q:"+qq[p]+","+"地址:"+location[p]);
	}
}
/**
*主界面所属类,完成主界面的初始化,选择业务,以及各个操作的方法调用
*/
class MainInterface {
//---------------------主界面加载与选择操作方法-----------------------------
	public void mainSelect() {
		System.out.println("-----------------------------电话本管理系统-----------------------------");
		System.out.println("\t"+"1.添加"+"\t"+"2.删除"+"\t"+"3.修改"+"\t"+"4.查询所有"+"\t"+"5.根据姓名查询"+"\t"+"6.退出");
		System.out.println("-----------------------------电话本管理系统-----------------------------");
		TellAllHandle T = new TellAllHandle(); //加载各项操作
		while(T.i){ //进行输入循环操作,利用i = true 完成,利用在解决完成一项任务后跳出,可保持系统持续运行,
			T.i = true;
			System.out.print("\n"+"【请键入1-6选择业务】:");
			Scanner input = new Scanner(System.in);
			int mainSelect = input.nextInt(); // 加载用户选择业务输入操作
				switch (mainSelect) {  // 用switch语句来选择执行指定操作
				case 1:
					System.out.println("---------------"+"添加电话本"+"---------------");
					T.add();
				break;
				case 2:
					System.out.println("---------------"+"删除电话本"+"---------------");
					T.delete();
				break;
				case 3:
					System.out.println("---------------"+"修改电话本"+"---------------");
					T.update();
				break;
				case 4:
					System.out.println("-------------"+"打印所有电话本"+"-------------");
					T.read();
				break;
				case 5:
					System.out.println("---------------"+"按姓名查询"+"---------------");
					T.nameRead(0,0);
				break;
				case 6:
					System.out.println("----------------"+"退出系统"+"----------------");
					T.exit();
					System.out.println("\n"+"谢谢使用,已退出系统");
				break;
				default:
					System.out.println("--------------"+"您的输入有误"+"--------------");
				break;
			}
		}
	}
}
public class TelBookMgnage {
	public static void main(String[] args) {
		MainInterface M = new MainInterface(); //加载主界面
		M.mainSelect(); //主界面选择输入操作
	}
}


Java电话簿系统超全总结笔记 一、项目介绍 1、项目描述 该项目是用于日常生活中记录联系人信息的一款小工具。 实现了对联系人的姓名、年龄、性别、电话号码、住址的添加及修改、查找、删除、排序等功能。该项目是以windows控制台为运行平台,所有的操作都应在控制台上进行。 2、编写目的 该项目编写的主要目的使学员对以往所学过的知识点做一个统一的复习,将平时所学的内容综合到一起并运用到实际代码编写中。 该项目能够充分的体现出一些简单的业务流程处理,能够使学员掌握基本的业务流程控制。 二、项目流程图 1、业务结构流程图 . 阅读详情

相关推荐

Eclipse+Java+Swing实现学生信息管理系统,spring 源码 面试点

阿里伤透我心,疯狂复习刷题,终于喜提offer 哈哈~好啦,不闲扯了1、JAVA面试核心知识整理(PDF):包含JVMJAVA集合JAVA多线程并发,JAVA基础,Spring原理微服务,Netty与RPC,网络,日志,ZookeeperKafkaRabbitMQ,Hbase,MongoDB设计模式负载均衡数据库一致性哈希JAVA算法数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。2、Redis学习笔记及学习思维脑图。

2401_84435555的博客 1119

Java课程设计——通讯录管理系统(含源码)

设计并实现一个通讯录管理系统包含以下功能: a)用户注册、登录; b) 通讯录信息的浏览、查找与增删改维护 其他说明: 要求采用JDBC连接数据库 界面可以选用Swing GUI技术或JSP技术 其中通讯录基本信息包括: 记录号、联系人、工作单位、电话号码、邮件、创建日期等(可根据需要扩展信息)

m0_73059486的博客 9469

经典android电话本源码

经典android电话本源码

Java简单电话簿

Java电话簿系统: package com.zmq.Demo1; /** * 联系人信息类 * * @author zmq * @date 2020-7-3 * @since jdk 1.8 */ public class Contacts { /** * 联系人编号 */ private int id; /** * 联系人姓名 */ private String cName; /** * 联系人性别 */ private char sex; /*

qq_41874088的博客 1352

电话本管理系统源码

用C语言编写的电话本管理系统源码,喜欢的带走。

⭐⭐⭐全网最详细YOLOv8教程,从环境配置到自己训练,再到数据集的制作,包的各位⭐⭐⭐

问题原因:当你“pip install ultralytics” 时,torch和torchvision会作为它的依赖一起安装了,当执行“pip install torch torchvision torchaudio --index-url。”时,会卸载torch,然后再安装torch+cuda版本,但是不会自动卸载torchvision已有版本,然后再安装torchvision+cuda版本。🎉🎉🎉恭喜各位道友,已经可以训练模型了,现在就是制作自己的数据集,所谓申神通秘境,随心所欲,万物皆可识别也

weixin_74840239的博客 7492

java大作业1--电话簿

java大作业1–电话簿 一、题目 Java程序设计实用教程p402 12-13 二、题解 一.Friend类 首先明确这个电话簿存入的信息为一个个Friend,每一个Friend需要具有姓名,性别,电话号码,关系这几个属性。之后,写构造方法(我这里只写了一个),以及一系列的get方法。 package 电话簿; //记住要写入对象文件的Friend类必须实现序列化接口 public class Friend implements java.io.Serializable{ private .

Adongua的博客 4817

手把手教你用ROS2控制PX4无人机画个圆:从C++代码到Gazebo仿真全流程解析

本文详细解析了如何使用ROS2控制PX4无人机实现圆形轨迹飞行,涵盖从C++代码编写到Gazebo仿真的全流程。重点介绍了Offboard模式下的控制算法实现、圆形轨迹生成的数学原理,以及解决通信延迟和坐标系转换等常见问题的实用技巧。通过实战案例,帮助开发者快速掌握无人机轨迹跟踪仿真的核心技术。

weixin_30839881的博客 95

【自学笔记】简单java电话本管理系统v1.0源码

一个简单的电话本管理系统,源码。

AwesomeYang|老杨的知识荒原 4708

SigFit实战:从FEA到光学仿真的热力耦合分析全流程解析

在光机系统与芯片封装等精密工程领域,热与力的耦合效应是影响产品性能与可靠性的核心物理问题。有限元分析(FEA)是预测结构在热、力载荷下变形与应力的基础工具,但其结果通常无法直接用于评估光学性能。这需要一座桥梁,将物理场数据转化为光学设计语言。其核心原理在于数据映射与面形表征技术,例如通过泽尼克多项式拟合,将离散的节点位移分解为离焦、像散等标准光学像差。这项技术的工程价值在于,它实现了多物理场仿真的闭环,使工程师能在设计阶段精准预测热变形或应力对波前误差、调制传递函数等关键光学指标的影响。其典型应用场景包括高

weixin_28630185的博客 338

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

java电话系统_(自学笔记)简单java电话本管理系统v1.0源码

是运行结果代码:import java.util.Scanner;/**@Yq【电话本管理系统v1.0】1.添加 2.删除 3.修改 4.查询所有 5.根据姓名查询 6.退出*//***对电话本数据的操作接口*/interface TelBookDAO {public abstract void add();public abstract void delete();public abstract...

weixin_30738065的博客 333

SKUA-GOCAD入门教程-第七节 点的创建与编辑3

本文介绍了四种从井数据创建点集的方法

江洋大葱的博客 963

前后端分离的考试管理系统 springboot spingcloud vue源码赠送

取:vip1024b (备注Java)**[外链图片转存中…(img-DJqQZmHX-1713686254713)]

2401_84446513的博客 565

用 ABAP CDS View 把数据稳定抽到 SAP BW/4HANA:从 ODP 架构到增量机制的落地实践

本文探讨了SAP数据仓库中从业务系统抽取数据到SAP BW/4HANA的最佳实践,重点分析了基于ABAP CDS视图的抽取方法。文章指出CDS视图通过注解可实现元数据描述、增量机制的统一管理,替代传统抽取器。详细介绍了ODP架构如何作为抽取基础设施,以及从CDS到BW的完整链路。同时比较了三种增量抽取方式(BW管理时间戳、ODP通用增量、CDC触发器)的适用场景和注意事项,并强调版本兼容性和云环境连接差异对实施的影响。通过实际案例说明合理选择增量策略对数据仓库稳定性的重要性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 330

华为 MetaERP 财务模块的核心业务对象,按子模块与架构维度分类,以表格呈现,适配架构设计与实施落地

华为MetaERP财务模块基于4A架构(业务/应用/数据/技术)与TOGAF框架,实现业财一体化与全球合规。业务架构涵盖组织模型与核心流程,应用架构支撑财务操作,数据架构确保数据一致性,技术架构提供高性能技术底座。模块覆盖总账、应收应付、资产等子模块,支持多组织、多币种、多准则核算,通过实时会计引擎实现"交易即核算"。4A架构与TOGAF框架对应,实现业务能力、应用组件、数据模型与技术栈的深度融合,为华为全球化财务核算提供核心支撑。

金牌架构师 437

学透这份Java面试题及答案V2

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习已经将知识体系整理好(源码,笔记,PPT,学习视频)《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!体系整理好(源码,笔记,PPT,学习视频)[外链图片转存中…(img-9FpKNAA3-1713642483587)][外链图片转存中…(img-S7cGnpGp-1713642483587)]

2301_79963818的博客 657

基于强化学习控制策略的三相逆变器仿真

强化学习控制器的核心在于定义状态空间、动作空间、奖励函数以及选择合适的强化学习算法(例如DQN、DDPG等)。对于三相逆变器,状态可以是输出电压、电流等信息;动作则可能是调制指数的变化量;奖励函数则应鼓励快速准确地跟踪参考信号。定义状态空间和动作空间状态空间可以包括逆变器的输出电压、电流及其变化率等信息。动作空间则是控制器可执行的动作,例如PWM信号的调整幅度。matlab深色版本% 定义状态和动作空间维度numObs = 6;% 假设有六个状态变量(例如三相电压和电流)

amy_mhd的博客 135

java编程入门自学Java自学资料

这样,等真的沉下心来学习,不至于被找资料分散了心神。另外,给大家安排了一波学习面试资料:以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!链图片转存中…(img-IwdQNL0f-1710275845377)][外链图片转存中…(img-tWNXVSMw-1710275845377)]以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!本文已被。

m0_60575487的博客 910

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java课程设计【学生信息管理系统】_学生信息管理系统java课程设计

按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。道路是曲折的,前途是光明的!网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84412050的博客 416

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java课程设计-学生成绩管理系统(1),java工程师面试失败原因

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!req.getSession().setAttribute(“message”,“用户名或密码错误!的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!本次文章主要是介绍学生成绩管理系统的功能,系统分为三个角色,管理员、教师、学生。编译工具:Idea、Eclipse、MyEclipse (选其一)

2401_84103100的博客 837

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

现在学java怎么样?好就业吗?,阿里Java岗面试百题

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

m0_60635609的博客 609

现在学java怎么样?好就业吗?,写的太详细了

如果说你自己的技术掌握的非常的差,你在怎么努力找工作也是一样没有人去招聘你,其实这些编程语言能不能就业,一是看自己的学历(如果说自己的学历非常差的话就算你自己的技术掌握的再好,稍微一些比较大的公司就直接把你的简历给筛选下去了。)二就是自己的技术,如果说自己的掌握的非常好,自己也有学历,这样你说自己找不到工作你觉得可能吗?如果说自己是零基础想要学习Java,首先不建议你直接去找培训班去学习,因为现在的培训班很杂,很难说你能找到一个非常不错的培训班(能不能找到一个不错的培训班,这个要看你自己的运气)。

m0_60635321的博客 1680

java计算机毕业设计美容院管理系统源码+系统+mysql数据库+lw文档

JSP计算机C语言学习网站的设计与实现sqlserver。springboot基于微信平台的s店智能管理系统小程序。ssm基于SSM框架的菲特尼斯健身管理系统的设计与实现。jsp网上花卉销售系统的设计与实现sqlserver。ssm河南省农村多元化养老服务管理系统的设计与实现。ssm基于SSM的停车场收费管理系统的设计与实现。ssm基于HTML的互动游戏新闻网站的设计与实现。jsp基于web的面向公众的食品安全知识系统。ssm基于Vue的去哪儿玩app的设计与实现。

bishe61的博客 458

java Swing+JDBC+mysql实现毕业设计选题管理系统(附源码)

使用java Swing+JDBC+mysql实现毕业设计选题管理系统

程序员小王的博客 1724

我的《自学编程》之路

本人简称SGG! 首先,我是一名2014年物业管理专业毕业的大专生,话说漫漫人生路,我实在不想将我的经历都浪费在一个不喜欢的事业上,从而生出了想转行的念头,选择了编程;开始接触编程是在2016年12月份,当时我问我的一个正在做开发的朋友,他让我学C。 C语言篇---VC++6.0!!!         听了他的建议后我买了一本初级的C入门资料《C语言程序设计第4版--谭浩强》你没看错,就是这

sggsgg_sgg的博客 4426
上一篇: 【自学笔记】简单java电话本管理系统v1.0源码
下一篇: [Linux相关]ubuntu16.04开机自动挂载Windows分区
AwesomeYangIsMe
博客等级 码龄10年 49粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值