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();}
}