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

3
0
已解决
沙宸安
沙宸安
高级启示者
高级启示者

v2.0.0更新啦! 

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<time.h>
#include<windows.h>
#define KEY_DOWN(VK_NOnam) ((GetAsyncKeyState(VK_NOnam) & 0x8000) ? 1:0)
using namespace std;

struct xa{
	string nam;
	int num,typ;
	/*
	typ=
	-x 已被删除的文件
	1  文件夹
	2  文本文档
	3  图片文件	
	*/
};
xa doc[256][256];
int check=1,top=1,toptxt=0,toppic=0,i,j,k,pictime=1000,cleartime=100;
string x,txt[256];
int file[256][256],filestd[256],pic[256][21][39];

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 v2.0.0 正在关机..."<<endl;
		Sleep(3000);
		check=0;
		cout<<"关机完毕,欢迎下次使用。"<<endl;
	}
}
void xatxt(int uuu){
	while(!kd('M')){
		system("cls");
		cout<<"您已进入文本编辑模式"<<endl<<"原文件:"<<txt[uuu]<<endl<<">>XA系统 Q-修改文本 M-退出编辑"<<endl;
		Sleep(500); 
		if(kd('Q')){
			cout<<"编辑:";
			getline(cin,x);
			cout<<">>XA系统 您确定要修改吗? T-确定 F-取消"<<endl;
			bool flag=0;
			while(!flag){
				if(kd('T')){
					flag=1;
					txt[uuu]=x;
				}
				Sleep(100);
				if(kd('F')){
					flag=1;
				}
				Sleep(100);
			}
		}
	}
}
void xapic(int uuu){
	int xx=1,yy=1,cr=7;
	bool pen=0;
	while(!kd('M')){
		system("cls");
		color(7);
		cout<<"您已进入图片(39x21)编辑模式"<<endl<<"原文件:"<<endl;
		for(i=1;i<=21;i++){
			for(j=1;j<=39;j++){
				color(pic[uuu][i][j]);
				cout<<"▇";
			}
			cout<<endl;
		}
		color(7);
		cout<<">>XA系统 (长按3-4秒,按键更新较慢)Q-修改图片 C-修改更新速度 M-退出编辑"<<endl;
		if(kd('C')){
			system("cls");
			cout<<">>注册表:绘图更新速度(默认100毫秒)"<<endl<<"输入时间(毫秒):";
			cin>>cleartime;
			system("cls");
			cout<<"修改中。。。"<<endl; 
		}
		Sleep(3000);
		if(kd('Q'))while(!kd('M')){
			system("cls");
			color(7);
			cout<<"您已进入图片(39x21)编辑模式";
			cout<<" x:"<<xx<<" y:"<<yy<<endl;
			for(i=1;i<=21;i++){
				for(j=1;j<=39;j++){
					color(pic[uuu][i][j]);
					cout<<"▇";
				}
				cout<<endl;
			}
			color(7);
			cout<<">>XA系统 WASD-操作画笔 E-";
			if(pen) cout<<"抬起画笔 ";
			else cout<<"放下画笔 ";
			cout<<"R-更改颜色 M-保存并退出"<<endl;
			Sleep(cleartime);
			if(kd('E')) pen=!pen;
			if(kd('W') && xx!=1){
				xx--;
			}
			if(kd('S') && xx!=21){
				xx++;
			}
			if(kd('A') && yy!=1){
				yy--;
			}
			if(kd('D') && yy!=39){
				yy++;
			}
			if(pen) pic[uuu][xx][yy]=cr;
			if(kd('R')){
				system("cls");
				cout<<"更改色号:";
				cin>>cr;
				system("cls");
			}
		}
		
	}
}
void findesktop(int cmmmd){
	if(cmmmd==1){
		cout<<"桌面";
		return ;
	}
	else{
		findesktop(file[cmmmd][0]);
		cout<<">>"<<cmmmd;
		return ;
	} 
}
void desktop(int cmmd){
	while(!kd('M'))
	{
		system("cls");
		color(9);
		cout<<"操作系统:XA-codingtang v2.0.0"<<endl;
		color(14);
		cout<<"文件夹路径:";
		color(7);
		findesktop(cmmd);
		cout<<endl;	
		for(i=1;i<=filestd[cmmd];i++){
			if(1){
				cout<<i<<" : "<<file[cmmd][i]<<endl;
			}
		}
		cout<<"您已进入文件操作模式"<<endl<<"C-打开功能栏"<<endl;	
		Sleep(500);
		if(kd('C')) 
		while(!kd('N')){
			system("cls");
			cout<<"Q-新建文件夹"<<endl<<"W-打开文件夹"<<endl<<"E-新建文本文档"<<endl<<"R-新建图片"<<endl<<"O-打开文件"<<endl<<"I-重命名文件"<<endl<<"N-退出功能区"<<endl<<"M-退至上一个文件夹"<<endl;
			Sleep(500);
			if(kd('Q')){
				system("cls");
				cout<<">>XA系统 正在建立,请勿再按“Q”键"<<endl;
				Sleep(1000);
				top++;
				file[top][0]=cmmd;
				filestd[cmmd]++;
				file[cmmd][filestd[cmmd]]=top;
			}
			if(kd('E')){
				system("cls");
				cout<<">>XA系统 正在建立,请勿再按“E”键"<<endl;
				Sleep(1000);
				toptxt++;
				doc[cmmd][0].num++;
				doc[cmmd][doc[cmmd][0].num].typ=2;
				doc[cmmd][doc[cmmd][0].num].num=toptxt;
				doc[cmmd][doc[cmmd][0].num].nam="XAtext";
			}
			if(kd('R')){
				system("cls");
				cout<<">>XA系统 正在建立,请勿再按“R”键"<<endl;
				Sleep(1000);
				toppic++;
				doc[cmmd][0].num++;
				doc[cmmd][doc[cmmd][0].num].typ=3;
				doc[cmmd][doc[cmmd][0].num].num=toppic;
				doc[cmmd][doc[cmmd][0].num].nam="XApicture";
			}
			if(kd('W')){
				system("cls");
				for(i=1;i<=filestd[cmmd];i++){
					if(1){
					cout<<i<<" : "<<file[cmmd][i]<<endl;
					}
				}
				cout<<"输入=0 - 退出"<<endl<<"打开第( )个文件夹:"; 
				cin>>i;
				if(i>0) desktop(file[cmmd][i]);
			}
			if(kd('O')){
				system("cls");
				for(i=1;i<=doc[cmmd][0].num;i++){
					if(1){
					cout<<i<<" : "<<doc[cmmd][i].nam<<endl;
					}
				}
				cout<<"输入=0 - 退出"<<endl<<"打开第( )个文件:"; 
				cin>>i;
				if(i>0){
					if(doc[cmmd][i].typ==2){
						xatxt(doc[cmmd][i].num);
						cout<<">>XA系统 正在退出,请勿再按“M”键"<<endl;
						Sleep(1000);
					}
					if(doc[cmmd][i].typ==3){
						xapic(doc[cmmd][i].num);
						cout<<">>XA系统 正在退出,请勿再按“M”键"<<endl;
						Sleep(1000);
					} 
				} 
			}
			if(kd('I')){
				system("cls");
				for(i=1;i<=doc[cmmd][0].num;i++){
					if(1){
					cout<<i<<" : "<<doc[cmmd][i].nam<<endl;
					}
				}
				cout<<"输入=0 - 退出"<<endl<<"重命名第( )个文件:"; 
				cin>>i;
				if(i>0){
					cout<<"重命名:";
					cin>>doc[cmmd][i].nam;
					cout<<"改名成功!"<<endl; 
					Sleep(1000);
				}
			}
			if(kd('M')){
				system("cls");
				cout<<">>XA系统 正在退出,请勿再按“M”键"<<endl;
				Sleep(1000);
				return ;
			}
		}
	}
}
int jsq1()
{
	double a1,b1;
	char x;
	cout<<">>XA系统 请依次输入:[一个整数或一个有限小数][四则运算符号][一个整数或一个有限小数]"<<endl;
	cin>>a1>>x>>b1;
	if(x=='+')
		cout<<a1+b1<<endl;
	if(x=='-')
		cout<<a1-b1<<endl;
	if(x=='*')
		cout<<a1*b1<<endl;
	if(x=='/')
	{
		if(b1==0)
			cout<<">>XA系统 除数不能为0!"<<endl;
		else cout<<a1/b1<<endl;
	}
	return 0;
}
int guo(int h1,int h2){
	int xxxxx,mm1,mm2,bxxxxxggest=0;
	mm1=h1;
	mm2=h2;
	bxxxxxggest=h1>h2? h1:h2;
	for(xxxxx=2;xxxxx<bxxxxxggest;xxxxx++)
		{			
		if(mm1%xxxxx==0 && mm2%xxxxx==0)
		{
			mm1=mm1/xxxxx;
			mm2=mm2/xxxxx;
		xxxxx=xxxxx-1;
		}
	}
	if(mm1%mm2==0)
	{
		cout<<mm1/mm2<<endl;
	}
	else cout<<mm1<<"/"<<mm2<<endl;
}
int jsq2()
{
	int a1,a2,b1,b2,i1,i2,j1,j2,e1,e2,ccccccccccccccccccccccccc;
	char ccccc,fff; 
	cout<<">>XA系统 请依次输入:"<<endl<<"(正号或负号)[第一个数的分子]/[第一个数的分母]"<<endl<<"[四则运算符号]"<<endl<<"(正号或负号)[第二个数的分子]/[第二个数的分母]"<<endl;
	cin>>a1>>fff>>a2;
	cin>>ccccc;
	cin>>b1>>fff>>b2;
	if(ccccc=='+')
	{
		i1=a1*b2;
		i2=b1*a2;
		j1=a2*b2;
		j2=a2*b2;
		e1=i1+i2;
		e2=j1;
	}
	if(ccccc=='-')
	{
		i1=a1*b2;
		i2=b1*a2;
		j1=a2*b2;
		j2=a2*b2;
		e1=i1-i2;
		e2=j1;
	}
	if(ccccc=='/')
	{
		ccccccccccccccccccccccccc=b2;
		b2=b1;
		b1=ccccccccccccccccccccccccc;
		ccccc='*';
	}
	if(ccccc=='*')
	{
		e1=a1*b1;
		e2=a2*b2;
	}
	guo(e1,e2);
	return 0;
}
int main()
{
	for(i=1;i<=255;i++){
		for(j=1;j<=21;j++){
			for(k=1;k<=39;k++){
				pic[i][j][k]=7;
			}
		}
	}
	while(check){
		color(9);
		cout<<"操作系统:XA-codingtang v2.0.0"<<endl;
		color(7);
		string time=getTime();
		cout<<time<<endl;
		color(14);
		cout<<"基本操作:"<<endl;
		color(7);
		cout<<"C-进入命令模式"<<endl<<"O-打开小工具"<<endl;
		color(14);
		cout<<"系统桌面文件:"<<endl;
		color(7);
		for(i=1;i<=filestd[1];i++){
			if(1){
				cout<<file[1][i]<<endl;
			}
		}
		for(i=1;i<=doc[1][0].num;i++){
			if(1){
			cout<<doc[1][i].nam<<endl;
			}
		} 
		Sleep(1000);
		system("cls");
		shut_down();
		if(kd('C')){
			system("cls");
			color(9);
			cout<<"操作系统:XA-codingtang v2.0.0"<<endl;
			color(7);
			cout<<"您已进入命令模式"<<endl;
			cout<<">>XA系统 提示:进入桌面(文件操作模式)输入“opendesktop”。"<<endl; 
			if(!check) break;
			cin>>x;
			if(x=="opendesktop")
				desktop(1);
			system("cls");
		}
		if(kd('O')) 
		while(!kd('M')){
			system("cls");
			cout<<"Q-计算器"<<endl<<"W-分数计算器"<<endl<<"E-计时器"<<endl<<"R-倒计时"<<endl<<"M-退出小工具"<<endl;
			Sleep(500);
			if(kd('Q')){
				system("cls");
				jsq1();
				Sleep(1500);
			}
			if(kd('W')){
				system("cls");
				jsq2();
				Sleep(1500);
			}
			if(kd('E')){
				system("cls");
				int ddddd=0,hhhhh=0,mmmmm=0,sssss=0;
				bool se=0;
				while(!kd('M')){
					system("cls");
					color(9);
					cout<<"操作系统:XA-codingtang v2.0.0"<<endl;
					color(14);
					cout<<"XA计时器"<<endl<<"当前计时:";
					color(7);
					printf("%02d:%02d:%02d:%02d",ddddd,hhhhh,mmmmm,sssss);
					if((ddddd!=0 || hhhhh!=0 || mmmmm!=0 || sssss!=0) && !se){
						color(14);
						cout<<" 暂停中";
						color(7);
					}
					cout<<endl<<">>XA系统 T-开始/继续/暂停计时 Y-清零 M-退出"<<endl;
					Sleep(1000);
					if(kd('T')) se=!se;
					if(kd('Y')){
						ddddd=0;
						hhhhh=0;
						mmmmm=0;
						sssss=0;
					}
					if(se){
						sssss++;
						if(sssss==60){
							sssss=0;
							mmmmm++;
						}
						if(mmmmm==60){
							mmmmm=0;
							hhhhh++;
						}
						if(hhhhh==24){
							hhhhh=0;
							ddddd++;
						}
					}	
				}
				system("cls");
				cout<<">>XA系统 正在退出,请勿再按“M”键"<<endl;
				Sleep(1500);
			}
			if(kd('R')){
				system("cls");
				int ddddd=0,hhhhh=0,mmmmm=0,sssss=0;
				bool se=0,flag=1;
				cout<<"输入倒计时的 日 时 分 秒"<<endl;
				cin>>ddddd>>hhhhh>>mmmmm>>sssss;
				if((hhhhh>23 || mmmmm>59 || sssss>59)||(ddddd==0 && hhhhh==0 && mmmmm==0 && sssss==0)){
					flag=0;
					cout<<">>XA系统 输入错误!"<<endl;
					Sleep(500);
				}
				while(!kd('M') && flag){
					system("cls");
					color(9);
					cout<<"操作系统:XA-codingtang v2.0.0"<<endl;
					color(14);
					cout<<"XA倒计时"<<endl<<"当前计时:";
					color(7);
					printf("%02d:%02d:%02d:%02d",ddddd,hhhhh,mmmmm,sssss);
					if(!se){
						color(14);
						cout<<" 暂停中";
						color(7);
					}
					if(ddddd==0 && hhhhh==0 && mmmmm==0 && sssss==0){
						cout<<endl<<">>XA系统 倒计时结束,3秒后退出倒计时。";
						Sleep(3000);
						break; 
					}
					cout<<endl<<">>XA系统 T-开始/继续/暂停计时 M-退出"<<endl;
					Sleep(1000);
					if(kd('T')) se=!se;
					if(se){
						sssss--;
						if(sssss==-1){
							sssss=59;
							mmmmm--;
						}
						if(mmmmm==-1){
							mmmmm=59;
							hhhhh--;
						}
						if(hhhhh==-1){
							hhhhh=23;
							ddddd--;
						}
					}	
				}
				system("cls");
				cout<<">>XA系统 正在退出,请勿再按“M”键"<<endl;
				Sleep(1500);
			}
		}
		system("cls");
	}
    return 0;
}

 

