Java中的增删改查操作代码

Customer实体对象,封装客户信息:

package yonghuxinxi.p2.bean;

public class Customer {

private String name;

private char gender;

private int age;

private String phone;

private String email;

public Customer() {

//super();

}

public Customer(String name, char gender, int age, String phone, String email) {

super();

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;

}

}

CMUtility工具类:

package yonghuxinxi.p2.util;

import java.util.*;

public class CMUtility {

private static Scanner scanner = new Scanner(System.in);

/**

* 用于界面菜单的选择。该方法读取键盘,如果用户键入'1'~'5'中任意字符,则方法返回,返回值为用户键入字符

* @return

*/

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;

}

/**

* 从键盘中读取一个字符,并将其作为方法的返回值

* @return

*/

public static char readChar() {

String str = readKeyBoard(1,false);

return str.charAt(0);

}

/**

* 从键盘中读取一个字符,并将其作为方法的返回值。

* 如果用户不输入字符而直接回车,方法将以defaultValue作为返回值。

* @param defaultValue

* @return

*/

public static char readChar(char defaultValue) {

String str = readKeyBoard(1,true);

return (str.length() == 0 ? defaultValue : str.charAt(0));

}

/**

*从键盘读取一个长度不超过2为的整数,并将其作为方法的返回值。

* @return

*/

public static int readInt() {

int n;

for (;;) {

String str = readKeyBoard(2,false);

try {

n = Integer.parseInt(str);

break;

} catch (NumberFormatException e) {

System.out.println("数字输入错误,请重新输入:");

}

}

return n;

}

/**

* 从键盘读取一个长度不超过2为的整数,并将其作为方法的返回值。

* 如果用户不输入字符而直接回车,方法将以defaultValue作为返回值。

* @param defaultValue

* @return

*/

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.println("数字输入错误,请重新输入:");

}

}

return n;

}

/**

* 从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。

* @param limit

* @return

*/

public static String readString(int limit) {

return readKeyBoard(limit,false);

}

/**

* 从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值。

* 如果用户不输入字符而直接回车,方法将以defaultValue作为返回值。

* @param limit

* @param defaultValue

* @return

*/

public static String readString(int limit,String defaultValue) {

String str = readKeyBoard(limit,true);

return str.equals("")? defaultValue : str;

}

/**

* 用于确认选择输入。该方法从键盘读取'Y'或'N',并将其作为方法的返回值。

* @return

*/

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.println("选择错误,请重新输入");

}

}

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 + ")错误,请重新输入");

}

break;

}

return line;

}

}

CustomerList为Customer对象的管理模块。

内部用数组管理一组Customer对象,并提供相应的添加、修改、删除和遍历方法

供CustomerView调用:

package yonghuxinxi.p2.service;

import yonghuxinxi.p2.bean.Customer;

public class CustomerList {

private Customer[] customers;//用来保存客户对象的数组

private int total = 0;//记录已保存客户对象的数量

/**

* 用来初始化数组Customers的构造器

* @param totalCustomer指定数组的长度

*/

public CustomerList(int totalCustomer) {

customers = new Customer[totalCustomer];

}

/**

* 将指定客户添加到数组中

* @param customer

* @return true:添加成功;false:添加失败

*/

public boolean addCustomer(Customer customer) {

if(total >= customers.length) {

return false;

}

//customers[total] = customer;

//total++;

//或

customers[total++]= customer;

return true;

}

/**

* 修改指定位置索引信息

* @param index

* @param cust

* @return true:修改成功;false:修改失败

*/

public boolean replaceCustomer(int index,Customer cust) {

if(index < 0 || index >= total) {

return false;

}

customers[index] = cust;

return true;

}

/**

* 删除指定索引位置的客户

* @param index

* @return true:删除成功;false:删除失败

*/

public boolean deleteCustomer(int index) {

if(index < 0|| index >= total) {

return false;

}

for(int i = index;i < total - 1;i++) {

customers[i] = customers[i + 1];

}

//customers[total - 1] = null;

//tatal--;

//或

customers[--total] = null;

return true;

}

/**

* 获取所有的客户信息

* @return

*/

public Customer[] geAlltCustomers() {

//return customers;错误

Customer[] custs = new Customer[total];

for(int i = 0;i < total;i++) {

custs[i] = customers[i];

}

return custs;

}

/**

* 获取指定索引位置的客户

* @param index

* @return 如果找到了元素,则返回;如果没有找到,则返回null

*/

public Customer getCustomer(int index) {

if(index < 0 || index >= total) {

return null;

}

return customers[index];

}

/**

* 获取存储的客户的数量

* @return

*/

public int getTotal() {

return total;

//return customers.length错误

}

}

