📄 lianbiao4.c
字号:
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#define null NULL
struct list
{
int data;
struct list *next,*front;
};
typedef struct list link;
typedef link *links;
links a,n,f;
void start()
{
a->front=null;
a->data=null;
a->next=null;
n=a;
f=a;
}
void add(int i)
{
n->next=malloc(sizeof(link));
n=n->next;
n->data=i;
f->next=n;
n->front=f;
n->next=null;
f=n;
}
void removes(int i)
{
int k=0;
links e;
e=a;
while(e->next!=null)
{
if(e->data==i)
{
links p;
p=e->front;
p->next=e->next;
free(e);
p->next->front=p;
k=1;
}
}
if(!k)printf("Can't find %d ",i);
}
void make_menu(char *name,char *charp[],int x,int y,int num,int color1,int color2)
{ /* 菜单名字,菜单数组,坐标X,坐标Y,菜单个数,字体颜色,字体背景颜色*/
static int n=0;
int i;
char c;
char **charpp;
charpp=charp;
while(1)
{
textbackground(LIGHTCYAN);
textcolor(MAGENTA);
clrscr();
gotoxy(x,y);
cputs(name);
for(i=0;i<=num;i++)
{
if(n==i)
{
textbackground(color2);
textcolor(color1);
}
else
{
textbackground(color1);
textcolor(color2);
}
gotoxy(x,y+i+1);
cputs(*(charpp+i));
}
textcolor(BLUE);
textbackground(MAGENTA);
gotoxy(x+3,y+num+2);
cputs("Input number:");
if((c=getch())==0)
{
switch((c=getch()))
{
case 75: if(n==0) n=num-1;else n--;
break;
case 77: if(n==num-1) n=0;else n++;
break;
case 80: if(n==num-1) n=0;else n++;
break;
case 72: if(n==0) n=num-1;else n--;
break;
}
}
else if(c==9){n++;if(n>num-1)n=0;}
else
{
if(c==13)
{
switch(n+1)
{ /*回车处理*/
case 1: add(geti());
break;
case 2: removes(geti());
break;
case 3: exit(0);
break;
case 4:
break;
case 5:
break;
}
}
else
{
switch(c-48)
{ /*直接数字处理*/
case 1: add(geti());
break;
case 2: removes(geti());
break;
case 3: exit(0);
break;
case 4:
break;
case 5:
break;
}
}
}
}
}
int geti()
{
int i;
clrscr();
gotoxy(20,7);
printf("please input number:");
scanf("%d",&i);
return i;
}
main()
{
char *name=" MENU";
char *menu[]={"1.Add ","2.Remove ","3.View ","4.Exit "};
start();
make_menu(name,menu,20,7,4,3,9);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -