待办事项管理系统(鸿蒙)

“待办事项管理”管理系统。这个应用程序将允许用户添加、删除和查看待办事项。

 项目结构

TodoApp/
     build/
        BUILD.gn
    data/
        TodoData.cpp
        TodoData.h
    ui/
        MainUI.h
        MainUI.cpp
    main.cpp
    CMakeLists.txt


代码示例

build/BUILD.gn

executable("todo_app") {
    sources = [
        "../data/TodoData.cpp",
        "../ui/MainUI.cpp",
        "../main.cpp",
    ]
    deps = []
}


data/TodoData.h

#ifndef TODODATA_H
#define TODODATA_H

#include <string>
#include <vector>

class TodoItem {
public:
    TodoItem(const std::string &title, const std::string &description);
    std::string GetTitle() const;
    std::string GetDescription() const;

private:
    std::string title_;
    std::string description_;
};

class TodoData {
public:
    void AddItem(const TodoItem &item);
    void RemoveItem(int index);
    const std::vector<TodoItem>& GetItems() const;

private:
    std::vector<TodoItem> items_;
};

#endif // TODODATA_H


data/TodoData.cpp
cpp
#include "TodoData.h"

TodoItem::TodoItem(const std::string &title, const std::string &description)
    : title_(title), description_(description) {}

std::string TodoItem::GetTitle() const {
    return title_;
}

std::string TodoItem::GetDescription() const {
    return description_;
}

void TodoData::AddItem(const TodoItem &item) {
    items_.push_back(item);
}

void TodoData::RemoveItem(int index) {
    if (index >= 0 && index < items_.size()) {
        items_.erase(items_.begin() + index);
    }
}

const std::vector<TodoItem>& TodoData::GetItems() const {
    return items_;
}


ui/MainUI.h

#ifndef MAINUI_H
#define MAINUI_H

#include "../data/TodoData.h"

class MainUI {
public:
    MainUI(TodoData &todoData);
    void DisplayMenu();
    void AddItem();
    void RemoveItem();
    void ViewItems();

private:
    TodoData &todoData_;
};

#endif // MAINUI_H


ui/MainUI.cpp
cpp
#include "MainUI.h"
#include <iostream>

MainUI::MainUI(TodoData &todoData) : todoData_(todoData) {}

void MainUI::DisplayMenu() {
    int choice;
    do {
        std::cout << "\nTodo App Menu:\n";
        std::cout << "1. Add Item\n";
        std::cout << "2. Remove Item\n";
        std::cout << "3. View Items\n";
        std::cout << "4. Exit\n";
        std::cout << "Enter your choice: ";
        std::cin >> choice;

        switch (choice) {
            case 1:
                AddItem();
                break;
            case 2:
                RemoveItem();
                break;
            case 3:
                ViewItems();
                break;
            case 4:
                std::cout << "Exiting...\n";
                break;
            default:
                std::cout << "Invalid choice. Please try again.\n";
        }
    } while (choice != 4);
}

void MainUI::AddItem() {
    std::string title, description;

    std::cout << "Enter item title: ";
    std::cin.ignore();
    std::getline(std::cin, title);
    std::cout << "Enter item description: ";
    std::getline(std::cin, description);

    TodoItem newItem(title, description);
    todoData_.AddItem(newItem);
    std::cout << "Item added successfully.\n";
}

void MainUI::RemoveItem() {
    int index;
    std::cout << "Enter the index of the item to remove: ";
    std::cin >> index;

    todoData_.RemoveItem(index);
    std::cout << "Item removed successfully.\n";
}

void MainUI::ViewItems() {
    const auto &items = todoData_.GetItems();
    if (items.empty()) {
        std::cout << "No items available.\n";
        return;
    }

    std::cout << "\nTodo Items List:\n";
    for (size_t i = 0; i < items.size(); ++i) {
        std::cout << i << ". " << items[i].GetTitle() << " - " << items[i].GetDescription() << "\n";
    }
}


main.cpp

#include "data/TodoData.h"
#include "ui/MainUI.h"

int main() {
    TodoData todoData;
    MainUI mainUI(todoData);
    mainUI.DisplayMenu();
    return 0;
}


CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(TodoApp)

set(CMAKE_CXX_STANDARD 17)

add_executable(TodoApp
    data/TodoData.cpp
    ui/MainUI.cpp
    main.cpp
)


简单介绍
这个待办事项管理应用程序允许用户添加、删除和查看待办事项。每个待办事项包含标题和描述。用户可以通过命令行界面与应用程序进行交互,添加新待办事项、删除现有待办事项以及查看所有待办事项的列表。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值