- 2022tysc1451 的博客
杂物间
- 2025-1-23 20:15:36 @
倒计时
#include <iostream>
#include <windows.h>
//#include <cstdlib>
using namespace std;
int days;
int hours;
int mintues;
int seconds;
void printMenu()
{
cout<<"欢迎进入时间倒计时系统"<<endl;
cout<<endl;
}
void Input()
{
cout<<"请输入时间,格式为:Days,Hours,Mintues,Seconds"<<endl;
cin>>days>>hours>>mintues>>seconds;
cout<<endl;
}
void CountDown_Seconds(int &Days,int &Hours,int &Mintues,int &Seconds)//引用
{
for(; seconds >= 0; Seconds--)
{
cout<<"倒计时"<<Days<<"天"<<Hours<<"小时"<<Mintues<<"分"<<Seconds<<"秒"<<endl;//Seconds的S没有大写
Sleep(1000);//后Sleep可以看清楚时间
system("cls");
}
}
void CountDown_Mintues(int &Days,int &Hours,int &Mintues,int &Seconds)//引用
{
for(; Mintues >= 0; Mintues--)//<=改成>=
{
CountDown_Seconds( Days, Hours, Mintues, Seconds);
Seconds = 59; //这个改成59
}
}
void CountDown_Hours(int &Days,int &Hours,int &Mintues,int &Seconds)//引用
{
for( ; Hours >= 0 ; Hours--)//<=改成>=
{
CountDown_Mintues( Days, Hours, Mintues, Seconds);
Mintues = 59;//这个改成59
}
}
void CountDown(int Days,int Hours,int Mintues,int Seconds)
{
for( ; Days >= 0 ; Days--)//<=改成>=
{
CountDown_Hours( Days, Hours, Mintues, Seconds);
Hours = 23; //这个改成23
}
}
int main()
{
int i = 1;
int set;
printMenu();
while(i<=3)
{
Input();
cout<<"您输入的时间为"<<days<<"天"<<hours<<"小时"<<mintues<<"分"<<seconds<<"秒"<<endl;
cout<<"确认请按 1 ,否则请按 0 : ";
cin>>set;
if(set)
{
break;
}
i++;
}
CountDown( days, hours, mintues, seconds);
//system("pause");
return 0;
}
Dev C--
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<string>
#include<fstream>
using namespace std;
string s[105]={"0","#include<iostream>","using namespace std;","int main(){","}"},sr;
string tj[10]={"0","iostream","algorithm","cmath","cstring","cstdio","iomanip","string","bits/stdc++.h"};
string f[10]={"0","sort","memset"};
int h[105],hh=4,h2=3;
void cr(int h2,int x){
hh+=x;
for(int i=hh;i>h2;i--)s[i]=s[i-x];
}
void sc(int h2,int l){
for(int j=h2;j<hh;j++)s[j]=s[j+l-h2+1];
hh-=(l-h2+1);h2-=(l-h2+1);
}
string j(string sr){
if(sr[sr.size()-1]!=';'&&sr[sr.size()-1]!='{')sr+=";";
return sr;
}
char ch;
int p;
bool z;
bool tw[10];
void ax(){
if(_kbhit()){
system("cls");
ch=_getch();
if(ch==72)if(h2>1)h2--;
if(ch==80)if(h2<hh)h2++;
if(ch>=48&&ch<=57)p=ch-48,z=true;
if(ch>='a'&&ch<='z')p=ch,z=true;
for(int i=1;i<=hh;i++)cout<<h[i]<<" "<<s[i]<<"\n";
cout<<"当前行:"<<h2<<"\n";
cout<<"\n1.定义变量\n2.输入/输出\n3.循环\n4.删除代码\n5.if else\n6.自定义\n7.切换行(也可以按↑ ↓)\n8.新增头文件\n9.调用函数\ns.保存代码\no.读取代码\n";
}
}
////////////////自动保存功能
bool bAutoSave=false; // 自动保存开关
bool bAutoLoad=false; // 自动读取开关
void save_to(){ // 保存代码
const char* path="用代码写的代码.cpp"; // 保存文件名字
ofstream fout(path);
if(fout.is_open()){
for(int i=1;i<=hh;i++){
fout<<s[i]<<endl;
}
fout.close();
}else{
cerr<<"保存文件失败"<<endl;
}
}
void load_from(){ // 读取代码
const char* path="用代码写的代码.cpp"; // 要读取的文件的名字
string line;
ifstream fin(path);
if(fin.is_open()){
hh=0;
while(getline(fin,line)){
hh++;
s[hh]=line;
}
h2=hh;
fin.close();
}
}
struct CodeLS{
CodeLS(){
if(bAutoLoad){
load_from();
}
}
~CodeLS(){
if(bAutoSave){
save_to();
}
}
}code_ls;
////////////////
void k(int a){
int c=3;
while(a!=0){
a/=10;
c--;
}
for(int i=1;i<=c;i++)cout<<" ";
}
int fw;
int main(){
for(int i=1;i<=105;i++)h[i]=i;
while(true){
if(h2>hh)h2=hh;
if(h2<1)h2=1;
for(int i=1;i<=hh;i++){
cout<<h[i];
k(i);
cout<<s[i]<<"\n";
}
cout<<"当前行:"<<h2<<"\n";
cout<<"\n1.定义变量\n2.输入/输出\n3.循环\n4.删除代码\n5.if else\n6.自定义\n7.切换行(也可以按↑ ↓)\n8.新增头文件\n9.调用函数\ns.保存代码\no.读取代码\n";
while(true){
ax();
if(z==true){
cout<<p<<endl;
z=false;
break;
}
}
string bl;fw++;
if(fw==1)cout<<"全部输入0返回\n";
if(p==7){
int g;
cout<<"切换到...\n";
cin>>g;
if(g!=0)h2=g;
else {system("cls");continue;}
}
if(p==1){
cout<<"类型 名称\n";
cin>>sr>>bl;
if(sr=="0"&&bl=="0"){system("cls");continue;}
cr(h2,1);
s[h2]=sr+" "+bl;
s[h2]=j(s[h2]);h2++;
}
if(p==3){
int x;
cout<<"1.for\n2.while\n";
cin>>x;
if(x==0){system("cls");continue;}
if(x==1){
string b,e,d,m;
cout<<"变量名 起始 终止 +/-\n";
cin>>m>>b>>e>>d;
sr="for(int "+m+"="+b+";"+m;
if(d=="+")sr+="<="+e+";"+m+"++";
else sr+=">="+e+";"+m+"--";
}else{
string v;
cout<<"条件\n";
cin>>v;
sr="while("+v;
}
cr(h2,2);
s[h2]=sr+"){";
s[h2+1]="}";h2++;
}
if(p==2){
string z,x;
cout<<"1.输入 2.输出\n变量\n";
cin>>z>>x;
if(z=="0"&&x=="0"){system("cls");continue;}
if(z=="1")sr="cin>>"+x+";";
else sr="cout<<"+x+";";
cr(h2,1);
s[h2]=sr;h2++;
}
if(p==4){
int w;
cout<<"1.修改 2.删除\n";
cin>>w;
if(w==0){system("cls");continue;}
if(w==1){
string x,f;
getline(cin,f);
getline(cin,x);
s[h2]=x;
}else{
int l;
cout<<"结束行";
cin>>l;
sc(h2,l);h2-=abs(h2-l);
}
}
if(p==5){
int z;
string b;
cout<<"1.if; 2.else if; 3.else;\n";
cin>>z;
if(z==0){system("cls");continue;}
if(z==1){
cout<<"条件\n";
cin>>b;
sr="if("+b+"){";
}
if(z==2){
cout<<"条件\n";
cin>>b;
sr="else if("+b+"){";
}
if(z==3)sr="else{";
cr(h2,2);
s[h2]=sr;
s[h2+1]="}";h2++;
}
if(p==6){
cout<<"代码\n";
// getline(cin,sr);
getline(cin,sr);
if(sr=="0"){system("cls");continue;}
sr=j(sr);
cr(h2,1);
s[h2]=sr;h2+=1;
}
int t;
if(p==8){
for(int i=1;i<=8;i++)cout<<i<<"."<<tj[i]<<"\n";
cin>>t;
if(t==0){system("cls");continue;}
cr(1,1);
sr="#include<"+tj[t]+">";
s[1]=sr;h2++;
}
if(p==9){
cout<<"你要调用哪个函数?\n";
string b;
for(int i=1;i<=2;i++)cout<<i<<"."<<f[i]<<"\n";
cin>>t;sr=f[t]+"(";
if(t==0){system("cls");continue;}
cout<<"数组名:";
cin>>b;
if(t==1){
string s,e;
cout<<"起始 终止:";
cin>>s>>e;
sr+=b+"+"+s+","+b+"+"+e+"+1);";
}
if(t==2){
string a;
cout<<"遍历数:";
cin>>a;
sr+=b+","+a+",sizeof("+b+"));";
}
cr(h2,1);
s[h2]=sr;h2++;
}
if(p=='o'){
load_from();
}
if(p=='s'){
save_to();
}
system("cls");
}
}
Minecraft模拟器
//Minecraft模拟器
#include<bits/stdc++.h>
using namespace std;
const char t[10][10]={
"..+---+",
"./ /|",
"+---+ |",
"| | +",
"| |/.",
"+---+.."
};
char c[1010][1010];
int n,m,a[1010][1010],K,L;
void draw(int x,int y){
for(int i=0;i<6;i++){for(int j=0;j<7;j++){if(t[5-i][j]!='.')c[x+i][y+j]=t[5-i][j];}} //放置方块
K=max(K,x+6);
L=max(L,y+7); //画完方块后进行高度更新
}
signed main(){ //Minecraft
cout<<"请输入:两个整数,n,m";
cin>>m>>n;
cout<<"请输入:一个n*m的矩阵";
for(int i=0;i<m;i++){for(int j=0;j<n;j++)cin>>a[i][j];} //读入
//前遮后 右遮左 上遮下
for(int i=0;i<1000;i++)for(int j=0;j<1000;j++)c[i][j]='.';
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
for(int k=0;k<a[i][j];k++){
int x,y;//找到左下角坐标
x=3*k+2*(m-i-1);
y=4*j+2*(m-i-1);
draw(x,y);//画方块
}
}
}
for(int i=K-1;i>=0;i--){
for(int j=0;j<L;j++){cout<<c[i][j];}
cout<<endl;
}
return 0;
}
数独
#include<bits/stdc++.h>
using namespace std;
const int maxSize=10;
int Size,cnt,a[maxSize*maxSize],f[maxSize*maxSize],maxBlk,sqr,ANS,lis[maxSize*maxSize];
bool row[maxSize][maxSize],col[maxSize][maxSize],blk[maxSize][maxSize];
bool inNum[maxSize][maxSize];
void dfs(int step){
if(step>maxBlk){
for(int i=1;i<=Size*Size;i++){
cout<<a[i]<<" ";
if(i%9==0)cout<<endl;
}
cout<<endl;
return;
}else{
int r=lis[step]/Size+1;
int c=lis[step]%Size;
if(c==0)r=lis[step]/9,c=9;
int b=(r-1)/(sqr)*(sqr)+(c-1)/(sqr)+1;
for(int i=1;i<=Size;i++){
if(inNum[r][c]){
dfs(step+1);
break;
}
if(!row[r][i]&&!col[c][i]&&!blk[b][i]){
a[lis[step]]=i;
row[r][i]=col[c][i]=blk[b][i]=1;
dfs(step+1);
row[r][i]=col[c][i]=blk[b][i]=0;
}
}
}
}
struct srow{int id,zr;}RR[maxSize];
bool cmp(srow x,srow y){return x.zr<y.zr;}
void init(){
sort(RR+1,RR+10,cmp);
int stp=0;
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
int x=RR[i].id,y=j;
lis[++stp]=(x-1)*9+y;
}
}
return;
}
char ch;int num,T,pos;
int main(){
cin>>T;
while(T--){
memset(row,0,sizeof(row));
memset(col,0,sizeof(col));
memset(blk,0,sizeof(blk));
pos=0;
Size=9,sqr=3,maxBlk=81;
for(int i=1;i<=Size;i++){
RR[i].zr=0;
for(int j=1;j<=Size;j++){
cin>>ch;num=ch-'0';
inNum[i][j]=(num==0)?0:1;
a[++pos]=num;
int r=(pos-1)/Size+1;
int c=(pos-1)%Size+1;
int b=(r-1)/(sqr)*(sqr)+(c-1)/(sqr)+1;
row[r][num]=col[c][num]=blk[b][num]=1;
if(num==0)RR[i].zr++;
}
RR[i].id=i;
}
init(); // 处理顺序
dfs(1);
}
return 0;
}