关于面向对象的小项目(idea_java)

客户信息管理系统(面向对象)(idea_JAVA)

CMUtility.java

package JavaBase.day11.project;

import java.util.Scanner;

public class CMUtility {
    private static Scanner scanner = new Scanner(System.in);

    //用来客户选择系统开始界面列表:1-5
    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;
    }

    //从键盘读取一个字符,并将其作为方法的返回值
    public static char readChar() {
        String str = readKeyBoard(1, false);
        return str.charAt(0);
    }

    //如果用户不输入字符而直接回车,方法以defaultValue作为返回值
    public static char readChar(char defaultValue) {
        String str = readKeyBoard(1, false);
        return (str.length() == 0) ? defaultValue : str.charAt(0);
    }

    //从键盘读取一个长度不超过2位的整数,并作为其返回值
    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位的整数,并将其作为该方法的返回值
    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的字符串,并将其作为方法的返回值
    public static String readString(int limit) {
        return readKeyBoard(limit, false);
    }

    //从键盘读取一个长度不超过limit的字符串,并将其作为方法的返回值,
    //如果用户不输入字符而直接回车,方法以defaultValue作为返回值
    public static String readString(int limit, String defaultValue) {
        String str = readKeyBoard(limit, true);
        return str.equals("") ? defaultValue : str;
    }

    //用于确认选择的输入,该方法从键盘读取Y或N,并将其作为方法的返回值
    public static char readComfirmSelection() {
        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 + ")错误,请重新输入:");
                continue;
            }
            break;
        }
        return line;
    }

}

Customer.java

package JavaBase.day11.project;

public class Customer {
    private String name;//姓名
    private char gender;//性别
    private int age;//年龄
    private String phone;//电话号码
    private String email;//电子邮件

    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 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;
    }
}

CustomerList.java

package JavaBase.day11.project;

/**
 * 管理用户对象的管理模块,增删查改
 */
public class CustomerList {
    private Customer[] customers;//保存客户对象的数组
    private 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 - index - 1; i++) {
            customers[i] = customers[i + 1];
        }

        //最后有数据的元素需要置空
        /*customers[total-1]=null;
        total--;*/
        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;
    }

    //获取指定索引位置上的客户
    public Customer getCustomer(int index) {
        if (index < 0 || index >= total) {
            return null;
        }
        return customers[index];
    }

    //获取客户的数量
    public int getTotal() {
        return total;
    }
}

CustomerView.java

package JavaBase.day11.project;

public class CustomerView {
    private CustomerList customerList = new CustomerList(10);

    public CustomerView() {
        Customer customer = new Customer("张三", '男', 20, "13912341234", "zhangsan@qq.com");
        customerList.addCustomer(customer);
    }

