📄 poslogin.c
字号:
#include "posdb.h"
#include "posui.h"
#include "public.h"
#include "poslogin.h"
#include "proscenium.h"
#include "posbackground.h"
int login()
{
WINDOW *mywin;//自己的窗口
WINDOW *bgb = NULL, *shadow = NULL;//蓝色背景窗口,阴影窗口
WINDOW *login = NULL, *username = NULL ,*passwd = NULL;//登陆窗口,用户窗口,密码窗口
staff_info *check;
check =(staff_info *)malloc(sizeof(staff_info));
memset(check,0,sizeof(staff_info));
mywin = create_no_border_color_window(25,80,0,0,1);
mvwprintw(mywin,0,0,"超市收银系统");
mvwprintw(mywin,24,0,"Linux POS VERSON 1.0 AUTHER HUNTER*2");
wrefresh(mywin);
delwin(mywin);
bgb = create_no_border_color_window(23,80,1,0,3);
wrefresh(bgb);
delwin(bgb);
shadow = create_no_border_color_window(10,40,7,21,2);
wrefresh(shadow);
delwin(shadow);
login = create_default_color_window(10,40,6,20,1);
mvwprintw(login,0,10,"欢迎进入登陆窗口");
mvwprintw(login,2,9,"帐号:");
mvwprintw(login,4,9,"密码:");
wrefresh(login);
delwin(login);
username = create_no_border_color_window(1,12,8,35,4);
wrefresh(username);
passwd = create_no_border_color_window(1,12,10,35,4);
wrefresh(passwd);
yes_or_no(12,31,0,10);
char user[20] = {0};
char password[20] = {0};
int ch = 0;
int flag = 1,result = 0;
int *p = &flag;
keypad(username,true);
keypad(passwd,true);
while(1)
{
switch(flag)
{
case 1:
user_input(username,user,p);
break;
case 2:
passwd_input(passwd,password,p);
break;
case 3:
result = yes_or_no(12,31,1,10);
if (result == -1)
{
*p = 2;
}
else if (result == 0)
{
delwin(username);
delwin(passwd);
return 0;
}
else if (result == 1)
{
if(strlen(user) == 0)
message("用户名不能为空!",17,25);
else if(strlen(password) == 0)
message("密码不能为空!",17,25);
else if(strlen(user)!=6||str_isdigit(user))
message("用户名为6位数字!",17,25);
else if(strlen(password)<6||strlen(password)>12)
message("密码为6位至12位!",17,25);
else
{
result = user_confirm(user,check);
if(result == -1)//用户名不存在
{
*p = 1;
message("用户名不存在!",17,25);
}
else
{
if(strcmp(password,check->passwd) == 0) // 正确
{
delwin(username);
delwin(passwd);
if(result == 1)
{
while(background_manager())
{
}
return 1;
}
else
proscenium_manager(user);
return 1;
}
else
{
//密码错误
message("密码错误!",17,25);
}
}
}
*p = 1;
memset(user,0,20*sizeof(char));
memset(password,0,20*sizeof(char));
mvwaddnstr(username,0,0," ",10);
wrefresh(username);
mvwaddnstr(passwd,0,0," ",10);
wrefresh(passwd);
}
break;
}
}
}
void user_input(WINDOW *username,char *user,int *p)
{
int ch = 0;
wmove(username,0,strlen(user));
while(1)
{
ch = wgetch(username);
if (ch == KEY_DOWN || ch == 10)
{
*p = 2;
break;
}
else
{
get_info(username,user,ch,1,10);
}
}
}
void passwd_input(WINDOW *passwd,char *password,int *p)
{
int ch = 0;
wmove(passwd,0,strlen(password));
while(1)
{
ch = wgetch(passwd);
if(ch == KEY_UP)
{
*p = 1;
break;
}
else if(ch == KEY_DOWN || ch == 10)
{
*p = 3;
break;
}
else
{
get_info(passwd,password,ch,0,10);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -