/* * @Author: Student author@example.com * @Date: 2025-01-02 01:17:31 * @LastEditors: Student author@example.com * @LastEditTime: 2025-01-03 10:53:42 * @FilePath: \LibraryManageSystem\include\UI.h * @Description: Coding with UTF-8 * * Copyright (c) 2025 by Student, All Rights Reserved. */ #ifndef UI_H #define UI_H #include "LibrarySystem.h" #include class UI { private: LibrarySystem &system; // 基础辅助方法 void clearScreen() const; // 清屏 void drawLine(char c = '-') const; // 绘制分隔线 void drawTitle(const std::string &title) const; // 绘制标题 void waitForEnter() const; // 等待用户按回车键继续 int getChoice(int min, int max) const; // 获取用户输入的选项 std::string getInput(const std::string &prompt) const; // 获取用户输入的字符串 // 主要菜单显示 void displayMainMenu() const; // 显示主菜单 void displayLoginScreen(); // 显示登录界面 void displayRegisterScreen(); // 显示注册界面 void displayAdminMenu() const; // 显示管理员菜单 void displayUserMenu() const; // 显示用户菜单 void displayBookManagementMenu() const; // 显示图书管理菜单 void displayBookRankingMenu() const; // 显示图书排行菜单 void displayUserManagementMenu() const; // 显示用户管理菜单 // 主要菜单处理 void handleMainMenu(); // 处理主菜单选项 void handleLogin(); // 处理登录 void handleRegister(); // 处理注册 void handleAdminMenu(); // 处理管理员菜单选项 void handleUserMenu(); // 处理用户菜单选项 void handleBookManagement(); // 处理图书管理选项 void handleBookRanking(); // 处理图书排行选项 void handleUserManagement(); // 处理用户管理选项 // 管理员功能 void addBook(); // 添加图书 void modifyBook(); // 修改图书信息 void removeBook(); // 删除图书 void viewAllUsers() const; // 查看所有用户 void viewOverdueBooks() const; // 查看超期图书 // 用户功能 void searchBooks() const; // 搜索图书 void borrowBook(); // 借阅图书 void returnBook(); // 归还图书 void viewBorrowHistory() const; // 查看借阅历史 void showTopRatedBooks() const; // 显示评分最高的图书 void showMostBorrowedBooks() const; // 显示借阅次数最多的图书 void showRecommendedBooks() const; // 显示推荐图书 // 用户管理功能 void queryUserInfo(); // 查询用户信息 void modifyUserInfo(); // 修改用户信息 void deleteUser(); // 删除用户 // 辅助显示功能 void displaySearchResults(const LinkList &books) const; // 显示搜索结果 void displayAvailableBooks() const; // 显示可借图书 void displayBorrowedBooks() const; // 显示已借图书 std::string getCategoryName(BookCategory category) const; // 获取图书类别名称 public: explicit UI(LibrarySystem &sys); // 构造函数 void start(); // 启动UI界面 }; #endif // UI_H