客户信息管理软件项目
程序员文章站
2022-05-08 14:32:35
...
java学习了两周,试着自己写了第一个自己的项目《客户信息管理软件》,该项目主要功能包含了客户信息的添加客户、删除客户、修改客户信息、查询客户信息四个功能,以及规范了用户的非法输入,对面向对象初学者来说非常适合练手,废话不多说,直接上代码。
项目列表
实现代码
Customer类
package com.luokai.myproject.bean;
/*
* Customer为实体对象,用来封装客户信息
*/
public class Customer {
//属性
private String name;//姓名
private int age;//年龄
private char gender;//性别
private String phone;//电话
private String email;//邮箱
//构造器
public Customer() {
}
public Customer(String name,int age,char gender,String phone,String email) {
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
this.email = email;
}
//set方法和get方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setGender(char gender) {
this.gender = gender;
}
public char getGender() {
return gender;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPhone() {
return phone;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
}
思路:Customer类很简单,就是私有化了姓名、年龄、性别、电话、邮箱五个属性,然后创建了两个构造器以及他们的set方法和get方法。
CustomerList类
package com.luokai.myproject.service;
/*
* CustomerList为Customer对象的管理模块,内部用数组管理一组Customer对象,
* 并提供相应的添加、修改、删除和遍历方法,供CustomerView调用
*/
import com.luokai.myproject.bean.Customer;
public class CustomerList {
private Customer[] customers;//用来保存customer数组对象
private int total;//用来统计customer对象的数量
//构造器
public CustomerList(int totalCustomer) {
customers = new Customer[totalCustomer];
}
/**
*
* @Description 增加Customer对象到数组中
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午9:01:05
* @param cust
* @return true:添加成功 false:添加失败
*/
public boolean addCustomer(Customer cust) {
if(total >= customers.length) {//判断数组是否存满
return false;
}
else {
customers[total++] = cust;
return true;
}
}
/**
*
* @Description 修改指定位置上的Customer对象
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午9:13:54
* @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;
}
}
/**
*
* @Description 从数组中删除指定位置上的Customer对象
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午9:05:14
* @param index
* @return true:删除成功 false:删除失败
*/
public boolean deleteCustomer(int index) {
if(index < 0 || index >= total) {
return false;
}
else {
for(int i = index;index < total - 1;i++) {
customers[i] = customers[i + 1];
}
customers[total-1] = null;
total--;
return true;
}
}
/**
*
* @Description 获取所有的Customer对象
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午8:58:20
* @param
* @return Customer对象
*/
public Customer[] getAllCustomer() {
Customer[] custs = new Customer[total];
for(int i = 0;i < custs.length;i++) {
custs[i] = customers[i];
}
return custs;
}
/**
*
* @Description 获取指定index位置上的对象
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午8:54:48
* @param index (从0开始)
* @return Customer对象
*/
public Customer getCustomer(int index) {
if(index < 0 || index >= total) {
return null;
}
else {
return customers[index];
}
}
/**
*
* @Description 获取Customer的数量
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午8:53:17
* @return Customer的数量
*/
public int getTotal() {
return total;
}
}
思路:CustomerList类,先声明了一个customers的对象数组和一个用来统计数组储存的对象数量total,然后编写一个可以指定数组长度的构造器,后面则是包含了添加客户,修改客户信息,删除客户,查询所有客户和查询指定客户的方法,同时也get了一个获取total属性的方法。
CustomerView类
package com.luokai.myproject.ui;
import com.luokai.myproject.bean.Customer;
import com.luokai.myproject.service.CustomerList;
import com.luokai.myproject.util.CMUtility;
/*
* CustomerView为主模块,负责菜单的显示和处理用户操作
*/
public class CustomerView {
private CustomerList customerList = new CustomerList(10);
//构造器
public CustomerView() {
//定义一个初始对象
Customer customer = new Customer("小琳", 22, '男', "15236522323", "aaa@qq.com");
boolean isSuccee = customerList.addCustomer(customer);
}
/**
*
* @Description 菜单界面
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午10:31:58
*/
public void enterMainMenu() {
boolean isFlag = true;
while(isFlag) {
System.out.println("\n-----------------客户信息管理软件-----------------\n");
System.out.println(" 1 添 加 客 户");
System.out.println(" 2 修 改 客 户");
System.out.println(" 3 删 除 客 户");
System.out.println(" 4 客 户 列 表");
System.out.println(" 5 退 出\n");
System.out.print(" 请选择(1-5):");
//获取输入的值
char menu = CMUtility.readMenuSelection();
switch(menu) {
case '1':
addNewCustomer();
break;
case '2':
modifyCustomer();
break;
case '3':
deleteCustomer();
break;
case '4':
lisAllCustomer();
break;
case '5':
System.out.print("确定是否退出(Y/N)?");
char isExit = CMUtility.readConfirmSelection();
if(isExit == 'N') {
break;
}
else {
isFlag = false;
break;
}
}
}
}
public void addNewCustomer() {
System.out.println("----------------------------添加客户---------------------------\t");
System.out.print("姓名:");
String name = CMUtility.readString(10);
System.out.print("年龄:");
int age = CMUtility.readInt();
System.out.print("性别:");
char gender = CMUtility.readChar();
System.out.print("电话:");
String phone = CMUtility.readString(13);
System.out.print("邮箱:");
String email = CMUtility.readString(30);
Customer cust = new Customer(name, age, gender, phone, email);
//安全保护
System.out.print("确定是否添加(Y/N)?:");
char isReplace = CMUtility.readConfirmSelection();
if(isReplace == 'Y') {
customerList.addCustomer(cust);
System.out.println("---------------------------添加成功---------------------------\t");
}
else {
System.out.println("---------------------------添加失败---------------------------\t");
}
}
/**
*
* @Description 修改客户
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日下午1:40:53
*/
public void modifyCustomer() {
// System.out.println("修改客户操作");
int number;
Customer cust;
System.out.println("----------------------------修改客户---------------------------\t");
System.out.print("请选择需要修改的客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1) {
return;
}
cust = customerList.getCustomer(number - 1);
for(;;) {
if(cust == null) {
System.out.println("没有找到该客户!");
return;
}else {
break;
}
}
//找到该客户
System.out.print("姓名(" + cust.getName() + "):");
String name = CMUtility.readString(10, cust.getName());
System.out.print("年龄(" + cust.getAge() + "):");
int age = CMUtility.readInt(cust.getAge());
System.out.print("性别(" + cust.getGender() + "):");
char gender = CMUtility.readChar(cust.getGender());
System.out.print("电话(" + cust.getPhone() + "):");
String phone = CMUtility.readString(13, cust.getPhone());
System.out.print("邮箱(" + cust.getEmail() + "):");
String email = CMUtility.readString(30, cust.getEmail());
Customer newcust = new Customer(name, age, gender, phone, email);
//安全保护
System.out.print("确定是否删除(Y/N)?:");
char isReplace = CMUtility.readConfirmSelection();
if(isReplace == 'Y') {
customerList.replaceCustomer(number - 1, newcust);
System.out.println("---------------------------修改成功---------------------------\t");
}
else {
System.out.println("---------------------------修改失败---------------------------\t");
}
}
/**
*
* @Description 删除客户
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日下午1:40:15
*/
public void deleteCustomer() {
int number;
Customer cust;
System.out.println("----------------------------删除客户---------------------------\t");
System.out.print("请选择需要删除的客户编号(-1退出):");
number = CMUtility.readInt();
if(number == -1) {
return;
}
cust = customerList.getCustomer(number - 1);
for(;;) {
if(cust == null) {
System.out.println("没有找到该客户!");
return;
}else {
break;
}
}
//找到该客户
System.out.print("确定是否删除(Y/N)?:");
char isDelete = CMUtility.readConfirmSelection();
if(isDelete == 'Y') {
customerList.deleteCustomer(number -1);
System.out.println("---------------------------删除成功---------------------------\t");
}
else {
System.out.println("---------------------------删除失败---------------------------\t");
}
}
/**
*
* @Description 列出所有客户的操作
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午11:05:17
*/
public void lisAllCustomer() {
System.out.println("----------------------------客户列表---------------------------\t");
int total= customerList.getTotal();
if(total == 0) {
System.out.println("没有客户记录!");
}else {
System.out.println("编号\t姓名\t年龄\t性别\t电话\t\t邮箱");
Customer[] custs= customerList.getAllCustomer();
for(int i = 0;i < custs.length;i++) {
Customer cust = custs[i];
System.out.println((i + 1) + "\t" + cust.getName() + "\t" + cust.getAge() +
"\t" + cust.getGender() + "\t" + cust.getPhone() + "\t" + cust.getEmail());
}
}
}
/**
*
* @Description 主函数调用enterMainMenu方法
* @author luokai Email:aaa@qq.com
* @date 2020年6月11日上午10:37:29
* @param args
*/
public static void main(String[] args) {
CustomerView customerView = new CustomerView();
customerView.enterMainMenu();
}
}
思路:CustomerView类中我先声明了一个长度为10的customerList数组,为了方便操作功能我在构造器中初始化了一个对象,为了方便与用户交互,编写了初始的菜单界面和添加客户、修改客户信息、删除客户、查询客户列表的五个方法,最后在main函数中调用enterMainMenu()方法。
下一篇: 晚上发面早上炸油条
推荐阅读
-
渗透测试服务 前期对客户网站APP的信息收集分享
-
【转载】如何查看sqlserver客户端的版本号信息
-
C#获取客户端相关信息实例总结
-
推荐一款简单好用、功能强大的服务器共享文件管理软件、共享文件管理免客户端的软件
-
PHP实现获取客户端IP并获取IP信息
-
Vue项目使用localStorage+Vuex保存用户登录信息
-
Python实战项目:抓取琼斯指数股票信息
-
个人项目开源之c++基于epoll实现高并发游戏盒子(服务端+客户端)源代码
-
谈一谈个人利用Java的mysql的知识完成的数据库的项目-----用户信息管理系统
-
AndroidStudio构建项目提示错误信息“unable to find valid certification”的完美解决方案