📄 posbackground.c
字号:
#include "linklist.h"
#include "proscenium.h"
#include "posdb.h"
#include "posbackground.h"
#include "posui.h"
#include "poslogin.h"
#include <stdlib.h>//不加的话,atof等函数不能正确的使用
#include <ncurses.h>
int background_manager()
{
int flag = 1;
int *cur = &flag;
int ch = 0;
WINDOW *mywin = NULL;
mywin = create_default_color_window(25,80,0,0,6);
mvwprintw(mywin,3,35,"后台管理");
mvwprintw(mywin,5,34,"1. 商品管理");
mvwprintw(mywin,7,34,"2. 帐户管理");
mvwprintw(mywin,9,34,"3. 销售记录管理");
mvwprintw(mywin,11,34,"0. 返回登入界面");
wrefresh(mywin);
print_choice(mywin,flag,1);
keypad(mywin,true);
while(ch = wgetch(mywin))
{
if(ch == KEY_UP || ch == KEY_DOWN)
{
print_choice(mywin,flag,0);
KEY_UP_DOWN(4,ch,cur);
print_choice(mywin,flag,1);
}
if(ch == 10)
{
switch(flag)
{
case 1:
while (product_manager())
{
}
delwin(mywin);
return 1;
break;
case 2:
while (user_manager())
{
}
//delwin(mywin);
delwin(mywin);
return 1;
break;
case 3:
while (detail_manager())
{
}
delwin(mywin);
return 1;
break;
case 4:
delwin(mywin);
return 0;//退出
break;
}
}
else
continue;
}
return 0;
}
int product_manager()
{
int flag = 1;
int *cur = &flag;
int ch = 0;
WINDOW *mywin = NULL;
mywin = create_default_color_window(25,80,0,0,6);
mvwprintw(mywin,3,35,"商品管理");
mvwprintw(mywin,5,34,"1. 查询商品");
mvwprintw(mywin,7,34,"2. 添加商品");
mvwprintw(mywin,9,34,"3. 修改商品");
mvwprintw(mywin,11,34,"4. 删除商品");
mvwprintw(mywin,13,34,"0. 返回后台管理界面");
wrefresh(mywin);
print_product_choice(mywin,flag,1);
keypad(mywin,true);
while(ch = wgetch(mywin))
{
if(ch == KEY_UP || ch == KEY_DOWN)
{
print_product_choice(mywin,flag,0);
KEY_UP_DOWN(5,ch,cur);
print_product_choice(mywin,flag,1);
}
if(ch == 10)
{
switch(flag)
{
case 1:
product_check();
delwin(mywin);
return 1;
break;
case 2:
add_product();
delwin(mywin);
return 1;
break;
case 3:
alter_product();
delwin(mywin);
return 1;
break;
case 4:
delete_product();
delwin(mywin);
return 1;
break;
case 5:
delwin(mywin);
return 0;//退出
break;
}
}
else
continue;
}
return 0;
}
int user_manager()
{
int flag = 1;
int *cur = &flag;
int ch = 0;
WINDOW *mywin = NULL;
mywin = create_default_color_window(25,80,0,0,6);
mvwprintw(mywin,3,35,"用户管理");
mvwprintw(mywin,5,34,"1. 查询用户");
mvwprintw(mywin,7,34,"2. 添加用户");
mvwprintw(mywin,9,34,"3. 修改用户");
mvwprintw(mywin,11,34,"4. 删除用户");
mvwprintw(mywin,13,34,"0. 返回后台管理界面");
wrefresh(mywin);
print_user_choice(mywin,flag,1);
keypad(mywin,true);
while(ch = wgetch(mywin))
{
if(ch == KEY_UP || ch == KEY_DOWN)
{
print_user_choice(mywin,flag,0);
KEY_UP_DOWN(5,ch,cur);
print_user_choice(mywin,flag,1);
}
if(ch == 10)
{
switch(flag)
{
case 1:
user_check();
delwin(mywin);
return 1;
break;
case 2:
add_user();
delwin(mywin);
return 1;
break;
case 3:
alter_user();
delwin(mywin);
return 1;
break;
case 4:
delete_user();
delwin(mywin);
return 1;
break;
case 5:
delwin(mywin);
return 0;//退出
break;
}
}
else
continue;
}
return 0;
}
int detail_manager()
{
int flag = 1;
int *cur = &flag;
int ch = 0;
WINDOW *mywin = NULL;
mywin = create_default_color_window(25,80,0,0,6);
mvwprintw(mywin,3,35,"销售记录管理");
mvwprintw(mywin,5,34,"1. 按消费日期查询");
mvwprintw(mywin,7,34,"2. 按员工ID查询");
mvwprintw(mywin,9,34,"0. 返回后台管理界面");
wrefresh(mywin);
print_detail_choice(mywin,flag,1);
keypad(mywin,true);
while(ch = wgetch(mywin))
{
if(ch == KEY_UP || ch == KEY_DOWN)
{
print_detail_choice(mywin,flag,0);
KEY_UP_DOWN(3,ch,cur);
print_detail_choice(mywin,flag,1);
}
if(ch == 10)
{
switch(flag)
{
case 1:
detail_by_date();
delwin(mywin);
return 1;
break;
case 2:
detail_by_user();
delwin(mywin);
return 1;
break;
case 3:
delwin(mywin);
return 0;//退出
break;
}
}
else
continue;
}
return 0;
}
int user_check()
{
int ch = 0;
int page = 1;
int *p = &page;
int num = 0;
char str[4] = {0};
WINDOW *check = NULL,*list = NULL,*page_info = NULL,*turn = NULL;
LINKLIST *userlist;
userlist = (LINKLIST *)malloc(sizeof(LINKLIST));
link_init(userlist);
get_staff_list(userlist);
int last_page = 0;
if(userlist->count %10 == 0)
last_page = userlist->count/10;
else
last_page = userlist->count/10+1;
check = create_default_color_window(25,80,0,0,2);
mvwprintw(check,0,33,"欢迎光临xxx超市");
mvwprintw(check,2,37,"查询帐户");
mvwprintw(check,5,1,"序列");
mvwprintw(check,5,8,"帐户ID");
mvwprintw(check,5,16,"帐户名");
mvwprintw(check,5,30,"帐户密码");
mvwprintw(check,5,45,"帐户类型");
mvwprintw(check,5,60,"备注");
draw_line(check,4);
draw_line(check,6);
draw_line(check,21);
wrefresh(check);
delwin(check);
page_info = create_turn_page_window();
turn = create_no_border_color_window(1,4,23,40,2);
keypad(turn,true);
list = create_no_border_color_window(14,78,7,1,2);
print_user_page(list,userlist,page);
mvwprintw(page_info,1,15,"%d",page);
mvwprintw(page_info,1,60,"%d",last_page);
wrefresh(page_info);
keypad(list,true);
wmove(turn,0,0);
wrefresh(turn);
while(1)
{
wrefresh(turn);
ch = wgetch(turn);
if(ch ==KEY_PPAGE ||ch == KEY_NPAGE || ch == KEY_HOME || ch == KEY_END )
{
if (turn_page(userlist,p,ch))
{
continue;
}
print_user_page(list,userlist,page);
mvwprintw(page_info,1,15," ");
mvwprintw(page_info,1,15,"%d",page);
wrefresh(page_info);
}
else if(ch == 10)
{
if(strlen(str) == 0)
continue;
else
{
num = atoi(str);
if(num > last_page || num == 0)
message("无此页!",10,30);
else if(num != page)
{
*p = num;
print_user_page(list,userlist,page);
mvwprintw(page_info,1,15," ");
mvwprintw(page_info,1,15,"%d",page);
wrefresh(page_info);
}
memset(str,0,4*sizeof(char));
mvwprintw(turn,0,0," ");
wmove(turn,0,0);
}
}
else if(ch == KEY_F(1))
{
delwin(page_info);
delwin(turn);
delwin(list);
free_list(userlist);
return 0;
}
else
get_info(turn,str,ch,2,3);
}
return 1;
}
int product_check()
{
int ch = 0;
int page = 1;
int *p = &page;
char str[4]={0};
int num = 0;
LINKLIST *product_list;
product_list = (LINKLIST *)malloc(sizeof(LINKLIST));
link_init(product_list);
get_product_info_list(product_list);
int last_page = 0;
if(product_list->count %14 == 0)
last_page = product_list->count/14;
else
last_page = product_list->count/14+1;
WINDOW *check = NULL,*list = NULL,*page_info = NULL,*turn = NULL;
//page_info页数窗口
check = newwin(25,80,0,0);
wbkgd(check,COLOR_PAIR(2));
box(check,0,0);
mvwprintw(check,0,33,"欢迎光临xxx超市");
mvwprintw(check,2,37,"查询商品");
mvwprintw(check,5,1,"序列");
mvwprintw(check,5,6,"条形码");
mvwprintw(check,5,16,"商品名");
mvwprintw(check,5,30,"单位");
mvwprintw(check,5,37,"规格");
mvwprintw(check,5,44,"销售价格");
mvwprintw(check,5,55,"进货价格");
mvwprintw(check,5,65,"数量");
mvwprintw(check,5,72,"折扣");
draw_line(check,4);
draw_line(check,6);
draw_line(check,21);
wrefresh(check);
delwin(check);
page_info = create_turn_page_window();
list = create_no_border_color_window(14,78,7,1,2);
turn = create_no_border_color_window(1,4,23,40,2);
keypad(turn,true);
print_product_page(list,product_list,page);
mvwprintw(page_info,1,15,"%d",page);
mvwprintw(page_info,1,60,"%d",last_page);
wrefresh(page_info);
keypad(list,true);
wmove(turn,0,0);
wrefresh(turn);
while(1)
{
wrefresh(turn);
ch = wgetch(list);
if(ch ==KEY_PPAGE ||ch == KEY_NPAGE || ch == KEY_HOME || ch == KEY_END )
{
if (turn_page(product_list,p,ch))
{
continue;
}
print_product_page(list,product_list,page);
mvwprintw(page_info,1,15," ");
mvwprintw(page_info,1,15,"%d",page);
wrefresh(page_info);
}
else if(ch == 10)
{
if(strlen(str) == 0)
continue;
else
{
num = atoi(str);
if(num > last_page || num == 0)
message("无此页!",10,30);
else if(num != page)
{
*p = num;
print_product_page(list,product_list,page);
mvwprintw(page_info,1,15," ");
mvwprintw(page_info,1,15,"%d",page);
wrefresh(page_info);
}
memset(str,0,4*sizeof(char));
mvwprintw(turn,0,0," ");
wmove(turn,0,0);
}
}
else if(ch == KEY_F(1))
{
delwin(page_info);
delwin(turn);
delwin(list);
free_list(product_list);
return 0;
}
else
get_info(turn,str,ch,2,3);
}
return 1;
}
int detail_check(LINKLIST *sale_list)
{
int ch = 0;
int page = 1;
int *p = &page;
char str[4]={0};
int num = 0;
int last_page = 0;
if(sale_list->count %14 == 0)
last_page = sale_list->count/14;
else
last_page = sale_list->count/14+1;
WINDOW *check = NULL,*list = NULL,*page_info = NULL,*turn = NULL;
//page_info页数窗口
check = newwin(25,80,0,0);
wbkgd(check,COLOR_PAIR(2));
box(check,0,0);
mvwprintw(check,0,33,"欢迎光临xxx超市");
mvwprintw(check,2,37,"消费记录");
mvwprintw(check,5,1,"序列");
mvwprintw(check,5,6,"销售ID");
mvwprintw(check,5,30,"交易号");
mvwprintw(check,5,41,"员工ID");
mvwprintw(check,5,52,"销售日期");
mvwprintw(check,5,68,"销售金额");
draw_line(check,4);
draw_line(check,6);
draw_line(check,21);
wrefresh(check);
delwin(check);
page_info = create_turn_page_window();
list = create_no_border_color_window(14,78,7,1,2);
turn = create_no_border_color_window(1,4,23,40,2);
keypad(turn,true);
print_detail_page(list,sale_list,page);
mvwprintw(page_info,1,15,"%d",page);
mvwprintw(page_info,1,60,"%d",last_page);
wrefresh(page_info);
keypad(list,true);
wmove(turn,0,0);
wrefresh(turn);
while(1)
{
wrefresh(turn);
ch = wgetch(list);
if(ch ==KEY_PPAGE ||ch == KEY_NPAGE || ch == KEY_HOME || ch == KEY_END )
{
if (turn_page(sale_list,p,ch))
{
continue;
}
print_detail_page(list,sale_list,page);
mvwprintw(page_info,1,15," ");
mvwprintw(page_info,1,15,"%d",page);
wrefresh(page_info);
}
else if(ch == 10)
{
if(strlen(str) == 0)
continue;
else
{
num = atoi(str);
if(num > last_page || num == 0)
message("无此页!",10,30);
else if(num != page)
{
*p = num;
print_detail_page(list,sale_list,page);
mvwprintw(page_info,1,15," ");
mvwprintw(page_info,1,15,"%d",page);
wrefresh(page_info);
}
memset(str,0,4*sizeof(char));
mvwprintw(turn,0,0," ");
wmove(turn,0,0);
}
}
else if(ch == KEY_F(1))
{
delwin(page_info);
delwin(turn);
delwin(list);
free_list(sale_list);
return 0;
}
else
get_info(turn,str,ch,2,3);
}
return 1;
}
int detail_by_user()
{
int result = 0;
char staff_id[7] = {0};
result = get_user_id(staff_id,2);
if (result == 0)
return 0;
LINKLIST *sale_list;
sale_list = (LINKLIST *)malloc(sizeof(LINKLIST));
link_init(sale_list);
sale_list_by_user(sale_list,staff_id);
if(sale_list->count == 0)
{
message("查无此员工的相关销售记录",10,30);
free(sale_list);
return 0;
}
detail_check(sale_list);
return 1;
}
int detail_by_date()
{
int result = 0;
char first_date[9] = {0},last_date[9] = {0};
result = get_detail_date(first_date,last_date);
if (result == 0)
return 0;
else
{
LINKLIST *sale_list;
sale_list = (LINKLIST *)malloc(sizeof(LINKLIST));
link_init(sale_list);
result = sale_list_by_date(sale_list,first_date,last_date);
if (result == 0)
{
message("输入的日期错误!",10,30);
return 1;
}
if (sale_list->count == 0)
{
message("无符合的记录集!!",10,30);
}
else
{
detail_check(sale_list);
}
}
return 1;
}
int turn_page(LINKLIST *linklist,int *cur_page,int ch)//分页
{
int last_page = 0;
if(linklist->count %14 == 0)
last_page = linklist->count/14;
else
last_page = linklist->count/14+1;
if(ch == KEY_PPAGE)
{
if(*cur_page == 1)
return 1;
else
(*cur_page)--;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -