📄 background.c
字号:
remark[--cnt[4]]='\0';
wmove(txtbox[4],0,row[4]);
wrefresh(txtbox[4]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto FOUR;
case KEY_DOWN:
case '\n':
goto ENSURE;
default:
if ( cnt[4]<30 )
{
row[4]++;
waddch(txtbox[4],ch);
remark[cnt[4]]=ch;
remark[++cnt[4]]='\0';
wrefresh(txtbox[4]);
break;
}
}
}
ENSURE:
wattron(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
while (1)
{
ch=wgetch(dialog[1]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_UP:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto FIVE;
case KEY_RIGHT:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto CANCEL;
case '\n':
//对输入的数据做验证,确保其合法性
if (cnt[0]!=6)
{
scr_dump("adduser.scr");
Message("请输入6位帐户ID",10,40);
scr_restore("adduser.scr");
goto FIRST;
}
if (cnt[1]==0)
{
scr_dump("adduser.scr");
Message("请输入帐户姓名",10,40);
scr_restore("adduser.scr");
goto SECOND;
}
//对帐户密码进行验证判断密码输入是否大于6位
if (cnt[2]<6)
{
scr_dump("adduser.scr");
Message("请输入帐户密码,长度为6-12位",10,40);
scr_restore("adduser.scr");
goto THIRD;
}
if (cnt[3]==0)
{
scr_dump("adduser.scr");
Message("请输入帐户类型 0:超级帐户,1:管理员,2:收银员",10,40);
scr_restore("adduser.scr");
goto FOUR;
}
//帐户备注如果没有输入的话
if (cnt[4]==0)
{
strcpy(remark," ");
}
//获取所有输入数据,判断所输入的信息在帐户表中是否已经存在,存在给予提示,不存在插入到帐户表
{
STAFF *staff_info=(STAFF *)malloc(sizeof(STAFF));
strcpy(staff_info->staff_id,account);
strcpy(staff_info->staff_name,name);
strcpy(staff_info->staff_pwd,password);
staff_info->staff_type = atoi(type);
strcpy(staff_info->remark,remark);
Trim(account);
Trim(name);
Trim(password);
Trim(remark);
//判断数据库中是否存在商品条形码
res=staffid_in_staff(staff_info);
if (res==-1)
{
Message("数据库出错",10,40);
endwin();
exit(1);
}
if (res==1)
{
Message("此帐户已存在",10,40);
scr_restore("addaccount.scr");
account[0] = '\0';
name[0] = '\0';
password[0] = '\0';
type[0] = '\0';
remark[0] = '\0';
for ( i=0; i<=6; i++ )
{
col[i] = 0;
cnt[i] = 0;
row[i] = 0;
}
goto FIRST;
}
//插入数据库
res = insert_staff(staff_info);
if (res == -1)
{
Message("数据库出错",10,40);
endwin();
exit(1);
}
if (res==0)
{
Message("添加帐户信息到数据库出错",10,40);
endwin();
exit(1);
}
}
return;
}
}
CANCEL:
wattron(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
while (1)
{
ch=wgetch(dialog[2]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_LEFT:
wattroff(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
goto ENSURE;
case '\n':
return;
}
}
}
/*==============================================================
function:修改帐户窗口
==============================================================*/
void modify_account_win()
{
WINDOW *dialog[3]={NULL};
print_dialog_box(24,80,"欢迎光临XXX超市",5,dialog);
mvwprintw(dialog[0],6,36,"修改帐户");
mvwprintw(dialog[0],10,11,"帐户ID");
wrefresh(dialog[0]);
WINDOW *txtbox={NULL};
char account[7]={'\0'};
int cnt=0;
int col=0;
int row=0;
int res=0;
int ch=0;
txtbox=create_win(1,42,10,20);
keypad(txtbox,TRUE);
keypad(dialog[1],TRUE);
keypad(dialog[2],TRUE);
wbkgd(txtbox,COLOR_PAIR(1));
wrefresh(txtbox);
scr_dump("modifyaccount.scr");
FIRST:
wmove(txtbox,0,0);
wprintw(txtbox,account);
wrefresh(txtbox);
while(1)
{
ch=wgetch(txtbox);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt>0)
{
getyx(txtbox,col,row);
mvwaddch(txtbox,col,--row,' ');
account[--cnt]='\0';
wmove(txtbox,0,row);
wrefresh(txtbox);
}
break;
case KEY_F(1):
return;
case KEY_DOWN:
case '\n':
goto ENSURE;
default:
if (ch>='0'&&ch<='9' && cnt<6)
{
row++;
waddch(txtbox,ch);
account[cnt]=ch;
account[++cnt]='\0';
wrefresh(txtbox);
break;
}
}
}
ENSURE:
wattron(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
while (1)
{
ch=wgetch(dialog[1]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_UP:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto FIRST;
case KEY_RIGHT:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto CANCEL;
case '\n':
if (cnt!=6)
{
Message("请输入6位员工ID",10,40);
scr_restore("modifyaccount.scr");
account[0] = '\0';
col = 0;
cnt = 0;
row = 0;
goto FIRST;
}
//验证输入的帐户id是否存在,存在继续执行,不存在给提示
{
STAFF *staff_info=(STAFF *)malloc(sizeof(STAFF));
strcpy(staff_info->staff_id,account);
//判断数据库中是否存在帐户ID
res = get_staff(staff_info);
if (res==-1)
{
Message("数据库出错",10,40);
endwin();
exit(1);
}
if (res==0)
{
Message("此帐户ID不存在",10,40);
scr_restore("modifyaccount.scr");
account[0] = '\0';
col = 0;
cnt = 0;
row = 0;
goto FIRST;
}
//打印新窗口并将所有数据打印出来
modify_account_data_win(staff_info);
}
return;
}
}
CANCEL:
wattron(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
while (1)
{
ch=wgetch(dialog[2]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_LEFT:
wattroff(dialog[2],A_REVERSE);
mvwprintw(dialog[2],1,2, "取消");
wrefresh(dialog[2]);
goto ENSURE;
case '\n':
return;
}
}
}
/*=====================================================
function:修改帐户数据窗口
======================================================*/
void modify_account_data_win(STAFF *staff_info)
{
WINDOW *dialog[3]={NULL};
print_dialog_box(24,80,"欢迎光临XXX超市",5,dialog);
keypad(dialog[1],TRUE);
keypad(dialog[2],TRUE);
mvwprintw(dialog[0],3,36,"修改帐户");
mvwprintw(dialog[0],6,11,"帐户ID:");
mvwprintw(dialog[0],8,11,"用户名:");
mvwprintw(dialog[0],10,13,"密码:");
mvwprintw(dialog[0],12,13,"身份:");
mvwprintw(dialog[0],14,13,"备注:");
wrefresh(dialog[0]);
WINDOW *txtbox[5] = {NULL};
char account[7] = {'\0'};
char name[16] = {'\0'};
char password[17] = {'\0'};
char type[5] = {'\0'};
char remark[31] = {'\0'};
Trim(staff_info->staff_id);
Trim(staff_info->staff_name);
Trim(staff_info->staff_pwd);
Trim(staff_info->remark);
strcpy(account, staff_info->staff_id);
strcpy(name, staff_info->staff_name);
strcpy(password, staff_info->staff_pwd);
strcpy(remark, staff_info->remark);
sprintf(type, "%d", staff_info->staff_type);
int cnt[5]={0};
int col[5]={0};
int row[5]={0};
cnt[1]=row[1]=strlen(name);
cnt[2]=row[2]=strlen(password);
cnt[3]=row[3]=strlen(type);
cnt[4]=row[4]=strlen(remark);
int i=0;
int ch=0;
int res=0;
for (i=0; i<5; i++)
{
txtbox[i]=create_win(1,42,6+2*i,20);
keypad(txtbox[i],TRUE);
wbkgd(txtbox[i],COLOR_PAIR(1));
wrefresh(txtbox[i]);
}
wprintw(txtbox[0],account);
wprintw(txtbox[1],name);
wprintw(txtbox[2],password);
wprintw(txtbox[3],type);
wprintw(txtbox[4],remark);
for (i=0; i<5; i++)
{
wrefresh(txtbox[i]);
}
//帐户姓名窗口
SECOND:
wmove(txtbox[1],0,0);
wprintw(txtbox[1],name);
wrefresh(txtbox[1]);
while(1)
{
ch=wgetch(txtbox[1]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[1]>0)
{
getyx(txtbox[1],col[1],row[1]);
mvwaddch(txtbox[1],col[1],--row[1],' ');
name[--cnt[1]]='\0';
wmove(txtbox[1],0,row[1]);
wrefresh(txtbox[1]);
}
break;
case KEY_F(1):
return;
case KEY_DOWN:
case '\n':
goto THIRD;
default:
if ( cnt[1]<15 )
{
row[1]++;
waddch(txtbox[1],ch);
name[cnt[1]]=ch;
name[++cnt[1]]='\0';
wrefresh(txtbox[1]);
break;
}
}
}
//帐户密码窗口
THIRD:
wmove(txtbox[2],0,0);
wprintw(txtbox[2],password);
wrefresh(txtbox[2]);
while(1)
{
ch=wgetch(txtbox[2]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[2]>0)
{
getyx(txtbox[2],col[2],row[2]);
mvwaddch(txtbox[2],col[2],--row[2],' ');
password[--cnt[2]]='\0';
wmove(txtbox[2],0,row[2]);
wrefresh(txtbox[2]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto SECOND;
break;
case KEY_DOWN:
case '\n':
goto FOUR;
default:
if ( cnt[2]<12 && (ch>='0'&&ch<='9') || (ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z') )
{
row[2]++;
waddch(txtbox[2],ch);
password[cnt[2]]=ch;
password[++cnt[2]]='\0';
wrefresh(txtbox[2]);
break;
}
}
}
//帐户类型窗口
FOUR:
wmove(txtbox[3],0,0);
wprintw(txtbox[3],type);
wrefresh(txtbox[3]);
while(1)
{
ch=wgetch(txtbox[3]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[3]>0)
{
getyx(txtbox[3],col[3],row[3]);
mvwaddch(txtbox[3],col[3],--row[3],' ');
type[--cnt[3]]='\0';
wmove(txtbox[3],0,row[3]);
wrefresh(txtbox[3]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto THIRD;
case KEY_DOWN:
case '\n':
goto FIVE;
default:
if ( (ch>='0'&&ch<='2') && cnt[3]<1 )
{
row[3]++;
waddch(txtbox[3],ch);
type[cnt[3]]=ch;
type[++cnt[3]]='\0';
wrefresh(txtbox[3]);
break;
}
}
}
//帐户备注窗口
FIVE:
wmove(txtbox[4],0,0);
wprintw(txtbox[4],remark);
wrefresh(txtbox[4]);
while(1)
{
ch=wgetch(txtbox[4]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[4]>0)
{
getyx(txtbox[4],col[4],row[4]);
mvwaddch(txtbox[4],col[4],--row[4],' ');
remark[--cnt[4]]='\0';
wmove(txtbox[4],0,row[4]);
wrefresh(txtbox[4]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto FOUR;
case KEY_DOWN:
case '\n':
goto ENSURE;
default:
if ( cnt[4]<30 )
{
row[4]++;
waddch(txtbox[4],ch);
remark[cnt[4]]=ch;
remark[++cnt[4]]='\0';
wrefresh(txtbox[4]);
break;
}
}
}
ENSURE:
wattron(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
while (1)
{
ch=wgetch(dialog[1]);
switch (ch)
{
case KEY_F(1):
return;
case KEY_UP:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto FIVE;
case KEY_RIGHT:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto CANCEL;
case '\n':
//对输入的数据进行验证
//对帐户名进行验证
if (cnt[1]==0)
{
scr_dump("addaccountdata.scr");
Message("请输入帐户姓名",10,40);
scr_restore("addaccountdata.scr");
goto SECOND;
}
//对帐户密码进行验证密码输入是否大于6位
if (cnt[2]<6)
{
scr_dump("addaccountdata.scr");
Message("请输入帐户密码,长度为6-12",10,40);
scr_restore("addaccountdata.scr");
goto THIRD;
}
if (cnt[3]==0)
{
scr_dump("addaccountdata.scr");
Message("请输入帐户类型 0:超级帐户,1:管理员,2:收银员",10,40);
scr_restore("addaccountdata.scr");
goto FOUR;
}
//帐户备注如果没有输入的话
if (cnt[4]==0)
{
strcpy(remark," ");
}
//插入数据库
strcpy(staff_info->staff_id, account);
strcpy(staff_info->staff_name, name);
strcpy(staff_info->staff_pwd, password);
strcpy(staff_info->remark, remark);
staff_info->staff_type = atoi(type);
res=update_staff(staff_info);
if (res==-1)
{
Message("数据库出错",10,40);
endwin();
exit(1);
}
if (res==0)
{
Message("修改帐户数据的时候出错",10,40);
endw
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -