⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 posbackground.c

📁 本人做的一个基于LINUX平台的小程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -