【c++】用C++制作一个简易windows系统

源码:

cpp 复制代码
#include <iostream>
#include <cstdlib> // 为了使用system
#include<limits>
void clearScreen() {
    system("cls");
}

void displayMenu() {
    clearScreen();
    std::cout << "1.我的文件" << std::endl;
    std::cout << "2.回收站" << std::endl;
    std::cout << "3.网络" << std::endl;
    std::cout << "4.设置" << std::endl;
    std::cout << "请输入选项(1-4):" << std::endl;
}

void one() {
    clearScreen();
    std::cout << "我的文件" << std::endl;
    std::cout << "目前没有文件" << std::endl;
    // 可以在这里添加更多的逻辑
}

void two() {
    clearScreen();
    std::cout << "回收站" << std::endl;
    std::cout << "当前回收站为空" << std::endl;
    // 可以在这里添加更多的逻辑
}

void three() {
    clearScreen();
    std::cout << "已连接网络" << std::endl;
    // 可以在这里添加更多的逻辑
}

void four() {
    clearScreen();
    std::cout << "设置" << std::endl;
    // 可以在这里添加更多的逻辑
}

void handleInput(int input) {
    switch (input) {
    case 1:
        one();
        break;
    case 2:
        two();
        break;
    case 3:
        three();
        break;
    case 4:
        four();
        break;
        default:
            std::cout << "无效输入,请重新选择!" << std::endl;
    }
}

int main() {
    int userInput;
    while (true) {
        displayMenu();
        if (!(std::cin >> userInput)) {
            std::cin.clear(); // 清除错误标志
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 忽略输入直到下一个换行符
            std::cout << "输入错误,请输入一个整数(1-4):" << std::endl;
            continue;
        }
        if (userInput < 1 || userInput > 4) {
            std::cout << "无效输入,请输入一个整数(1-4):" << std::endl;
            continue;
        }
        handleInput(userInput);
        
        // 可以选择在这里添加返回主菜单的逻辑,或者允许用户直接退出
        std::cout << "按任意键返回主菜单,或输入0退出:" << std::endl;
        std::cin >> userInput;

        if (userInput == 0) {
            break;
        }
    }
    return 0;
}  这是我制作的微型windows基础班

程序解释:

这段代码是用C++语言编写的,它实现了一个简单的文本界面菜单系统,模仿了Windows操作系统中常见的菜单结构。以下是代码的详细解释:

包含头文件:

  • #include <iostream>:用于输入输出操作,如std::cout和std::cin。
  • #include <cstdlib>:为了使用system函数,这里用于清屏。
  • #include <limits>:用于访问std::streamsize的最大值,以便std::cin.ignore能够忽略直到下一个换行符的所有输入。

清屏函数:

  • void clearScreen():使用system("cls")命令清屏,这是Windows特有的命令,cls用于清除命令行窗口的内容。

显示菜单函数:

  • void displayMenu():调用clearScreen()清屏,然后输出一个简单的菜单,提示用户输入选项(1-4)。

功能函数:

  • void one(), void two(), void three(), void four():分别对应菜单上的四个选项,执行简单的操作并显示相关信息。这些函数目前只输出静态信息,但可以根据需要添加更多逻辑。

处理输入函数:

  • void handleInput(int input):根据用户输入的整数(1-4),调用相应的功能函数。如果输入无效,则输出错误信息。

主函数:

  • int main():程序的入口点。首先声明一个整型变量userInput用于存储用户输入。然后进入一个无限循环,显示菜单,读取用户输入,并根据输入调用handleInput函数。如果用户输入的不是整数或者不在1-4的范围内,程序会提示错误并要求重新输入。
  • 在处理完用户的选择后,程序会提示用户按任意键返回主菜单或输入0退出。如果用户输入0,则通过break语句跳出循环,程序结束。

注意:

  • 这个程序是为Windows命令行环境编写的,因为它使用了system("cls")来清屏,这在Unix/Linux系统中应该替换为system("clear")。
  • 程序中的std::cin.clear()和std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n')组合用于处理非整数输入的情况,确保程序可以恢复并继续读取整数输入。
  • 程序中的注释(//开头的行)提供了额外的说明,帮助理解代码的功能。
相关推荐
benchmark_cc1 分钟前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu14 分钟前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog19 分钟前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
CoderYanger44 分钟前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
钱栈up1 小时前
搜狗中文模式打不出顿号?在 Windows 沙箱里探测输入法配置的踩坑实录
windows
估值探索者1 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
白搞电子1 小时前
ZeroClaw 是什么?与 ESP-Claw 的区别及文件整理用途示例
windows·物联网
爱喝热水的呀哈喽2 小时前
HEJIAN RESEARCH
开发语言·matlab
白露与泡影2 小时前
后端 Java 面试核心八股汇总|高频面试题 + 解析,覆盖基础到进阶
java·开发语言·面试
xifangge20252 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript