工具类、Customer类的代码(为客户信息管理软件项目提供的代码参考)

java基础语法_客户信息管理系统 目 标 模拟实现一个基于文本界面的《客户信息管理软件》 进一步掌握编程技巧和调试技巧,熟悉面向对象编程 主要涉及以下知识点: 类结构的使用:属性、方法及构造器 对象的创建与使用 类的封装性 声明和使用数组 数组的插入、删除和替换 关键字的使用:this 需求说明 模拟实现基于文本界面的《客户信息管理软件》。 该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。 项目采用分级菜单方式。主菜单如下: ------------... 阅读详情

目录

工具类

Customer类

工具类

import java.util.Scanner;

/**
 CMUtility工具类:
 将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。
 */
public class CMUtility {
    private static Scanner scanner = new Scanner(System.in);
    /**
     用于界面菜单的选择。该方法读取键盘,如果用户键入’1’-’5’中的任意字符,则方法返回。返回值为用户键入字符。
     */
    public static char readMenuSelection() {
        char c;
        for (; ; ) {
            String str = readKeyBoard(1, false);
            c = str.charAt(0);
            if (c != '1' && c != '2' &&
                    c != '3' && c != '4' && c != '5') {
                System.out.print("选择错误,请重新输入:");
            } else break;
        }
        return c;
    }
    /**
     从键盘读取一个字符,并将其作为方法的返回值。
     */
    public static char readChar() {
        String str = readKeyBoard(1, false);
        return str.charAt(0);
    }
    /**
     从键盘读取一个字符,并将其作为方法的返回值。
     如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
     */
    public static char readChar(char defaultValue) {
        String str = readKeyBoard(1, true);
        return (str.length() == 0) ? defaultValue : str.charAt(0);
    }
    /**
     从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
     */
    public static int readInt() {
        int n;
        for (; ; ) {
            String str = readKeyBoard(2, false);
            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }
    /**
     从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。
     如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
     */
    public static int readInt(int defaultValue) {
        int n;
        for (; ; ) {
            String str = readKeyBoard(2, true);
            if (str.equals("")) {
                return defaultValue;
            }

            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }
    /**
     从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
     */
    public static String readString(int limit) {
        return readKeyBoard(limit, false);
    }
    /**
     从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。
     如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。
     */
    public static String readString(int limit, String defaultValue) {
        String str = readKeyBoard(limit, true);
        return str.equals("")? defaultValue : str;
    }
    /**
     用于确认选择的输入。该方法从键盘读取‘Y’或’N’,并将其作为方法的返回值。
     */
    public static char readConfirmSelection() {
        char c;
        for (; ; ) {
            String str = readKeyBoard(1, false).toUpperCase();
            c = str.charAt(0);
            if (c == 'Y' || c == 'N') {
                break;
            } else {
                System.out.print("选择错误,请重新输入:");
            }
        }
        return c;
    }

    private static String readKeyBoard(int limit, boolean blankReturn) {
        String line = "";

        while (scanner.hasNextLine()) {
            line = scanner.nextLine();
            if (line.length() == 0) {
                if (blankReturn) return line;
                else continue;
            }

            if (line.length() < 1 || line.length() > limit) {
                System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");
                continue;
            }
            break;
        }
        return line;
    }
}

Customer类

//顾客类
public class Customer {
    //属性
    private String name;
    private char gender;
    private int age;
    private String phone;
    private String email;

    //构造方法
    public Customer() {
    }

    public Customer(String name, char gender, int age, String phone, String email) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.phone = phone;
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

Java基础项目——客户信息管理软件 本文主要介绍Java基础项目——客户信息管理软件(附完整源代码)。本项目是为了让初学者进一步掌握编程技巧和调试技巧,初步体会面向对象编程的好处,同时对前面所学的数组及其他基础知识进行巩固。 阅读详情

相关推荐

CRM+JAVA+客户关系管理分享源码学习a

CRM+JAVA+客户关系管理分享源码学习a

尚硅谷Java学习project02客户信息管理软件分析

今天跟着宋老师将project02敲了一遍,有时候会跟不上老师的思路,会暂停想一会,里面比较绕的地方可能主要就是在交互的时候,再加上可能基础知识运用的不是特别熟练,接下来就将每个类进行分析一波。

m0_55895641的博客 1298

客户关系管理系统源代码

y2学习第二阶段客户关系管理系统源代码or数据库 使用 struts1 sping hibernate框架搭建 包含项目PPT

网络多线程——多用户即时通信系统(2)——客户端界面部分

客户端 复制一份 Utility.java 工具类到 com.qqclient.utils 包下: Utility 代码: package com.qqclient.utils; /** 工具类的作用: 处理各种情况的用户输入,并且能够按照程序员的需求,得到用户的控制台输入。 */ import java.util.*; /** */ public class Utility { //静态属性。。。 private static Scanner scanner = new S

qq_43575044的博客 575

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

论文分享|ECCV2022,PATnet,Cross-Domain Few-Shot Semantic Segmentation,CDFSS新基准,文末有复现教程

这篇论文提出的跨域小样本语义分割(CD-FSS)任务,旨在将源域学习的分割能力迁移到目标域,仅需少量标注样本。针对传统小样本分割方法在跨域场景性能下降的问题,作者提出了基于金字塔锚点变换的网络(PATNet),通过将域相关特征转换为域无关特征,并引入任务自适应微调推理(TFI)提升目标域适应能力。实验表明,PATNet在1-shot和5-shot设置下分别比现有方法提升8.49%和10.61%的准确率。同时,作者构建了CD-FSS基准并设计了任务难度评估指标。代码和数据集已开源,复现难度中等。

m0_74277350的博客 1095

(11)客户信息管理软件 - 基础知识

程序设计流程思路: 所设计的程序为:客户信息管理软件 首先,第一步: 新建Customer类 先对涉及到的数据进行封装(Getter and Setter) 然后对数据进行有参构造 和无参构造 最后打印数据(toString方法) 第二步: 新建CustomerView类 ①用syso设计功能界面 System.out.println("---------------------客户信息管理...

Ricardo__Lu的博客 641

十一、机器学习进阶知识:径向基神经网络(RBFNN)的实现(Python,附源码及数据集)

本文对径向基神经网络(RBFNN)的理论基础及建模步骤进行介绍,之后使用Python实现基于RBFNN的数据预测,通俗易懂,适合新手学习,附源码及实验数据集。

weixin_42051846的博客 1万+

Java小项目—客户信息管理软件(一),springboot面试常问

其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。Kafka入门为什么选择KafkaKafka的安装、管理和配置。

m0_57472099的博客 1095

从入门到实战:rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控

本文详细介绍了rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控方法。从Rootkit的危害性入手,讲解了rkhunter的安装、配置及实战应用,包括如何建立基准、优化定时任务方案以及智能告警处理。通过多级过滤脚本和系统级联动,帮助运维人员高效识别和应对Rootkit威胁,提升服务器安全性。

weixin_28715953的博客 239

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功,附带问题分析详细过程

spark_dev的博客 1912

客户信息管理软件项目

java学习了两周,试着自己写了第一个自己的项目《客户信息管理软件》,该项目主要功能包含了客户信息的添加客户、删除客户、修改客户信息、查询客户信息四个功能,以及规范了用户的非法输入,对面向对象初学者来说非常适合练手,废话不多说,直接上代码。 项目列表 实现代码 Customer类 package com.luokai.myproject.bean; /* * Customer为实体对象,用来封装客户信息 */ public class Customer { //属性 private String

子潇的博客 739

WinIDEA基于IC5000烧录代码和调试教程

winIDEA就是ic5000用来烧录代码和调试代码的上位机,本文旨在介绍其如何去烧录代码并且调试

m0_56208280的博客 4162

Java小项目—客户信息管理软件(一)

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_83329402的博客 1008

ANSYS Fluent DPM实战:从单点到锥形注入的粒子模拟全流程解析

本文深度解析了ANSYS Fluent中离散相模型(DPM)的粒子注入(Injection)设置全流程。从单点注入到锥形喷雾,详细阐述了不同注入类型的物理本质、参数逻辑与适用场景,并提供了粒径分布、湍流扩散等高级参数设置技巧与实战避坑指南,帮助工程师精准模拟喷雾、粉尘等粒子运动行为。

weixin_29276847的博客 654

5G(NR)物理层面试问答

1.什么是参数集(Numerologies)? 答:在5G中由于其频段很宽,设置了不同的子载波带宽,另根据频段、循环前缀、帧结构等组成了参数集。 2.5G中的循环前缀有几种? 答:5G网络支持5种子载波间隔,有两种循环前缀(正常和扩展)。其中:参数集2,即子载波间隔60kHz支持常规循环前缀和扩展循环前缀。 3.5G无线网络在下行(DL)和上行(UL)均使用OFDM波形? 答:5G网络下行链路(DL)和上行链路(UL)使用的波形及处理见下图: 4.5G物理层帧和子帧是多长时间? 答:5G.

starts1990的博客 2377

【尚硅谷-Java学习】【项目2】客户信息管理软件

涉及知识点 需求 软件结构设计 三个模块 Customer:实体对象,用来封装客户信息。 CustomerList:Customer对象的管理模块,用数组管理一组对象,提供增、删、改、遍历方法,供CustomerView调用 CustomerView:主模块,负责菜单的显示和处理用户操作。 ...

cazenove的博客 2165

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java项目之客户信息管理软件

一、项目需求说明 模拟实现基于文本界面的《客户信息管理软件》 该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。 (1)项目采用分级菜单方式: (2)“添加客户”的界面及操作过程如下: (3)“修改客户”的界面及操作过程如下: (4)“删除客户”的界面及操作过程如下: (5)“客户列表”的界面及操作过程如下: 二、软件设计结构 该软件由以下三个模块组成: CustomerView为主模块,负责菜单的显示和处理用户操作 CustomerList为Custome

weixin_43520450的博客 2193

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

P001【项目一】客户信息管理软件_CMUtility类(5)

【项目一】客户信息管理软件 工具类CMUtility类详细代码

qq_38636076的博客 1092

项目二——客户信息管理软件

项目二——客户信息管理软件

qq_61524266的博客 749

客户信息管理软件

客户信息管理软件 开始自学半个月,作品分享 希望多多指教 需求说明 首先创建Customer类 public class Customer { private String name;//姓名 private String gender;//性别 private int age;//年龄 private String number;//电话号码 private String mailAddress;//邮箱地址 public Customer(String name,String

xiaomenjun213的博客 446

Scala --简单项目设计--客户信息管理软件

项目需求分析 模拟实现基于文本界面的《客户信息管理软件》。 该软件scala能够实现对客户对象的插入,修改,删除,显示,查询(用ArrayBuffer或者ListBuffer实现),并能够打印客户明细表。 主界面: 添加客户: 修改客户: 删除客户: 客户列表: 建包: 下面开始: 编写 Customer 类 显示主菜单和完成退出软件功能: 在view 包中建类:CustomerView 在app 包中建立Object CustomerCrm 显示客户列表: 1.编写一个方法,返回当前系统

别下完这场雪 3853
上一篇: Java阶段三:基础项目—家庭记录收支程序
下一篇: Java小项目—客户信息管理软件(一)
South.return
博客等级 码龄6年 1879粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

South.return

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值