Java类基础使用实践之客户信息管理软件
基础类Customer负责客户基本信息的存储和获取
package com.customer;
public class Customer {
private int id;
private String name;
private String sex;
private int age;
private String phone;
private String mail;
public Customer(){
}
public Customer(String name,String sex,int age,String phone,String mail){
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.phone = phone;
this.mail = mail;
}
public void showInfo(){
System.out.printf("%-3d%-5s%-3s%-3d%-15s%-20s",id,name,sex,age,phone,mail);
System.out.println();
}
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 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 getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
}
信息表类InfoTable负责用数组存储所有的客户,提供添加,删除,查找,信息展示方法
package com.customer;
public class InfoTable {
private Customer[] customers;
private int nowId;
private int pos;
private int length;
public InfoTable(){
customers = new Customer[100];
nowId = 1;
pos = 0;
length = 0;
}
public void printInfo(){
System.out.printf("%-49s\n","---------------------客户列表---------------------");
System.out.printf("%-3s%-5s%-3s%-3s%-15s%-20s\n","Id","Name","Sex","Age","Phone","Mail");
for(int i=0;i<length;++i){
customers[i].showInfo();
}
System.out.printf("%-49s\n","---------------------客户列表完成---------------------");
}
public void addCustomer(Customer newCustomer){
newCustomer.setId(nowId);
nowId += 1;
if (pos<100) customers[pos] = newCustomer;
else {
System.out.println("客户列表已满,请删除部分信息后使用");
return;
}
System.out.println("客户添加成功,编号Id为"+(nowId-1));
pos += 1;
length += 1;
}
public void deleteCustomerById(int id){
int i = 0;
boolean delete = false;
while (i<length){
if (customers[i].getId() == id){
customers[i] = null;
i += 1;
delete = true;
break;
}
i += 1;
}
while (i<length){
customers[i-1] = customers[i];
i += 1;
}
if (delete){
pos -= 1;
length -= 1;
System.out.println("删除id = "+id+"的顾客信息 成功");
return;
}
System.out.println("删除id = "+id+"的顾客信息 失败,信息中未包含该顾客信息或其他原因");
}
public Customer findCustomerById(int id){
for(int i=0;i<length;++i){
if(customers[i].getId() == id) return customers[i];
}
return null;
}
}
菜单类,负责控制基本的菜单逻辑
package com.customer;
import java.util.Scanner;
public class Menu {
private InfoTable infoTable;
public Menu(){
infoTable = new InfoTable();
}
public void MenuMain(){
while (true){
System.out.printf("--------------客户信息管理软件--------------\n");
System.out.println();
System.out.printf("%15d %-10s\n",1," 添 加 客 户");
System.out.printf("%15d %-10s\n",2," 修 改 客 户");
System.out.printf("%15d %-10s\n",3," 删 除 客 户");
System.out.printf("%15d %-10s\n",4," 客 户 列 表");
System.out.printf("%15d %-10s\n",5," 退 出");
System.out.println();
System.out.printf("%25s","请选择(1-5): ");
Scanner scanner = new Scanner(System.in);
int choose = scanner.nextInt();
switch (choose){
case 1:{
addCustomer();
break;
}
case 2:{
modifyCustomers();
}
case 3:{
deleteCustomers();
break;
}
case 4:{
showCustomers();
break;
}
case 5:{
System.out.println("客户信息管理软件已退出");
return;
}
default:{
System.out.println("请输入正确的指令编号 1-5");
}
}
System.out.println();
}
}
private void addCustomer(){
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println("请输入客户信息");
System.out.print("姓名");
String name = scanner.next();
System.out.print("性别");
String sex = scanner.next();
System.out.print("年龄");
int age = scanner.nextInt();
System.out.print("电话");
String phone = scanner.next();
System.out.print("邮箱");
String mail = scanner.next();
Customer newCustomer = new Customer(name,sex,age,phone,mail);
this.infoTable.addCustomer(newCustomer);
System.out.println("输入q 返回主界面, 其他任意键 继续添加...");
String check = scanner.next();
if (check.equals("q")) break;
}
}
private void showCustomers(){
Scanner scanner = new Scanner(System.in);
this.infoTable.printInfo();
System.out.println("输入任意键 返回主界面...");
scanner.next();
}
private void deleteCustomers(){
Scanner scanner = new Scanner(System.in);
this.infoTable.printInfo();
while (true){
System.out.print("输入需要删除的顾客的id: ");
int id = scanner.nextInt();
this.infoTable.deleteCustomerById(id);
this.infoTable.printInfo();
System.out.println("输入q 返回主界面, 其他任意键 继续删除...");
String check = scanner.next();
if (check.equals("q")) break;
}
}
private void modifyCustomers(){
Scanner scanner = new Scanner(System.in);
this.infoTable.printInfo();
while (true){
System.out.print("输入需要修改的顾客的id: ");
int id = scanner.nextInt();
Customer custom = this.infoTable.findCustomerById(id);
if (custom!=null){
System.out.print("姓名("+custom.getName()+"):");
String name = scanner.next();
custom.setName(name);
System.out.print("性别("+custom.getSex()+"):");
String sex = scanner.next();
custom.setSex(sex);
System.out.print("年龄("+custom.getAge()+"):");
int age = scanner.nextInt();
custom.setAge(age);
System.out.print("电话("+custom.getPhone()+"):");
String phone = scanner.next();
custom.setPhone(phone);
System.out.print("邮箱("+custom.getMail()+"):");
String mail = scanner.next();
custom.setMail(mail);
System.out.println("修改完毕");
}
else {
System.out.println("修改失败,未找到该Id的客户或其他原因");
}
this.infoTable.printInfo();
System.out.println("输入q 返回主界面, 其他任意键 继续修改...");
String check = scanner.next();
if (check.equals("q")) break;
}
}
}
主类SoftWare
package com.customer;
public class SoftWare {
public static void main(String[] args) {
Menu menu = new Menu();
menu.MenuMain();
}
}
运行结果
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 1
请输入客户信息
姓名小白
性别男
年龄25
电话54654521
邮箱1259454@qq.con
客户添加成功,编号Id为1
输入q 返回主界面, 其他任意键 继续添加...
d
请输入客户信息
姓名小白
性别女
年龄25
电话12313215
邮箱456asda@163.com
客户添加成功,编号Id为2
输入q 返回主界面, 其他任意键 继续添加...
d
请输入客户信息
姓名小宋
性别男
年龄28
电话13241654
邮箱dasdjal
客户添加成功,编号Id为3
输入q 返回主界面, 其他任意键 继续添加...
q
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 4
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
2 小白 女 25 12313215 456asda@163.com
3 小宋 男 28 13241654 dasdjal
输入任意键 返回主界面...
d
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 2
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
2 小白 女 25 12313215 456asda@163.com
3 小宋 男 28 13241654 dasdjal
输入需要修改的顾客的id: 2
姓名(小白):小黑
性别(女):女
年龄(25):25
电话(12313215):14444444
邮箱(小黑):123213@xml.com
修改完毕
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
2 小黑 女 25 14444444 123213@xml.com
3 小宋 男 28 13241654 dasdjal
输入q 返回主界面, 其他任意键 继续修改...
q
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
2 小黑 女 25 14444444 123213@xml.com
3 小宋 男 28 13241654 dasdjal
输入需要删除的顾客的id: 8
删除id = 8的顾客信息 失败,信息中未包含该顾客信息或其他原因
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
2 小黑 女 25 14444444 123213@xml.com
3 小宋 男 28 13241654 dasdjal
输入q 返回主界面, 其他任意键 继续删除...
q
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 3
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
2 小黑 女 25 14444444 123213@xml.com
3 小宋 男 28 13241654 dasdjal
输入需要删除的顾客的id: 2
删除id = 2的顾客信息 成功
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
3 小宋 男 28 13241654 dasdjal
输入q 返回主界面, 其他任意键 继续删除...
q
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 1
请输入客户信息
姓名小蓝
性别女
年龄30
电话132132
邮箱sdasdvcvc
客户添加成功,编号Id为4
输入q 返回主界面, 其他任意键 继续添加...
q
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 4
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
3 小宋 男 28 13241654 dasdjal
4 小蓝 女 30 132132 sdasdvcvc
输入任意键 返回主界面...
2
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 3
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
3 小宋 男 28 13241654 dasdjal
4 小蓝 女 30 132132 sdasdvcvc
输入需要删除的顾客的id: 3
删除id = 3的顾客信息 成功
Id Name SexAgePhone Mail
1 小白 男 25 54654521 1259454@qq.con
4 小蓝 女 30 132132 sdasdvcvc
输入q 返回主界面, 其他任意键 继续删除...
q
1 添 加 客 户
2 修 改 客 户
3 删 除 客 户
4 客 户 列 表
5 退 出
请选择(1-5): 5
客户信息管理软件已退出
Process finished with exit code 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本