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

📄 okokok.c

📁 与tc界面类似的文本菜单界面,只需往里面添加函数即可使用
💻 C
📖 第 1 页 / 共 5 页
字号:
#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 + -