📄 background.c
字号:
{
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_UP:
break;
case KEY_DOWN:
case '\n':
goto THIRD;
default:
if ( cnt[1]<30 )
{
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],unit);
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],' ');
unit[--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]<16 )
{
row[2]++;
waddch(txtbox[2],ch);
unit[cnt[2]]=ch;
unit[++cnt[2]]='\0';
wrefresh(txtbox[2]);
break;
}
}
}
//商品规格窗口
FOUR:
wmove(txtbox[3],0,0);
wprintw(txtbox[3],spec);
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],' ');
spec[--cnt[3]]='\0';
wmove(txtbox[3],0,row[3]);
wrefresh(txtbox[3]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto THIRD;
break;
case KEY_DOWN:
case '\n':
goto FIVE;
default:
if ( cnt[3]<16 )
{
row[3]++;
waddch(txtbox[3],ch);
spec[cnt[3]]=ch;
spec[++cnt[3]]='\0';
wrefresh(txtbox[3]);
break;
}
}
}
//商品售价窗口
FIVE:
wmove(txtbox[4],0,0);
wprintw(txtbox[4],price);
wrefresh(txtbox[4]);
int radixPoint=0;
while(1)
{
ch=wgetch(txtbox[4]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[4]>0)
{
if (code[cnt[4]-1]=='.')
{
radixPoint--;
}
getyx(txtbox[4],col[4],row[4]);
mvwaddch(txtbox[4],col[4],--row[4],' ');
price[--cnt[4]]='\0';
wmove(txtbox[4],0,row[4]);
wrefresh(txtbox[4]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto FOUR;
break;
case KEY_DOWN:
case '\n':
goto SIX;
default:
if ( ((ch>='0'&&ch<='9') || (ch=='.'&&radixPoint==0)) && (cnt[4]<12) )
{
if (ch=='.')
{
radixPoint++;
}
row[4]++;
waddch(txtbox[4],ch);
price[cnt[4]]=ch;
price[++cnt[4]]='\0';
wrefresh(txtbox[4]);
break;
}
}
}
//商品进货价格窗口
SIX:
wmove(txtbox[5],0,0);
wprintw(txtbox[5],purchasePrice);
wrefresh(txtbox[5]);
radixPoint=0;
while(1)
{
ch=wgetch(txtbox[5]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[5]>0)
{
if (code[cnt[4]-1]=='.')
{
radixPoint--;
}
getyx(txtbox[5],col[5],row[5]);
mvwaddch(txtbox[5],col[5],--row[5],' ');
purchasePrice[--cnt[5]]='\0';
wmove(txtbox[5],0,row[5]);
wrefresh(txtbox[5]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto FIVE;
break;
case KEY_DOWN:
case '\n':
goto SEVEN;
default:
if ( ((ch>='0'&&ch<='9') || (ch=='.'&&radixPoint==0)) && (cnt[5]<12) )
{
if (ch=='.')
{
radixPoint++;
}
row[5]++;
waddch(txtbox[5],ch);
purchasePrice[cnt[5]]=ch;
purchasePrice[++cnt[5]]='\0';
wrefresh(txtbox[5]);
break;
}
}
}
//商品折扣窗口
SEVEN:
wmove(txtbox[6],0,0);
wprintw(txtbox[6],discount);
wrefresh(txtbox[6]);
radixPoint=0;
while(1)
{
ch=wgetch(txtbox[6]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[6]>0)
{
if (code[cnt[4]-1]=='.')
{
radixPoint--;
}
getyx(txtbox[6],col[6],row[6]);
mvwaddch(txtbox[6],col[6],--row[6],' ');
discount[--cnt[6]]='\0';
wmove(txtbox[6],0,row[6]);
wrefresh(txtbox[6]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto SIX;
break;
case KEY_DOWN:
case '\n':
goto EIGHT;
default:
if ( ((ch>='0'&&ch<='9') || (ch=='.'&&radixPoint==0)) && (cnt[6]<4) )
{
if (ch=='.')
{
radixPoint++;
}
row[6]++;
waddch(txtbox[6],ch);
discount[cnt[6]]=ch;
discount[++cnt[6]]='\0';
wrefresh(txtbox[6]);
break;
}
}
}
//商品数量窗口
EIGHT:
wmove(txtbox[7],0,0);
wprintw(txtbox[7],count);
wrefresh(txtbox[7]);
while(1)
{
ch=wgetch(txtbox[7]);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt[7]>0)
{
getyx(txtbox[7],col[7],row[7]);
mvwaddch(txtbox[7],col[7],--row[7],' ');
count[--cnt[7]]='\0';
wmove(txtbox[7],0,row[7]);
wrefresh(txtbox[7]);
}
break;
case KEY_F(1):
return;
case KEY_UP:
goto SEVEN;
break;
case KEY_DOWN:
case '\n':
goto ENSURE;
default:
if ( ((ch>='1'&&ch<='9') || (ch=='0'&&cnt[7]!=0)) && (cnt[7]<5) )
{
row[7]++;
waddch(txtbox[7],ch);
count[cnt[7]]=ch;
count[++cnt[7]]='\0';
wrefresh(txtbox[7]);
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_DOWN:
break;
case KEY_UP:
wattroff(dialog[1],A_REVERSE);
mvwprintw(dialog[1],1,2, "确定");
wrefresh(dialog[1]);
goto EIGHT;
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("modifyproduct.scr");
Message("商品名不能为空",10,40);
scr_restore("modifyproduct.scr");
goto SECOND;
}
if (cnt[2]==0)
{
scr_dump("modifyproduct.scr");
Message("单位不能为空",10,40);
scr_restore("modifyproduct.scr");
goto THIRD;
}
if (cnt[3]==0)
{
scr_dump("modifyproduct.scr");
Message("规格不能为空",10,40);
scr_restore("modifyproduct.scr");
goto FOUR;
}
if (cnt[4]==0)
{
scr_dump("modifyproduct.scr");
Message("请输入售价",10,40);
scr_restore("modifyproduct.scr");
goto FIVE;
}
if (cnt[5]==0)
{
scr_dump("modifyproduct.scr");
Message("请输入进货价格",10,40);
scr_restore("modifyproduct.scr");
goto SIX;
}
if (cnt[6]==0)
{
scr_dump("modifyproduct.scr");
Message("请输入折扣",10,40);
scr_restore("modifyproduct.scr");
goto SEVEN;
}
if (cnt[7]==0)
{
scr_dump("modifyproduct.scr");
Message("请输入数量",12,42);
scr_restore("modifyproduct.scr");
goto EIGHT;
}
//插入数据库
strcpy(pro_info->bar_code,code);
strcpy(pro_info->product_name,name);
strcpy(pro_info->unit,unit);
strcpy(pro_info->spec,spec);
pro_info->sale_price = atof(price);
pro_info->purchase_price = atof(purchasePrice);
pro_info->discount = atof(discount);
pro_info->count = atoi(count);
if ( pro_info->purchase_price > pro_info->sale_price)
{
Message("进货价格大于售价",10,40);
scr_restore("modifycommoditydata.scr");
purchasePrice[0] = '\0';
col[5] = 0;
cnt[5] = 0;
row[5] = 0;
wclear(txtbox[5]);
wrefresh(txtbox[5]);
goto SIX;
}
res=update_product(pro_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 delete_commodity_win()
{
WINDOW *dialog[3]={NULL};
print_dialog_box(24,80,"欢迎光临XXX超市",5,dialog);
mvwprintw(dialog[0],6,36,"删除商品");
mvwprintw(dialog[0],10,11,"条形码");
wrefresh(dialog[0]);
WINDOW *txtbox={NULL};
char firstStr[9]="CN";
int cnt=2;
int col=0;
int row=2;
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("deletecommodity.scr");
FIRST:
wmove(txtbox,0,0);
wprintw(txtbox,firstStr);
wrefresh(txtbox);
while(1)
{
ch=wgetch(txtbox);
switch (ch)
{
case KEY_BACKSPACE: //按退格键盘
if (cnt>2)
{
getyx(txtbox,col,row);
mvwaddch(txtbox,col,--row,' ');
firstStr[--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<8)
{
row++;
waddch(txtbox,ch);
firstStr[cnt]=ch;
firstStr[++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':
//验证输入的条形码的商品是否存在,如果存在进行删除,若不存在给予提示
{
PRODUCT *pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
strcpy(pro_info->bar_code,firstStr);
//判断数据库中是否存在商品条形码
res= get_product_info(pro_info);
if (res==-1)
{
Message("数据库出错",10,40);
endwin();
exit(1);
}
if (res==0)
{
Message("没有这种商品信息",10,40);
scr_restore("deletecommodity.scr");
firstStr[2] = '\0';
col = 0;
cnt = 2;
row = 2;
goto FIRST;
}
//打印新窗口并将所有数据打印出来
if ( delete_commodity_data_win(pro_info) )
{
return;
}
scr_restore("deletecommodity.scr");
firstStr[2] = '\0';
col = 0;
cnt = 2;
row = 2;
goto FIRST;
}
}
}
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:删除商品数据窗口
===============================================================*/
int delete_commodity_data_win(PRODUCT *pro_info)
{
WINDOW *dialog[3]={NULL};
print_dialog_box(24,80,"欢迎光临XXX超市",5,dialog);
keypad(dialog[1],TRUE);
keypad(dialog[2],TRUE);
mvwprintw(dialog[0],2,36,"修改商品");
mvwprintw(dialog[0],4,11,"条形码:");
mvwprintw(dialog[0],6,13,"名称:");
mvwprintw(dialog[0],8,13,"单位:");
mvwprintw(dialog[0],10,13,"规格:");
mvwprintw(dialog[0],12,13,"售价:");
mvwprintw(dialog[0],14,9,"进货价格:");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -