Java客户信息管理系统 Java实战之客户信息管理系统
丿今朝 人气:0想了解Java实战之客户信息管理系统的相关内容吗,丿今朝在本文为您仔细讲解Java客户信息管理系统的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java客户信息管理系统,java管理系统,下面大家一起来学习吧。
一、软件设计结构
- 对于初学者来说,弄清框架显得尤为重要
- 首先该软件有以下三种模块组成
二、MVC设计模式
模型层:Customer处理数据
控制层:CustomerList处理业务逻辑
视图层:CustomerView显示数据
以下三点建议结合代码理解
1.Customer为实体对象,用于封装客户信息
2.CustomerList为Customer对象的管理模块,内部用数组管理一组Customer对象,并提供相应的添加、修改、删除和遍历的方法,供CustomerView调用
3.CustomerView为主模块,负责菜单的显示和处理用户操作
四个类都在同一包下
三、Customer
package org.atjinzhao.customer; 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 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; } }
四、CustomerList
package org.atjinzhao.customer; public class CustomerList { private Customer[] customers;//客户列表 private int total = 0;//记录已保存顾客数量 //构造器 public CustomerList(int totalCustomer) { customers = new Customer[totalCustomer]; } //方法 /** * 添加客户 * return:true添加成功,false:添加失败 */ public boolean addCustomer(Customer customer){ if (total < customers.length) { customers[total] = customer; total++; return true; }else return false; } /** * 修改指定索引位置上的客户信息 * @param index * @param cust * @return true:修改成功 false修改失败 */ public boolean replaceCustomer(int index,Customer cust){ if (index < 0 || index >= total) { return false; }else{ customers[index] = cust; return true; } } /** * 删除指定索引位置上的客户 * @param index * @return true删除成功 false删除失败 */ public boolean deleteCustomer(int index){ if (index >= 0 && index < total) { for (int i = index; i < total - 1; i++) { customers[i] = customers[i+1]; } customers[--total] = null; return true; } return false; } /** * 获取所有客户信息 * @return 数组 */ public Customer[] getAllCustomers(){ //null的部分不返回 Customer[] custs = new Customer[total]; for (int i = 0; i < total; i++) { custs[i] = customers[i]; } return custs; } /** * 获取指定索引位置上的客户 */ public Customer getCustomer(int index){ if (index >= 0 && index < total) { return customers[index]; }else return null; } /** * 获取存储客户的数量 */ public int getTotal() { return total; } /** * 获取最大能储存客户的数量 */ public int getCustomer(){ return customers.length; } }
五、CustomerView
package org.atjinzhao.customer; public class CustomerView { private CustomerList customerList = new CustomerList(10); public CustomerView() { Customer cust = new Customer("李明",'男',19,"12349982563","lm@gmail.com"); customerList.addCustomer(cust); } 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.println(" 请选择(1-5): "); char selection = CMUtility.readMenuSelection(); switch (selection) { case '1': addNewCustomer(); break; case '2': modifyCustomer(); break; case '3': deleteCustomer(); break; case '4': listAllCustomers(); break; case '5': System.out.print("是否确认退出(Y/N):"); char isExit = CMUtility.readConfirmSelection(); if (isExit == 'Y') { isFlag = false; } } } } /** * 添加客户 */ 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){ System.out.println("-----------------添加成功-----------------"); }else{ System.out.println("---------------目录已满,添加失败---------------"); } } /** * 修改客户 */ public void modifyCustomer(){ System.out.println("-----------------修改客户-----------------"); Customer cust; int num; for (;;) { System.out.print("请输入要修改的客户序号(输入-1退出):"); num = CMUtility.readInt(); if (num == -1) { return; } cust = customerList.getCustomer(num - 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 tel = CMUtility.readString(11, cust.getPhone()); System.out.println("邮箱("+cust.getEmail()+"):"); String email = CMUtility.readString(15, cust.getEmail()); Customer newCust = new Customer(name,gender,age,tel,email); boolean isReplaced = customerList.replaceCustomer(num - 1, newCust); if (isReplaced) { System.out.println("-----------------修 改 成 功-----------------\t"); } else { System.out.println("-----------------修 改 失 败-----------------\t"); } } /** * 删除客户 */ public void deleteCustomer(){ System.out.println("-----------------删除客户-----------------"); Customer cust; int index; for (;;) { System.out.print("请输入要删除的客户序号(输入-1退出):"); index = CMUtility.readInt(); if (index == -1) { return; } cust = customerList.getCustomer(index - 1); if (cust == null) { System.out.println("无法找到客户!"); } else { break; } } System.out.print("是否确认删除(Y/N):"); char isDelete = CMUtility.readConfirmSelection(); if (isDelete == 'Y') { boolean deleteSuccess = customerList.deleteCustomer(index - 1); if (deleteSuccess) { System.out.println("-----------------删除成功-----------------"); } else { System.out.println("-----------------删除失败-----------------"); } }else{ return; } } /** * 显示客户列表的操作 */ public void listAllCustomers(){ System.out.println("-------------------客 户 列 表------------------\n"); int total = customerList.getTotal(); if (total == 0) { System.out.println("没有客户记录!"); }else { System.out.println("编号\t姓名\t性别\t年龄\t电话\t\t邮箱"); Customer[] custList = customerList.getAllCustomers(); for (int i = 0; i < total; i++) { System.out.println(i+1 + "\t" + custList[i].getName()+ "\t" + custList[i].getGender()+"\t" + custList[i].getAge()+ "\t" + custList[i].getPhone()+"\t" + custList[i].getEmail()+"\t"); } } System.out.println("-----------------客户列表完成-----------------\n"); } public static void main(String[] args) { CustomerView view = new CustomerView(); view.enterMainMenu(); } }
六、CMUtility
package org.atjinzhao.customer; import java.util.*; public class CMUtility { public static void main(String[] args) { //System.out.println(readMenuSelection()); } 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.println("选择错误,请重新输入:"); } 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; } /** *从键盘读取一个字符,并将其作为方法的返回值。 *如果用户不输入字符而回车,方法将以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的字符串,并将其作为方法的返回值。 * 如果用户不输入字符而直接回车,方法将以defaultVaue作为返回值。 */ 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.println("输入长度(不大于" + limit + ")错误,请重新输入“"); continue; } break; } return line; } }
加载全部内容