📄 okokok.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <bios.h>
#define KEY_UP 72 /*方向健“↑”的键值*/
#define KEY_DOWN 80 /*方向健“↓”的键值*/
#define KEY_LEFT 75 /*方向键“←”的键值*/
#define KEY_RIGTH 77 /*方向健“→”的键值*/
#define KEY_ESC 27 /*ESC健的键值*/
#define KEY_ALT_F 33 /*ALT+F的键值*/
#define KEY_ALT_X 45 /*ALT+X的键值*/
#define KEY_ENTER 13 /*回车键的键值*/
#define KEY_ALT_M 50 /*ALT+M的键值*/
#define KEY_ALT_A 30 /*ALT+A的键值*/
#define KEY_ALT_C 46 /*ALT+CD的键值*/
#define KEY_ALT_T 20 /*ALT+F的键值*/
#define KEY_ALT_S 31 /*ALT+S的键值*/
#define KEY_ALT_D 32 /*ALT+D的键值*/
int Get_KeyValue();
int Draw_MainMenu();
void alt_f (void);
void alt_d (void);
void alt_m (void);
void alt_a (void);
void alt_c (void);
void alt_s (void);
void alt_t (void);
void first (void);
void exitd();
void Box(int startx,int starty,int hight,int width);
char *menu[]={"File","Display","Modify","Add","Clear","Search","To_sort"};
char *red[]={"F","D","M","A","C","S","T"};
char *file[]={"Load F3","New","Save F2","Write to","Quit Alt-X"};
char *modify[]={"Class ","Student","Course"};
char *add[]={"Class ","Student","Course"};
char *display[]={"Class ","Student","Course"};
char *clear[]={"Class ","Student","Course"};
char *search[]={"By name","By ID","By index","By age"};
char *to_sort[]={"By ID","Index up","Index down"};
char *red1[]={"L","N","S","W","Q"};
char *red2[]={"C","S","C"};
char *red3[]={"B","B","B","B"};
char *red4[]={"B","I","I"};
char buf[17*13*2],buf1[16*2],buf2[16*2];
int i,j,k,key,x,y,l,n;
void main()
{
first();
clrscr();
textbackground(1);
clrscr();
Draw_MainMenu(); /*画主菜单*/
gotoxy(4,1);
window(4,1,8,1);
textbackground(0);
textcolor(15);
clrscr();
cprintf("%s",menu[0]);
while(1)
{
key=0;
while(bioskey(1)==0); /*循环等待,直到有键按下为止 */
key=Get_KeyValue(); /*获取键值*/
if(key==KEY_ALT_X) /*若按的是Alt+X,退出程序*/
{
exitd();
exit(0);
}
if(key==KEY_RIGTH||key==KEY_LEFT) /*响应左右键*/
{
i=0,j=6,x=4;
gotoxy(4,1);
window(4,1,8,1);
textbackground(15);
textcolor(0);
clrscr();
cprintf("%s",menu[0]);
while(key!=KEY_ALT_X&&key!=KEY_ENTER&&key!=KEY_DOWN)
{
l=strlen(menu[i]);
if(i==6)n=strlen(menu[0]);
else n=strlen(menu[i+1]);
if(i==0)j=strlen(menu[6]);
else j=strlen(menu[i-1]);
if(key==KEY_RIGTH) /*响应子向右*/
{ clrscr();
Draw_MainMenu();
gettext(x,1,x+l,2,buf1);
puttext(x,1,x+l,2,buf1);
x=x==53?4:x+l+3;
i=i==6?0:i+1;
gettext(x,1,x+n,2,buf1);
gotoxy(x,1);
window(x,1,x+n,1);
textbackground(0);
textcolor(15);
cprintf("%s",menu[i]);
} /*end of if*/
if(key==KEY_LEFT) /*响应向左键*/
{
clrscr();
Draw_MainMenu();
gettext(x,1,x+l,2,buf1);
puttext(x,1,x+l,2,buf1);
x=x==4?53:x-3-j;
i=i==0?6:i-1;
gettext(x,1,x+j,2,buf1);
gotoxy(x,1);
window(x,1,x+j,1);
textbackground(0);
textcolor(15);
cprintf("%s",menu[i]);
} /*end of if*/
key=Get_KeyValue();
if(key==KEY_ALT_F) /*若按的是Alt+F或回车键,则下拉File菜单*/
alt_f ();
if(key==KEY_ALT_D) /*若按的是Alt+D键,则下拉Display菜单*/
alt_d();
if(key==KEY_ALT_M) /*若按的是Alt+M键,则下拉Modify菜单*/
alt_m();
if(key==KEY_ALT_A) /*若按的是Alt+A键,则下拉Add菜单*/
alt_a();
if(key==KEY_ALT_C) /*若按的是Alt+C键,则下拉Clear菜单*/
alt_c();
if(key==KEY_ALT_S) /*若按的是Alt+S键,则下拉search菜单*/
alt_s();
if(key==KEY_ALT_T) /*若按的是Alt+T键,则下拉to_sort菜单*/
alt_t();
if(key==KEY_ALT_X)
{
exitd();
exit(0);
}
if(key==KEY_ENTER||key==KEY_DOWN) /*响应回车或向下键*/
{ clrscr();
Draw_MainMenu();
if(i==0)
{
gettext(4,1,19,8,buf);
window(4,1,19,8);
textbackground(15);
textcolor(0);
clrscr();
window(4,2,19,9);
Box(1,1,7,16);
for(k=2;k<7;k++)
{
gotoxy(2,k);
cprintf("%s",file[k-2]);
gotoxy(2,k);
textcolor(RED);
cprintf("%s",red1[k-2]);
textcolor(0);
}
gettext(2,2,18,3,buf1);
textbackground(0);
textcolor(15);
gotoxy(2,2);
cprintf("%s",file[0]);
y=2;
key=Get_KeyValue();
if(key==KEY_ALT_F) /*若按的是Alt+F或回车键,则下拉File菜单*/
alt_f ();
if(key==KEY_ALT_D) /*若按的是Alt+D键,则下拉Display菜单*/
alt_d();
if(key==KEY_ALT_M) /*若按的是Alt+M键,则下拉Modify菜单*/
alt_m();
if(key==KEY_ALT_A) /*若按的是Alt+A键,则下拉Add菜单*/
alt_a();
if(key==KEY_ALT_C) /*若按的是Alt+C键,则下拉Clear菜单*/
alt_c();
if(key==KEY_ALT_S) /*若按的是Alt+S键,则下拉search菜单*/
alt_s();
if(key==KEY_ALT_T) /*若按的是Alt+T键,则下拉to_sort菜单*/
alt_t();
if(key==KEY_ALT_X)
{ exitd();
exit(0);
}
while(key!=KEY_ALT_X&&key!=KEY_ENTER&&key!=KEY_ESC)
{
if(key==KEY_UP||key==KEY_DOWN) /*响应上下键*/
{
puttext(2,y,18,y+1,buf1);
if(key==KEY_UP)y=y==2?6:y-1;
if(key==KEY_DOWN)y=y==6?2:y+1;
gettext(2,y,18,y+1,buf1);
textbackground(0);
textcolor(15);
gotoxy(2,y);
cprintf("%s",file[y-2]);
}
key=Get_KeyValue();
if(key==KEY_ALT_F) /*若按的是Alt+F或回车键,则下拉File菜单*/
alt_f ();
if(key==KEY_ALT_D) /*若按的是Alt+D键,则下拉Display菜单*/
alt_d();
if(key==KEY_ALT_M) /*若按的是Alt+M键,则下拉Modify菜单*/
alt_m();
if(key==KEY_ALT_A) /*若按的是Alt+A键,则下拉Add菜单*/
alt_a();
if(key==KEY_ALT_C) /*若按的是Alt+C键,则下拉Clear菜单*/
alt_c();
if(key==KEY_ALT_S) /*若按的是Alt+S键,则下拉search菜单*/
alt_s();
if(key==KEY_ALT_T) /*若按的是Alt+T键,则下拉to_sort菜单*/
alt_t();
}
if(key==KEY_ALT_X)
{ exitd();
exit(0);
}
if(key==KEY_ENTER) /*若按的是回车键,则执行相应菜单*/
{
switch(y-1)
{
case 1:break;
case 2:break;
case 3:break;
case 4:break;
case 5:exit(0);
default:break;
}
}
window(1,1,80,2);
puttext(4,1,19,8,buf);
gotoxy(4,1);
x=4,i=0;
window(4,1,8,1);
textbackground(15);
textcolor(0);
clrscr();
cprintf("%s",menu[0]);
key=Get_KeyValue();
if(key==KEY_ALT_F) /*若按的是Alt+F或回车键,则下拉File菜单*/
alt_f ();
if(key==KEY_ALT_D) /*若按的是Alt+D键,则下拉Display菜单*/
alt_d();
if(key==KEY_ALT_M) /*若按的是Alt+M键,则下拉Modify菜单*/
alt_m();
if(key==KEY_ALT_A) /*若按的是Alt+A键,则下拉Add菜单*/
alt_a();
if(key==KEY_ALT_C) /*若按的是Alt+C键,则下拉Clear菜单*/
alt_c();
if(key==KEY_ALT_S) /*若按的是Alt+S键,则下拉search菜单*/
alt_s();
if(key==KEY_ALT_T) /*若按的是Alt+T键,则下拉to_sort菜单*/
alt_t();
if(key==KEY_ALT_X)
{ exitd();
exit(0);}
} /*end of if(i==0)*/
if(i==1)
{
gettext(11,1,26,6,buf);
window(11,1,26,6);
textbackground(15);
textcolor(0);
clrscr();
window(11,2,26,7);
Box(1,1,5,16);
for(k=2;k<5;k++)
{
gotoxy(2,k);
cprintf("%s",display[k-2]);
gotoxy(2,k);
textcolor(RED);
cprintf("%s",red2[k-2]);
textcolor(0);
}
gettext(10,2,26,3,buf1);
textbackground(0);
textcolor(15);
gotoxy(2,2);
cprintf("%s",display[0]);
y=2;
key=Get_KeyValue();
if(key==KEY_ALT_F) /*若按的是Alt+F或回车键,则下拉File菜单*/
alt_f ();
if(key==KEY_ALT_D) /*若按的是Alt+D键,则下拉Display菜单*/
alt_d();
if(key==KEY_ALT_M) /*若按的是Alt+M键,则下拉Modify菜单*/
alt_m();
if(key==KEY_ALT_A) /*若按的是Alt+A键,则下拉Add菜单*/
alt_a();
if(key==KEY_ALT_C) /*若按的是Alt+C键,则下拉Clear菜单*/
alt_c();
if(key==KEY_ALT_S) /*若按的是Alt+S键,则下拉search菜单*/
alt_s();
if(key==KEY_ALT_T) /*若按的是Alt+T键,则下拉to_sort菜单*/
alt_t();
if(key==KEY_ALT_X)
{
exitd();
exit(0);}
while(key!=KEY_ALT_X&&key!=KEY_ENTER&&key!=KEY_ESC)
{
if(key==KEY_UP||key==KEY_DOWN)
{
puttext(10,y,26,y+1,buf1);
if(key==KEY_UP)y=y==2?4:y-1;
if(key==KEY_DOWN)y=y==4?2:y+1;
gettext(10,y,26,y+1,buf1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -