GitHubpm 发表于 2025-9-26 17:38:51

求助,帮帮孩子吧!

求助各位哥哥们,本人将要参加科技创新大赛,有没有哪位大佬帮忙改改代码的。
高中牲没时间了。
还没有实现的功能如下:
1·删除文件功能不够全面,希望加个选择复制象。直接复制地址。
2·希望加个鼠标指示功能。
3.优化一下排版。
使用的是cpp,谢谢。{:4_110:}
#include <iostream>
#include <cstdlib>
#include <limits>
#include <cstdio>
#include <cstring>
#include <unistd.h>

#define MAX_PATH_LENGTH 512

void displayWelcomeMessage(bool firstTime = false) {
    system("cls");
    system("color 0A");// 使用亮绿色
    std::cout << "\n"
            << "╔════════════════════════════════════════════════╗\n"
            << "║                                                ║\n"
            << "║            欢迎使用 Cmd 辅助使用器             ║\n"
            << "║                                                ║\n"
            << "║                   版本 1.0                     ║\n"
            << "║                                                ║\n"
            << "║                作者:PM 同志                   ║\n"
            << "║                                                ║\n"
            << "╚════════════════════════════════════════════════╝\n\n"
            << "这是一个用于系统管理和文件操作的辅助工具\n\n"
            << "主要功能模块:\n\n"
            << "┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐\n"
            << "│   1. 系统管理   │ │   2. 文件管理   │ │   3. 高级选项   │\n"
            << "│ ·查看系统信息│ │ ·文件删除      │ │ ·注册表编辑    │\n"
            << "│ ·打开控制面板│ │ ·系统清理      │ │               │\n"
            << "│ ·系统修复      │ │ ·磁盘扫描      │ │               │\n"
            << "│               │ │ ·任务管理      │ │               │\n"
            << "└─────────────────┘ └─────────────────┘ └─────────────────┘\n\n"
            << "使用说明:在主菜单中输入数字(1-4)选择相应功能\n"
            << "            在子菜单中根据提示输入相应数字\n\n";

    if (firstTime) {
      std::cout << "按Enter键继续...";
      std::cin.get();
    }
}

int getUserChoice(int min, int max) {
    int choice;
    while (true) {
      std::cout << "请输入你的选择(" << min << "-" << max << "):";
      std::cin >> choice;

      if (std::cin.fail() || choice < min || choice > max) {
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
            std::cout << "无效的选择,请重新输入。\n";
      } else {
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
            return choice;
      }
    }
}

int deleteFileSafely(const char *filePath) {
    if (remove(filePath) == 0) {
      return 1; // 文件删除成功
    } else {
      return 0; // 文件删除失败
    }
}

void deleteFile(const char *filePath) {
    if (access(filePath, F_OK) != -1) {
      std::cout << "将要删除文件: " << filePath << "\n";
      std::cout << "请确认删除操作 (Y/N): ";

      char confirm;
      std::cin >> confirm;

      if (confirm == 'Y' || confirm == 'y') {
            if (deleteFileSafely(filePath)) {
                std::cout << "文件已成功删除。\n";
            } else {
                std::cout << "删除失败: " << filePath << "\n";
            }
      } else {
            std::cout << "删除操作已取消。\n";
      }
    } else {
      std::cout << "文件不存在: " << filePath << "\n";
    }
}