沙宸安在2020-10-11 12:03:00追加了内容

更新日志:

修复了某些C++编译器“name”为关键字编译错误的问题

文件可以重命名啦!再也不怕分不清文件啦!

沙宸安在2020-10-11 12:58:27追加了内容

恳请留下点赞、收藏、评论或关注!

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

谢谢大家!

沙宸安在2020-10-11 13:25:58追加了内容

恳请点个关注呗!

沙宸安在2020-10-11 21:18:20追加了内容

恳请点个关注呗!

沙宸安在2020-10-13 22:42:28追加了内容

沙宸安在2020-10-13 22:42:37追加了内容

沙宸安在2020-10-14 19:10:51追加了内容

@欧阳语聪 现在能不能编译过了?

沙宸安在2020-10-14 19:10:57追加了内容

@欧阳语聪 现在能不能编译过了?


0
1
沙宸安
沙宸安
高级启示者
高级启示者

本来说是寒假更新的,但是因为对不住欧阳语聪同学发现的bug,所以紧急更新了一下。

0
徐子宸
徐子宸
中级天翼
中级天翼

!!!!!!!!!!!!!

0
0
汪一尘
汪一尘
修练者
修练者

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0
沙宸安
沙宸安
高级启示者
高级启示者

再过2.5小时就要考CSP/J了,祝各位考生好运!

0
0
0
0
我要回答