⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe1.cpp

📁 这是一个族谱的管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
#include"jiapu.h"
#include"frame.h"
#include "else.h"
BOOL frame2(HANDLE hOut,HANDLE hIn,char*bname)     //单按钮对话框
{
	INPUT_RECORD mouseRec;
	DWORD  res;
	COORD posa1={53,11},posb={62,14},posc={79,15},posa2={60,12};
	drawbox(hOut,posa1,posc);
	button   a[2];
	a[0].createbutton(posb,"【确定】",14,236,hOut);
	a[1].createbutton(posa2,bname,14,236,hOut);//"文件已保存!"
	for(;;)
	{
		ReadConsoleInput(hIn, &mouseRec, 1,&res);
		mousemove(hOut,hIn,a[0],mouseRec);
		if(mouseclickl(hOut,hIn,a[0],mouseRec))
		{
			clearscreen(hOut,posa1,posc);
			return false;
		}
	}
	
}

int frame3(HANDLE hOut,HANDLE hIn)     //保存对话框
{
	INPUT_RECORD mouseRec;
	DWORD  res;
	int x;
	COORD posa1={54,11},posb={56,14},posc={76,15},posa2={60,12},posa3={62,14},posa4={68,14};
	drawbox(hOut,posa1,posc);
	button   a[4];
	a[0].createbutton(posb,"【是】",14,236,hOut);
	a[1].createbutton(posa2,"是否保存文件?",14,236,hOut);
	a[2].createbutton(posa3,"【否】",14,236,hOut);
	a[3].createbutton(posa4,"【取消】",14,236,hOut);
	for(;;)
	{
		ReadConsoleInput(hIn, &mouseRec, 1,&res);
		mousemove(hOut,hIn,a[0],mouseRec);
		mousemove(hOut,hIn,a[2],mouseRec);
		mousemove(hOut,hIn,a[3],mouseRec);
			if(mouseclickl(hOut,hIn,a[2],mouseRec))
		{
			x=1;
			clearscreen(hOut,posa1,posc);
				return x;                            //单击 "否"返回1
		}
		if(mouseclickl(hOut,hIn,a[0],mouseRec))
		{	
			x=0;
			clearscreen(hOut,posa1,posc);
				return x;                            //单击 "是"返回0
		}
		 	
		if(mouseclickl(hOut,hIn,a[3],mouseRec))
		{
			x=2;
			clearscreen(hOut,posa1,posc);
				return 2;                            //单击 "取消"返回2
		}	

	}
}

BOOL frame4(HANDLE hOut,HANDLE hIn)     //按钮对话框
{
	INPUT_RECORD mouseRec;
	DWORD  res;
	COORD posa1={54,11},posb={60,14},posb1={68,14},posc={78,15},posa2={57,12};
	drawbox(hOut,posa1,posc);
	button   a[3];
	a[0].createbutton(posb,"【是】",14,236,hOut);
	a[1].createbutton(posa2,"文件已存在,是否覆盖?",14,236,hOut);//
	a[2].createbutton(posb1,"【否】",14,236,hOut);
	for(;;)
	{
		ReadConsoleInput(hIn, &mouseRec, 1,&res);
		mousemove(hOut,hIn,a[0],mouseRec);
		mousemove(hOut,hIn,a[2],mouseRec);
		if(mouseclickl(hOut,hIn,a[0],mouseRec))
		{
			clearscreen(hOut,posa1,posc);
			return true;
		}
		if(mouseclickl(hOut,hIn,a[2],mouseRec))
		{
			clearscreen(hOut,posa1,posc);
			return false;
		}
	}
	
}