void systemRepair() {
    while (true) {
      std::cout << "系统修复\n";
      std::cout << "1. 系统文件检查\n";
      std::cout << "2. 磁盘检查\n";
      std::cout << "3. 系统清理\n";
      std::cout << "4. 创建系统还原点\n";
      std::cout << "0. 返回\n";
      
      int repairChoice = getUserChoice(0, 4);
      
      switch(repairChoice) {
            case 1:
                std::cout << "正在运行系统文件检查...\n";
                system("sfc /scannow");
                std::cout << "系统文件检查完成。\n";
                break;
            case 2:
                std::cout << "正在安排磁盘检查...\n";
                system("chkdsk C: /F /R /X");
                std::cout << "磁盘检查已安排在下次重启时进行。\n";
                break;
            case 3:
                std::cout << "正在运行系统清理...\n";
                system("cleanmgr /sagerun:1");
                std::cout << "系统清理完成。\n";
                break;
            case 4:
                std::cout << "正在创建系统还原点...\n";
                system("wmic.exe /Namespace:\\\\root\\default Path SystemRestore Call CreateRestorePoint \"My Restore Point\", 100, 7");
                std::cout << "系统还原点已创建。\n";
                break;
            case 0:
                return;
      }
      
      std::cout << "按Enter键继续...\n";
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}

void systemManagement() {
    while (true) {
      std::cout << "系统管理\n";
      std::cout << "1. 查看系统信息\n";
      std::cout << "2. 打开控制面板\n";
      std::cout << "3. 系统修复\n";
      std::cout << "0. 返回\n";

      int choice = getUserChoice(0, 3);

      switch (choice) {
            case 1:
                system("msinfo32.exe");
                std::cout << "系统信息已查看。\n";
                break;
            case 2:
                system("control");
                std::cout << "控制面板已打开。\n";
                break;
            case 3:
                systemRepair();
                break;
            case 0:
                return;
      }
      
      std::cout << "按Enter键继续...\n";
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}

void fileManagement() {
    while (true) {
      std::cout << "文件管理\n";
      std::cout << "1. 删除文件\n";
      std::cout << "2. 清理\n";
      std::cout << "3. 扫描\n";
      std::cout << "4. 任务管理\n";
      std::cout << "0. 返回\n";

      int choice = getUserChoice(0, 4);

      switch (choice) {
            case 1: {
                char filePath;
                std::cout << "请输入要删除的文件路径: ";
                std::cin.ignore();
                std::cin.getline(filePath, sizeof(filePath));
                deleteFile(filePath);
                break;
            }
            case 2: {
                std::cout << "清理\n";
                std::cout << "1. 垃圾清理\n";
                std::cout << "2. 磁盘清理\n";
                std::cout << "0. 返回\n";
                int cleanChoice = getUserChoice(0, 2);
                if (cleanChoice == 1) {
                  system("cleanmgr.exe /sagerun:1");
                  std::cout << "垃圾清理已完成。\n";
                } else if (cleanChoice == 2) {
                  system("dfrgui.exe");
                  std::cout << "磁盘清理已完成。\n";
                }
                break;
            }
            case 3:
                system("cmd /c dir C:\\ /s");
                std::cout << "C盘扫描已完成。\n";
                break;
            case 4:
                system("taskmgr");
                std::cout << "任务管理器已打开。\n";
                break;
            case 0:
                return;
      }
      
      std::cout << "按Enter键继续...\n";
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}

void advancedOptions() {
    while (true) {
      std::cout << "高级选项\n";
      std::cout << "1. 打开注册表\n";
      std::cout << "0. 返回\n";

      int choice = getUserChoice(0, 1);

      if (choice == 1) {
            system("regedit");
            std::cout << "注册表编辑器已打开。\n";
      } else if (choice == 0) {
            return;
      }
      
      std::cout << "按Enter键继续...\n";
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
}

int main() {
    displayWelcomeMessage(true); // 第一次显示欢迎信息,并等待按键

    while (true) {
      displayWelcomeMessage(); // 每次循环显示欢迎界面,但不等待按键
      
      std::cout << "请选择一个选项:\n";
      std::cout << "1. 系统管理\n";
      std::cout << "2. 文件管理\n";
      std::cout << "3. 高级选项\n";
      std::cout << "4. 退出\n";

      int mainChoice = getUserChoice(1, 4);

      switch (mainChoice) {
            case 1:
                systemManagement();
                break;
            case 2:
                fileManagement();
                break;
            case 3:
                advancedOptions();
                break;
            case 4:
                std::cout << "退出程序。\n";
                return 0;
      }

      std::cout << "操作完成,请选择下一步操作:\n";
    }

    return 0;
}


页: [1]
查看完整版本: 求助,帮帮孩子吧!