4
已解决
沙宸安
高级启示者
高级启示者
XA的含义:兴安,我别名沙兴安。
这个程序是一个模拟操作系统,但功能非常少,少到只能新建文件夹。
但是。。。
诶别走,这文件夹可不一样,它可以无限套娃,就像Windows一样:文件夹里再建文件夹。。。
想来体验一下吗?
源代码如下:
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<time.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
struct xa{
string name;
int num,typ;
}doc[256][256];
int check=1,top=1,i,j;
string x;
int file[256][256],filestd[256];
void color(int corcorcor){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);
}
string getTime()
{
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "系统时间:%Y年%m月%d日 %H时%M分%S秒",localtime(&timep) );
return tmp;
}
int kd(char ccc){
if(!KEY_DOWN(ccc)) return 0;
else return 1;
}
int shut_down(){
if(kd('M')){
system("cls");
cout<<"XA-codingtang v1.0.0 正在关机..."<<endl;
Sleep(3000);
check=0;
cout<<"关机完毕,欢迎下次使用。"<<endl;
}
}
void desktop(int cmmd){
while(x!="before")
{
system("cls");
color(9);
cout<<"操作系统:XA-codingtang v1.0.0"<<endl;
color(7);
for(i=1;i<=filestd[cmmd];i++){
if(1){
cout<<i<<" : "<<file[cmmd][i]<<endl;
}
}
cout<<"您已进入文件操作模式"<<endl<<"CMD:";
cin>>x;
if(x=="newfile"){
top++;
file[top][0]=cmmd;
filestd[cmmd]++;
file[cmmd][filestd[cmmd]]=top;
}
if(x=="openfile"){
cin>>i;
desktop(file[cmmd][i]);
x="?";
}
}
}
int main()
{
while(check){
color(9);
cout<<"操作系统:XA-codingtang v1.0.0"<<endl;
color(7);
string time=getTime();
cout<<time<<endl;
Sleep(1000);
system("cls");
shut_down();
if(kd('Q')){
system("cls");
color(9);
cout<<"操作系统:XA-codingtang v1.0.0"<<endl;
color(7);
cout<<"您已进入命令模式"<<endl<<"CMD:";
Sleep(3000);
shut_down();
if(!check) break;
cin>>x;
if(x=="opendesktop")
desktop(1);
system("cls");
}
}
return 0;
}
使用说明:
这是登入界面:
按“M”键关机,注意:关程序,不是系统!
按“Q”键进入命令模式:
输入“opendesktop”进入系统桌面
输入“newfile”新建文件夹
输入“openfile”打开文件夹,再输入一个数字,表示打开从上到下第几个文件夹
输入“before”退回至上一个文件夹
相信大家都对“文件夹无限套娃”(也不是无限,这种算法最多建255个文件夹,多了浪费空间)这个功能很好奇吧!
如果关注我的人数超过10人,我就教你们。
不需要什么复杂的算法,简单易理解。
有什么好的建议,欢迎提出。
后续还会更新。。。
沙宸安在2020-10-04 19:13:43追加了内容
注:按键的操作需长按1-2秒!
沙宸安在2020-10-04 21:28:11追加了内容
还请您留下点赞、评论或关注。
您的支持就是我们最大的动力!
谢谢!