button* print1(bitree t,button*pp,int n,HANDLE hOut)           //打印家谱┣ ━ ┳ ┃┣ ┗
{
	HANDLE hIn;
	hIn = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
	if(!t)
	{	if(!frame2(hOut,hIn,"家谱为空!!"))
			;
	}
	else
	{
		int i=0;
	pp=new button[n];

 	HANDLE hOut;
	int l,y,x;
	hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄
	COORD pos= {22,16};                     //输出位置
    SetConsoleCursorPosition(hOut,pos);   //设置光标的位置
	cout<<"┣";
	
	pos.X+=2;
	SetConsoleCursorPosition(hOut,pos);   //设置光标的位置
	bitnode *s,*stack[200];
	int top=0;
	stack[top]=t;
	while(top>=0)
	{
		s=stack[top--];          //出栈
		if(!s->parent)
		{;}
		else
		{
		y=pos.Y +2;
		pos=s->pos;
		for(;pos.Y <y;pos.Y ++)
		{
			SetConsoleCursorPosition(hOut,pos);//重新设置光标的位置
			cout<<"┃";
		}
		SetConsoleCursorPosition(hOut,pos);//重新设置光标的位置
		if(s->rchild)
			
		{
			cout<<"┣";
		}
		else
		{
			cout<<"┗";
		}
		pos.X =pos.X +2;
        SetConsoleCursorPosition(hOut,pos);//重新设置光标的位置
		}

		while(s)
		{
			
			pp[i].createbutton(pos,s->a.name,14,236,hOut);
			pp[i].hidebutton(hOut,false);
			cout<<s->a.name ;
				i++;
			l=strlen(s->a.name) ;

			x=pos.X;
			if(s->lchild)
			{
				cout<<"━";
				
					if(s->lchild ->rchild )
				{
					cout<<"┳";
				
				}
					else
					{
						cout<<"━";
					}
				pos.X =pos.X+4+l;
				SetConsoleCursorPosition(hOut,pos);//重新设置光标的位置
			}
			
			if(s->rchild)
			{
				stack[++top]=s->rchild ;//入栈
			    stack[top]->pos .X =x-2;                     //记录光标的位置
				stack[top]->pos.Y=pos.Y +1;
			}		
			s=s->lchild ;
		
		}	
	}
	cout<<endl<<endl;

	}	return pp;
}
	
bitnode* cinnode(bitnode*p,HANDLE hOut)//输入一个节点  用于添加节点
{
	DWORD  res;
	HANDLE hIn;
	INPUT_RECORD mouseRec;
	hIn = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
	
	COORD pos={21,16},posa={33,27},posb={52,27};
	button a[10],b[2],c[2];
	
	SetConsoleCursorPosition(hOut,pos);
	a[0].createbutton(pos," 姓  名 ",14,236,hOut);
	pos.X+=30;
	a[1].createbutton(pos," 性  别 ",14,236,hOut);
	pos.X+=12;
	c[0].createbutton(pos,"男",14,236,hOut);
	pos.X+=4;
	c[1].createbutton(pos,"女",14,236,hOut);
	pos.Y+=2;pos.X-=46;
	a[2].createbutton(pos," 身  高 ",14,236,hOut);
	pos.X+=20;
	SetConsoleCursorPosition(hOut,pos);
	cout<<"cm";
	pos.X+=10;
	a[3].createbutton(pos," 配  偶 ",14,236,hOut);
	pos.Y+=2;pos.X-=30;
	a[4].createbutton(pos," 出生时间 ",14,236,hOut);
	pos.X+=30;
	a[5].createbutton(pos," 死亡时间 ",14,236,hOut);
	a[5].pos1.X+=25;
	SetConsoleCursorPosition(hOut,a[5].pos1);
	cout<<"(如1985.01.21)";
	a[5].pos1.X-=25;
	pos.Y+=2;pos.X-=30;
	a[6].createbutton(pos," 学  历 ",14,236,hOut);
	pos.X+=30;
	a[7].createbutton(pos," 职  业 ",14,236,hOut);
	pos.Y+=2;pos.X-=30;
	a[8].createbutton(pos," 职  称 ",14,236,hOut);
	pos.X+=30;
	a[9].createbutton(pos," 出生地 ",14,236,hOut);
	b[0].createbutton(posa,"【确定】",14,236,hOut);
	b[1].createbutton(posb,"【取消】",14,236,hOut);
	button k;
	COORD posk={44,22};
	k.createbutton(posk,"↓",14,236,hOut);

	int i;
	pos=a[0].pos1;
			pos.X+=8;
		SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.name;

	for(;;)
	{
		ReadConsoleInput(hIn, &mouseRec, 1,&res);
		
		for(i=0;i<10;i++)
		{
			mousemove(hOut,hIn,a[i],mouseRec);
		}
		mousemove(hOut,hIn,b[0],mouseRec);
		mousemove(hOut,hIn,b[1],mouseRec);
		mousemove1(hOut,hIn,c[0],mouseRec);
		mousemove1(hOut,hIn,c[1],mouseRec);
		mousemove1(hOut,hIn,k,mouseRec);
	
		if(mouseclickl(hOut,hIn,c[0],mouseRec))
		{
			strcpy(p->a.sex,"男");
			pos=a[1].pos1;
			pos.X+=8;
			SetConsoleCursorPosition(hOut,pos);
			cout<<p->a.sex;

		}
			if(mouseclickl(hOut,hIn,c[1],mouseRec))
		{
				strcpy(p->a.sex,"女");
			pos=a[1].pos1;
			pos.X+=8;
			SetConsoleCursorPosition(hOut,pos);
			cout<<p->a.sex;
			

		}

		if(mouseclickl(hOut,hIn,a[0],mouseRec))
		{
			pos=a[0].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=20;
			clearscreen(hOut,pos,posa);					
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.name;		
		}
	/*	if(mouseclickl(hOut,hIn,a[1],mouseRec))
		{
			pos=a[1].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=10;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.sex;
			
		}*/
		if(mouseclickl(hOut,hIn,a[2],mouseRec))
		{
			pos=a[2].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=11;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.stature;
			
		}
		if(mouseclickl(hOut,hIn,a[3],mouseRec))
		{
			pos=a[3].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=20;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.consort;			
		}
		if(mouseclickl(hOut,hIn,a[4],mouseRec))
		{
			pos=a[4].pos1;
			pos.X+=10;
			posa=pos;
			posa.X+=20;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.birthday;
			
		}if(mouseclickl(hOut,hIn,a[5],mouseRec))
		{
			pos=a[5].pos1;
			pos.X+=10;
			posa=pos;
			posa.X+=14;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.deathday;
			
		}if(mouseclickl(hOut,hIn,k,mouseRec))
		{
			pos=a[6].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=10;
			
			button kk[9];
			COORD poskk={42,23};
			
			kk[0].createbutton(poskk,"小学",14,10,hOut);
			poskk.Y++;
			kk[1].createbutton(poskk,"初中",14,10,hOut);
			poskk.Y++;
			kk[2].createbutton(poskk,"高中",14,10,hOut);
			poskk.Y++;
			kk[3].createbutton(poskk,"中专",14,10,hOut);
			poskk.Y++;
			kk[4].createbutton(poskk,"大专",14,10,hOut);
			poskk.Y++;
			kk[5].createbutton(poskk,"本科",14,10,hOut);
			poskk.Y++;
			kk[6].createbutton(poskk,"硕士",14,10,hOut);
			poskk.Y++;
			kk[7].createbutton(poskk,"博士",14,10,hOut);
			poskk.Y++;
			kk[8].createbutton(poskk,"其他",14,10,hOut);
			for(;;)
			{
				BOOL tal=false;
				ReadConsoleInput(hIn, &mouseRec, 1,&res);
				for(int j=0;j<9;j++)
				{
					mousemove1(hOut,hIn,kk[j],mouseRec);
					
				}
				for(int jj=0;jj<9;jj++)
				{
					if(mouseclickl(hOut,hIn,kk[jj],mouseRec))
					{
						clearscreen(hOut,pos,posa);
						SetConsoleCursorPosition(hOut,pos);
						strcpy(p->a.xueli,kk[jj].buttonname);
						cout<<p->a.xueli;
							for(int l=0;l<9;l++)
							kk[l].hidebutton(hOut,false);

						tal=true;
						break;
						
					}
				}
				if(tal)
					break;
			}
			
		}
			if(mouseclickl(hOut,hIn,a[7],mouseRec))
		{
			pos=a[7].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=20;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.work;
					
		}if(mouseclickl(hOut,hIn,a[8],mouseRec))
		{
			pos=a[8].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=20;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.zhiche;
						
		}if(mouseclickl(hOut,hIn,a[9],mouseRec))
		{
			pos=a[9].pos1;
			pos.X+=8;
			posa=pos;
			posa.X+=20;
			clearscreen(hOut,pos,posa);
			SetConsoleCursorPosition(hOut,pos);
			cin>>p->a.birthaddress;
			
			
		}
		
		if(mouseclickl(hOut,hIn,b[1],mouseRec))
		{
			p=NULL;
			return p;
		}
			if(mouseclickl(hOut,hIn,b[0],mouseRec))
		{
				return p;
		}				
	}		
}


bitnode* cinnode1(bitnode*p,HANDLE hOut)//输入一个节点用于修改节点
{
	DWORD  res;
	HANDLE hIn;
	INPUT_RECORD mouseRec;
	hIn = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
	
	COORD pos={21,16},posa={33,27},posb={52,27};
	button a[10],b[2],c[2];
	
	SetConsoleCursorPosition(hOut,pos);
	a[0].createbutton(pos," 姓  名 ",14,236,hOut);
	pos.X+=30;
	a[1].createbutton(pos," 性  别 ",14,236,hOut);
	pos.X+=12;
	c[0].createbutton(pos,"男",14,236,hOut);
	pos.X+=4;
	c[1].createbutton(pos,"女",14,236,hOut);
	pos.Y+=2;pos.X-=46;
	a[2].createbutton(pos," 身  高 ",14,236,hOut);
	pos.X+=20;
	SetConsoleCursorPosition(hOut,pos);
	cout<<"cm";
	pos.X+=10;
	a[3].createbutton(pos," 配  偶 ",14,236,hOut);
	pos.Y+=2;pos.X-=30;
	a[4].createbutton(pos," 出生时间 ",14,236,hOut);
	pos.X+=30;
	a[5].createbutton(pos," 死亡时间 ",14,236,hOut);
	a[5].pos1.X+=25;
	SetConsoleCursorPosition(hOut,a[5].pos1);
	cout<<"(如1985.01.21)";
	a[5].pos1.X-=25;
	pos.Y+=2;pos.X-=30;
	a[6].createbutton(pos," 学  历 ",14,236,hOut);
	pos.X+=30;
	a[7].createbutton(pos," 职  业 ",14,236,hOut);
	pos.Y+=2;pos.X-=30;
	a[8].createbutton(pos," 职  称 ",14,236,hOut);
	pos.X+=30;
	a[9].createbutton(pos," 出生地 ",14,236,hOut);
	b[0].createbutton(posa,"【确定】",14,236,hOut);
	b[1].createbutton(posb,"【取消】",14,236,hOut);
	int i;
	button k;
	COORD posk={44,22};
	k.createbutton(posk,"↓",14,236,hOut);

	for(;;)
	{
		ReadConsoleInput(hIn, &mouseRec, 1,&res);
		for(i=0;i<10;i++)
		{
			mousemove(hOut,hIn,a[i],mouseRec);
		}
		mousemove(hOut,hIn,b[0],mouseRec);
		mousemove(hOut,hIn,b[1],mouseRec);
			mousemove1(hOut,hIn,c[0],mouseRec);
		mousemove1(hOut,hIn,c[1],mouseRec);
		mousemove1(hOut,hIn,k,mouseRec);
		if(mouseclickl(hOut,hIn,c[0],mouseRec))
		{
			strcpy(p->a.sex,"男");
			pos=a[1].pos1;
			pos.X+=8;
			SetConsoleCursorPosition(hOut,pos);
			cout<<p->a.sex;

		}
			if(mouseclickl(hOut,hIn,c[1],mouseRec))
		{
				strcpy(p->a.sex,"女");
			pos=a[1].pos1;
			pos.X+=8;
			SetConsoleCursorPosition(hOut,pos);
			cout<<p->a.sex;
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -