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

📄 例2-6.c

📁 王为青 刘变红 编著《C语言高级编程及实例剖析》源代码
💻 C
字号:
/* Note:Your choice is C IDE */
#include <process.h>
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <dos.h>
#include <conio.h>  
/* define Keys scan code */           /* 定义各键的扫描码 */
#define Key_DOWN  80
#define Key_UP    72
#define Key_A     30
#define Key_B     48
#define Key_C     46
#define Key_Q     18
#define Key_ENTER 28

int key();

 main()
{  
	int ky,y;
	char ch;
	textbackground(0);
	clrscr();
	do
	{
		textmode(C80); 
		textbackground(13);
		textcolor(RED);
		window(7,8,19,15);
		clrscr(); 
		textbackground(1);
		textcolor(RED);
		window(8,9,18,14);
		clrscr();   
		gotoxy(3,3);
		cprintf("Q:quit\r\n"); 
		gotoxy(3,4);
		cprintf("A:dir\r\n");
		gotoxy(3,5);
		cprintf("B:dir/p\r\n");
		gotoxy(3,6);
		cprintf("C:dir/w\r\n");      
		y=10;
		upbar(y-1);
		do
		{
			ky=key();
			switch(ky)
			{
			case Key_A:
				{
					y=12,
					ky=Key_ENTER;
				};
				break;
			case Key_B:
				{
					y=13,
					ky=Key_ENTER;
				};
				break;
			case Key_C:
				{
					y=14,
					ky=Key_ENTER;
				};
				break;
			case Key_Q:
				{
					y=11,
					ky=Key_ENTER;
				};
				break;
			case Key_DOWN:
				if(y<13)
				{
					upbar(y);
					y++;
				};
				break;
			case Key_UP:
				if(y>10)
				{
					downbar(y);
					y--;
				};
				break;
			}
		}while(ky!=Key_ENTER);
		textcolor(WHITE);
		switch(y)
		{
			case 11:
				ch='%';
				break;
			case 12:
				{
					systen("dir");
					getch();
				};
				break;
			case 13:
				{
					systen("dir/p");
					getch();
				};
				break;
			case 14:
				{
					systen("dir/w");
					getch();
				};
				break;
			} ;
			if(ch=='%')
				break;
		}while(1);
		clrscr();
	}  

	int key()
	{
		union REGS rg;
		rg.h.ah=0;
		int86(0x16,&rg,&rg);
		return rg.h.ah;
  	}

	upbar(int y)
	{		    
		int i;
		typedef struct texel_struct
		{	    	
		    unsigned char ch;
			unsigned char attr;
		}texel;
		texel t;
		for(i=9;i<=17;i++)
		{
			gettext(i,y,i,y,&t);
			t.attr=0x1f;
			puttext(i,y,i,y,&t);
			gettext(i,y+1,i,y+1,&t);
			t.attr=0x4f;
			puttext(i,y+1,i,y+1,&t);
		};
		gotoxy(3,y+1);
		return;
	}

	downbar(int y)
	{
		int i;
		typedef struct texel_struct
		{	    	
		    unsigned char ch;
			unsigned char attr;
		}texel;
		texel t;
		for(i=9;i<=17;i++)
		{
			gettext(i,y,i,y,&t);
			t.attr=0x1f;
			puttext(i,y,i,y,&t);
			gettext(i,y-1,i,y-1,&t);
			t.attr=0x4f;
			puttext(i,y-1,i,y-1,&t);
		};
		gotoxy(3,y+1);
		return;
	}

⌨️ 快捷键说明

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