目录
1.CMUtility工具类
2.客户类:Customer
3.客户信息管理类:CustomerList
4.CustomerView为主模块
二、程序的运行结果展示
1.添加客户
2.修改客户
3.删除客户
4.显示客户
5.退出
1.CMUtility工具类
提供系统的输入方法,输入的数据均满足要求即可实现功能
package com.ljj.p2.util;
import java.util.*;
public class CMUtility
{
private static Scanner scanner = new Scanner(System.in);
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);
}
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)
{
System.out.print("数字输入错误,请重新输入:");
}
}
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);
break;
}
catch(NumberFormatException e)
{
System.out.print("数字输入错误,请重新输入:");
}
}
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.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;
}
}
2.客户类:Customer
包含客户信息:客户姓名、性别、年龄、电话、邮箱
package com.ljj.p2.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 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()
{
}
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;
}
}
3.客户信息管理类:CustomerList
提供客户对象的数组以及客户对象的数量的属性total,还提供了将指定的客户添加到数组中,修改指定索引位置的客户信息,删除指定索引位置上的客户,获取所有的客户信息,获取指定索引位置上的客户,获取存储客户的数量等功能
package com.ljj.p2.service;
import com.ljj.p2.bean.Customer;
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;
total++;
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 || index >= total)
{
return false;
}
for(int i = index;i=total)
{
return null;
}
return customers[index];
}
public int getTotal()
{
return total;
}
}
4.CustomerView为主模块
负责菜单的显示和处理用户操作
package com.ljj.p2.ui;
import com.ljj.p2.bean.Customer;
import com.ljj.p2.service.CustomerList;
import com.ljj.p2.util.CMUtility;
public class CustomerView
{
private CustomerList customerList = new CustomerList(10);
public CustomerView()
{
Customer customer = new Customer("xxs",'男',22,"12345677890","xxs@qq.com");
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.print(" 请选择(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.out.println("确认是否退出(Y/N):");
char isExit = CMUtility.readConfirmSelection();
if(isExit == 'Y')
{
isFlag = false;
}
}
}
}
private void addNewCustomer()
{
//System.out.println("添加客户操作");
System.out.println("--------------添加客户-----------------");
System.out.print("姓名:");
String name = CMUtility.readString(10);
System.out.print("性别:");
char gender = CMUtility.readChar();
System.out.print("年龄:");
int age = CMUtility.readInt();
System.out.print("电话:");
String phone = CMUtility.readString(15);
System.out.print("邮箱:");
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("---------客户目录已满,添加失败----------");
}
}
private void modifyCustomer()
{
//System.out.println("修改客户操作");
System.out.println("--------------修改客户-------------");
Customer cust;
int number;
for(;;)
{
System.out.print("请选择待修改的客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1)
{
return;
}
cust = customerList.getCustomer(number - 1);
if(cust == null)
{
System.out.println("无法找到指定客户!");
}
else
{
break;
}
}
//修改客户信息
System.out.print("姓名("+cust.getName()+"):");
String name = CMUtility.readString(10, cust.getName());
System.out.print("性别("+cust.getGender()+"):");
char gender = CMUtility.readChar(cust.getGender());
System.out.print("年龄("+cust.getAge()+"):");
int age = CMUtility.readInt(cust.getAge());
System.out.print("电话("+cust.getPhone()+"):");
String phone = CMUtility.readString(15, cust.getPhone());
System.out.print("邮S箱("+cust.getEmail()+"):");
String email = CMUtility.readString(30, cust.getEmail());
Customer newCust = new Customer(name, gender, age, phone, email);
boolean isRepalaced = customerList.replaceCustomer(number-1, newCust);
if(isRepalaced)
{
System.out.println("--------------修改完成----------------");
}
else
{
System.out.println("--------------修改失败----------------");
}
}
private void deleteCustomer()
{
// System.out.println("删除客户操作");
System.out.println("-------------- 删除客户---------------");
int number;
for(;;)
{
System.out.print("请选择删除客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1)
{
return ;
}
Customer customer = customerList.getCustomer(number-1);
if(customer == null)
{
System.out.println("无法找到指定客户!");
}
else
{
break;
}
}
//找到了指定的客户
System.out.print("确认是否删除(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;
}
}
private void listAllCustomers()
{
//System.out.println("显示客户列表操作");
System.out.println("--------------客户列表-----------------");
int total = customerList.getTotal();
if(total == 0)
{
System.out.println("没有客户记录!");
}
else
{
System.out.println("编号t姓名t性别t年龄t电话tt邮箱");
Customer[] custs = customerList.getAllCustomers();
for(int i = 0;i
二、程序的运行结果展示
1.添加客户
2.修改客户
3.删除客户
4.显示客户
5.退出
提供系统的输入方法,输入的数据均满足要求即可实现功能
包含客户信息:客户姓名、性别、年龄、电话、邮箱
package com.ljj.p2.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 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()
{
}
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;
}
}
3.客户信息管理类:CustomerList
提供客户对象的数组以及客户对象的数量的属性total,还提供了将指定的客户添加到数组中,修改指定索引位置的客户信息,删除指定索引位置上的客户,获取所有的客户信息,获取指定索引位置上的客户,获取存储客户的数量等功能
package com.ljj.p2.service;
import com.ljj.p2.bean.Customer;
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;
total++;
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 || index >= total)
{
return false;
}
for(int i = index;i=total)
{
return null;
}
return customers[index];
}
public int getTotal()
{
return total;
}
}
4.CustomerView为主模块
负责菜单的显示和处理用户操作
package com.ljj.p2.ui;
import com.ljj.p2.bean.Customer;
import com.ljj.p2.service.CustomerList;
import com.ljj.p2.util.CMUtility;
public class CustomerView
{
private CustomerList customerList = new CustomerList(10);
public CustomerView()
{
Customer customer = new Customer("xxs",'男',22,"12345677890","xxs@qq.com");
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.print(" 请选择(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.out.println("确认是否退出(Y/N):");
char isExit = CMUtility.readConfirmSelection();
if(isExit == 'Y')
{
isFlag = false;
}
}
}
}
private void addNewCustomer()
{
//System.out.println("添加客户操作");
System.out.println("--------------添加客户-----------------");
System.out.print("姓名:");
String name = CMUtility.readString(10);
System.out.print("性别:");
char gender = CMUtility.readChar();
System.out.print("年龄:");
int age = CMUtility.readInt();
System.out.print("电话:");
String phone = CMUtility.readString(15);
System.out.print("邮箱:");
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("---------客户目录已满,添加失败----------");
}
}
private void modifyCustomer()
{
//System.out.println("修改客户操作");
System.out.println("--------------修改客户-------------");
Customer cust;
int number;
for(;;)
{
System.out.print("请选择待修改的客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1)
{
return;
}
cust = customerList.getCustomer(number - 1);
if(cust == null)
{
System.out.println("无法找到指定客户!");
}
else
{
break;
}
}
//修改客户信息
System.out.print("姓名("+cust.getName()+"):");
String name = CMUtility.readString(10, cust.getName());
System.out.print("性别("+cust.getGender()+"):");
char gender = CMUtility.readChar(cust.getGender());
System.out.print("年龄("+cust.getAge()+"):");
int age = CMUtility.readInt(cust.getAge());
System.out.print("电话("+cust.getPhone()+"):");
String phone = CMUtility.readString(15, cust.getPhone());
System.out.print("邮S箱("+cust.getEmail()+"):");
String email = CMUtility.readString(30, cust.getEmail());
Customer newCust = new Customer(name, gender, age, phone, email);
boolean isRepalaced = customerList.replaceCustomer(number-1, newCust);
if(isRepalaced)
{
System.out.println("--------------修改完成----------------");
}
else
{
System.out.println("--------------修改失败----------------");
}
}
private void deleteCustomer()
{
// System.out.println("删除客户操作");
System.out.println("-------------- 删除客户---------------");
int number;
for(;;)
{
System.out.print("请选择删除客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1)
{
return ;
}
Customer customer = customerList.getCustomer(number-1);
if(customer == null)
{
System.out.println("无法找到指定客户!");
}
else
{
break;
}
}
//找到了指定的客户
System.out.print("确认是否删除(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;
}
}
private void listAllCustomers()
{
//System.out.println("显示客户列表操作");
System.out.println("--------------客户列表-----------------");
int total = customerList.getTotal();
if(total == 0)
{
System.out.println("没有客户记录!");
}
else
{
System.out.println("编号t姓名t性别t年龄t电话tt邮箱");
Customer[] custs = customerList.getAllCustomers();
for(int i = 0;i
二、程序的运行结果展示
1.添加客户
2.修改客户
3.删除客户
4.显示客户
5.退出
提供客户对象的数组以及客户对象的数量的属性total,还提供了将指定的客户添加到数组中,修改指定索引位置的客户信息,删除指定索引位置上的客户,获取所有的客户信息,获取指定索引位置上的客户,获取存储客户的数量等功能
负责菜单的显示和处理用户操作
package com.ljj.p2.ui;
import com.ljj.p2.bean.Customer;
import com.ljj.p2.service.CustomerList;
import com.ljj.p2.util.CMUtility;
public class CustomerView
{
private CustomerList customerList = new CustomerList(10);
public CustomerView()
{
Customer customer = new Customer("xxs",'男',22,"12345677890","xxs@qq.com");
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.print(" 请选择(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.out.println("确认是否退出(Y/N):");
char isExit = CMUtility.readConfirmSelection();
if(isExit == 'Y')
{
isFlag = false;
}
}
}
}
private void addNewCustomer()
{
//System.out.println("添加客户操作");
System.out.println("--------------添加客户-----------------");
System.out.print("姓名:");
String name = CMUtility.readString(10);
System.out.print("性别:");
char gender = CMUtility.readChar();
System.out.print("年龄:");
int age = CMUtility.readInt();
System.out.print("电话:");
String phone = CMUtility.readString(15);
System.out.print("邮箱:");
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("---------客户目录已满,添加失败----------");
}
}
private void modifyCustomer()
{
//System.out.println("修改客户操作");
System.out.println("--------------修改客户-------------");
Customer cust;
int number;
for(;;)
{
System.out.print("请选择待修改的客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1)
{
return;
}
cust = customerList.getCustomer(number - 1);
if(cust == null)
{
System.out.println("无法找到指定客户!");
}
else
{
break;
}
}
//修改客户信息
System.out.print("姓名("+cust.getName()+"):");
String name = CMUtility.readString(10, cust.getName());
System.out.print("性别("+cust.getGender()+"):");
char gender = CMUtility.readChar(cust.getGender());
System.out.print("年龄("+cust.getAge()+"):");
int age = CMUtility.readInt(cust.getAge());
System.out.print("电话("+cust.getPhone()+"):");
String phone = CMUtility.readString(15, cust.getPhone());
System.out.print("邮S箱("+cust.getEmail()+"):");
String email = CMUtility.readString(30, cust.getEmail());
Customer newCust = new Customer(name, gender, age, phone, email);
boolean isRepalaced = customerList.replaceCustomer(number-1, newCust);
if(isRepalaced)
{
System.out.println("--------------修改完成----------------");
}
else
{
System.out.println("--------------修改失败----------------");
}
}
private void deleteCustomer()
{
// System.out.println("删除客户操作");
System.out.println("-------------- 删除客户---------------");
int number;
for(;;)
{
System.out.print("请选择删除客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1)
{
return ;
}
Customer customer = customerList.getCustomer(number-1);
if(customer == null)
{
System.out.println("无法找到指定客户!");
}
else
{
break;
}
}
//找到了指定的客户
System.out.print("确认是否删除(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;
}
}
private void listAllCustomers()
{
//System.out.println("显示客户列表操作");
System.out.println("--------------客户列表-----------------");
int total = customerList.getTotal();
if(total == 0)
{
System.out.println("没有客户记录!");
}
else
{
System.out.println("编号t姓名t性别t年龄t电话tt邮箱");
Customer[] custs = customerList.getAllCustomers();
for(int i = 0;i
二、程序的运行结果展示
1.添加客户
2.修改客户
3.删除客户
4.显示客户
5.退出



