网站开发的人员/公司网络优化方案

网站开发的人员,公司网络优化方案,中国建筑信息查询平台,网站建设理论依据内容来自:尚硅谷 难度:easy 目 标 l 模拟实现一个基于文本界面的 《 拼电商客户管理系统 》 l 进一步掌握编程技巧和调试技巧,熟悉面向对象编程 l 主要涉及以下知识点: 类结构的使用:属性、方法及构造器 对象的创建与…

内容来自:尚硅谷

难度:easy

目 标

l 模拟实现一个基于文本界面的 拼电商客户管理系统
l 进一步掌握编程技巧和调试技巧,熟悉面向对象编程
l 主要涉及以下知识点:
Ø 类结构的使用:属性、方法及构造器
Ø 对象的创建与使用
Ø 类的封装性
Ø 声明和使用数组
Ø 数组的插入、删除和替换

关键字的使用:this

 需求说明

模拟实现基于文本界面的拼电商客户管理系统

该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。

项目采用分级菜单方式。主菜单如下:

             -----------------拼电商客户管理系统-----------------

                                     1 添 加 客 户

                                     2 修 改 客 户

                                     3 删 除 客 户

                                     4 客 户 列 表

                                     5 退           出

                                     请选择(1-5)_

每个客户的信息被保存在 Customer 对象中。
以一个 Customer 类型的数组来记录当前所有的客户。
每次“添加客户”(菜单 1 )后,客户( Customer )对象被添加到数组中。
每次“修改客户”(菜单 2 )后,修改后的客户( Customer )对象替换数组中原对象。
每次“删除客户”(菜单 3 )后,客户( Customer )对象被从数组中清除。
执行“客户列表 ”(菜单 4 )时,将列出数组中所有客户的信息。

“添加客户”的界面及操作过程如下所示:

  ……

                   请选择(1-5)1

---------------------添加客户---------------------

姓名:佟刚

性别:男

年龄:35

电话:010-56253825

邮箱:tongtong@atguigu.com

---------------------添加完成---------------------

“修改客户”的界面及操作过程如下所示:

  ……

                   请选择(1-5)2

---------------------修改客户---------------------

请选择待修改客户编号(-1退出)1

姓名(佟刚)<直接回车表示不修改>

性别()

年龄(35)

电话(010-56253825)

邮箱(tongtong@atguigu.com)tongg@atguigu.com

---------------------修改完成---------------------

“删除客户”的界面及操作过程如下所示:

  ……

                   请选择(1-5)3

---------------------删除客户---------------------

请选择待删除客户编号(-1退出)1

确认是否删除(Y/N)y

---------------------删除完成---------------------

“客户列表”的界面及操作过程如下所示:

  ……

   请选择(1-5)4

---------------------------客户列表---------------------------

编号  姓名       性别    年龄   电话                   邮箱

 1    佟刚         男        45     010-56253825   tong@abc.com

 2    封捷         女        36     010-56253825   fengjie@ibm.com

 3    雷丰阳     男        32      010-56253825   leify@163.com

-------------------------客户列表完成-------------------------

 

 

 

 1实现Customer

1. 按照设计要求编写 Customer 类,并编译
2. Customer 类中临时添加一个 main 方法中,作为单元测试方法。

  在方法中创建Customer对象,并调用对象的各个方法,以测试该类是否编写正确。

//package com.atguigu.p2;public class Customer {private String name;private char gender;private int age;private String phone;private String email;public Customer(String name, char gender, int age) {this(name, gender, age, "", "");}
//    public Customer(String name, char gender, int age) {
//        this(name, gender, age, "", "");
//    }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;}public String getDetails() {return name + "\t" + gender + "\t\t" + age + "\t\t" + phone + "\t" + email;}
}

2CustomerList类的设计

l CustomerList Customer 对象的管理模块,内部使用数组管理一组 Customer 对象
l 本类封装以下信息:
Ø Customer[] customers :用来保存客户对象的数组
Ø int total = 0                 :记录已保存客户对象的数量
l 该类至少提供以下构造器和方法:
Ø public CustomerList (int totalCustomer )
Ø public boolean addCustomer (Customer customer)
Ø public boolean replaceCustomer (int index, Customer cust )
Ø public boolean deleteCustomer (int index)
Ø public Customer[] getAllCustomers ()
Ø public Customer getCustomer (int index)
Ø public int getTotal ()

