1.分类
bean:负责数据处理和存储
Customer
controller:负责控制
CustomerList
util:工具包
CMUtility
view:可视化
CustomerView
2.每个代码如下
Customer
package bean;
/**
* 负责数据处理、存储
* @create: 2022-06-12 15:28
*/
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 void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setGender(char gender) {
this.gender = gender;
}
public char getGender() {
return gender;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPhone() {
return phone;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
}
CustomerList
package controller;
import bean.Customer;
/**
* 负责控制
* @create: 2022-06-12 15:29
*/
public class CustomerList {
private Customer[] customers;
private int total=0;
/*
* 用来初始化数组的构造器
* totalCustomer:数组长度
* */
public CustomerList(int totalCustomer){
customers=new Customer[totalCustomer];
}
//方法
/**
*添加客户
* @param customer
* @return
*/
public boolean addCustomer(Customer customer){
if(total>=customers.length){
return false;
}
customers[total]=customer;
total++;
return true;
}
/**
* 修改客户
* @param index
* @param cust
* @return
*/
public boolean replaceCustomer(int index,Customer cust){
if(index<0||index>=total){
return false;
}else{
customers[index]=cust;
return true;
}
}
/**
*删除指定索引位置上的顾客
* @param index
* @return
*/
public boolean deleteCustomer(int index){
if(index<0||index>=total){
return false;
}else{
for(int i=index;i<total-1;i++){
customers[i]=customers[i+1];
}
customers[total-1]=null;
total--;
return true;
}
}
/**
* 获取所有的客户信息
* @return
*/
public Customer[] getAllCustomers() {
Customer[] custs =new Customer[total];
for(int i=0;i<total;i++){
custs[i]=customers[i];
}
return custs;
}
/**
* 获取指定位置上的客户
* @param index
* @return
*/
public Customer getCustomer(int index){
if(index<0||index>=total){
return null;
}
return customers[index];
}
/**
* 获取存储客户的数量
* @return
*/
public int getTotal(){
return total;
}
}
CMUtility
package util;
import java.util.*;
/**
* 工具类
* 将不同得功能封装为方法,就可以直接通过方法使用它的功能,而无需考虑具体的功能实现细节。
* @create: 2022-06-12 15:28
*/
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;
}
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'||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;
}
}
CustomerView
package view;
import bean.Account;
import bean.Customer;
import controller.CustomerList;
import util.CMUtility;
/**
* 负责视图
* @author:张帅宝
* @create: 2022-06-12 15:28
*/
public class CustomerView {
private CustomerList customerList=new CustomerList(10);
/**
* 显示客户信息管理软件界面的方法
*/
public void enterMainMenu(){
boolean isFlag=true;
while(isFlag) {
System.out.println("——————————————————————客户信息管理软件——————————————————————");
System.out.println(" 1添加客户");
System.out.println(" 2修改客户");
System.out.println(" 3删除客户");
System.out.println(" 4客户列表");
System.out.println(" 5退出");
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':
listAllCustomer();
break;
case '5':
System.out.println("是否确定退出y/n");
char isExit =CMUtility.readConfirmSelection();
if(isExit=='y'||isExit=='Y'){
isFlag=false;
}
// break;
}
}
}
/**
* 添加客户的操作
*/
public void addNewCustomer(){
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(13);
System.out.print("邮箱:");
String email=CMUtility.readString(30);
//将数据封装到一个对象中
Customer customer =new Customer(name,gender,age,phone,email);
boolean isSuccess=customerList.addCustomer(customer);
if(isSuccess==true){
System.out.println("——————————————————————添加成功——————————————————————");
}else{
System.out.println("————————————————————————失败——————————————————————");
}
}
/**
* 修改客户的操作
*/
public void modifyCustomer(){
System.out.println("——————————————————————修改客户——————————————————————");
Customer cust =new Customer();
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.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==true){
System.out.println("——————————————————————修改完成——————————————————————");
}else{
System.out.println("——————————————————————修改失败——————————————————————");
}
}
/**
* 删除客户的操作
*/
public void deleteCustomer(){
System.out.println("——————————————————————删除客户——————————————————————");
int number;
for(;;) {
System.out.println("请选择你删除的客户编号(-1退出:)");
number = CMUtility.readInt();
if (number == -1) {
return;
}
Customer customer =customerList.getCustomer(number-1);
if(customer==null){
System.out.println("——————————————————————无法找到指定客户——————————————————————");
}else{
break;
}
}
System.out.println("是否确认删除y/n");
char isDelat=CMUtility.readConfirmSelection();
if(isDelat=='Y'||isDelat=='y'){
customerList.deleteCustomer(number-1);
}else{
return;
}
}
/**
* 显示客户列表的操作
*/
public void listAllCustomer(){
System.out.println("——————————————————————客户列表——————————————————————");
int total =customerList.getTotal();
if(total==0){
System.out.println("没有客户");
}else{
System.out.println("编号\t姓名\t\t性别\t年龄\t电话\t\t\t邮箱");
Customer[] custs=customerList.getAllCustomers();
for(int i=0;i<total;i++){
System.out.println((i+1)+"\t"+custs[i].getName()
+"\t"+custs[i].getGender()+"\t"+custs[i].getAge()
+"\t"+custs[i].getPhone()+"\t"+custs[i].getEmail());
}
}
System.out.println("——————————————————————客户列表完成——————————————————————");
}
public static void main(String[] args) {
CustomerView view=new CustomerView();
view.enterMainMenu();
}
}