前后台图例
分层
运行截图
CustomerView
package customer.view;
import customer.pojo.Customer;
import customer.service.CustomerService;
import customer.until.CMUtility;
import java.util.ArrayList;
import java.util.Scanner;
public class CustomerView {
private CustomerService customerService = new CustomerService();
Scanner scanner = new Scanner(System.in);
public void menu() {
boolean flag = true;
while (flag) {
show();
int k = scanner.nextInt();
switch (k) {
case 1: {
addNewCustomer();//添加客户
break;
}
case 2: {
modifyCustomer();//修改客户
break;
}
case 3: {
deleteCustomer();//删除客户
break;
}
case 4: {
listAllCustromer();//客户列表
break;
}
case 5: {
System.out.println("确定要退出吗?(y/n)");
if (scanner.next().equals("y")) {
flag = false;
break;
}
break; //退出
}
}
}
}
//删除客户
private void deleteCustomer() {
System.out.println("---------------------删除客户---------------------");
System.out.println("请选择要删除的客户id");
int id = scanner.nextInt();
ArrayList<Customer> list = customerService.getlist();
for (int index = 0; index < list.size(); index++) {
Customer data = list.get(index);
if (id == data.getId()) {
System.out.println("编号" + "\t" + "\t" + "姓名" + "\t\t" + "性别" + "\t\t" + "年龄" + "\t\t\t" + "手机号码" + "\t\t\t" + "电子邮箱");
System.out.println(data);
System.out.println("确定要删除吗?(y/n)");
String y = scanner.next();
if (y.equals("y")) {
System.out.println("删除成功");
customerService.remove(data);
}
}
}
}
//修改客户
private void modifyCustomer() {
System.out.println("请选择修改id");
int id = scanner.nextInt();
ArrayList<Customer> list = customerService.getlist();
for (int index = 0; index < list.size(); index++) {
Customer data = list.get(index);
if (id == data.getId()) {
System.out.println("编号" + "\t" + "\t" + "姓名" + "\t\t" + "性别" + "\t\t" + "年龄" + "\t\t\t" + "手机号码" + "\t\t\t" + "电子邮箱");
System.out.println(data);
System.out.println("确定要修改吗?(y/n)");
String y = scanner.next();
if (y.equals("y")) {
System.out.println("---------------------修改客户---------------------");
//id:并不是用户自己输入,后台自动生成的
System.out.print("姓名:");
String name = CMUtility.readString(4);
System.out.print("性别:");
String gender = CMUtility.readString(4);
System.out.print("年龄:");
int age = CMUtility.readInt();
System.out.print("电话:");
String phone = CMUtility.readString(15);
System.out.print("邮箱:");
String email = CMUtility.readString(15);
boolean result = customerService.repalce(id, name, gender, age, phone, email);
System.out.println("---------------------修改完成---------------------");
}
}
}
}
//添加用户
private void addNewCustomer() {
//收集客户录入数据,并且封装成Customer对象.
System.out.println("---------------------添加客户---------------------");
//id:并不是用户自己输入,后台自动生成的
System.out.print("姓名:");
String name = CMUtility.readString(4);
System.out.print("性别:");
String gender = CMUtility.readString(4);
System.out.print("年龄:");
int age = CMUtility.readInt();
System.out.print("电话:");
String phone = CMUtility.readString(15);
System.out.print("邮箱:");
String email = CMUtility.readString(15);
Customer cust = new Customer();
cust.setName(name);
cust.setGender(gender);
cust.setAge(age);
cust.setPhone(phone);
cust.setEmail(email);
//调用业务保存对象
customerService.save(cust);
System.out.println("---------------------添加完成---------------------");
}
//客户列表
private void listAllCustromer() {
System.out.println("编号" + "\t" + "\t" + "姓名" + "\t\t" + "性别" + "\t\t" + "年龄" + "\t\t\t" + "手机号码" + "\t\t\t" + "电子邮箱");
ArrayList<Customer> list = customerService.getlist();
for (Customer l : list) {
System.out.println(l);
}
}
private void show() {
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):");
}
public static void main(String[] args) {
CustomerView customerView = new CustomerView();
customerView.menu();
}
}
CustomerService
package customer.service;
import customer.dao.CustomerDao;
import customer.pojo.Customer;
import java.util.ArrayList;
public class CustomerService {
private CustomerDao customerDao = new CustomerDao();
//添加
public void save(Customer cust) {
customerDao.save(cust);
}
//客户列表
public ArrayList<Customer> getlist() {
return customerDao.findall();
}
//修改
public boolean repalce(int id, String name, String gender, int age, String phone, String email) {
return customerDao.replace(id, name, gender, age, phone, email);
}
//删除
public void remove(Customer data) {
customerDao.remove(data);
}
}
Customer
package customer.pojo;
public class Customer {
private int id; //编号
private String name; //客户姓名
private String gender; //性别
private int age; //年龄
private String phone; //电话号码
private String email; //电子邮箱
public Customer() {
}
public Customer(int id, String name, String gender, int age, String phone, String email) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.phone = phone;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String 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;
}
@Override
public String toString() {
return id +"\t\t"+ name +"\t\t"+ gender +"\t\t"+ age +"\t\t"+ phone +"\t\t"+ email;
}
}
CustomerDao
package customer.dao;
import customer.pojo.Customer;
import java.util.ArrayList;
public class CustomerDao {
private static ArrayList<Customer> list = new ArrayList<>();
static {
Customer customer1 = new Customer(1, "张三", "男", 21, "15166668888", "15666.@qq.com");
Customer customer2 = new Customer(2, "李四", "男", 26, "15111111111", "55555.@qq.com");
list.add(customer1);
list.add(customer2);
}
//客户列表
public ArrayList<Customer> findall() {
return list;
}
//添加
public void save(Customer cust) {
cust.setId(list.size() + 1);
list.add(cust);
}
//修改
public boolean replace(int id, String name, String gender, int age, String phone, String email) {
boolean flag = false;
ArrayList<Customer> Data = list;
for (int index = 0; index < Data.size(); index++) {
Customer customer = Data.get(index);
if (customer.getId() == id) {
customer.setName(name);
customer.setAge(age);
customer.setGender(gender);
customer.setEmail(email);
customer.setPhone(phone);
flag = true;
}
}
return flag;
}
//删除
public void remove(Customer data) {
list.remove(data);
}
}
CMUtility 工具类
package customer.until;
import java.util.*;
/**
* 写好的键盘输入类,其中提供了各种键盘输入的方法
*/
public class CMUtility {
private static Scanner scanner = new Scanner(System.in);
/**
* 菜单功能选择:
* 在其他类中如何调用:char x = CMUtility.readMenuSelection();
*/
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;
}
/*
* 读取一个字符时使用,如性别等
* 在其他类中如何调用:char x = CMUtility.readChar();
*/
public static char readChar() {
String str = readKeyBoard(1, false);
return str.charAt(0);
}
/*
* 修改字符时使用,如果不修改,参数是默认值
* 在其他类中如何调用:char x = CMUtility.readChar(传入字符);
*/
public static char readChar(char defaultValue) {
String str = readKeyBoard(1, true);
return (str.length() == 0) ? defaultValue : str.charAt(0);
}
/*
* 读取int数据时使用
* 在其他类中如何调用:int x = CMUtility.readInt();
*/
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;
}
/*
* 修改int时使用,如果不修改,参数是默认值
* 在其他类中如何调用:int x = CMUtility.readInt(传入数值);
*/
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;
}
/*
* 读取字符串时使用,参数是长度
* 调用方式:String str = CMUtility.readString(传入数值);
*/
public static String readString(int limit) {
return readKeyBoard(limit, false);
}
/*
* 修改字符串时使用,参数是长度和默认值
* 调用方式:String str = CMUtility.readString(传入长度,传入默认值);
*/
public static String readString(int limit, String defaultValue) {
String str = readKeyBoard(limit, true);
return str.equals("") ? defaultValue : str;
}
/*
* 退出时,调用
* 调用方式:char x = CMUtility.readConfirmSelection();
*/
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;
}
}