📄 manager.c
字号:
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[5];
BUTTON *b[2];
INPUT *i[4];
int result=0,sign=1;
char *str[5]={"用户信息","用户姓名:","用户密码:","用户类型:","备注:"};
f[0]=creat_frame(4,19,15,40,3);
f[1]=creat_frame(6,30,1,20,1);
f[2]=creat_frame(8,30,1,20,1);
f[3]=creat_frame(10,30,1,20,1);
f[4]=creat_frame(12,30,1,20,1);
b[0]=createButton(14,26,3,8,"确定");
b[1]=createButton(14,44,3,8,"取消");
i[0]=create_input(f[1],20,0,2,6);
i[1]=create_input(f[2],20,1,3,6);
i[2]=create_input(f[3],1,2,4,6);
i[3]=create_input(f[4],20,3,5,6);
DIALOG *d=create_dialog(f,i,b,str,NULL);
strcpy(i[0]->str,e->emp_name);
strcpy(i[1]->str,e->emp_passwd);
i[2]->str[0]=e->emp_style+48;
strcpy(i[3]->str,e->remark);
show_change_user_infor(d);
mvwprintw((*(d->f+1))->win,0,0,"%s",e->emp_name);
wrefresh((*(d->f+1))->win);
mvwprintw((*(d->f+2))->win,0,0,"%s",e->emp_passwd);
wrefresh((*(d->f+2))->win);
mvwprintw((*(d->f+3))->win,0,0,"%d",e->emp_style);
wrefresh((*(d->f+3))->win);
mvwprintw((*(d->f+4))->win,0,0,"%s",e->remark);
wrefresh((*(d->f+4))->win);
result=action_change_user_infor(d);
if (result)
{
/*更新e里面的信息*/
/* char emp_id[7];
char emp_name[16];
char emp_passwd[17];
int emp_style;
int delete_sign;
char remark[31];*/
strcpy(e->emp_name,i[0]->str);
strcpy(e->emp_passwd,i[1]->str);
e->emp_style=atoi(i[2]->str);
strcpy(e->remark,i[3]->str);
update_user_table(e);
/*更新数据库*/
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
f[2]->free(&f[2]);
f[3]->free(&f[3]);
f[4]->free(&f[4]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i[0]->free(&i[0]);
i[1]->free(&i[1]);
i[2]->free(&i[2]);
i[3]->free(&i[3]);
scr_restore("scan8.dat");
}
/////////////////////////////////////////////////////////////输入帐户ID
void show_inut_user_ID(DIALOG *d)
{
scr_dump("scan7.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,9,"%s",*(d->str));
mvwprintw((*(d->f))->win,3,1,"%s",*(d->str+1));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int action_input_user_ID(DIALOG *d,EMP *e,int biaozi)
{
int result=0,sign=1;
int node_exist=0;
int count=0,i=0;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,1);//输入用户ID
/*数目有没有超过*/
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
del_blank((*(d->i))->str);
if(isdigital((*(d->i))->str)&&strlen((*(d->i))->str)!=0)//输入的Id不否合法
{
count=select_user(e,(*(d->i))->str);
switch (count)
{
case 0:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"没有该用户,请重新输入");
(*(d->i))->del_str(*(d->i));
break;
case 1:
if(biaozi)
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户已被删除,请重新激活");
(*(d->i))->del_str(*(d->i));
}
break;
case 4:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"管理员账户");
(*(d->i))->del_str(*(d->i));
break;
default:
break;
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
(*(d->i))->del_str(*(d->i));
/*提示有非数字字符*/
}
break;
case 2:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=1;
}
break;
case 3:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void input_user_ID()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
EMP e;
memset(&e,0,sizeof(EMP));
int result=0;
char *str[2]={"请输入用户ID","用户ID:"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,24,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],6,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
show_inut_user_ID(d);
result=action_input_user_ID(d,&e,1);
if(result)
{
change_user_infor(&e);
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan7.dat");//屏幕恢复
}
/////////////////////////////////////////////////////////////删除账户
void del_user_ID()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
EMP e;
memset(&e,0,sizeof(EMP));
int result=0;
char *str[2]={"请输入要删除用户ID","用户ID:"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,24,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],6,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
show_inut_user_ID(d);
result=action_input_user_ID(d,&e,1);
if(result)
{
del_user(&e);
messagebox(stdscr,7,19,44,12,PAUSE,"删除成功");
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan7.dat");//屏幕恢复
}
/////////////////////////////////////////////////////////////查询用户
void show_show_user_infor(DIALOG *d)
{
scr_dump("scan9.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,15,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,2,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,4,2,"%s",*(d->str+2));
mvwprintw((*(d->f))->win,6,2,"%s",*(d->str+3));
mvwprintw((*(d->f))->win,8,6,"%s",*(d->str+4));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*((d->f)+2))->draw(*((d->f)+2));
(*((d->f)+3))->draw(*((d->f)+3));
(*((d->f)+4))->draw(*((d->f)+4));
(*(d->b))->setColor(*(d->b),3,1,4);
(*(d->b))->show(*(d->b));
}
void show_user_infor(EMP *e)
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[5];
BUTTON *b[1];
INPUT *i[4];
int result=0,sign=1;
char *str[5]={"用户信息","用户姓名:","用户密码:","用户类型:","备注:"};
f[0]=creat_frame(4,19,15,40,3);
f[1]=creat_frame(6,30,1,20,1);
f[2]=creat_frame(8,30,1,20,1);
f[3]=creat_frame(10,30,1,20,1);
f[4]=creat_frame(12,30,1,20,1);
b[0]=createButton(14,35,3,8,"确定");
i[0]=create_input(f[1],20,0,2,6);
i[1]=create_input(f[2],20,1,3,6);
i[2]=create_input(f[3],1,2,4,6);
i[3]=create_input(f[4],20,3,5,6);
DIALOG *d=create_dialog(f,i,b,str,NULL);
strcpy(i[0]->str,e->emp_name);
strcpy(i[1]->str,e->emp_passwd);
i[2]->str[0]=e->emp_style+48;
strcpy(i[3]->str,e->remark);
show_show_user_infor(d);
if(e->delete_sign)
{
mvwprintw((*(d->f))->win,11,2,"已被删除");
wrefresh((*(d->f))->win);
}
mvwprintw((*(d->f+1))->win,0,0,"%s",e->emp_name);
wrefresh((*(d->f+1))->win);
mvwprintw((*(d->f+2))->win,0,0,"%s",e->emp_passwd);
wrefresh((*(d->f+2))->win);
mvwprintw((*(d->f+3))->win,0,0,"%d",e->emp_style);
wrefresh((*(d->f+3))->win);
mvwprintw((*(d->f+4))->win,0,0,"%s",e->remark);
wrefresh((*(d->f+4))->win);
(*(d->b))->pitch_on(*(d->b));
(*(d->b))->attack(*(d->b),0,0,0);
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
f[2]->free(&f[2]);
f[3]->free(&f[3]);
f[4]->free(&f[4]);
b[0]->free(&b[0]);
i[0]->free(&i[0]);
i[1]->free(&i[1]);
i[2]->free(&i[2]);
i[3]->free(&i[3]);
scr_restore("scan9.dat");
}
void demand_user_infor()
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
EMP e;
memset(&e,0,sizeof(EMP));
int result=0;
char *str[2]={"请输入用户ID","用户ID:"};
f[0]=creat_frame(7,15,11,30,3);
f[1]=creat_frame(10,24,1,18,1);
b[0]=createButton(12,18,3,8,"确定");
b[1]=createButton(12,33,3,8,"取消");
i=create_input(f[1],6,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
show_inut_user_ID(d);
result=action_input_user_ID(d,&e,0);
if(result)
{
show_user_infor(&e);
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan7.dat");//屏幕恢复
}
/////////////////////////////////////////////////////////////账户管理
void show_manage_counts(DIALOG *d)
{
scr_dump("scan5.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,15,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,1,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,2,20,"%s",*(d->str+2));
mvwprintw((*(d->f))->win,4,5,"%s",*(d->str+3));
mvwprintw((*(d->f))->win,6,5,"%s",*(d->str+4));
mvwprintw((*(d->f))->win,8,5,"%s",*(d->str+5));
mvwprintw((*(d->f))->win,10,5,"%s",*(d->str+6));
mvwprintw((*(d->f))->win,12,5,"%s",*(d->str+7));
mvwprintw((*(d->f))->win,14,1,"%s",*(d->str+8));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int action_manage_counts(DIALOG *d)
{
int result=0,sign=1;
int node_exist=0;
float i=0;
NODE *temp=NULL;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
/*数目有没有超过*/
del_blank((*(d->i))->str);
if(isdigital((*(d->i))->str)&&strlen((*(d->i))->str)!=0)//输入的数目不否合法
{
i=atoi((*(d->i))->str);
if (i <= 0||i >= 6)//输入的数量超过库存
{
/*提示超过库存量*/
messagebox(stdscr,7,19,44,12,PAUSE,"请输入1到5之间的数字");
sign=1;
(*(d->i))->del_str(*(d->i));
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入数字");
(*(d->i))->del_str(*(d->i));
/*提示有非数字字符*/
}
break;
case 2:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=atoi((*(d->i))->str);
}
break;
case 3:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void manage_counts(EMP *e)
{
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
int result=0,sign=1;
char *str[9]={"账户管理","管理员:","等级:数据库管理员","1.添 加 用 户","2.修 改 用 户","3.删 除 用 户","4查 询 用 户","5.退 出","选择:"};
f[0]=creat_frame(2,19,22,40,3);
f[1]=creat_frame(16,26,1,4,1);
b[0]=createButton(18,26,3,8,"确定");
b[1]=createButton(18,44,3,8,"取消");
i=create_input(f[1],1,0,2,3);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
do
{
mvwprintw((*(d->f))->win,2,8,"%s",e->emp_name);
show_manage_counts(d);
result=action_manage_counts(d);
switch (result)
{
case 1:
(*(d->i))->del_str(*(d->i));
add_account();
break;
case 2:
(*(d->i))->del_str(*(d->i));
input_user_ID();
break;
case 3:
(*(d->i))->del_str(*(d->i));
del_user_ID();
break;
case 4:
(*(d->i))->del_str(*(d->i));
demand_user_infor();
break;
case 5:
sign=messagebox(stdscr,7,19,44,12,YORN,"您确定要退出吗?");
if(sign == 0)
{
continue;
}
else
{
sign = 0;
}
break;
}
}
while (sign);
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan5.dat");//屏幕恢复
}
//////////////////////////////////////////////////////
/************商品管理***********
********************************
********************************/
//////////////////////////////////////////////////////
////////////////////////////添加商品///////////////////////////////////////
void show_add_goods(DIALOG *d)
{
scr_dump("scan10.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,15,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,2,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,4,6,"%s",*(d->str+2));
mvwprintw((*(d->f))->win,6,6,"%s",*(d->str+3));
mvwprintw((*(d->f))->win,8,2,"%s",*(d->str+4));
mvwprintw((*(d->f))->win,10,2,"%s",*(d->str+5));
mvwprintw((*(d->f))->win,12,2,"%s",*(d->str+6));
mvwprintw((*(d->f))->win,14,2,"%s",*(d->str+7));
mvwprintw((*(d->f))->win,16,4,"%s",*(d->str+8));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*((d->f)+2))->draw(*((d->f)+2));
(*((d->f)+3))->draw(*((d->f)+3));
(*((d->f)+4))->draw(*((d->f)+4));
(*((d->f)+5))->draw(*((d->f)+5));
(*((d->f)+6))->draw(*((d->f)+6));
(*((d->f)+7))->draw(*((d->f)+7));
(*((d->f)+8))->draw(*((d->f)+8));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
void show_goods_infor(DIALOG *d,GOODS *g)
{
mvwprintw((*(d->i))->f->win,0,0,"%s",g->commodity_name);
wrefresh((*(d->i))->f->win);
mvwprintw((*(d->i+1))->f->win,0,0,"%s",g->unti);
wrefresh((*(d->i+1))->f->win);
mvwprintw((*(d->i+2))->f->win,0,0,"%s",g->spec);
wrefresh((*(d->i+2))->f->win);
mvwprintw((*(d->i+3))->f->win,0,0,"%f",g->sell_price);
wrefresh((*(d->i+3))->f->win);
mvwprintw((*(d->i+4))->f->win,0,0,"%f",g->stock_price);
wrefresh((*(d->i+4))->f->win);
mvwprintw((*(d->i+5))->f->win,0,0,"%d",0);
wrefresh((*(d->i+5))->f->win);
mvwprintw((*(d->i+6))->f->win,0,0,"%f",g->agio);
wrefresh((*(d->i+6))->f->win);
mvwprintw((*(d->i+7))->f->win,0,0,"%s",g->bar_code);
wrefresh((*(d->i+7))->f->win);
sprintf((*(d->i))->str,"%s",g->commodity_name);
sprintf((*(d->i+1))->str,"%s",g->unti);
sprintf((*(d->i+2))->str,"%s",g->spec);
sprintf((*(d->i+3))->str,"%f",g->sell_price);
sprintf((*(d->i+4))->str,"%f",g->stock_price);
sprintf((*(d->i+5))->str,"%d",0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -