目录
一 .概述
二.需求说明
三.设计结构
四.步骤
1.Customer为实体对象,用来封装客户信息
(1)实用小技巧
2.CustomerList
3.CustomerView为主模块
四.获取完整代码
一 .概述
该项目,是对面向对象的熟悉运用,主要涉及知识点有:
1·类结构的使用:属性、方法及构造器
2·对象的创建与使用 (String的各种部分方法的运用)
3·类的封装性 声明和使用数组 数组的插入、删除和替换
4·关键字的使用:this
二.需求说明
模拟实现基于文本界面的《客户信息管理软件》。 该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。 项目采用分级菜单方式。主菜单如下:
-----------------客户信息管理软件-----------------
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5):_
每个客户的信息被保存在Customer对象中。 以一个Customer类型的数组来记录当前所有的客户。 每次“添加客户”(菜单1)后,客户(Customer)对象被添加到数组中。 每次“修改客户”(菜单2)后,修改后的客户(Customer)对象替换数组中原对象。 每次“删除客户”(菜单3)后,客户(Customer)对象被从数组中清除。 执行“客户列表 ”(菜单4)时,将列出数组中所有客户的信息。
三.设计结构
该软件由以下三个模块组成:
CustomerView为主模块,负责菜单的显示和处理用户操作
CustomerList为Customer对象的管理模块,内部用数组管理一组Customer对象,并提供相应的添加、修改、删除和遍历方法,供CustomerView调用
Customer为实体对象,用来封装客户信息
四.步骤
1.Customer为实体对象,用来封装客户信息
该类是用来封装客户信息(性别name,性别sex,年龄age,电话号码phoneNumber,邮箱mail)
public class Customer {
private String name;
private String sex;
private int age;
private String phoneNumber;
private String mail;
public Customer() {
}
public Customer(String name, String sex, int age, String phoneNumber, String mail) {
this.name = name;
this.sex = sex;
this.age = age;
this.phoneNumber = phoneNumber;
this.mail = mail;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
}
(1)实用小技巧
快捷创建类的构造方法(空方法和带参数)和private关键字所提供的get()/set()方法。
构造方法(空方法和带参数)
单击鼠标右键点击Generrate,其中包含构造方法和get()/set()方法的快捷创建
Constructor:创建带参数的构造方法,按下shift键,鼠标点击name和mail就可以把所有属性包含并创建有参构造方法,同理get()/set()也是一样的创建。
2.CustomerList
该类中,则是各个功能的方法实现,供CustomereView主模块的调用
import java.util.ArrayList;
import java.util.Scanner;
public class CustomerList {
//添加客户方法
public static void addUser(ArrayList array){
System.out.println("---------------------添加客户---------------------");
Scanner sc = new Scanner(System.in);
System.out.println("请输入客户姓名:");
String name = CMUtility.readString(4).toString();
System.out.println("请输入客户性别:");
String sex = CMUtility.readString(4);
System.out.println("请输入客户年龄:" );
int age = CMUtility.readInt(4);
System.out.println("请输入客户电话号码:");
String phoneNumber = CMUtility.readString(15);
System.out.println("请输入客户邮箱:");
String mail = CMUtility.readString(30);
Customer cus = new Customer(name,sex,age,phoneNumber,mail);
array.add(cus);
System.out.println("---------------------添加完成---------------------");
}
//修改客户方法
public static void changeUser(ArrayList array){
System.out.println("---------------------修改客户---------------------");
Scanner sc = new Scanner(System.in);
boolean flag=true;
while(flag) {
System.out.print("请选择待修改客户编号(-1退出):");
int index = CMUtility.readInt();
if (array.size() == 0||index>array.size()) {
System.out.println("没有该客户信息!");
//flag=false;
return;
}
Customer cus = array.get(index - 1);//原客户对象在数组集合中的下标。
if ((index-1)!= -1) {
System.out.println("姓名(" + cus.getName() + "):");
String name =CMUtility.readString(4, cus.getName());
name=Kong(name);
System.out.println("性别("+ cus.getSex()+"):");
String sex =CMUtility.readString(4,cus.getSex());
sex=Kong(sex);
System.out.println("年龄("+ cus.getAge()+"):");
int age =CMUtility.readInt(cus.getAge());
age=Integer.parseInt(Kong(age+""));
System.out.println("电话("+ cus.getPhoneNumber()+"):");
String phoneNumber =CMUtility.readString(15, cus.getPhoneNumber());
phoneNumber=Kong(phoneNumber);
System.out.println("邮箱("+ cus.getMail()+"):");
String mail = CMUtility.readString(15, cus.getMail());
mail=Kong(mail);
Customer cus1 = new Customer();
cus1.setName(name);
cus1.setSex(sex);
cus1.setAge(age);
cus1.setPhoneNumber(phoneNumber);
cus1.setMail(mail);
for (int i = 0; i array){
System.out.println("---------------------删除客户---------------------");
Scanner sc = new Scanner(System.in);
boolean flag=true;
System.out.println("请先查看客户列表,确认待删除客户编号!");
while (flag){
System.out.println("请选择待删除客户编号(-1退出):");
int index = CMUtility.readInt();
for (int i = 0; i array){
System.out.println("---------------------------客户列表---------------------------");
System.out.println("编号t姓名tt性别t年龄t电话ttt邮箱n");
for (int i = 0; i
其中有一个Kong()方法是优化软件功能,除bug写的,为了解决修改客户信息时,输入空格会将原信息所替换(因为空格也属于字符,所以会替换)
public static String Kong(String s){
boolean Flag=true;
while (Flag){
if (s.trim().isEmpty()) {
System.out.println("请重新输入");
s=CMUtility.readKeyBoard(20,false);
}else {
Flag=false;
}
}
return s;
}
主要讲一下修改客户的功能,通过调用Kong()方法,若是输入为空格就会使方法中的while无限循环,重新输入修改信息,一直输入正确才会退出Kong()方法,然后将值赋给所对应的属性。
public static void changeUser(ArrayListarray){ System.out.println("---------------------修改客户---------------------"); Scanner sc = new Scanner(System.in); boolean flag=true; while(flag) { System.out.print("请选择待修改客户编号(-1退出):"); int index = CMUtility.readInt(); if (array.size() == 0||index>array.size()) { System.out.println("没有该客户信息!"); //flag=false; return; } Customer cus = array.get(index - 1);//原客户对象在数组集合中的下标。 if ((index-1)!= -1) { System.out.println("姓名(" + cus.getName() + "):"); String name =CMUtility.readString(4, cus.getName()); name=Kong(name); System.out.println("性别("+ cus.getSex()+"):"); String sex =CMUtility.readString(4,cus.getSex()); sex=Kong(sex); System.out.println("年龄("+ cus.getAge()+"):"); int age =CMUtility.readInt(cus.getAge()); age=Integer.parseInt(Kong(age+"")); //这里Integet.parseInt()和age+"",一个是转换成整型,另一个是转换成字符串类型。 System.out.println("电话("+ cus.getPhoneNumber()+"):"); String phoneNumber =CMUtility.readString(15, cus.getPhoneNumber()); phoneNumber=Kong(phoneNumber); System.out.println("邮箱("+ cus.getMail()+"):"); String mail = CMUtility.readString(15, cus.getMail()); mail=Kong(mail); Customer cus1 = new Customer(); cus1.setName(name); cus1.setSex(sex); cus1.setAge(age); cus1.setPhoneNumber(phoneNumber); cus1.setMail(mail); for (int i = 0; i
3.CustomerView为主模块
该类负责菜单的显示和处理用户操作,调用各种方法以及创建ArrayList集合,其中泛型则为Customer类的对象。用到了while循环以及switch语句。
ArrayList的构造方法为:
public ArrayList
import java.util.ArrayList;
import java.util.Scanner;
public class CustomerView {
public static void main(String[] args) {
ArrayList array = new ArrayList<>();
boolean loopFlag = true;
while (loopFlag){
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 c = CMUtility.readMenuSelection();
switch (c){
case '1':CustomerList.addUser(array);
break;
case '2':
CustomerList.changeUser(array);
break;
case '3':
CustomerList.deleteUser(array);
break;
case '4':
CustomerList.findUser(array);
break;
case '5':
System.out.print("确认是否退出(Y/N):");
char yn = CMUtility.readConfirmSelection();
if (yn == 'Y')
loopFlag = false;
break;
}
}
}
}
四.获取完整代码
百度网盘
链接:https://pan.baidu.com/s/1PTJYAuuxih_1m2d1JRQqpQ
提取码:1234



