1.创建基本的Customer类,主要是存放用户的姓名,年龄,性别等,但是要注意的是要对这些属性进封装(比较简单)
package com.atwanyan.bean;
public class Customer {
private String name;
private char gender;
private int age;
private String phone;
private String email;
public String getName() {
return name;
}
public Customer(String name,char gender, int age, String phone, String email) {
super();
this.name = name;
this.gender = gender;
this.age = age;
this.phone = phone;
this.email = email;
}
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 Customer() {
super();
}
}
2.创建工具类CMUtility,主要用于对从键盘得到的数据进行限制,
readKeyBoard(limit,boolean)函数,可以限制从键盘得到数据的长度(此函数得到数据是String类型),charAt()函数用于返回得到的数据
package com.atwanyan.util;
import java.util.*;
import org.omg.CORBA.PUBLIC_MEMBER;
// CMUtility工具类
// 将不同的功能封装为方法
public class CMUtility {
private static Scanner scanner = new Scanner(System.in);
//功能选择
public static char readMenuSelection() {
char c;
for(; ; ) { //for(; ; ){} 表示无限循环
String string = readKeyBoard(1,false); //readKeyBoard函数,用于从键盘读取参数限制长度的一行内容
c = string.charAt(0); //charAt() 返回 指定索引 处的 char值
if(c != '1' && c != '2'
&&c != '3' && c != '4' && c != '5'
) {
System.out.println("选择错误,请重新输入:");
}else break;
}
return c;
}
//从键盘读取数字
public static char readChar() {
String str = readKeyBoard(1, false);
return str.charAt(0);
}
public static char readChar(char defaultValue) {
String str = readKeyBoard(1, true);
return (str.length() == 0) ? defaultValue : str.charAt(0);
}
public static int readInt() {
int n;
for(; ; ) {
String str = readKeyBoard(2,false);
try {
n = Integer.parseInt(str);
break;
}catch (NumberFormatException e) {
// TODO: handle exception
System.out.println("数字输入错误,请重新输入:");
}
}
return n;
}
public static int readInt(int defaultValue) {
int n;
for(; ; ) {
String str = readKeyBoard(2,true);
if(str.equals("")) {
return defaultValue;
}
try {
n = Integer.parseInt(str); // 将String类型转化为int
break;
}catch (NumberFormatException e) {
// TODO: handle exception
System.out.println("数字输入错误,请重新输入:");
}
}
return n;
}
public static String readString (int limit) {
return readKeyBoard(limit , false);
}
public static String readString (int limit,String defaultValue) {
String str = readKeyBoard(limit,true);
return str.equals("")? defaultValue : str;
}
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.println("选择错误,请重新的输入:");
}
}
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.println("输入长度(不大于"+limit+")错误,请重新输入");
continue;
}
break;
}
return line;
}
}
3.customerList类,
用于创建customer数组的对象(customers[total++] = customer;)
total统计客户人数
package com.atwanyan.service;
import com.atwanyan.bean.Customer;
public class CustomerList {
private Customer[] customers; //用来保存对象的数组
private int total ; //记录以保存客户对象的数量
//用构造器给数组赋值
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 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 || total < index) {
return false;
}
for (int i = index;i<total-1;i++) {
customers[index]=customers[index+1];
}
customers[total-1]=null;
total--;
return true;
}
public Customer[] getAllCustomer() {
Customer[] cust = new Customer[total];
for (int i = 0 ; i < total;i++) {
cust [i] = customers[i];
}
return cust;
}
public Customer getCustomer(int index) {
if(index > total || index < 0) {
return null;
}
return customers[index];
}
public int getTotal() {
return total;
}
}
4.customerView类,主要是编译运行后的显示
package com.atwanyan.ui;
import com.atwanyan.bean.Customer;
import com.atwanyan.service.CustomerList;
import com.atwanyan.util.CMUtility;
/**
*
* @author 顽岩
* @date 2021年8月5日
*
*/
public class CustomerView {
private CustomerList customerList = new CustomerList(10);
Customer customer = new Customer("顽岩",'男', 21, "18856", "@156565");
//把往customerList.addCustomer(customer)传对象放在构造器里
public CustomerView() {
customerList.addCustomer(customer); //往里面传对象
}
//显示客户信息管理系统的首页
public void enterMainMenu() {
boolean isFlag = true;
while(isFlag) {
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.println(" 请选择(1-5): ");
char menu = CMUtility.readMenuSelection();
switch (menu) {
case '1':
addNewCustomer();
break;
case '2':
modifyCustomer();
break;
case '3':
deleteCustomer();
break;
case '4':
listAllCustomers();
break;
case '5':
System.err.println("是否确认退出(Y/N):");
char isExit = CMUtility.readConfirmSelection();
if (isExit == 'Y') {
isFlag = false;
}
break;
}
}
}
//添加客户
public void addNewCustomer() {
System.out.println("--------------客户添加-----------");
System.out.println("姓名:");
String name = CMUtility.readString(10);
System.out.println("性别:");
char gender = CMUtility.readChar();
System.out.println("年龄: ");
int age = CMUtility.readInt();
System.out.println("电话: ");
String phone = CMUtility.readString(13);
System.out.println("邮箱: ");
String email = CMUtility.readString(30);
//将数据封装到对象中
Customer customer = new Customer(name,gender,age,phone,email);
boolean isSuccess = customerList.addCustomer(customer);
if (isSuccess) {
System.out.println("------------添加完成--------------");
} else {
System.out.println("------------客户目录已满,添加失败!--------------");
}
}
//修改客户
public void modifyCustomer() {
System.out.println("--------------修改客户-----------");
Customer cust;
int number;
for(;;) {
System.out.println("请选择待修改客户编号(-1退出)");
number = CMUtility.readInt();
if (number == -1) {
return ;
}
cust= customerList.getCustomer(number - 1);
if (cust == null) {
System.out.println("无法找到指定客户!");
}else {
break;
}
}
//修改客户信息
System.out.println("姓名("+cust.getName()+")");
String name = CMUtility.readString(10,cust.getName());
System.out.println("性别("+cust.getGender()+")");
char gender = CMUtility.readChar(cust.getGender());
System.out.println("年龄("+cust.getAge()+")");
int age = CMUtility.readInt(cust.getAge());
System.out.println("电话("+cust.getPhone()+")");
String phone = CMUtility.readString(13,cust.getPhone());
System.out.println("邮箱("+cust.getEmail()+")");
String email = CMUtility.readString(30,cust.getEmail());
Customer newCust= new Customer(name,gender,age,phone,email);
boolean isReplace = customerList.replaceCustomer(number - 1, newCust);
if (isReplace) {
System.out.println("------------修改完成--------------");
} else {
System.out.println("------------修改失败!--------------");
}
}
//删除客户
public void deleteCustomer() {
System.out.println("--------------删除客户-----------");
Customer cust;
int number;
for(;;) {
System.out.println("请选择待删除客户编号(-1退出)");
number = CMUtility.readInt();
if (number == -1) {
return ;
}
Customer custo = customerList.getCustomer(number - 1);
if (custo == null) {
System.out.println("无法找到指定客户!");
}else {
break;
}
}
//找到客户
System.out.println("确认是否删除(Y/N)");
char isDelete = CMUtility.readConfirmSelection();
if (isDelete == 'Y') {
boolean deleteSuccess = customerList.deleteCustomer(number-1);
if (deleteSuccess) {
System.out.println("------------删除完成--------------");
}else {
System.out.println("------------删除失败!--------------");
}
}else {
return;
}
}
//显示客户列表
public void listAllCustomers() {
System.out.println("------------客户列表--------------");
int total = customerList.getTotal();
if (total == 0) {
System.out.println("没有客户记录!");
}else {
System.err.println("编号\t姓名\t性别\t年龄\t电话\t邮箱\t");
Customer[] custs = customerList.getAllCustomer();
for (int i = 0;i < custs.length;i++) {
Customer cust = custs[i];
System.out.println((i+1)+'\t'+cust.getName()+
"\t"+cust.getGender()+"\t"+cust.getAge()+"\t"+
cust.getPhone()+"\t"+cust.getEmail()
);
}
}
System.out.println("------------客户列表完成--------------");
}
public static void main(String[] args) {
CustomerView customerView = new CustomerView();
customerView.enterMainMenu();
}
}
5.思维导图