0
已解决
此版本更新了8种开机画面,并且缩短代码,只有上一版本的55%!
也更新了小小记事本和小小计算器
#include<bits/stdc++.h>
#include<windows.h>
#define clear_cin() fflush(stdin)
#define KAIJI 1
#define INA 2
#define NTUSER 1
using namespace std;
int kjhm,usernum;
char *p;
string color;
char user[10005][2][105]={{"",""},{"admin",""}};
int desktop(int);
void clear();
string getver(bool =true);
void startup(int =0);
void s_d(int);
void setname();
void csh();
void ramtst(bool =false);
char _p(int);
int q(char);
int f(string,int);
string g(int,int);
void jzzh();
void ert();
void pro();
void puanduan();
int qspd();
void lowly(int);
namespace sm{
string s,t;
void output(){
cout<<"小小记事本1.2\n";
cout<<"开发日期:2022/12/28\n";
cout<<"按Ctrl+Z停止输入\n";
while(getline(cin,t)){
s+=t+'\n';
}
cin.clear();
cout<<"\n文件目录:";
string a;
getline(cin,a);
cout<<"\n文件名(加后缀名):";
string r;
getline(cin,r);
a+=r;
FILE* fp=fopen(a.c_str(),"w");
fprintf(fp,s.c_str());
fclose(fp);
cout<<"写入完成!\n按Enter继续";
getchar();
}
void input(){
cout<<"小小记事本1.2\n";
cout<<"开发日期:2022/12/28\n";
cout<<"输入地址和文件名(带后缀)";
string s;
getline(cin,s);
ifstream fin(s.c_str());
string t;
bool flag=0;
while(getline(fin,t)){
cout<<t<<endl;
flag=1;
}
if(!flag)cout<<"文件为空或无该文件\n";
cout<<"按Enter继续";
getchar();
}
int main(){
SetConsoleTitle("LOS中的小小记事本 本作品为LOS开发团队原创,盗版必究!");
while(1){
clear();
cout<<"小小记事本1.2\n";
cout<<"开发日期:2022/12/28\n";
cout<<"1.写入文件\n2.读取文件\n3.版本号\n4.退出\n";
string s;
getline(cin,s);
clear();
if(s=="1"||s=="1.写入文件"||s=="写入文件"){
output();
}
else if(s=="2"||s=="2.读入文件"||s=="读入文件"){
input();
}
else if(s=="3"||s=="3.版本号"||s=="版本号"){
cout<<"小小记事本1.2 Build 1110\n";
cout<<"开发日期:2022/12/28\n";
cout<<"按Enter继续";
getchar();
}
else if(s=="4"||s=="4.退出"||s=="退出")break;
else{
ert();
}
}
return 0;
}
}
namespace calc{
string s[100005],ans[100005];
int n;
string calc(string s){
long double num[100005]={0.0l};
char c[100005]={'\0'};
int pos=1;
stringstream sstream;
sstream<<s;
sstream>>num[1];
while(sstream>>c[pos]>>num[pos+1])pos++;
for(int i=1;i<=pos;){
if(c[i]=='\0')break;
if(c[i]=='*'||c[i]=='/'||c[i]=='%'){
if(c[i]=='*'){
num[i]*=num[i+1];
}
if(c[i]=='/'){
if(num[i+1]==0)return "NAN";
num[i]/=num[i+1];
}
if(c[i]=='%'){
if(num[i+1]==0)return "NAN";
num[i]=fmod(num[i],num[i+1]);
}
for(int j=i;j<pos;j++)c[j]=c[j+1];
for(int j=i+1;j<pos;j++)num[j]=num[j+1];
pos--;
}
else i++;
}
long double ans=num[1];
for(int i=2;i<=pos;i++){
if(c[i-1]=='\0')break;
if(c[i-1]=='+'||c[i-1]=='-'){
if(c[i-1]=='+'){
ans+=num[i];
}
if(c[i-1]=='-'){
ans-=num[i];
}
}
else if(c[i-1]!='*'&&c[i-1]!='/'&&c[i-1]!='%')return "NAN";
}
string retd;
stringstream anss;
anss<<ans;
anss>>retd;
return retd;
}
int main(){
SetConsoleTitle("LOS中的小小计算器 本作品为LOS开发团队原创,盗版必究!");
while(1){
clear();
cout<<"1.输入新算式\n2.查看历史记录\n3.清空历史记录\n4.版本号\n5.退出\n";
string t;
getline(cin,t);
clear();
if(t=="1"||t=="1.输入新算式"||t=="输入新算式"){
cout<<"请输入算式(支持小数,+-*/%,不支持括号)";
getline(cin,s[++n]);
clear();
ans[n]=calc(s[n]);
if(ans[n]=="NAN"){
n--;
cout<<"输入错误";
ert();
}
else{
cout<<s[n]<<"="<<ans[n]<<endl<<"按Enter继续";
}
getchar();
}
else if(t=="2"||t=="查看历史记录"||t=="2.查看历史纪录"){
for(int i=1;i<=n;i++){
cout<<s[i]<<'='<<ans[i]<<endl;
}
cout<<"按Enter继续";
getchar();
}
else if(t=="3"||t=="清空历史记录"||t=="3.清空历史记录"){
n=0;
cout<<"已清空!按Enter继续";
getchar();
}
else if(t=="4"||t=="版本号"||t=="4.版本号"){
cout<<"小小计算器1.2 Build 1100\n开发日期2022/12/28\n本作品为LOS开发团队原创,盗版必究!\n按Enter继续";
getchar();
}
else if(t=="5"||t=="5.退出"||t=="退出")break;
}
return 0;
}
}
int main(){
ramtst();
setname();
puanduan();
csh();
startup();
clear();
while(1){
clear();
int type=desktop(INA);
if(type==0){
startup(1);
return 0;
}
else if(type==1){
csh();
clear();
startup(2);
clear();
startup();
type=desktop(KAIJI);
}
clear();
}
return 0;
}
int desktop(int cs){
i9:
clear();
cout<<"1.应用\n2.电源\n3.设置\n";
string s;
getline(cin,s);
clear();
if(s=="1"||s=="应用"||s=="1.应用"){
i4:
cout<<"1.版本号\n2.小小记事本\n3.小小计算器\n4.检测环境\n5.返回\n";
string s;
getline(cin,s);
clear();
if(s=="1"||s=="版本号"||s=="1.版本号"){
getver();
clear();
}
else if(s=="2"||s=="小小记事本"||s=="2.小小记事本"){
sm::main();
setname();
}
else if(s=="3"||s=="数学工具"||s=="3.数学工具"){
calc::main();
}
else if(s=="4"||s=="检测环境"||s=="4.检测环境"){
i5:
cout<<"1.内存测试\n2.返回\n";
getline(cin,s);
clear();
if(s=="1"||s=="内存测试"||s=="1.内存测试"){
ramtst(true);
}
else if(s=="2"||s=="返回"||s=="2.返回"){
goto i4;
}
else{
ert();
goto i5;
}
}
else if(s=="5"||s=="返回"||s=="5.返回"){
goto i9;
}
else{
ert();
goto i4;
}
}
else if(s=="2"||s=="电源"||s=="2.电源"){
ir:
system("cls");
cout<<"1.关闭LOS\n2.重新启动LOS\n3.返回\n";
getline(cin,s);
if(s=="1"||s=="关闭"||s=="关闭LOS"||s=="1.关闭LOS"){
return 0;
}
else if(s=="2"||s=="重启"||s=="重新启动"||s=="重新启动LOS"||s=="2.重新启动LOS"){
return 1;
}
else if(s=="3"||s=="返回"||s=="3.返回"){
goto i9;
}
else{
ert();
goto ir;
}
}
else if(s=="3"||s=="设置"||s=="3.设置"){
i2:
cout<<"1.开关机/重启画面设置\n2.恢复出厂设置\n3.换颜色\n4.浅色模式\n5.返回\n";
getline(cin,s);
clear();
if(s=="1"||s=="开关机/重启画面设置"||s=="1.开关机/重启画面设置"){
ii:
cout<<"0.动态L+正在启动/关闭/重新启动LOS\n1.不显示\n2.正在启动/关闭/重新启动LOS...(一行)\n3.静态L+正在启动/关闭/重新启动LOS...\n4.空位+正在启动/启动/关闭/重新启动LOS...\n5.空位+正在启动/启动/关闭/重新启动LOS\n6.正在启动/关闭/重新启动LOS\n7.静态L+正在启动/关闭/重新启动LOS\n";
getline(cin,s);
FILE *kj=fopen("kj","w");
if(s=="0"||s=="0.动态L+正在启动/关闭/重新启动LOS"||s=="动态L+正在启动/关闭/重新启动LOS"){
fprintf(kj,"%d",0);
kjhm=0;
}
else if(s=="1"||s=="1.不显示"||s=="不显示"){
fprintf(kj,"%d",1);
kjhm=1;
}
else if(s=="2"||s=="正在启动/关闭/重新启动LOS...(一行)"||s=="2.正在启动/关闭/重新启动LOS...(一行)"){
fprintf(kj,"%d",2);
kjhm=2;
}
else if(s=="3"||s=="静态L+正在启动/关闭/重新启动LOS..."||s=="3.静态L+正在启动/关闭/重新启动LOS..."){
fprintf(kj,"%d",3);
kjhm=3;
}
else if(s=="4"||s=="空位+正在启动/启动/关闭/重新启动LOS..."||s=="4.空位+正在启动/启动/关闭/重新启动LOS..."){
fprintf(kj,"%d",4);
kjhm=4;
}
else if(s=="5"||s=="空位+正在启动/启动/关闭/重新启动LOS"||s=="5.空位+正在启动/启动/关闭/重新启动LOS"){
fprintf(kj,"%d",5);
kjhm=5;
}
else if(s=="6"||s=="6.正在启动/关闭/重新启动LOS"||s=="正在启动/关闭/重新启动LOS"){
fprintf(kj,"%d",6);
kjhm=6;
}
else if(s=="7"||s=="7.静态L+正在启动/关闭/重新启动LOS"||s=="静态L+正在启动/关闭/重新启动LOS"){
fprintf(kj,"%d",7);
kjhm=7;
}
else{
ert();
goto ii;
}
clear();
fclose(kj);
}
else if(s=="2"||s=="恢复出厂设置"||s=="2.恢复出厂设置"){
cout<<"确定请输入1";
char c=getchar();
if(c=='1'){
FILE *kj=fopen("kj","w");
fprintf(kj,"%d",0);
fclose(kj);
pro();
system("color 00");
csh();
return 1;
}
}
else if(s=="3"||s=="换颜色"||s=="3.换颜色"){
inae:
cout<<"字符代表的颜色:\n";
cout<<"0=黑色,1=蓝色,2=绿色,3=湖蓝色,4=红色,5=紫色,6=**,7=白色,8=灰色,9=淡蓝色,A=淡绿色,B=浅绿色,C=淡红色,D=淡紫色,E=淡**,F=亮白色。";
cout<<"\n请输入背景颜色(上面给出的)";
string s,y;
cin>>s;
if(!(s.size()==1&&(s[0]>='0'&&s[0]<='9'||s[0]>='A'&&s[0]<='F'||s[0]>='a'&&s[0]<='f'))){
system("cls");
ert();
goto inae;
}
if(s[0]>='a'&&s[0]<='f')s[0]-=32;
system("cls");
inbe:
cout<<"字符代表的颜色:\n";
cout<<"0=黑色,1=蓝色,2=绿色,3=湖蓝色,4=红色,5=紫色,6=**,7=白色,8=灰色,9=淡蓝色,A=淡绿色,B=浅绿色,C=淡红色,D=淡紫色,E=淡**,F=亮白色。";
cout<<"\n请输入文字颜色(上面给出的)";
cin>>y;
if(!(y.size()==1&&(y[0]>='0'&&y[0]<='9'||y[0]>='A'&&y[0]<='F'||y[0]>='a'&&y[0]<='f'))){
system("cls");
ert();
goto inbe;
}
if(y[0]>='a'&&y[0]<='f')y[0]-=32;
color=s+y;
clear();
string t="color "+s+y;
system(t.c_str());
FILE* cl=fopen("color","w");
fprintf(cl,color.c_str());
fclose(cl);
}
else if(s=="4"||s=="浅色模式"||s=="4.浅色模式"){
i10:
clear();
cout<<"0.关闭\n1.开启\n";
string y;
getline(cin,y);
FILE* qsmd=fopen("qs","w");
if(y=="0"||y=="关闭"||y=="0.关闭"){
fprintf(qsmd,"%d",0);
FILE* cl=fopen("color","r");
char x=getc(cl),y=getc(cl);
string ans="color ";
ans+=x;
ans+=y;
system(ans.c_str());
fclose(cl);
}
else if(y=="1"||y=="1.开启"||y=="开启"){
fprintf(qsmd,"%d",1);
system("color 70");
}
else{
ert();
goto i10;
}
fclose(qsmd);
}
else if(s=="5"||s=="返回"||s=="5.返回"){
goto i9;
}
else{
ert();
goto i2;
}
}
else{
ert();
goto i9;
}
return 2;
}
void clear(){
system("cls");
clear_cin();
}
string getver(bool flag){
string a="LOS 3.2(Build 3042)",b="开发日期2022/12/29\n",c="本作品为LOS开发团队原创,盗版必究!\n",d="按Enter继续",e=" ";
if(flag){
cout<<a<<endl<<b<<c<<d;
getchar();
clear();
}
return a+e+c;
}
void startup(int type){
if(kjhm==0){
string s="";
for(int i=1;i<=6;i++){
s+=" |\n";
cout<<s;
for(int j=9-i;j>=0;j--)cout<<endl;
cout<<"\n ";
lowly(type);
Sleep(60);
clear();
}
s+=" |";
cout<<s<<endl<<endl<<endl<<endl<<endl<<" ";
lowly(type);
Sleep(60);
clear();
for(int i=0;i<12;i++){
s+="_";
cout<<s<<endl<<endl<<endl<<endl<<endl<<" ";
lowly(type);
Sleep(60);
clear();
}
Sleep(106);
}
if(kjhm==1)return;
if(kjhm==2){
lowly(type);
for(int i=1;i<=3;i++){
Sleep(666);
cout<<'.';
}
Sleep(666);
}
if(kjhm==4){
string s="\
\n\
\n\
\n\
\n\
\n\
\n\
\n\n\n\n\n\n";
cout<<s;
cout<<" ";
lowly(type);
for(int i=1;i<=3;i++){
Sleep(666);
cout<<'.';
}
Sleep(666);
}
if(kjhm==3){
string s="\
|\n\
|\n\
|\n\
|\n\
|\n\
|\n\
|____________\n\n\n\n\n\n";
cout<<s;
cout<<" ";
lowly(type);
for(int i=1;i<=3;i++){
Sleep(666);
cout<<'.';
}
Sleep(666);
}
if(kjhm==5){
string s="\
\n\
\n\
\n\
\n\
\n\
\n\
\n\n\n\n\n\n";
cout<<s;
cout<<" ";
lowly(type);
Sleep(1666);
}
if(kjhm==6){
lowly(type);
Sleep(1666);
}
if(kjhm==7){
string s="\
|\n\
|\n\
|\n\
|\n\
|\n\
|\n\
|____________\n\n\n\n\n\n";
cout<<s;
cout<<" ";
lowly(type);
Sleep(1666);
}
clear();
}
void s_d(int n){
Sleep(n);
cout<<".";
}
void setname(){
SetConsoleTitle(getver(0).c_str());
}
void csh(){
FILE* kj=fopen("kj","r");
fscanf(kj,"%d",&kjhm);
fclose(kj);
if(!qspd()){
FILE* ys=fopen("color","r");
char s;
s=getc(ys);
color="";
color+=s;
s=getc(ys);
color+=s;
if(color[0]==' ')color="00";
if(color=="")color="00";
string t="color "+color;
system(t.c_str());
fclose(ys);
}
else system("color 70");
}
void ramtst(bool flag){
p=(char*)malloc(157374182);
for(int j=0;j<157374182;j++)p[j]=1;
if(p!=NULL){
if(flag){
cout<<"测试成功,能够正常运行LOS!\n";
Sleep(1000);
}
}
else{
cout<<"错误:剩余内存过少,可能无法正常运行LOS!";
exit(1);
}
free(p);
clear();
}
int q(char number){
if(number<='9')return number-48;
return number-55;
}
int f(string a,int k){
int n=0;
for(int i=0;i<a.size();i++){
n=n*k+q(a[i]);
}
return n;
}
int n;
string s;
int jz;
char _p(int number){
if(number<10)return number+48;
return number+55;
}
string g(int n,int jz){
string s="";
while(n){
s=_p(n%jz)+s;
n/=jz;
}
return s;
}
void jzzh(){
cout<<"请输入需要转换的数的进制n";
cin>>n;
cout<<"请输入需要转换的数s";
cin>>s;
cout<<"请输入要转换到的进制";
cin>>jz;
int ans=f(s,n);
cout<<g(ans,jz);
}
void ert(){
MessageBeep(MB_ICONERROR);
}
void pro(){
FILE* cl=fopen("color","w");
fprintf(cl,"07");
fclose(cl);
system("color 07");
}
void puanduan(){
ifstream fout("nf");
int n=0;
fout>>n;
if(!n){
pro();
ofstream fout("nf");
fout<<1;
FILE * yc=fopen("Type","w");
fprintf(yc,"%d",0);
fclose(yc);
}
}
int qspd(){
ifstream qsmd("qs");
int n=0;
qsmd>>n;
return n;
}
void lowly(int a){
if(a==0)cout<<"正在启动LOS";
if(a==1)cout<<"正在关闭LOS";
if(a==2)cout<<"正在重新启动";
}