问题标题: XA操作系统:XA-codingtang v1.0.0 发布贴

4
1
已解决
沙宸安
沙宸安
高级启示者
高级启示者

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追加了内容

还请您留下点赞、评论或关注。

您的支持就是我们最大的动力!

谢谢!


0
已采纳
陈喆鹏
陈喆鹏
资深光能
资深光能

自己看一下代码就行了

0
0
0
刘英杰
刘英杰
新手天翼
新手天翼

你之前的那个XA2020 pro呢?可以看yellow片的老系统呢?

0
我要回答