• c++新闻发布系统(支持登录注册)


    c++新闻发布系统(支持登录注册),支持新闻发布标题和内容

    首先查看效果,系统主界面 vx:sredxc

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    这段代码是一个简单的新闻管理系统的实现。它包括两个类:UserManager(用户管理)和NewsManager(新闻管理)。UserManager负责用户的注册和登录,而NewsManager负责新闻的发布和显示。

    在UserManager中,用户信息保存在unordered_map中,可以将用户信息加载到内存中,支持用户的注册和登录功能。注册时会检查用户名是否已存在,如果不存在则将用户名和密码保存到文件中;登录时会检查用户名和密码是否匹配。

    在NewsManager中,新闻信息以NewsItem对象的形式保存在vector中。可以添加新的新闻,并且支持显示新闻标题和内容。

    在主函数main()中,通过不断循环来提供用户选择的操作,包括注册、登录、发布新闻、查看新闻和退出程序。根据用户的选择,调用相应的方法执行相应的操作。

    用户可以支持账号注册,账号注册支持本地数据检测,判断账号是否有被注册过,登录也会校验账号和密码,只有登录成功以后再能进行新闻的发布和查看,新闻发布需要先发布新闻标题在发布新闻内容,查看新闻的时候需要根据新闻的标题来选择查看

    部分贴图代码,需要的可以加我vx:sredxc

    int main() {
        UserManager userManager;
        NewsManager newsManager;
        std::string username, password, newsTitle, newsContent;
        int choice;
    
        while (true) {
            std::cout << "选择操作:1 注册 2 登录 3 发布新闻 4 查看新闻 5 退出\n";
            std::cin >> choice;
    
            switch (choice) {
            case 1:
                std::cout << "输入用户名:";
                std::cin >> username;
                std::cout << "输入密码:";
                std::cin >> password;
                if (userManager.registerUser(username, password)) {
                    std::cout << "注册成功\n";
                }
                else {
                    std::cout << "注册失败,用户名可能已被使用\n";
                }
                break;
            case 2:
                std::cout << "输入用户名:";
                std::cin >> username;
                std::cout << "输入密码:";
                std::cin >> password;
                if (userManager.loginUser(username, password)) {
                    std::cout << "登录成功\n";
                }
                else {
                    std::cout << "登录失败,用户名或密码错误\n";
                }
                break;
            case 3:
                if (username.empty()) {
                    std::cout << "请先登录\n";
                }
                else {
                    std::cin.ignore(); // 清除缓冲区
                    std::cout << "输入新闻标题:";
                    std::getline(std::cin, newsTitle);
                    std::cout << "输入新闻内容:";
                    std::getline(std::cin, newsContent);
                    newsManager.addNews(newsTitle, newsContent);
                    std::cout << "新闻发布成功\n";
                }
                break;
            case 4:
                newsManager.displayNewsTitles();
                std::cout << "输入要查看的新闻编号:";
                size_t index;
                std::cin >> index;
                newsManager.displayNewsContent(index);
                break;
            case 5:
                std::cout << "退出程序\n";
                return 0;
            default:
                std::cout << "无效选择\n";
                break;
            }
        }
    
        return 0;
    }
    
  • 相关阅读:
    Linux文件目录相关指令
    C4模型理解
    【无标题】
    MySQL数据库操作以及sql语句总结
    linux硬件和系统查询命令
    HDMI 基于 4 层 PCB 的布线指南
    Selenium自动化中处理鼠标悬停并操作的方法
    接口开发知识点整理三
    Shiro权限控制
    【PHP】Workerman开源应用容器的GatewayWorker 与 iOS-OC对接
  • 原文地址:https://blog.csdn.net/weixin_45882304/article/details/139295141