    //显示客户信息管理软件的方法
    public void enterMainMenu() {
        boolean isFlag = true;
        while (isFlag) {
            System.out.println("---------------客户信息管理系统---------------");
            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':
                    listAllCustomers();
                    break;
                case '5':
                    System.out.print("确认是否退出(Y/N):");
                    char isExit = CMUtility.readComfirmSelection();
                    if (isExit == 'Y') {
                        isFlag = false;
                    }
            }
        }
    }

    //添加客户的操作
    public void addNewCustomer() {
        System.out.println("---------------添加客户---------------");
        System.out.print("姓名:");
        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("---------------添加完成---------------");
        } else {
            System.out.println("---------------客户目录已满---------------");
        }

    }

    //修改客户的操作
    public void modifyCustomer() {
        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 isTrue = customerList.replaceCustomer(number - 1, newCust);
        if (isTrue) {
            System.out.println("---------------修改成功---------------");
        } else {
            System.out.println("---------------修改失败---------------");
        }


    }

    //删除客户的操作
    public void deleteCustomer() {
        System.out.println("---------------删除客户---------------");
        int number;
        for (; ; ) {
            System.out.println("选择待删除的客户编号(-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.readComfirmSelection();
        if (isDelete == 'Y') {
            boolean deleteSuccess = customerList.deleteCustomer(number - 1);
            if (deleteSuccess) {
                System.out.println("---------------删除成功---------------");
            } else {
                System.out.println("---------------删除失败---------------");
            }
        } else {
            return;
        }

    }

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

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

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

运行结果:

---------------客户信息管理系统---------------
                1、添加客户
                2、修改客户
                3、删除客户
                4、客户列表
                5、退  出

   请选择(1-5):
   请选择(1-5):4
---------------客户列表---------------
编号		姓名		性别		年龄		电话		邮箱
1		张三		男		20		13912341234		zhangsan@qq.com
---------------客户列表完成---------------
---------------客户信息管理系统---------------
                1、添加客户
                2、修改客户
                3、删除客户
                4、客户列表
                5、退  出

   请选择(1-5):
---------------添加客户---------------
姓名:zhang
性别:nv
输入的长度(不大于1)错误,请重新输入:
女
年龄:1
电话:12345678902131234
输入的长度(不大于13)错误,请重新输入:
12345678901
邮箱:12312348@qq.com
---------------添加完成---------------
---------------客户信息管理系统---------------
                1、添加客户
                2、修改客户
                3、删除客户
                4、客户列表
                5、退  出

   请选择(1-5):
   请选择(1-5):4
---------------客户列表---------------
编号		姓名		性别		年龄		电话		邮箱
1		张三		男		20		13912341234		zhangsan@qq.com
2		zhang		女		1		12345678901		12312348@qq.com
---------------客户列表完成---------------
---------------客户信息管理系统---------------
                1、添加客户
                2、修改客户
                3、删除客户
                4、客户列表
                5、退  出

   请选择(1-5):
 请选择(1-5):3
---------------删除客户---------------
选择待删除的客户编号(-1退出)
2
确认是否删除(Y/N)
y
---------------删除成功---------------
---------------客户信息管理系统---------------
                1、添加客户
                2、修改客户
                3、删除客户
                4、客户列表
                5、退  出

   请选择(1-5):
请选择(1-5):4
---------------客户列表---------------
编号		姓名		性别		年龄		电话		邮箱
1		张三		男		20		13912341234		zhangsan@qq.com
---------------客户列表完成---------------
---------------客户信息管理系统---------------
                1、添加客户
                2、修改客户
                3、删除客户
                4、客户列表
                5、退  出

   请选择(1-5):5
确认是否退出(Y/N):y


Process finished with exit code 0
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: 一个有趣的Java项目Idea是一个简单的学生管理系统。这个项目可以帮助学校或教育机构管理学生的基本信息和成绩。在这个项目中,可以使用Java编程语言实现以下功能: 1. 学生信息管理:可以添加、删除、修改和查看学生信息,包括姓名、年龄、性别、班级等。 2. 成绩管理:可以录入学生的各科成绩,并根据成绩进行排名或统计分析。可以计算学生的总分、平均分、最高分、最低分等。 3. 班级管理:可以创建多个班级,并将学生分配到相应的班级中。可以统计每个班级的学生人数、总分、平均分等。 4. 文件操作:可以将学生信息和成绩保存到文件中,并能够从文件中读取数据。这样可以方便地进行数据的导入和导出。 5. 用户界面:可以设计一个简单直观的用户界面,方便用户操作。可以使用Swing或JavaFX等图形库进行界面开发。 6. 数据校验:可以对输入的数据进行校验,确保信息的准确性和完整性。可以检查学生姓名是否为空、年龄是否为有效数字等。 7. 数据统计:可以对学生的成绩进行统计分析,例如计算每个科目的及格率、优秀率等。可以生成相应的图表或报表进行展示。 这个学生管理系统项目可以帮助学校或教育机构更好地管理学生的信息和成绩,提高工作效率和数据准确性。同时,通过实现这个项目,也可以提升自己的编程技能和对Java的理解。 ### 回答2: 一个Java项目idea示例可以是一个简单的学生管理系统。该系统可以实现学生信息的录入、查询、修改和删除功能。 首先,我们可以创建一个学生类,包含学生的基本信息,如学号、姓名、性别、年龄等。然后,通过控制台或界面输入学生信息,并将其存储在一个集合中。 接下来,可以实现查询功能。用户可以通过学号或姓名查询学生信息,并将查询结果显示出来。如果查询不到学生信息,则给出相应提示。 然后,可以实现修改功能。用户可以输入学号或姓名,然后输入需要修改的信息,如年龄或性别,并将相应的信息更新到集合中的对应学生对象中。 最后,可以实现删除功能。用户可以输入学号或姓名,系统将从集合中删除对应的学生对象,并给出相应提示。 这个小项目的目的是让用户能够轻松地管理一些学生的基本信息。该项目可以帮助用户熟悉Java的基本语法和面向对象编程的概念,同时也可以锻炼用户的逻辑思维和解决问题的能力。 当然,这只是一个简单的示例,实际中可以根据需求进行功能的扩展和改进。例如,可以增加学生成绩管理的功能,或者使用数据库来存储学生信息。总之,Java的应用领域非常广泛,只要有创意和实现的能力,可以做出各种各样有趣和实用的小项目。 ### 回答3: Java是一种广泛应用于各个领域的编程语言,开发小项目是学习和实践Java编程的重要途径。下面我将给出一个Java项目idea实例。 想象一下,你打算开发一个简单的任务管理应用。该应用可以帮助用户管理和跟踪他们的任务列表,并提供各种功能来方便地处理任务。 首先,你可以创建一个Task类,用于表示每个任务的属性和状态。比如,该类可以包含任务的标题、描述、截止日期和状态(已完成/未完成)等信息。你可以使用Java面向对象编程思想来设计该类,实现任务属性的封装和相关方法的定义。 接下来,你可以创建一个TaskManager类,用于管理任务列表。该类可以提供添加、删除、更新和查看任务等基本功能。你可以使用Java的集合类如ArrayList来存储任务对象,并实现相应的方法来进行增删改查操作。 除了基本的任务管理功能,你还可以考虑添加一些额外的功能来提升用户体验。例如,你可以实现任务的优先级标记,让用户能够根据任务的紧急程度进行排序和过滤。或者你可以添加任务提醒的功能,让用户在任务截止日期即将到来时收到通知。 另外,你还可以考虑实现用户登录和数据持久化的功能。使用Java的数据库访问框架,如JDBC或者Hibernate,可以将任务数据保存到关系数据库中,以便用户可以在不同设备和会话中访问和更新任务列表。 最后,你可以使用Java的图形用户界面(GUI)库如JavaFX或Swing来实现应用的界面。你可以设计一个简洁直观的界面,让用户能够轻松地使用和管理任务。 以上就是一个Java项目idea实例。通过开发这个任务管理应用,你不仅可以加深对Java编程语言和相关技术的理解,还可以锻炼自己的软件开发能力和问题解决能力。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友培

数据皆开源!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值