当前位置: 首页 > news >正文

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

源码:

#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操作系统中常见的菜单结构。以下是代码的详细解释:

  1. 包含头文件

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

    • void clearScreen():使用system("cls")命令清屏,这是Windows特有的命令,cls用于清除命令行窗口的内容。
  3. 显示菜单函数

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

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

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

    • 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')组合用于处理非整数输入的情况,确保程序可以恢复并继续读取整数输入。
  • 程序中的注释(//开头的行)提供了额外的说明,帮助理解代码的功能。

相关文章:

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

源码&#xff1a; #include <iostream> #include <cstdlib> // 为了使用system #include<limits> void clearScreen() {system("cls"); }void displayMenu() {clearScreen();std::cout << "1.我的文件" << std::endl;std::…...

常见锁策略

目录 1.乐观锁/悲观锁 2.重量级锁/轻量级锁&#xff08;轻量重量是站在加锁开销的角度&#xff09; 3.挂起等待锁/自旋锁 4.公平锁/非公平锁 5.可重入锁与不可重入锁 6.读写锁 synchronized 面试题&#xff1a;是什么偏向锁&#xff1f; 锁的升级&#xff1a; 锁消除&…...

【机器学习】人工神经网络优化方法及正则化技术

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 人工神经网络优化方法及正则化技术1. 引言2. 神经网络优化的基础2.1 损失函数2.…...

Django异步请求和后台管理实战

项目概述 项目实现Ajax异步请求局部刷新使用XAdmin后台模板提供图片上传接口在明细页应用了富文本编辑器在加载图书信息的时候使用LazyLoad&#xff08;图片懒加载&#xff09; # 环境 asgiref3.7.2 crispy-bootstrap32024.1 defusedxml0.7.1 diff-match-patch20230430 Djang…...

大奖放送 | AI编程达人秀视频文章征集大赛来啦!

AI Coding&#xff0c;可以有多少种打开玩法&#xff1f;腾讯云AI代码助手是一款辅助编码工具&#xff0c;基于混元大模型&#xff0c;提供技术对话、代码补全、代码诊断和优化等能力&#xff0c;为你生成优质代码&#xff0c;帮你解决技术难题&#xff0c;提升编码效率。 我…...

最新小猫咪PHP加密系统源码V1.4_本地API接口_带后台

小猫咪PHP加密系统历时半年&#xff0c;它再一次迎来更新&#xff0c;更新加密算法&#xff08;这应该是最后一次更新加密算法了&#xff0c;以后主要更新都在框架功能上面了&#xff09;&#xff0c;适配php56-php74&#xff0c;取消批量加密&#xff08;一些不可控因素&#…...

a bag of bones

以下是根据你提供的内容制作的5道选择题&#xff0c;包括答案和解析&#xff1a; 1. 短语 "a bag of bones" 通常用来描述什么&#xff1f; - A. 一个恐怖片中的角色 - B. 一个非常瘦弱的人 - C. 一个懒惰的人 - D. 一个穿着比基尼的人 答案&#xff1a;B 解析&#…...

XLT高速线缆自动化测试系统

高速线缆自动化测试系统 随着高速通信的快速发展&#xff0c;对于高速数据通信线缆性能要求日益增高&#xff0c;在其硏发、生产阶段&#xff0c;需要多次测试射频性能。传统人工手动测试存在测试环境搭建复杂、测试效率低、耗时长&#xff0c;特别是多次测试中因为人工测试带…...

微软AI业务最新营收数据情况(2024年7月)

Azure AI 年度经常性收入 (ARR)&#xff1a;达到50亿美元客户数量&#xff1a;60,000家平均客户价值 (ACV) 中位数&#xff1a;83,000美元同比增长率&#xff1a;达到了惊人的900% GitHub Copilot 年度经常性收入 (ARR)&#xff1a;达到3亿美元客户数量&#xff1a;77,000家…...

canvas绘制表格

canvas绘制表格 最近在为公司产品做技术预研&#xff0c;经理让用canvas做一个表格&#xff0c;于是就有了这篇博客。 我们的数据是后端通过MQTT推送过来的 我在代码中也直接使用了 具体MQTT的实现代码&#xff0c;可见博客 在vue使用MQTT 在这里为了方便实用我直接封装成组件…...

避免溃坝的关键:渗压计在防洪管理中的作用

防洪管理对于保障人民生命财产安全具有重要意义&#xff0c;而溃坝作为防洪管理中的重大风险之一&#xff0c;其防范工作尤为关键。在防洪管理体系中&#xff0c;渗压计作为一种重要的监测工具&#xff0c;发挥着不可替代的作用。本文将深入探讨渗压计在防洪管理中的作用。 实时…...

品牌建设如何助力中小企业突破生存瓶颈?

品牌&#xff0c;不仅仅是一个标志或商标&#xff0c;更是企业的形象、声誉和信誉的体现。品牌的存在是为了使企业区别于其他竞争对手&#xff0c;树立独特的形象&#xff0c;赢得消费者的认可和信任。 品牌的本质是品牌拥有者的产品、服务或其它优于竞争对手的优势能为目标受…...

探索Python FastAPI的Annotated参数设计:提升代码的灵活性与可读性

在现代软件开发中&#xff0c;代码的可读性和灵活性是至关重要的。Python的FastAPI框架以其高性能和易用性而受到开发者的喜爱。FastAPI提供了一种名为Annotated的参数设计方式&#xff0c;它允许开发者以类型注解的形式增强函数参数的定义&#xff0c;从而提升代码的表达力和灵…...

ClickHouse 进阶【建表、查询优化】

1、ClickHouse 进阶 因为上一节部署了集群模式&#xff0c;所以需要启动 Zookeeper 和 ck 集群&#xff1b; 1.1、Explain 基本语法 EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [setting value, ...] SELECT ... [FORMAT ...] AST&#xff1a;用于查看语法树SYNTAX&#…...

Qt拖拽事件详解及代码实现

Qt拖拽事件详解及代码实现 前言项目描述代码结构简介代码详解 前言 qt拖拽事件是一项非常常用并且非常好用的功能&#xff0c;拖拽实际上是一种信息传递的载体&#xff0c;其目的是将信息从一个对象传递给另一个对象。通过拖拽可以简化文件打开或业务操作流程&#xff0c;qt初…...

云原生的候选应用

提示 该内容摘自电子书《为 Azure 构建云原生 .NET 应用程序》&#xff0c;可在**.NET Docs**上获取&#xff0c;也可以免费下载 PDF并离线阅读。 考虑一下您的组织需要构建哪些应用程序。然后&#xff0c;看看您投资组合中的现有应用程序。其中有多少需要云原生架构&#xff…...

什么是单例模式?

单例模式是一种常见的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一实例。这种模式通常在需要控制某些资源的访问权限或确保对象的唯一性时使用。 单例模式的特点 唯一实例:单例模式确保一个类只有一个实例存在,全局可访问。 延迟实例化:在需…...

F4Pan百度网盘不限速直链解析工具最新可用

最新可用百度网盘不限速直链解析工具&#xff0c;现在很多解析网站和浏览器扩展都失效了&#xff0c;这个是用《F4Pan网盘解析系统开源源码》搭建的&#xff0c;有兴趣可以去研究研究。 下面看一下测试速度超过70MB每秒比开通会员还快非常的恐怖。 使用方法 1.下载F4Pan解析工…...

设计模式实战:智能家居系统的设计与实现

问题描述 设计一个智能家居系统,支持设备的控制(如灯、空调等),提供多种操作策略,并且在设备状态发生变化时通知用户。系统需要确保设备操作的灵活性和可扩展性。 设计分析 命令模式 命令模式用于将请求封装成对象,从而使我们可以用不同的请求、队列或日志来参数化其…...

Unity Rigidbody 踩坑记录

1&#xff1a;两个带有刚体的物体碰撞会一直不停的弹 把被动受力的刚提的 Freeze Position 的勾选 去掉&#xff08;碰到过一次&#xff0c;有一种受力无法释放又返回给目标的 所以一直弹跳的感觉&#xff09; 2&#xff1a;子物体 和父物体 都有刚体的情况下 子物体 Freeze R…...

解决图像修复与纹理合成难题的Resynthesizer:开源智能填充工具全指南

解决图像修复与纹理合成难题的Resynthesizer&#xff1a;开源智能填充工具全指南 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 在数字图像处理领域&#xff0c;我们经常面临…...

OpenClaw+Qwen3.5-9B:科研党的文献综述加速器

OpenClawQwen3.5-9B&#xff1a;科研党的文献综述加速器 1. 为什么需要AI辅助文献处理 去年冬天&#xff0c;我在准备一篇关于量子计算在金融领域应用的综述论文时&#xff0c;遇到了所有科研人共同的噩梦&#xff1a;堆积如山的PDF文献。下载了87篇相关论文后&#xff0c;光…...

从零搭建像素剧本工作站:Pixel Script Temple镜像免配置快速上手指南

从零搭建像素剧本工作站&#xff1a;Pixel Script Temple镜像免配置快速上手指南 1. 认识像素剧本圣殿 Pixel Script Temple是一款专为剧本创作者设计的AI辅助工具&#xff0c;它基于强大的Qwen2.5-14B-Instruct模型深度优化&#xff0c;特别适合需要频繁创作剧本、小说或叙事…...

QMCDecode终极指南:如何一键破解QQ音乐加密格式实现音乐自由

QMCDecode终极指南&#xff1a;如何一键破解QQ音乐加密格式实现音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c…...

Graphormer高性能部署:PyTorch 2.8.0 + Torch-Geometric 2.4优化实践

Graphormer高性能部署&#xff1a;PyTorch 2.8.0 Torch-Geometric 2.4优化实践 1. 引言 Graphormer是一种基于纯Transformer架构的图神经网络&#xff0c;专为分子属性预测任务设计。与传统的图神经网络(GNN)相比&#xff0c;Graphormer通过全局注意力机制直接建模分子图中原…...

从“无风扇散热”到“完美机房”:我与AI的一场散热与存储深度对话

本文源于我与AI的一次技术探讨&#xff0c;从无风扇散热模组的工作原理出发&#xff0c;逐步深入到浸泡式液冷、热辐射优化、算力中心架构&#xff0c;最终延伸至存储介质的可靠性对比。这是一次从“芯片级散热”到“系统级存储”的完整技术认知之旅。前言&#xff1a;一个好奇…...

OpenClaw自动化边界:千问3.5-27B不适合处理的五类任务

OpenClaw自动化边界&#xff1a;千问3.5-27B不适合处理的五类任务 1. 为什么需要明确自动化边界&#xff1f; 去年冬天&#xff0c;我花了整整三天时间调试一个OpenClaw自动化流程——让AI帮我整理电脑里积压的200GB设计素材。当看到脚本误删了未备份的客户源文件时&#xff…...

AI合规 I 算法备案、大模型备案和登记的区别,双备案又是什么?

开头附上完整阅读链接&#xff1a;AI合规 I 算法备案、大模型备案和登记的区别&#xff0c;双备案又是什么&#xff1f;https://mp.weixin.qq.com/s/QjjnWhbeDvPGduz31O49dQ 公司马上要上线一个新的AI产品&#xff0c;但是突然发现&#xff1a;"我好像需要做备案&#xf…...

linux系统中简单统计java项目代码行数信息

新建脚本文件&#xff08;最好在项目根目录下&#xff09;&#xff1a;count_java.shvi count_java.sh编辑内容&#xff1a;按一下键盘上的i键&#xff0c;屏幕左下角会出现 -- INSERT --&#xff0c;输入一下内容&#xff1a; #!/bin/bash find . -name "*.java" -p…...

Real-ESRGAN-GUI:如何用AI双引擎将模糊图片一键变高清

Real-ESRGAN-GUI&#xff1a;如何用AI双引擎将模糊图片一键变高清 【免费下载链接】Real-ESRGAN-GUI Lovely Real-ESRGAN / Real-CUGAN GUI Wrapper 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN-GUI 还在为模糊的老照片、低分辨率的动漫图片而烦恼吗&…...