📅  最后修改于: 2023-12-03 14:54:47.508000             🧑  作者: Mango
本项目是一个用 C++ 编写的命令行工具,用于展示《攻击泰坦初中》动画的剧集列表。
make
./attack_on_titan_junior
show
或 s
sort date
或 s d
sort title
或 s t
search [关键词]
或 s [关键词]
filter
或 f
,按照提示输入年份、月份或日期下面是项目中 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()
:用于根据日期过滤剧集列表实现这些功能的具体细节,请查看完整的源代码。