l public CustomerList ( int totalCustomer )
Ø 用途:构造器,用来初始化 customers 数组
Ø 参数: totalCustomer :指定 customers 数组的最大空间
l public boolean addCustomer (Customer customer )
Ø 用途:将参数 customer 添加组中最后一个客户对象记录之后
Ø 参数: customer 指定要添加的客户对象
Ø 返回:添加成功返回 true false 表示数组已满,无法添加
l public boolean replaceCustomer ( int index, Customer cust )
Ø 用途:用参数 customer 替换数组中由 index 指定的对象
Ø 参数: customer 指定替换的新客户对象

             index指定所替换对象在数组中的位置,从0开始

Ø 返回:替换成功返回 true false 表示索引无效,无法替换
l public boolean deleteCustomer ( int index)
Ø 用途:从数组中删除参数 index 指定索引位置的客户对象记录
Ø 参数: index 指定所删除对象在数组中的索引位置,从 0 开始
Ø 返回:删除成功返回 true false 表示索引无效,无法删除
l public Customer[] getAllCustomers ()
Ø 用途:返回数组中记录的所有客户对象
Ø 返回: Customer[] 数组中包含了当前所有客户对象,该数组长度与对象个数相同。
l public Customer getCustomer ( int index)
Ø 用途:返回参数 index 指定索引位置的客户对象记录
Ø 参数: index 指定所要获取的客户在数组中的索引位置,从 0 开始
Ø 返回:封装了客户信息的 Customer 对象

