📄 land.c
字号:
#include "control_db.h"
#include "button.h"
#include "frame.h"
#include "input.h"
#include "message.h"
int input(FRAME *f,char *str,int str_length);
int land(EMP *e)
{/*
initscr();
if(has_colors==FALSE)
{
endwin();
exit(0);
}*/
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
int sign=1;//由于标记下次要访问的窗口
int result=0;
WINDOW *land=newwin(12,40,6,19);
WINDOW *sub=subwin(stdscr,22,80,1,0);
WINDOW *shadow=subwin(stdscr,12,40,7,20);
/* start_color();*/
/////////////////////////////////////////////////
/* init_pair(1,COLOR_BLACK,COLOR_WHITE);
init_pair(2,COLOR_WHITE,COLOR_BLACK);
init_pair(3,COLOR_BLACK,COLOR_RED);
init_pair(4,COLOR_BLACK,COLOR_YELLOW);
init_pair(5,COLOR_BLACK,COLOR_BLACK);
init_pair(6,COLOR_RED,COLOR_BLUE);
init_pair(7,COLOR_RED,COLOR_BLACK);
init_pair(8,COLOR_BLACK,COLOR_RED);
init_pair(9,COLOR_WHITE,COLOR_RED);*/
/////////////////////////////////////////////////登陆界面的主窗口
wattron(land,COLOR_PAIR(1));
box(land,0,0);
mvwprintw(land,0,13,"欢迎进入登入窗口");
wbkgd(land,COLOR_PAIR(1));
wbkgd(stdscr,COLOR_PAIR(1));
wbkgd(sub,COLOR_PAIR(6));
wbkgd(shadow,COLOR_PAIR(7));
mvwprintw(land,2,11,"账号:");
mvwprintw(land,4,11,"密码:");
mvprintw(0,0,"超市收银系统");
mvprintw(23,0,"Linux POS System version 1.0 Author Cong Lin");
touchwin(stdscr);
refresh();
wrefresh(land);
//////////////////////////////////////////////////用户名密码输入框
FRAME *f=creat_frame(8,35,1,16,8);
FRAME *f1=creat_frame(10,35,1,16,8);
f->draw(f);
f1->draw(f1);
//////////////////////////////////////////////////确定取消按钮
BUTTON *b2=createButton(12,31,3,8,"确定");
BUTTON *b1=createButton(12,41,3,8,"退出");
b2->setColor(b2,1,2,3);
b1->setColor(b1,1,2,3);
b2->show(b2);
b1->show(b1);
////////////////////////////////////////////////////框图按钮间的切换及相关操作
INPUT *i1=create_input(f,6,1,2,4);
INPUT *i2=create_input(f1,12,1,3,4);
do
{
switch (sign)
{
case 1:
sign=i1->input_char(i1,1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
del_blank(i1->str);
if(isdigital(i1->str)&&strlen(i1->str)!=0)//输入的数目不否合法
{
break;
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入正确的用户ID");
/*提示有非数字字符*/
}
break;
case 2:
sign=i2->input_char(i2,0,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=2;
}
}
del_blank(i2->str);
if(strlen(i2->str)!=0)//输入的数目不否合法
{
break;
}
else
{
sign=2;
messagebox(stdscr,7,19,44,12,PAUSE,"密码不能为空格");
/*提示有非数字字符*/
}
break;
case 3:
b2->pitch_on(b2);
sign=b2->attack(b2,0,4,4);
if(sign == 0)
{
result=login(i1->str,i2->str,e);
switch (result)
{
case 0:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户不存在,请重新输入或离开!");
i2->del_str(i2);
i1->del_str(i1);
break;
case 1:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户已被禁用,请重新输入或离开!");
i2->del_str(i2);
i1->del_str(i1);
break;
case 2:
messagebox(stdscr,7,19,44,12,PAUSE,"密码错误!");
i2->del_str(i2);
sign=2;
break;
case 3:
result=3;
break;
case 4:
result=4;
break;
case 5:
result=5;
break;
}
}
break;
case 4:
b1->pitch_on(b1);
sign=b1->attack(b1,3,0,1);
if(sign==0)
{
result=0;
}
break;
}
}
while (sign);
////////////////////////////////////////////////////释放输入框和按钮
f->free(&f);
f1->free(&f1);
b2->free(&b2);
b1->free(&b1);
i1->free(&i1);
i2->free(&i2);
//////////////////////////////////////////////////
/* attroff(COLOR_PAIR(1));
attroff(COLOR_PAIR(2));
attroff(COLOR_PAIR(3));
attroff(COLOR_PAIR(4));
attroff(COLOR_PAIR(5));
attroff(COLOR_PAIR(6));
attroff(COLOR_PAIR(7));
attroff(COLOR_PAIR(8));
attroff(COLOR_PAIR(9));*/
delwin(land);
erase();
/* endwin();*/
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -