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

📄 界面.txt

📁 c语言编写的通讯录
💻 TXT
📖 第 1 页 / 共 4 页
字号:
#include <process.h>
#include <dos.h>
#include <conio.h>
#define Key_DOWN 0x5000
#define Key_UP 0x4800
#define Key_LEFT 0x4B00
#define Key_RIGHT 0x4D00
#define Key_ESC 0x011b
#define Key_ALT_D 0x2000
#define Key_ALT_C 0x2e00
#define Key_ALT_P 0x1900
#define Key_ALT_W 0x1100
#define Key_ALT_X 0x2d00
#define Key_ENTER 0x1c0d
void box(int startx,int starty,int high,int width);
void rightdir();
void rightcal();
void rightwindow();
void rightplan();
void leftdir2();
void leftcal2();
void leftwindow2();
void leftplan2();
char *menu[] = {"Directory","Calendar","Plan","Window"};
   char *red[] ={ "D","C","P","W",};  /*加上红色热键*/
   char *f[] = {"Load directory", "Save directory", "Add address", "Edit address", "Delete address","Find address"};
   char *a[]={"Current date","Input date","Year calendar"};
   char *b[]={"Appointment F2","Birthday F3","Task"};
   char *c[]={"Next window F8","Quit system ALT+X"};
  char *p1[]={"L","S","A","D","E","F"};
char *p2[]={"C","I","Y"};
char *p3[]={"A","B","T"};
char *p4[]={"N","Q"};
   char buf[16*10*2],buf1[16*2],buf2[80*25*2];  