CustomerView为主模块,负责菜单的显示和处理用户操作:

package yonghuxinxi.p2.ui;

import yonghuxinxi.p2.bean.Customer;

import yonghuxinxi.p2.service.CustomerList;

import yonghuxinxi.p2.util.CMUtility;

/**

*/

public class CustomerView {

private CustomerList customerList = new CustomerList(10);

public CustomerView() {

Customer customer = new Customer("**", '男', 21, "1**36**07**", "@2*17****9*qq.com");

customerList.addCustomer(customer);

}

/**

* 显《客户信息管理软件》界面的方法

*/

public void enterMainMenu() {

boolean isFlag = true;

while(isFlag) {

System.out.println("\n-------客户信息管理软件------");

System.out.println("\n 1.添加客户");

System.out.println("\n 2.修改客户");

System.out.println("\n 3.删除客户");

System.out.println("\n 4.客户列表");

System.out.println("\n 5.退出\n");

System.out.print("\n 请选择(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("退出");

System.out.println("确认是否退出(Y/N):");

char isEixt = CMUtility.readConfirmSelection();

if(isEixt =='Y') {

isFlag = false;

}

//break;

}

}

}

/**

* 添加客户的操作

*/

private void addNewCustomer() {

//System.out.println("添加客户的操作");

System.out.println("--------添加客户-------");

System.out.println("姓名:");

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("-------添加完成------");

System.out.println("-------客户目录已满,添加失败-----");

}

}/**

* 修改客户的操作

*/

private void modifyCustomer() {

//System.out.println("修改客户的操作");

System.out.println("--------修改客户------");

Customer cust;

int number;

for(;;) {

System.out.print("请选择待修改客户编号(-1退出):");

number = CMUtility.readInt();

if(number == -1) {

return;

}

cust = customerList.getCustomer(number - 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 phone = CMUtility.readString(13, cust.getPhone());

System.out.println("邮箱(" + cust.getEmail() +"):");

String email = CMUtility.readString(30, cust.getEmail());

Customer newCust = new Customer(name, gender, age, phone, email);

boolean isRepalaced = customerList.replaceCustomer(number - 1, newCust);

if(isRepalaced) {

System.out.println("-------修改成功----");

}else {

System.out.println("-------修改失败----");

}

}/**

* 删除客户的操作

*/

private void deleteCustomer() {

//System.out.println("删除客户的操作");

System.out.println("-------删除客户-----");

int number;

for(;;) {

System.out.print("请选择待删除客户编号(-1退出):");

number = CMUtility.readInt();

if(number == -1) {

return;

}

Customer customer = customerList.getCustomer(number-1);

if(customer == null) {

System.out.println("无法找到指定客户!");

}else {

break;

}

}

//找到了指定的客户

System.out.println("是否要确认删除(Y/N):");

char isDelete = CMUtility.readConfirmSelection();

if(isDelete == 'Y') {

boolean deleteSuccess = customerList.deleteCustomer(number - 1);

if(deleteSuccess) {

System.out.println("-------删除成功-----");

}else {

System.out.println("-------删除失败-----");

}

}else {

return;

}

}

/**

* 显示客户列表的操作

*/

private void listAllCustomers() {

//System.out.println("显示客户列表的操作");

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[] custs = customerList.geAlltCustomers();

for(int i = 0;i < custs.length;i++) {

Customer cust = custs[i];

System.out.println((i + 1) + "\t" + cust.getName() +"\t" + cust.getGender() + "\t" +

cust.getAge() + "\t" + cust.getPhone() +"\t" + cust.getEmail());

}

}

System.out.println("--------客户列表完成-------\n");

}

public static void main(String[] args) {

CustomerView view = new CustomerView();

view.enterMainMenu();

}

}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值