学习记录帖 客户信息管理软件(入门)

       目标:

                模拟实现一个基于文本界面的《客户信息管理软件》  进一步掌握编程技巧和调试技巧,熟悉面向对象编程  主要涉及以下知识点:

  1. 类结构的使用:属性、方法及构造器
  2. 对象的创建与使用
  3. 类的封装性
  4. 声明和使用数组
  5. 数组的插入、删除和替换
  6. 关键字的使用:this

        需求说明:

模拟实现基于文本界面的《客户信息管理软件》。 该软件能够实现对客户对象的插入、修改和删除(用数组实现),并能够打印客户明细表。 项目采用分级菜单方式。每个客户的信息被保存在Customer对象中。 以一个Customer类型的数组来记录当前所有的客户。 每次“添加客户”(菜单1)后,客户(Customer)对象被添加到数组中。 每次“修改客户”(菜单2)后,修改后的客户(Customer)对象替换数组中原对象。 每次“删除客户”(菜单3)后,客户(Customer)对象被从数组中清除。 执行“客户列表 ”(菜单4)时,将列出数组中所有客户的信息 。

代码:

有三个模块组成,分别是数据对象封装(.bean)、服务相关的(.service)、自定义View。

.bean:
 



public class Customer {
    private String name,phone,email;
    private int age;
    private char gender; //基本属性

    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 void setName(String name){
        this.name=name;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public void setGender(char gender){
        this.gender=gender;
    }
    public void setPhone(String phone){
        this.phone=phone;
    }

    public void setEmail(String email) {
        this.email = email;
    }       //  属性赋值

    public String getName() {
        return name;
    }

    public char getGender() {
        return gender;
    }

    public int getAge() {
        return age;
    }

    public String getPhone() {
        return phone;
    }

    public String getEmail() {
        return email;
    }       //获得属性的数据
}

.Service:

package BankService;

import Bankbean.Customer;

public class CustomerList {
    Customer[] customers;   //用来保存客户对象的数组
    int total = 0;          //记录已保存客户对象的数量

    public CustomerList(int totalCustomer){
        customers= new Customer[totalCustomer];
    }

    public boolean addCustomer(Customer customer){
        if (total>=customers.length){ return false; }
        customers[total++]=customer;
        return true;
    }
    public boolean replaceCustomer(int index, Customer cust){
        if (index<0 || index>=total){return false;}
        customers[index]=cust;
        return true;
    }
    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]=null;
        return true;
    }
    public Customer[] getAllCustomers(){
        Customer[] custs = new Customer[total];
        for (int i = 0; i < total; i++) {
            custs[i] = customers[i];
        }
        return custs;       //注意边界。直接返回customers的地址会空指。
    }
    public Customer getCustomer(int index){
        if (index < 0 || index >= total) return null;

        return customers[index];
    }
    public int getTotal(){return total;}

}

.View:

package BankUi;

import BankService.CustomerList;
import Bankbean.Customer;
import javafx.scene.control.CustomMenuItem;

import java.util.Scanner;

public class CustomerView {
    Scanner sr = new Scanner(System.in);
    CustomerList customerList = new CustomerList(10);      //设定数组的长度
    public void enterMainMenu(){
        OUT:
        while (true){
            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):");
            switch (sr.nextInt()){
                case 1:
                    addNewCustomer();
                    break;
                case 2:
                    modifyCustomer();
                    break;
                case 3:
                    deleteCustomer();
                    break;
                case 4:
                    listAllCustomers();
                    break;
                case 5:
                    break OUT;
                default:
                    System.out.println("请输入正确的数字(1-5)!");
            }
        }
    }
    private void addNewCustomer(){
        Customer customer = new Customer();
        System.out.println("---------------------添加客户---------------------");
        System.out.print("姓名:");
        customer.setName(sr.next());
        System.out.print("性别:");
        customer.setGender(sr.next().charAt(0));
        System.out.print("年龄:");
        customer.setAge(sr.nextInt());
        System.out.print("手机:");
        customer.setPhone(sr.next());
        System.out.print("邮箱:");
        customer.setEmail(sr.next());
        boolean flag = customerList.addCustomer(customer);
        if (flag){
            System.out.println("添加成功!");

        }else
            System.out.println("----------------记录已满,无法添加-----------------");

    }
    private void modifyCustomer(){
        Customer customer = new Customer();
        int index;
        System.out.println("---------------------修改客户---------------------");
        while (true){
            System.out.println("请输入要修改的客户的序号(-1退出)");
            index=sr.nextInt();
            if (index == -1){
                return;
            }
            customer = customerList.getCustomer(index-1);
            if (customer==null){
                System.out.println("无法找到指定客户!");
            }else
                break;
        }
        System.out.print("姓名:");
        customer.setName(sr.next());
        System.out.print("性别:");
        customer.setGender(sr.next().charAt(0));
        System.out.print("年龄:");
        customer.setAge(sr.nextInt());
        System.out.print("手机:");
        customer.setPhone(sr.next());
        System.out.print("邮箱:");
        customer.setEmail(sr.next());
        boolean flag =customerList.replaceCustomer(index-1,customer);
        if (flag){
            System.out.println("修改成功!");
        }else System.out.println("----------无法找到指定客户,修改失败--------------");

    }
    private void deleteCustomer(){
        Customer customer = new Customer();
        int index;
        System.out.println("---------------------删除客户---------------------");
        while (true){
            System.out.println("请输入要修改的客户的序号(-1退出)");
            index=sr.nextInt();
            if (index == -1){
                return;
            }
            customer = customerList.getCustomer(index-1);
            if (customer==null){
                System.out.println("无法找到指定客户!");
            }else
                break;
        }
        boolean flag =customerList.deleteCustomer(index-1);

         if (flag){
            System.out.println("修改成功!");
        }else System.out.println("----------无法找到指定客户,修改失败--------------");

    }
    private void listAllCustomers(){
        System.out.println("---------------------------客户列表---------------------------");
        Customer[] cust= customerList.getAllCustomers();
        if (cust.length == 0) {
            System.out.println("没有客户记录!");
        } else {
            System.out.println("编号 姓名 性别 年龄  电话  邮箱");
            for (int i = 0; i < cust.length; i++) {
                System.out.println(i + 1 + "\t" + cust[i].getName() + "\t" + cust[i].getGender() + "\t" + cust[i].getAge() + "\t\t" + cust[i].getPhone() + "\t\t" + cust[i].getEmail());

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


    }
    public static void main(String[] args){
        CustomerView cView = new CustomerView();
        cView.enterMainMenu();
    }



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值