📄 grary2.h
字号:
getch();
}
void reset_GrpArr2(GrpArr2& ag)
{int i,j;
for (i=ag.srow;i<=ag.erow;i++)
for (j=ag.scol;j<=ag.ecol;j++)
put_elmn2(ag,i,j,0);
}
void clear_GrpArr2_elmn2(GrpArr2& ag,int i,int j)
{ fifild2(ag,i,j,0);fifild2(ag,i,j,1); }
void clear_GrpArr2(GrpArr2& ag)
{int i,j;
for (i=ag.srow;i<=ag.erow;i++)
for( j=ag.scol;j<=ag.ecol;j++)
clear_GrpArr2_elmn2(ag,i,j);
getch();
}
void GrpArr2_range(GrpArr2& ag,int& x1,int& y1,int& x2,int& y2)
{
{ coord2(ag,ag.srow-1,ag.scol-1,x1,y1);
coord2(ag,ag.erow+2,ag.ecol+2,x2,y2);
} }
void clear_GrpArr2_range(GrpArr2& ag)
{int x1,y1,x2,y2;
GrpArr2_range(ag, x1,y1,x2,y2);
Clear_range( x1,y1,x2,y2) ;
}
void display_GrpArr2_frame(GrpArr2& ag)
{int x1,y1,x2,y2,i,j;
{ dissub2(ag);
coord2(ag,ag.srow,ag.scol,x1,y1);
coord2(ag,ag.erow+1,ag.ecol+1,x2,y2);
outtextxy((x1+x2)/2,y2+ag.h/2,ag.name);
rectangle(x1,y1,x2,y2);
for (i=ag.scol+1;i<=ag.ecol;i++)
{ coord2(ag,ag.srow,i,x1,y1);
coord2(ag,ag.erow+1,i,x2,y2);
line(x1,y1,x2,y2);
}
for( i=ag.srow+1;i<=ag.erow;i++)
{ coord2(ag,i,ag.scol,x1,y1);
coord2(ag,i,ag.ecol+1,x2,y2);
line(x1,y1,x2,y2);
}
}
}
void display_GrpArr2_elmn2(GrpArr2& ag,int i,int j)
{ disnodedat2(ag,i,j); }
void display_GrpArr2_elmns(GrpArr2& ag)
{int i,j;
for( i=ag.srow;i<=ag.erow;i++)
for (j=ag.scol;j<=ag.ecol;j++)
disnodedat2(ag,i,j);
}
void display_GrpArr2_sub2(GrpArr2& ag)
{ dissub2(ag); }
void display_GrpArr2(GrpArr2& ag)
{ clear_GrpArr2_range(ag);
display_GrpArr2_frame(ag);
display_GrpArr2_elmns(ag);
}
void move_GrpArr2_to(GrpArr2& ag,int x,int y)
{ ag.sx=x;ag.sy=y; display_GrpArr2(ag) ; }
void move_GrpArr2_dxy(GrpArr2& ag,int x,int y)
{ ag.sx=x+ag.sx;ag.sy=y+ag.sy;
display_GrpArr2(ag); }
void move_GrpArr2_mid(GrpArr2& ag,int x,int y)
{int x1,y1,x2,y2;
coord2(ag,ag.srow,ag.scol,x1,y1);
coord2(ag,ag.erow+1,ag.ecol+1,x2,y2);
move_GrpArr2_dxy(ag,x-(x1+x2)/2,y-(y1+y2)/2);
}
void load_arrbb2_file(BB2& a,int i1,int i2,int j1,int j2,string dosfile)
{FILE * ff;
int i,j,k;
if((ff=fopen(dosfile,"r"))==NULL)
{
cout<<"file"<<dosfile<<"can't open!"<<endl;
exit(0);
}
for( i=i1;i<=i2;i++)
for (j=j1; j<=j2;j++)
a[i][j]=0;
i=i1-1;
while (i<i2)
{ j=j1;i=i+1;
while ((j<=j2)&&(fscanf(ff,"%4d",&a[i][j])!=EOF))
j=j+1;
}
fclose(ff);
}
void rand_arrbb2(BB2& a,int i1,int i2,int j1,int j2,int range1,int range2)
{ int i,j,k;
if (range1>range2 )
{k=range1;range1=range2;range2=k; }
for (i=i1;i<=i2;i++)
for(j=j1;j<=j2;j++)
do a[i][j]=rand();
while (a[i][j]<range1||a[i][j]>range2);
modi_arrbb2(a,i1,i2,j1,j2);
}
void load_arrbb2(BB2& a,int i1,int i2,int j1,int j2)
{
char drive[3];
char dir[25];
char file[20];
char ext[8];
boolean selected;
unsigned char ss[60]="grary2\\*.arr";
Loadquestion("从文件读数组, 文件名:",ss,selected);
if (selected)
{
_splitpath(ss,drive,dir,file,ext);
boolean bool=(boolean)strcmpi(ext,".arr");
if(bool!=0)
{
Error("the file can't be loaded");
exit(0);
}
else
load_arrbb2_file(a,i1,i2,j1,j2,ss) ;
}
}
void save_arrbb2_file(BB2& a,int i1,int i2,int j1,int j2,string dosfile)
{
FILE * ff;
int i,j;
if((ff=fopen(dosfile,"w"))==NULL)
{
cout<<"file "<<dosfile<<" can't write!"<<endl;
exit(0);
}
for (i=i1;i<=i2;i++)
for (j=j1;j<=j2;j++)
fprintf(ff,"%4d" ,a[i][j]);
fclose(ff);
}
void save_arrbb2(BB2& a,int i1,int i2,int j1,int j2)
{ boolean canorno;
unsigned char ss[60]="grary2\\*.arr";
Savequestion("存储文件到: ",ss,canorno);
if (canorno)
save_arrbb2_file(a,i1,i2,j1,j2,ss);
}
void disp_arrbb2(BB2& b,int i1,int i2,int j1,int j2)
{GrpArr2 ag;
create_grp_arrbb2(ag,b,"arrbb2",i1,i2,j1,j2);
initial_GrpArr2(ag);
display_GrpArr2(ag);
getch();
}
void modi_GrpArr2(GrpArr2& ag)
{int ci=0,cj=0;
long num=0;
char * endptr=nil;
boolean f;
datatype x=0;
int k;
window(1,1,80,2);
Menu("arrow for move, space bar for input, ctrlw for exit");
ci=ag.srow;
cj=ag.scol;
cur_cover2(ag,ci,cj,1);
do
{
Getkey(k,f);
if ( !(k==up||k==down||k==left||k==right||k==32||k==ctrlw ) )
cout<<'\007'<<endl;
else if (k==32)
{
char s[20];
do
{ clrscr();
strcpy(s,"");
cin>>s;
num=strtol(s,&endptr,10);
if(*endptr=='\0'&&(num<-32768||num>32767) )
{
Error("over flow,input again!");
}
else if(*endptr!='\0')
Error("format of data error,input again!");
}
while(!( *endptr=='\0'&&num>=-32768&&num<=32767 ) );
x=num;
put_elmn2(ag,ci,cj,x);
cur_cover2(ag,ci,cj,1);
}
else if (k!=ctrlw)
{
cur_cover2(ag,ci,cj,1);
switch(k)
{
case up: if (ci==ag.srow)
cout<<'\007'<<endl;
else
ci--;
break;
case down: if (ci==ag.erow)
cout<<'\007'<<endl;
else
ci=ci+1;
break;
case left: if (cj==ag.scol)
cout<<'\007'<<endl;
else
cj=cj-1;
break;
case right: if (cj==ag.ecol)
cout<<'\007'<<endl;
else
cj=cj+1;
break;
}
cur_cover2(ag,ci,cj,1);
}
}
while(k!=ctrlw);
cur_cover2(ag,ci,cj,1);
Menu("Modifying Finish");
}
void input_GrpArr2(GrpArr2& ag)
{ reset_GrpArr2(ag);
display_GrpArr2(ag);
modi_GrpArr2(ag);
}
void rand_GrpArr2(GrpArr2& ag,int range1,int range2)
{int i=0,j=0,v=0;
if (range1>range2)
{ i=range1;
range1=range2;
range2=i;
}
for (i=ag.srow;i<=ag.erow;i++)
for(j=ag.scol;j<=ag.ecol;j++)
{ do
v=rand();
while (v<range1||v>range2);
*grp_elmn2_ptr(ag,i,j)=v;
}
display_GrpArr2(ag);
modi_GrpArr2(ag);
}
void modi_arrbb2(BB2& b,int i1,int i2,int j1,int j2)
{
GrpArr2 ag;
create_grp_arrbb2(ag,b,"Modi arrbb2",i1,i2,j1,j2);
initial_GrpArr2(ag);
display_GrpArr2(ag);
modi_GrpArr2(ag);
}
void input_arrbb2(BB2& b ,int i1,int i2,int j1,int j2)
{
GrpArr2 ag;
create_grp_arrbb2(ag,b,"Inpuut arrbb2",i1,i2,j1,j2);
initial_GrpArr2(ag);
display_GrpArr2(ag);
reset_GrpArr2(ag);
clear_GrpArr2(ag);
modi_GrpArr2(ag);
}
void reset_arrbb2(BB2& b,int i1,int i2,int j1,int j2)
{int i,j;
for (i=i1;i<=i2;i++)
for (j=j1;j<=j2;j++)
b[i][j]=0;
}
//{===AnyArray===}
// AnyArr2
void create_grp_AnyArr2(GrpArr2& ag,BB2& b ,string title,
int i01,int i02,int j01,int j02,int i1,int i2 ,int j1,int j2)
{int i,j;
word sss,ooo;
ag.h=16;
ag.w=30;
ag.name=title;
ag.ag2=&b[b.rowstart][b.colstart];
ag.havefd=false;
ag.srow=i1;
ag.erow=i2;
ag.scol=j1;
ag.ecol=j2;
ag.arow1=i01;
ag.acol1=j01;
ag.arow2=i02;
ag.acol2=j02;
}
void reset_AnyArr2(BB2& b,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2)
{
int i,j;
for (i=i1;i<=i2;i++)
for (j=j1;j<=j2;j++)
b[i][j]=0;
}
void reset_AnyArr2All(BB2& b,int i01,int i02,int j01,int j02)
{ reset_AnyArr2(b,i01,i02,j01,j02,i01,i02,j01,j02);
}
void load_AnyArr2_file(BB2& a ,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2,string dosfile)
{
FILE * ff;
int i,j,n,rown;
pointer p;
if((ff=fopen(dosfile,"r"))==NULL)
{
cout<<"file "<< dosfile<<"can't open!"<<endl;
exit(0);
}
for (i=i1 ;i<=i2;i++)
for (j=j1;j1<=j2;j++)
a[i][j]=0;
i=i1-1;
while (i<i2)
{ j=j1;
i=i+1;
while ((j<=j2)&&(fscanf(ff,"%5d",&a[i][j])!=EOF))
j=j+1;
}
fclose(ff);
}
void load_AnyArr2(BB2& a,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2)
{char drive[3];
char dir[25];
char file[20];
char ext[8];
boolean selected;
unsigned char ss[60]="grary2\\*.arr";
Loadquestion("从文件读数组, 文件名",ss,selected);
if (selected)
{
_splitpath(ss,drive,dir,file,ext);
boolean bool=(boolean)strcmpi(ext,".arr");
if(bool!=0)
{
Error("the file can't be loaded");
exit(0);
}
else
load_AnyArr2_file(a,i01,i02,j01,j02,i1,i2,j1,j2,ss);
}
}
void save_AnyArr2_file(BB2& a,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2,string dosfile)
{
FILE *ff;
int i,j;
if((ff=fopen(dosfile,"w"))==NULL)
{
cout<<"file "<< dosfile<<"can't open!"<<endl;
exit(0);
}
for (i=i1;i<=i2;i++)
for (j=j1;j<=j2;j++)
fprintf(ff,"%4d" ,a[i][j]);
fclose(ff);
}
void save_AnyArr2(BB2& a,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2)
{ boolean canorno;
unsigned char ss[60]="grary2\\*.arr";
Savequestion("存储文件到: ",ss,canorno);
if (canorno)
save_AnyArr2_file(a,i01,i02,j01,j02,i1,i2,j1,j2,ss);
}
void disp_AnyArr2(BB2& a,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2)
{ GrpArr2 ag;
int i;
create_grp_AnyArr2(ag,a,"AA",i01,i02,j01,j02,i1,i2,j1,j2);
initial_GrpArr2(ag);
move_GrpArr2_to(ag,sx2(ag),getmaxy()/2);
window(1,1,80,3);
getch();
}
void input_AnyArr2(BB2& b,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2)
{GrpArr2 ag;
create_grp_AnyArr2(ag,b,"AnyArr",i01,i02,j01,j02,i1,i2,j1,j2);
initial_GrpArr2(ag);
move_GrpArr2_to(ag,sx2(ag),getmaxy()/2);
input_GrpArr2(ag);
disp_AnyArr2(b,i01,i02,j01,j02,i1,i2,j1,j2);
}
void modi_AnyArr2(BB2& b,int i01,int i02,int j01,int j02,int i1,int i2,int j1,int j2)
{ GrpArr2 ag;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -