package com.atguigu.p2.bean; /** * @Description Customer 为实体对象,用来封装客户信息 * @author 高槐玉 * @date 2022年8月29日晚20:45 * */ 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; } }
customer封装客户信息代码(上)
CMUtility代码,这个是工具类,提供各类型的方法,比如读入键盘,判断Y或者N等等:
package com.atguigu.p2.util; import java.util.*; /** CMUtility工具类: 将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。 */ 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; } /** 从键盘读取一个长度不超过2位的整数,并将其作为方法的返回值。 如果用户不输入字符而直接回车,方法将以defaultValue 作为返回值。 */ 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') { 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; } }
这个是CustomerList代码,这个是内层方面,提供增删改查的代码逻辑:
package com.atguigu.p2.service; import com.atguigu.p2.bean.Customer; public class CustomerList { private Customer[] customers; private int total = 0; public CustomerList(int totalCustomer){ /** * 用来初始化customers数组的构造器 * */ customers = new Customer[totalCustomer]; } /** * @Description 将指定的客户添加到数组中 * @param customer * @return true:添加成功 false:添加失败 */ public boolean addCustomer(Customer customer){ if(total>=customers.length){ return false; } customers[total] = customer; total++; return true; } /** * @Description 修改指定位置的客户信息 * @param index * @param cust * @return true:修改成功 false:修改失败 */ public boolean replaceCustomer(int index,Customer cust){ if(index<0||index>total-1){ return false; } customers[index] = cust; return true; } /** * 删除指定索引上的客户 * @param index * @return true:删除成功 false:删除失败 */ public boolean deleteCustomer(int index){ if(index<0||index>total-1){ return false; } for(int i = index;i < total - 1;i++){ customers[i]=customers[i+1]; } //最后有数据的元素需要置空 customers[total - 1] = null; total--; return true; } /** * Description 获取所有的客户的信息 * @return */ public Customer[]getAllCustomers(){ Customer[] custs = new Customer[total]; for(int i = 0;i < custs.length;i++){ custs[i] = customers[i]; } return custs; } /*** * @Description 获取指定索引位置上的客户 * @param index * @return false:null */ public Customer getCustomer(int index){ if(index<0||index>total-1){ return null; } return customers[index]; } /** * @Description 获取存储的客户的数量 * @return */ public int getTotal(){ return total; } }
这是CustomerView代码,是与用户交互的页面:
package com.atguigu.p2.ui; import com.atguigu.p2.bean.Customer; import com.atguigu.p2.service.CustomerList; import com.atguigu.p2.util.CMUtility; public class CustomerView { private CustomerList customerList = new CustomerList(10); // public CustomerView(){ // Customer customer = new Customer("胡婧怡",'男',23,"18327870838","@qq.com235909"); // customerList.addCustomer(customer); // // } /** * 显示《客户管理页面》界面的方法 * @Description * @author 高槐玉 * @date 2022年8月30日晚上20点34分 */ 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; } break; } } } /** * 添加客户的操作 * @Description * @author 高槐玉 * @date 2022年8月30日晚上20点34分 */ private 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(30); System.out.println("邮箱"); String email = CMUtility.readString(30); Customer customer = new Customer(name, gender, age, phone, email); // Customer customer = new Customer("胡婧怡",'男',23,"18327870838","@qq.com235909"); boolean isSuccess = customerList.addCustomer(customer); if(isSuccess){ System.out.println("------------------------------------添加成功!----------------------------"); }else{ System.out.println("------------------------------------客户目录已满,添加失败!----------------------------"); } } /** * 修改客户的操作 * @Description * @author 高槐玉 * @date 2022年8月30日晚上20点34分 */ private void modifyCustomer(){ System.out.println("------------------------------------客户列表----------------------------"); for(;;){ System.out.println("请选择待修改的客户编号(-1退出)"); int number = CMUtility.readInt(); int hjy = customerList.getTotal(); if(number==-1){ break; }else if(number<1 || number>hjy){ System.out.println("无法找到该客户"); }else{ Customer cust = customerList.getCustomer(number-1); 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(13,cust.getPhone()); System.out.print("邮箱(" + cust.getEmail() + "):"); String email = CMUtility.readString(30,cust.getEmail()); Customer newcust = new Customer(name,gender,age,phone,email); customerList.replaceCustomer(number-1,newcust); } } } /** * 删除客户的操作 * @Description * @author 高槐玉 * @date 2022年8月30日晚上20点34分 */ private void deleteCustomer(){ System.out.println("选择要删除的客户编号:"); int number = CMUtility.readInt(); boolean isDelete = customerList.deleteCustomer(number-1); if(isDelete){ System.out.println("删除成功!"); }else { System.out.println("修改失败!3"); } } /** * 显示客户列表的操作 * @Description * @author 高槐玉 * @date 2022年8月30日晚上20点34分 */ private void listAllCustomers(){ System.out.println("------------------------------------客户列表----------------------------"); int ghy = customerList.getTotal(); if(ghy == 0){ System.out.println("没有客户记录!"); }else { System.out.println("编号\t姓名\t\t性别\t\t年龄\t\t电话\t\t\t\t邮箱"); Customer[] hjy = customerList.getAllCustomers(); for(int i = 0;i< hjy.length;i++){ Customer hjy2 = hjy[i]; System.out.println((i+1) + "\t" + hjy2.getName() + "\t\t" + hjy2.getGender() + "\t\t" +hjy2.getAge() + "\t\t" +hjy2.getPhone()+"\t\t\t"+hjy2.getEmail()); } } System.out.println("------------------------------------客户列表完成!----------------------------"); } public static void main(String[] args){ CustomerView view = new CustomerView(); view.enterMainMenu(); } }
标签:return,String,int,改查,System,训练项目,增删,public,out From: https://www.cnblogs.com/gaohuaiyu/p/16650088.html