📜  攻击泰坦初中剧集列表 - C++ (1)

📅  最后修改于: 2023-12-03 14:54:47.508000             🧑  作者: Mango

攻击泰坦初中剧集列表 - C++

简介

本项目是一个用 C++ 编写的命令行工具,用于展示《攻击泰坦初中》动画的剧集列表。

功能特性
  • 展示《攻击泰坦初中》所有剧集的标题和发布日期
  • 用户可以按照发布日期或标题排序显示
  • 用户可以根据关键词进行搜索
  • 可以根据用户输入的年份、月份、日期过滤结果
使用方法
  1. 克隆或下载项目
  2. 打开命令行工具
  3. 进入项目目录
  4. 编译项目:make
  5. 运行程序:./attack_on_titan_junior
操作指南
  1. 显示全部剧集列表:输入 shows
  2. 按照发布日期排序:输入 sort dates d
  3. 按照标题排序:输入 sort titles t
  4. 搜索:输入 search [关键词]s [关键词]
  5. 过滤:输入 filterf,按照提示输入年份、月份或日期
代码片段

下面是项目中 attack_on_titan_junior.cpp 的部分代码片段:

void display_menu() {
    cout << "操作指南:" << endl;
    cout << "1. 显示全部剧集列表:输入 'show' 或 's'" << endl;
    cout << "2. 按照发布日期排序:输入 'sort date' 或 's d'" << endl;
    cout << "3. 按照标题排序:输入 'sort title' 或 's t'" << endl;
    cout << "4. 搜索:输入 'search [关键词]' 或 's [关键词]'" << endl;
    cout << "5. 过滤:输入 'filter' 或 'f'" << endl;
}

void show_episode_list(episode episodes[]) {
    for (int i = 0; i < EPISODE_COUNT; i++) {
        cout << i+1 << ". " << episodes[i].title << " - " << episodes[i].date << endl;
    }
}

void sort_episode_list_by_date(episode episodes[]) {
    sort(episodes, episodes+EPISODE_COUNT, compare_episode_by_date);
}

void sort_episode_list_by_title(episode episodes[]) {
    sort(episodes, episodes+EPISODE_COUNT, compare_episode_by_title);
}

void search_episode_by_keyword(episode episodes[], string keyword) {
    for (int i = 0; i < EPISODE_COUNT; i++) {
        if (episodes[i].title.find(keyword) != string::npos) {
            cout << i+1 << ". " << episodes[i].title << " - " << episodes[i].date << endl;
        }
    }
}

void filter_episode_list_by_date(episode episodes[]) {
    int year, month, day;
    cout << "请输入过滤日期的年份:";
    cin >> year;
    cout << "请输入过滤日期的月份:";
    cin >> month;
    cout << "请输入过滤日期的日期:";
    cin >> day;
    cout << "以下是符合条件的剧集列表:" << endl;
    for (int i = 0; i < EPISODE_COUNT; i++) {
        if (episodes[i].date.year == year && episodes[i].date.month == month && episodes[i].date.day == day) {
            cout << i+1 << ". " << episodes[i].title << " - " << episodes[i].date << endl;
        }
    }
}

以上代码片段展示了项目中一些主要的函数,包括:

  • display_menu():用于在控制台显示操作指南
  • show_episode_list():用于显示全部剧集列表
  • sort_episode_list_by_date():用于按照发布日期排序
  • sort_episode_list_by_title():用于按照标题排序
  • search_episode_by_keyword():用于搜索剧集列表
  • filter_episode_list_by_date():用于根据日期过滤剧集列表

实现这些功能的具体细节,请查看完整的源代码。