1. 按照设计要求编写 CustomerList 类,并编译
2. CustomerList 类中临时添加一个 main 方法中,作为单元测试方法。
3. 在方法中创建 CustomerList 对象(最多存放 5 个客户对象),然后分别用模拟数据调用以下各个方法,以测试各方法是否编写正确:
addCustomer ()
replaceCustomer ()
deleteCustomer ()
getAllCustomers ()
getCustomer ()
getTotal ()
4. 进一步测试以下情况,以验证该类是否编写正确:
调用 addCustomer 方法,添加至少 5 个以上客户对象时
当数组中客户对象数量为 0 时,仍然调用 replaceCustomer 方法替换对象
当数组中客户对象数量为 0 时,仍然调用 deleteCustomer 方法删除对象
对于 replaceCustomer deleteCustomer getCustomer 的调用,当参数 index 的值无效时(例如 -1 6
getAllCustomers 方法返回的数组长度是否与实际的客户对象数量一致

public class CustomerList {private Customer[] customers;private int total = 0;public CustomerList(int totalCustomer) {customers = new Customer[totalCustomer];}public boolean addCustomer(Customer customer) {if (total >= customers.length) {return false;}customers[total++] = customer;return true;}public Customer getCustomer(int index) {if (index < 0 || index >= total) {return null;}return customers[index];}public boolean replaceCustomer(int index, Customer cust) {if (index < 0 || index >= total) {return false;}customers[index] = cust;return true;}public boolean deleteCustomer(int index) {if (index < 0 || index >= total) {return false;}for (int i = index; i < total - 1; i++) {customers[i] = customers[i + 1];}customers[--total] = null;return true;}public Customer[] getAllCustomers() {Customer[] custs = new Customer[total];for (int i = 0; i < total; i++) {custs[i] = customers[i];}return custs;}}

3CustomerView类的设计

l CustomerView 为主模块,负责菜单的显示和处理用户操作
l 本类封装以下信息:
Ø CustomerList customerList = new CustomerList (10);

  创建最大包含10个客户对象的CustomerList 对象,供以下各成员方法使用。

l 该类至少提供以下方法:
Ø public void enterMainMenu ()
Ø private void addNewCustomer ()
Ø private void modifyCustomer ()
Ø private void deleteCustomer ()
Ø private void listAllCustomers ()

public static void main(String[] args)

l public void enterMainMenu ()
Ø 用途:显示主菜单,响应用户输入,根据用户操作分别调用其他相应的成员方法(如 addNewCustomer ),以完成客户信息处理。
l    private void addNewCustomer ()

  private void modifyCustomer()

  private void deleteCustomer()

  private void listAllCustomers()

Ø 用途:这四个方法分别完成“添加客户”、“修改客户”、“删除客户”和“客户列表”等各菜单功能。

  这四个方法仅供enterMainMenu()方法调用。

l public static void main(String[] args )
Ø 用途:创建 CustomerView 实例,并调用 enterMainMenu () 方法以执行程序。

1. 按照设计要求编写 CustomerView 类,逐一实现各个方法,并编译
2. 执行 main 方法中,测试以下功能:
主菜单显示及操作是否正确
“添加客户”操作是否正确,给用户的提示是否明确合理;测试当添加的客户总数超过 10 时,运行是否正确
“修改客户”操作是否正确,给用户的提示是否明确合理;
“删除客户”操作是否正确,给用户的提示是否明确合理;
“客户列表”操作是否正确,表格是否规整;
3. 思考以下问题:
当软件退出时,所有客户信息便丢失了!运用什么手段可以将这些信息长久保存,以便在下一次运行软件时继续使用?

 

import java.util.Scanner;
//package com.atguigu02.project;
public class CustomerView {private CustomerList customers=new CustomerList(10);public CustomerView() {Customer cust = new Customer("张三", '男', 30, "13843255423","abc@126.com");customers.addCustomer(cust);}public void jianmie(){boolean flag = true;do {System.out.println("----------拼电商客户管理系统----------\n");System.out.println("            1添加客户");System.out.println("            2修改客户");System.out.println("            3删除客户");System.out.println("            4客户列表");System.out.println("            5退   出\n");System.out.print("            请选择(1-5):_");Scanner sc = new Scanner(System.in);int choice = sc.nextInt();switch (choice) {case 1:addcustomer();break;case 2:xiugaiCustomer();break;case 3:shanchuCustomer();break;case 4:customerlist();break;case 5:flag=false;}}while (flag);}private void addcustomer(){System.out.println("------------添加客户------------");System.out.print("姓名:");Scanner sc = new Scanner(System.in);String name = sc.nextLine();System.out.print("性别:");char gender = sc.next().charAt(0);System.out.print("年龄:");int age = sc.nextInt();sc.nextLine();System.out.print("电话:");String phone = sc.nextLine();System.out.print("邮箱:");String email = sc.nextLine();Customer cust = new Customer(name,gender,age,phone,email);boolean flag = customers.addCustomer(cust);;if(flag){System.out.println("----------添加完成-----------");}else{System.out.println("-----------记录已满,无法添加-------");}}public void xiugaiCustomer(){int index = 0;Customer cust = null;for(;;){System.out.println("---------修改客户----------");System.out.println("请选择待修改客户编号(-1退出):");Scanner sc = new Scanner(System.in);index = sc.nextInt();if (index == -1) {return;}cust = customers.getCustomer(index - 1);if (cust == null) {System.out.println("无法找到指定客户!");} elsebreak;}System.out.print("姓名(" + cust.getName() + "):");Scanner sc = new Scanner(System.in);String name = sc.nextLine();String oldname=cust.getName();if(name!=oldname){oldname=name;}System.out.print("性别(" + cust.getGender() + "):");char gender = sc.next().charAt(0);char oldgender=cust.getGender();if(gender!=oldgender){oldgender=gender;}System.out.print("年龄(" + cust.getAge() + "):");int age =sc.nextInt();int oldage=cust.getAge();if(age!=oldage){oldage=age;}sc.nextLine();System.out.print("电话(" + cust.getPhone() + "):");String phone=sc.nextLine();String oldphone = cust.getPhone();if(phone!=oldphone) {oldphone = phone;}System.out.print("邮箱(" + cust.getEmail() + "):");String email=sc.nextLine();String oldemail = cust.getEmail();if(email!=oldemail){oldemail=email;}cust = new Customer(oldname, oldgender, oldage, oldphone, oldemail);boolean flag = customers.replaceCustomer(index-1, cust);if (flag) {System.out.println("---------------------修改完成---------------------");} else {System.out.println("----------无法找到指定客户,修改失败--------------");}}public void shanchuCustomer() {Customer cust = null;int num = 0;for (; ; ) {System.out.println("-------------删除客户-------------");System.out.println("请选择待删除客户编号(-1退出):");Scanner sc = new Scanner(System.in);num = sc.nextInt();if (num == -1) {return;}cust = customers.getCustomer(num - 1);if (cust == null) {System.out.println("未找到目标用户");} elsebreak;}System.out.println("确认是否删除(Y/N):");Scanner sc = new Scanner(System.in);String choice = sc.nextLine();if(choice=="N"){return;}boolean flag = customers.deleteCustomer(num - 1);if (flag) {System.out.println("-----------删除完成------------");}else {System.out.println("-------无法找到指定客户,删除失败------");}}public void customerlist(){System.out.println("---------------客户列表-----------------");Customer[] custs = customers.getAllCustomers();if(custs.length==0){System.out.println("目前列表中暂无客户");}else{System.out.println("编号\t姓名\t性别\t年龄\t电话\t\t\t邮箱");for (int i = 0; i < custs.length; i++) {System.out.println((i+1) + "\t" + custs[i].getDetails());
//                    System.out.println(System.out.println(i+ 1 + "\t" + custs[i].getName() + "\t" + custs[i].getGender() + "\t" + custs[i].getAge() + "\t\t" + custs[i].getPhone() + "\t" + custs[i].getEmail());}System.out.println("-----------客户列表完成------------");}}public static void main(String[] args) {CustomerView cView = new CustomerView();cView.jianmie();}
}

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

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

相关文章

SuperMap iClient3D for WebGL三维场景与二维地图联动

作者&#xff1a;Lzzzz 在城市规划&#xff0c;应急救援&#xff0c;旅游规划等项目场景中&#xff0c;普遍存在通过二维地图定位区域或路线&#xff0c;三维场景展示布局细节的情况&#xff0c;那么&#xff0c;如何使三维场景与二维地图联动起来呢&#xff0c;一起来看看如何…

win本地vscode通过代理远程链接linux服务器

时间&#xff1a;2025.2.28 1. win本地下载nmap.exe nmap官网 https://nmap.org/或者 https://nmap.org/download#windows下载win版本并安装。 2. vscode插件Remote-SSH 插件下载Remote-SSH 3. 配置 按照图中顺序配置ssh 1.点击左侧工具栏的“小电视”图标 2.点击ssh的…

基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局

生态安全是指生态系统的健康和完整情况。生态安全的内涵可以归纳为&#xff1a;一&#xff0c;保持生态系统活力和内外部组分、结构的稳定与持续性&#xff1b;二&#xff0c;维持生态系统生态功能的完整性&#xff1b;三&#xff0c;面临外来不利因素时&#xff0c;生态系统具…

Java 入门 (超级详细)

一、什么是Java Java是一种高级编程语言&#xff0c;由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点&#xff0c;被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运…

神经网络 - 激活函数(Swish函数、GELU函数)

一、Swish 函数 Swish 函数是一种较新的激活函数&#xff0c;由 Ramachandran 等人在 2017 年提出&#xff0c;其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数&#xff08;Logistic 函数&#xff09;。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…

Lua | 每日一练 (5)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Lua | 每日一练 (5)题目参考答案浅拷贝深拷贝使用场景…

JavaEE--计算机是如何工作的

一、一台计算机的组成部分 1.CPU&#xff08;中央处理器&#xff09; 2.主板&#xff08;一个大插座&#xff09; 3.内存&#xff08;存储数据的主要模板&#xff09; 4.硬盘&#xff08;存储数据的主要模板&#xff09; 内存和硬盘对比&#xff1a; 内存硬盘读写速度快慢存…

电源测试系统有哪些可以利用AI工具的科技??

AI技术的发展对电源模块测试系统的影响是深远的&#xff0c;不仅协助系统提升了测试效率和精度&#xff0c;还推动了测试方法的创新和智能化。那么在电源测试系统中哪些模块可以利用AI工具实现自动化测试? 1. 自动化测试与效率提升 智能测试流程优化 AI算法可以自动优化测试…

通过多线程同时获取H264和H265码流

目录 一.RV1126 VI采集摄像头数据并同时编码H264、H265的大概流程​编辑​编辑 1.1初始化VI模块&#xff1a; 1.2H264、H265的VENC模块初始化&#xff1a; 1.3VI分别绑定H264的VENC层和H265的VENC层&#xff1a; ​​​​​​​1.4开启H264线程采集H264的VENC数据&#xff…

unity lua属性绑定刷新

我们现在有一个 角色属性类叫heroModel,内容如下,当heroModel中的等级发生变化的时候&#xff0c;我们需要刷新界面显示等级信息&#xff0c;通常我们是在收到等级升级成功的协议的时候&#xff0c;发送一个事件&#xff0c;UI界面接受到这个事件的时候&#xff0c;刷新一下等级…

vscode+vue前端开发环境配置

目录 一、安装Vue二、使用vue新建项目 一、安装Vue 在node.js安装好之后&#xff0c; npm config set registry https://registry.npmmirror.com# 安装vue相关工具&#xff0c;webpack用来项目构建、打包、资源整合等。 npm install webpack -g# 安装vue-cli脚手架 npm insta…

《白帽子讲 Web 安全》之文件操作安全

目录 引言 &#xff08;一&#xff09;文件上传与下载漏洞概述 1.文件上传的常见安全隐患 1.1前端校验的脆弱性与服务端脚本执行危机在文件上传流程中&#xff0c;部分开发者可能会在前端使用 JavaScript 代码对文件后缀名进行简单校验&#xff0c;试图以此阻止非法文件上传…

vector习题

完数和盈数 题目 完数VS盈数_牛客题霸_牛客网 一个数如果恰好等于它的各因子(该数本身除外)之和&#xff0c;如&#xff1a;6321。则称其为“完数”&#xff1b;若因子之和大于该数&#xff0c;则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述&#xff…

cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼

一、基础使用&#xff1a;Cesium.js基础使用&#xff08;vue&#xff09;-CSDN博客 1、基础路径 为 Cesium 库设置一个全局变量 CESIUM_BASE_URL&#xff0c;用于指定 Cesium 的资源文件&#xff08;如 WebGL shaders、纹理、字体等&#xff09;的 示例场景&#xff1a;假设你…

安全运营的“黄金4小时“:如何突破告警疲劳困局

在当今复杂多变的网络安全环境中&#xff0c;安全团队面临着前所未有的挑战。尤其是面对高级持续性威胁&#xff08;APT&#xff09;时&#xff0c;最初的“黄金4小时”成为决定成败的关键窗口。在这段时间内&#xff0c;快速而准确地响应可以极大地降低损失&#xff0c;然而&a…

[BUUCTF]web--wp(持续更新中)

ps:文章所引用知识点链接&#xff0c;如有侵权&#xff0c;请联系删除 [极客大挑战 2019]EasySQL 题目类型&#xff1a;简单SQL注入 发现是登录页面&#xff0c;用万能登录方法测试&#xff0c;两种语句均能解出flag [极客大挑战 2019]Havefun 题目类型&#xff1a;代码审计…

MySQL数据库的数据类型

1.设置MySQL服务器的默认储存引擎 set default_storage_engineMYISAM2. 数值类型 整数类型 TINYINT&#xff1a;1字节&#xff0c;范围&#xff1a;-128~127&#xff08;有符号&#xff09;&#xff0c;0~255&#xff08;无符号&#xff09;。适用于状态码、布尔值&#xff08…

探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(二)

文章目录 2.3.3 极化编码巴氏参数与信道可靠性比特混合生成矩阵编码举例 2.3.4 极化译码最小单元译码串行抵消译码&#xff08;SC译码&#xff09;算法SCL译码算法 2.3.5 总结**Polar 码的优势****Polar 码的主要问题****Polar 码的应用前景** 2.3.6 **参考文档** 本博客为系列…

VirtualBox虚拟机转VM虚拟机

前言&#xff1a;部分靶机只适用于VirtualBox&#xff0c;VM打不开VirtualBox的文件&#xff0c;所以需要进行转换 前置条件&#xff1a;本机已经下载VM和VirtualBox 第一步&#xff1a;文件转换 找到VirtualBox.exe所在位置&#xff0c;启动cmd窗口 文件转换的命令&#xf…

DeepSeek API使用及私有化部署

DeepSeek 大模型概述 DeepSeek 是一款参数量高达 671B 的大语言模型&#xff0c;其模型参数文件规模庞大&#xff0c;即使是经过优化的版本&#xff0c;参数文件也有数十 GB。这种庞大的参数量赋予了 DeepSeek 强大的自然语言处理能力&#xff0c;使其能够处理复杂的语言任务&…