【Java任务项目-名片管理系统】

任务:名片管理系统

  • 实现可进可退的多级菜单系统
  • 功能:添加名片,查询名片,修改名片,删除名片

(一)任务实施

1.创建Card类(名片实体类),代码编写

  • 有参构造方法的实现:Alt + Insert键-插入代码,然后选择Consteuctor
    在这里插入图片描述
  • 然后全选
    在这里插入图片描述
  • 完整代码
/**
 * 功能:名片实体类
 * 作者:王倩
 * 日期:2022年05月26日
 */
public class Card {
    private String id;
    private String name;
    private String workUnit;
    private String post;
    private String telephone;

    /**
     * 无参构造方法
     */
    public Card (){

    }

    /**
     * 有参构造方法
     * @param id
     * @param name
     * @param workUnit
     * @param post
     * @param telephone
     */
    public Card(String id, String name, String workUnit, String post, String telephone) {
        this.id = id;
        this.name = name;
        this.workUnit = workUnit;
        this.post = post;
        this.telephone = telephone;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getWorkUnit() {
        return workUnit;
    }

    public void setWorkUnit(String workUnit) {
        this.workUnit = workUnit;
    }

    public String getPost() {
        return post;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    @Override
    public String toString() {
        return "Card{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", workUnit='" + workUnit + '\'' +
                ", post='" + post + '\'' +
                ", telephone='" + telephone + '\'' +
                '}';
    }
}

2.创建CardManagement类(名片管理系统)

package p011;

import java.util.Scanner;

/**
 * 功能:名片管理系统
 * 日期:2022年05月26日
 */
public class CardManagement {
    public static void main(String[] args) {
        // 声明部分
        int mc1;
        Scanner sc = new Scanner(System.in);
        boolean isRunning = true; // 循环控制变量

        while (isRunning) {
            // 绘制一级菜单
            System.out.println("名片管理系统");
            System.out.println("==============");
            System.out.println("  1. 登录");
            System.out.println("  0. 退出");
            System.out.println("===================");
            System.out.print("输入菜单编号[1,0]:");
            mc1 = sc.nextInt();
                // 根据用户选择进行相应的操作
            switch (mc1) {
                case 1:
                    // 调用登录方法
                    login();
                    break;
                case 0:
                    System.out.println("谢谢使用~再见~");
                    isRunning = false; // 结束循环
                    break;
                default:
                    System.out.println("输入的菜单编号有误!");
            }
        }
    }
    /**
     * 登录方法
     */
    private static void login() {
        String username, password;
        Scanner sc = new Scanner(System.in);

        System.out.print("用户名:");
        username = sc.next();
        System.out.print("密  码:");
        password = sc.next();

        if (username.equals("howard") && password.equals("903213")) {
            System.out.println("登录成功~");
            // 调用名片管理方法
            cardManagement();
        } else {
            System.out.println("用户名或密码有误,登录失败~");
        }
    }
    /**
     * 名片管理方法
     */
    private static void cardManagement() {
        int mc2;
        Scanner sc = new Scanner(System.in);
        boolean isRunning = true; // 循环控制变量

        while (isRunning) {
            // 绘制二级菜单
            System.out.println("=====名片管理======");
            System.out.println("  1. 添加名片");
            System.out.println("  2. 修改名片");
            System.out.println("  3. 查询名片");
            System.out.println("  4. 删除名片");
            System.out.println("  5. 读取名片");
            System.out.println("  6. 保持名片");
            System.out.println("  7. 返回上级");
            System.out.println("===================");
            System.out.print("输入菜单编号[1,2,3,4,5,6,7]:");
            mc2 = sc.nextInt();

            switch (mc2) {
                case 1:
                    System.out.println("执行添加名片功能~");
                    break;
                case 2:
                    System.out.println("执行修改名片功能~");
                    break;
                case 3:
                    System.out.println("执行查询名片功能~");
                    break;
                case 4:
                    System.out.println("执行删除名片功能~");
                    break;
                case 5:
                    System.out.println("执行读取名片文件到名片数组列表~");
                    break;
                case 6:
                    System.out.println("执行将名片数组列表写入名片文件~");
                    break;
                case 7:
                    isRunning = false; // 结束二级菜单循环
                    break;
                default:
                    System.out.println("输入的菜单编号有误!");
            }
        }
    }
}

3.创建添加名片方法

  • 回到代码顶部,创建名片数组列表对象
    在这里插入图片描述

  • 在CardManagement类里创建addCard类(位于名片管理方法代码后面,如下图)
    在这里插入图片描述

  • 代码编写

 /**
     * 添加名片方法
     */
    private static void addCard(){
        // 声明变量
        String id;
        String name;
        String workUnit;
        String post;
        String telephone;
        Scanner sc = new Scanner(System.in);
        // 输入名片信息
        System.out.print("编号:");
        id = sc.next();
        System.out.print("姓名:");
        name = sc.next();
        System.out.print("单位:");
        workUnit = sc.next();
        System.out.print("职位:");
        post = sc.next();
        System.out.print("手机:");
        telephone = sc.next();
        // 创建名片对象
        Card card = new Card(id,name,workUnit,post,telephone);

        //将名片对象添加名片数组列表
        cards.add(card);
    }
  • 修改cardManagement()方法
    在这里插入图片描述

4.保存名片到文件

/**
 * 保存名片到文件
 */
private static void saveCards()  {
    try {
        // 创建文件字符输出流
        FileWriter fw = new FileWriter("cards.txt");
        // 用增强for循环遍历名片数组列表
        for (Card card : cards) {
            // 输出名片对象
            System.out.println(card);
            // 创建名片字符缓冲对象
            StringBuffer buffer = new StringBuffer();
            // 添加名片字段信息
            buffer.append(card.getId() + " ");
            buffer.append(card.getName() + " ");
            buffer.append(card.getWorkUnit() + " ");
            buffer.append(card.getPost() + " ");
            buffer.append(card.getTelephone() + " ");

            // 将名片信息写入名片文件(必须添加换行符)
            fw.write(buffer.toString()+"\n");
        }
        // 关闭文件字符输出流
        fw.close();
    } catch (IOException e){
        e.printStackTrace();
    }
}

(二)运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值