main()
{
   int i,key,x,y,l,m;
static int p;
     /*定义保存文本的缓冲区*/
   while(1)
   {
     textbackground(BLUE);
     clrscr();
     textmode(C80);
     window(1,1,80,1);              /* 定义显示主菜单的窗口 */
     textbackground(LIGHTGRAY);
     textcolor(BLACK);
     clrscr();
     gotoxy(5,1);
     for(i=0,l=0;i<4;i++)
       {
         x=wherex();                /* 得到当前光标的坐标 */
         y=wherey();
	 cprintf("%s",menu[i]);     /* 显示各菜单项 */
         l=strlen(menu[i]);         /* 得到菜单项的长度 */
         gotoxy(x,y);
         textcolor(RED);
         cprintf("%s",red[i]);      /* 在主菜单项各头字符写上红字符 */
	 x=x+l+10;
         gotoxy(x,y);
         textcolor(BLACK);          /* 为显示下一个菜单项移动光标 */
       }
                                            /*显示Directory的下拉菜单*/
key=bioskey(0);gettext(1,1,80,25,buf2);
loop:
{

if(key== Key_ALT_D)
  {
     
     p=1;
         
	      textbackground(BLACK);
              textcolor(WHITE);
              gotoxy(5,1);
              cprintf("%s",menu[0]);       /*加黑Directory项*/
              gettext(5,2,20,12,buf);      /* 保存窗口原来的文本 */
              window(5,2,20,11);            /* 设置作矩形框的窗口 */
              textbackground(LIGHTGRAY);
              textcolor(BLACK);
              clrscr();
              box(1,1,9,16);               /*调用作框函数*/
	      for(i=2;i<8;i++)             /* 显示子菜单各项 */
                {
                   gotoxy(2,i);
                   cprintf("%s",f[i-2]);
                   gotoxy(2,i);
                    textcolor(RED);
                   cprintf("%s",p1[i-2]);
                   
                textcolor(BLACK);
                }
              gettext(5,2,20,3,buf1);      /*将下拉菜单的内容保存在buf1*/
              textbackground(BLACK);
              textcolor(WHITE);
              gotoxy(2,2);
              cprintf("%s",f[0]);          /*加黑下拉菜单的第一项load directory*/
	      gotoxy(2,2);
	      y=2;
	 while ((key=bioskey(0))!=Key_ALT_X)    /* 等待选择下拉菜单项*/
                {
                  if ((key==Key_UP)||(key==Key_DOWN))
                    {
                      puttext(5,y,20,y+1,buf1);   /* 恢复原先的项 */
                      if (key==Key_UP)
			 y=y==2?7:y-1;
                      else
			 y=y==7?2:y+1;
                      gettext(5,y,20,y+1,buf1);   /*保存要压上光条的子菜单项*/
                      textbackground(BLACK);
                      textcolor(WHITE);
                      gotoxy(2,y);
                      cprintf("%s",f[y-2]);    /* 产生黑条压在所选项上 */
                      gotoxy(2,y);
                     }
                  else  if (key==Key_ENTER)    /*若是回车键,判断是哪一子类菜单按的回车*/
                          {
                          switch ( y-1 )
                            {
                              case 1:        /*是子菜单第一项Load directory*/
                              break;
                              case 2:         /*save directory*/
                              break;
                              case 3:         /*Add address*/
                              break;
                              case 4:         /*Edit address*/
                              break;
                              case 5:         /*Delete address*/
                              break;
                              case 6:         /*Find address*/
                              exit(0);
                              default:
                              break;
                             }
                          break;
                          }
                        
 
                   else  if (key==Key_ESC)
                              break;          /* 是Esc 键,返回主菜单 */
else if(key==Key_LEFT||key==Key_RIGHT)  goto loop;
                  }
              if (key==Key_ALT_X) exit(0);
		 

                 

	   
}
   if(key== Key_ALT_C)
    {   p=2;
 /*显示Calendar的下拉菜单*/
       l=strlen(menu[1]);
       m=l+16;
       
                              /* ALT_X 则退出 */
	 
              textbackground(BLACK);
              textcolor(WHITE);
	      gotoxy(m,1);
              cprintf("%s",menu[1]);
	      gettext(m,2,m+15,12,buf);       /* 保存窗口原来的文本 */
	      window(m,2,m+15,6);             /* 设置作矩形框的窗口 */
              textbackground(LIGHTGRAY);
              textcolor(BLACK);
              clrscr();
              box(1,1,5,15);
	      for(i=2;i<5;i++)                /* 显示子菜单各项 */
                {
		   gotoxy(2,i);
                   cprintf("%s",a[i-2]);
                   gotoxy(2,i);
                    textcolor(RED);
                   cprintf("%s",p2[i-2]);
                   
                textcolor(BLACK);
                }
	      gettext(m,2,m+15,3,buf1);       /*将下拉菜单的内容保存在buf1*/
              textbackground(BLACK);
              textcolor(WHITE);
	      gotoxy(2,2);
              cprintf("%s",a[0]);             /*加黑下拉菜单的第一项Current date*/
	      gotoxy(2,2);
	      y=2;
              while ((key=bioskey(0))!=Key_ALT_X)      /* 等待选择下拉菜单项*/
                {
                  if ((key==Key_UP)||(key==Key_DOWN))
                    {
                      puttext(m,y,m+15,y+1,buf1);      /* 恢复原先的项 */
                      if (key==Key_UP)
			 y=y==2?4:y-1;
                      else
			 y=y==4?2:y+1;
                      gettext(m,y,m+15,y+1,buf1);       /*保存要压上光条的子菜单项*/
                      textbackground(BLACK);
                      textcolor(WHITE);
                      gotoxy(2,y);
                      cprintf("%s",a[y-2]);             /* 产生黑条压在所选项上 */
                      gotoxy(2,y);
                    }
                  else if (key==Key_ENTER)      /*若是回车键,判断是哪一子类菜单按的回车*/
                        {
                          switch ( y-1 )
                            {
                              case 1:         /*是子菜单第一项Current date*/
                                   system("display");  puttext(1,1,80,25,buf2);    break;
                              case 2:         /*Input dat*/
                                system("wan");  puttext(1,1,80,25,buf2);   break;
                              case 3:         /*Year calendar*/
                                system("show2008");  puttext(1,1,80,25,buf2);   exit(0);
                              default:
                              break;
                            }
                          break;
                        }
                    else if (key==Key_ESC)
                              break;           /* 是Esc 键,返回主菜单 */
  else if(key==Key_LEFT||key==Key_RIGHT)  goto loop;
                  }
              if (key==Key_ALT_X) exit(0);
		

                   
}
       /*显示Plan的下拉菜单*/
   if(key== Key_ALT_P)
{p=3;
       l=l+strlen(menu[2]);
       m=l+32;
                             /* ALT_X 则退出 */
	
              textbackground(BLACK);
              textcolor(WHITE);
	      gotoxy(m,1);
              cprintf("%s",menu[2]);
	      gettext(m,2,m+16,12,buf);      /* 保存窗口原来的文本 */
	      window(m,2,m+16,6);            /* 设置作矩形框的窗口 */
              textbackground(LIGHTGRAY);
              textcolor(BLACK);
              clrscr();
              box(1,1,5,16);                 /*调用作框函数*/
	      for(i=2;i<5;i++)               /* 显示子菜单各项 */
                {
		   gotoxy(2,i);
                   cprintf("%s",b[i-2]);
                   gotoxy(2,i);
                    textcolor(RED);
                   cprintf("%s",p3[i-2]);
                   
                textcolor(BLACK);
                }
	      gettext(m,2,m+16,3,buf1);      /*将下拉菜单的内容保存在buf1*/
              textbackground(BLACK);
              textcolor(WHITE);
	      gotoxy(2,2);
              cprintf("%s",b[0]);            /*加黑下拉菜单的第一项Appointment F2*/
	      gotoxy(2,2);
	      y=2;
              while ((key=bioskey(0))!=Key_ALT_X)     /* 等待选择下拉菜单项*/
                {
                  if ((key==Key_UP)||(key==Key_DOWN))
                    {
                      puttext(m,y,m+16,y+1,buf1);     /* 恢复原先的项 */
                      if (key==Key_UP)
			 y=y==2?4:y-1;
                      else
			 y=y==4?2:y+1;
                      gettext(m,y,m+16,y+1,buf1);      /*保存要压上光条的子菜单项*/
                      textbackground(BLACK);
                      textcolor(WHITE);
                      gotoxy(2,y);
                      cprintf("%s",b[y-2]);            /* 产生黑条压在所选项上 */
                      gotoxy(2,y);
                    }
                  else  if (key==Key_ENTER)       /*若是回车键,判断是哪一子类菜单按的回车*/
                        {
                          switch ( y-1 )
                            {
                              case 1:          /*是子菜单第一项Appointment F2*/
                              break;
                              case 2:          /*Birthday F3*/
                              break;
                              case 3:          /*Task*/
                              exit(0);
                              default:
                              break;
                            }
                          break;
                        }
                    else  if (key==Key_ESC)
                              break;           /* 是Esc 键,返回主菜单 */
else if(key==Key_LEFT||key==Key_RIGHT)  goto loop;
                  }
              if (key==Key_ALT_X) exit(0);
		

           
           
   
}
          /*显示Window 的下拉菜单*/
 if(key== Key_ALT_W)
{p=4;
l=l+strlen(menu[2]);
       m=l+46;
         
              textbackground(BLACK);
              textcolor(WHITE);
	      gotoxy(m,1);
              cprintf("%s",menu[3]);          /*加黑Next window F8*/
	      gettext(m,2,m+19,12,buf);       /* 保存窗口原来的文本 */
	      window(m,2,m+19,5);             /* 设置作矩形框的窗口 */
              textbackground(LIGHTGRAY);
              textcolor(BLACK);
              clrscr();
              box(1,1,4,19);                   /*调用作框函数*/
	      for(i=2;i<4;i++)                 /* 显示子菜单各项 */
                {
		   gotoxy(2,i);
                   cprintf("%s",c[i-2]);
                     gotoxy(2,i);
                    textcolor(RED);
                   cprintf("%s",p4[i-2]);
                   
                textcolor(BLACK);
                }
	      gettext(m,2,m+19,5,buf1);        /*将下拉菜单的内容保存在buf1*/
              textbackground(BLACK);
              textcolor(WHITE);
	      gotoxy(2,2);
              cprintf("%s",c[0]);              /*加黑下拉菜单的第一项*/
	      gotoxy(2,2);
	      y=2;
              while ((key=bioskey(0))!=Key_ALT_X)      /* 等待选择下拉菜单项*/
                {
                  if ((key==Key_UP)||(key==Key_DOWN))
                    {
		      puttext(m,y,m+19,y+1,buf1);      /* 恢复原先的项 */
                      if (key==Key_UP)
			 y=y==2?3:y-1;
                      else
			 y=y==3?2:y+1;
		      gettext(m,y,m+19,y+1,buf1);      /*保存要压上光条的子菜单项*/
                      textbackground(BLACK);
                      textcolor(WHITE);
                      gotoxy(2,y);
                      cprintf("%s",c[y-2]);            /* 产生黑条压在所选项上 */
                      gotoxy(2,y);
                    }
                  else  if (key==Key_ENTER)       /*若是回车键,判断是哪一子类菜单按的回车*/
                        {
                          switch ( y-1 )
                            {
                              case 1:           /*是子菜单第一项Next window F8*/
                              break;
                              case 2:           /*Quit system ALT+X*/
                              exit(0);
                              default:
                              break;
                            }
                          break;
                        }
                   else  if (key==Key_ESC)
                              break;            /* 是Esc 键,返回主菜单 */
else if(key==Key_LEFT||key==Key_RIGHT)  goto loop;
                  }
              if (key==Key_ALT_X) exit(0);

⌨️ 快捷键说明

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