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

📄 posbackground.c

📁 本人做的一个基于LINUX平台的小程序
💻 C
📖 第 1 页 / 共 3 页
字号:
	}
	if(ch == KEY_NPAGE)
	{
		if(*cur_page == last_page)
			return 1;
		else
			(*cur_page)++;
	}
	if (ch ==KEY_HOME)
	{
		*cur_page = 1;
	}
	if (ch ==KEY_END)
	{
		*cur_page = last_page; 
	}
	return 0;
}


int print_user_page(WINDOW *win,LINKLIST *linklist,int page)//打印一页用户记录
{
	werase(win);
	wrefresh(win);

	int i = 0,last = 0;
	i = (page-1)*14+1;
	last = page*14;

	while(i <= last && i <= linklist->count)
	{
			print_user_record(win,linklist,i);
			i++;
	
	}
	return 0;
}

int print_product_page(WINDOW *win,LINKLIST *linklist,int page)//打印一页商品记录
{
	int i = 0,last = 0;
	i = (page-1)*14+1;
	last = page*14;
	
	wclear(win);
	wrefresh(win);

	while(i <= last && i <= linklist->count)
	{
		print_product_record(win,linklist,i);
		i++;
	}
	return 1;
}

int print_detail_page(WINDOW *win,LINKLIST *linklist,int page)
{
	int i = 0,last = 0;
	i = (page-1)*14+1;
	last = page*14;
	
	wclear(win);
	wrefresh(win);

	while(i <= last && i <= linklist->count)
	{
		print_detail_record(win,linklist,i);
		i++;
	}
	return 1;
}

int print_user_record(WINDOW *win,LINKLIST *linklist,int flag)//打印一条用户记录
{
	NODE *p;
	p = get_node_by_index(linklist,flag);

	int position;
	position = flag%14;
	if(position == 0)
		position = 14;

	char str[20] = {0},temp[31] ={0};
	strcpy(temp,((staff_info *)(p->node_data))->remark);
	rtrim(temp);

	if(strlen(temp) > 15)
	{
		memcpy(str,temp,15);
		strcat(str,"...");
	}
	else
		strcpy(str,temp);
	
	mvwprintw(win,position-1,1,"%d",flag);
	mvwprintw(win,position-1,8,((staff_info *)(p->node_data))->id);
	mvwprintw(win,position-1,16,((staff_info *)(p->node_data))->name);
	mvwprintw(win,position-1,30,((staff_info *)(p->node_data))->passwd);
	mvwprintw(win,position-1,45,"%d",((staff_info *)(p->node_data))->type);
	mvwprintw(win,position-1,60,str);
	wrefresh(win);
	return 0;
}

int print_product_record(WINDOW *win,LINKLIST *linklist,int flag)//打印一条用户记录
{
	int position;
	position = flag%14;
	if(position == 0)
		position = 14;
	
	NODE *p;
	p = get_node_by_index(linklist,flag);
	
	mvwprintw(win,position-1,0,"%d",flag);
	mvwprintw(win,position-1,5,((product_info *)(p->node_data))->bar_code);
	mvwprintw(win,position-1,15,((product_info *)(p->node_data))->name);
	mvwprintw(win,position-1,29,((product_info *)(p->node_data))->spec);
	mvwprintw(win,position-1,36,((product_info *)(p->node_data))->unit);
	mvwprintw(win,position-1,43,"%.2f",((product_info *)(p->node_data))->sale_price);
	mvwprintw(win,position-1,55,"%.2f",((product_info *)(p->node_data))->purchase_price);
	mvwprintw(win,position-1,64,"%d",((product_info *)(p->node_data))->count);
	mvwprintw(win,position-1,71,"%.2f",((product_info *)(p->node_data))->discount);
	wrefresh(win);
	return 1;
}

int print_detail_record(WINDOW *win,LINKLIST *linklist,int flag)
{
	int position;
	position = flag%14;
	if(position == 0)
		position = 14;
	
	NODE *p;
	p = get_node_by_index(linklist,flag);
	
	mvwprintw(win,position-1,0,"%d",flag);
	mvwprintw(win,position-1,5,((sale_record *)(p->node_data))->sale_id);
	mvwprintw(win,position-1,29,((sale_record *)(p->node_data))->trans_id);
	mvwprintw(win,position-1,40,((sale_record *)(p->node_data))->staff_id);
	mvwprintw(win,position-1,52,((sale_record *)(p->node_data))->date);
	mvwprintw(win,position-1,68,"%.2f",((sale_record *)(p->node_data))->sale_money);
	wrefresh(win);
	return 1;
}


int print_choice(WINDOW *win,int flag,int style)
{
	if(style == 0)
		wattroff(win,A_REVERSE);
	else
		wattron(win,A_REVERSE);
	
	if(flag == 1)
	{
		mvwhline(win,5,34,' ',10);
		mvwprintw(win,5,34,"1. 商品管理");
	}
	else if(flag == 2)
	{
		mvwhline(win,7,34,' ',10);
		mvwprintw(win,7,34,"2. 帐户管理");
	}
	
	else if(flag == 3)
	{
		mvwhline(win,9,34,' ',10);
		mvwprintw(win,9,34,"3. 销售记录管理");
	}
	else
	{
		mvwhline(win,11,34,' ',10);
		mvwprintw(win,11,34,"0. 返回登入界面");
	}

	wrefresh(win);

	return 0;
}

int print_product_choice(WINDOW *win,int flag,int style)
{
	if(style == 0)
		wattroff(win,A_REVERSE);
	else
		wattron(win,A_REVERSE);
	
	if(flag == 1)
	{
		mvwhline(win,5,34,' ',10);
		mvwprintw(win,5,34,"1. 查询商品");
	}
	else if(flag == 2)
	{
		mvwhline(win,7,34,' ',10);
		mvwprintw(win,7,34,"2. 添加商品");
	}
	
	else if(flag == 3)
	{
		mvwhline(win,9,34,' ',10);
		mvwprintw(win,9,34,"3. 修改商品");
	}
	else if(flag == 4)
	{
		mvwhline(win,11,34,' ',10);
		mvwprintw(win,11,34,"4. 删除商品");
	}
	else
	{
		mvwhline(win,13,34,' ',10);
		mvwprintw(win,13,34,"0. 返回后台管理界面");
	}

	wrefresh(win);

	return 0;
}

int print_user_choice(WINDOW *win,int flag,int style)
{
	if(style == 0)
		wattroff(win,A_REVERSE);
	else
		wattron(win,A_REVERSE);
	
	if(flag == 1)
	{
		mvwhline(win,5,34,' ',10);
		mvwprintw(win,5,34,"1. 查询用户");
	}
	else if(flag == 2)
	{
		mvwhline(win,7,34,' ',10);
		mvwprintw(win,7,34,"2. 添加用户");
	}
	
	else if(flag == 3)
	{
		mvwhline(win,9,34,' ',10);
		mvwprintw(win,9,34,"3. 修改用户");
	}
	else if(flag == 4)
	{
		mvwhline(win,11,34,' ',10);
		mvwprintw(win,11,34,"4. 删除用户");
	}
	else
	{
		mvwhline(win,13,34,' ',10);
		mvwprintw(win,13,34,"0. 返回后台管理界面");
	}

	wrefresh(win);

	return 0;
}

int print_detail_choice(WINDOW *win,int flag,int style)
{
	if(style == 0)
		wattroff(win,A_REVERSE);
	else
		wattron(win,A_REVERSE);
	
	if(flag == 1)
	{
		mvwhline(win,5,34,' ',10);
		mvwprintw(win,5,34,"1. 按消费日期查询");
	}
	else if(flag == 2)
	{
		mvwhline(win,7,34,' ',10);
		mvwprintw(win,7,34,"2. 按员工ID查询");
	}
	else
	{
		mvwhline(win,9,34,' ',10);
		mvwprintw(win,9,34,"0. 返回后台管理界面");
	}

	wrefresh(win);

	return 0;
}

int add_product()
{
	int ch = 0,flag = 1,result = 0;
	int *p = &flag;
	char s_p[8] = {0},p_p[8] = {0},d_c[5] = {0},c[8] = {0};
	WINDOW *code = NULL,*name = NULL,*unit = NULL,*spec = NULL,*sale_price = NULL;
	WINDOW *purchase_price = NULL,*discount = NULL,*count = NULL;
	product_info *temp;
	temp = (product_info *)malloc(sizeof(product_info));
	memset(temp,0,sizeof(product_info));
	show_product_info(temp,1);

	code = create_no_border_color_window(1,50,4,28,1);
	wrefresh(code);
	name = create_no_border_color_window(1,50,6,28,1);
	wrefresh(name);
	unit = create_no_border_color_window(1,50,8,28,1);
	wrefresh(unit);
	spec = create_no_border_color_window(1,50,10,28,1);
	wrefresh(spec);
	sale_price = create_no_border_color_window(1,50,12,28,1);
	wrefresh(sale_price);
	purchase_price = create_no_border_color_window(1,50,14,28,1);
	wrefresh(purchase_price);
	discount = create_no_border_color_window(1,50,16,28,1);
	wrefresh(discount);
	count = create_no_border_color_window(1,50,18,28,1);
	wrefresh(count);
	yes_or_no(20,21,0,30);
	keypad(code,true);
	keypad(name,true);
	keypad(unit,true);
	keypad(spec,true);
	keypad(sale_price,true);
	keypad(count,true);
	keypad(discount,true);
	keypad(purchase_price,true);
	while(1)
	{
		switch(flag)
		{
			case 1:
				edit_control(code,temp->bar_code,p,1,8);
				break;
			case 2:
				edit_control(name,temp->name,p,5,30);
				break;
			case 3:
				edit_control(unit,temp->unit,p,5,16);
				break;
			case 4:
				edit_control(spec,temp->spec,p,5,16);
				break;
			case 5:
				edit_control(sale_price,s_p,p,4,8);
				break;
			case 6:
				edit_control(purchase_price,p_p,p,4,8);
				break;
			case 7:
				edit_control(discount,d_c,p,4,4);
				break;
			case 8:
				edit_control(count,c,p,2,8);
				break;
			default:
				result = yes_or_no(20,21,1,30);
				if (result == -1)
					*p = 1;
				else if(result == 1)
				{
					if (strlen(temp->bar_code)&&strlen(temp->name)&&strlen(temp->unit)&&strlen(temp->spec)&&strlen(s_p)&&strlen(p_p)&&strlen(d_c)&&strlen(c))
					{
						if(is_product_code(temp->bar_code))
						{
							message("此商品号已存在!",10,30);
							*p = 1;
							break;
						}
						else
						{
							temp->sale_price = atof(s_p);
							temp->purchase_price = atof(p_p);
							temp->discount = atof(d_c);
							temp->count = atoi(c);
							 insert_new_product(temp);
							 delwin(code);
							delwin(name);
							delwin(unit);
							delwin(spec);
							delwin(sale_price);
							delwin(purchase_price);
							delwin(discount);
							delwin(count);
							free(temp);
							return 1;
						}
					}
					else
					{
							message("信息不完整!!",10,30);
							*p = 1;
							break;
					}
				}
				else
				{
					delwin(code);
					delwin(name);
					delwin(unit);
					delwin(spec);
					delwin(sale_price);
					delwin(purchase_price);
					delwin(discount);
					delwin(count);
					free(temp);
					return 0;
				}
				break;
		}
	}
	return 1;

}

int alter_product()
{
	int result = 0;
	char bar_code[9] = {0};
	product_info *temp;
	temp = (product_info *)malloc(sizeof(product_info));
	memset(temp,0,sizeof(product_info));
	result = get_product_code(bar_code,temp,1);
	if (result == 0)
	{
		free(temp);
		return 0;
	}
	show_product_info(temp,2);
	
	int ch = 0,flag = 1;
	int *p = &flag;
	char s_p[8] = {0},p_p[8] = {0},d_c[5] = {0},c[8] = {0};
	sprintf(s_p,"%.2f",temp->sale_price);
	sprintf(p_p,"%.2f",temp->purchase_price);
	sprintf(d_c,"%.2f",temp->discount);
	sprintf(c,"%d",temp->count);
	WINDOW *name = NULL,*unit = NULL,*spec = NULL,*sale_price = NULL;
	WINDOW *purchase_price = NULL,*discount = NULL,*count = NULL;
	name = create_no_border_color_window(1,50,6,28,1);
	mvwprintw(name,0,0,temp->name);
	wrefresh(name);
	unit = create_no_border_color_window(1,50,8,28,1);
	mvwprintw(unit,0,0,temp->unit);
	wrefresh(unit);
	spec = create_no_border_color_window(1,50,10,28,1);
	mvwprintw(spec,0,0,temp->spec);
	wrefresh(spec);
	sale_price = create_no_border_color_window(1,50,12,28,1);
	mvwprintw(sale_price,0,0,s_p);
	wrefresh(sale_price);
	purchase_price = create_no_border_color_window(1,50,14,28,1);
	mvwprintw(purchase_price,0,0,p_p);
	wrefresh(purchase_price);
	discount = create_no_border_color_window(1,50,16,28,1);
	mvwprintw(discount,0,0,d_c);
	wrefresh(discount);
	count = create_no_border_color_window(1,50,18,28,1);
	mvwprintw(count,0,0,c);
	wrefresh(count);
	yes_or_no(20,21,0,30);
	keypad(name,true);
	keypad(unit,true);
	keypad(spec,true);
	keypad(sale_price,true);
	keypad(count,true);
	keypad(discount,true);
	keypad(purchase_price,true);
	while(1)
	{
		switch(flag)
		{
			case 1:
				edit_control(name,temp->name,p,5,30);
				break;
			case 2:
				edit_control(unit,temp->unit,p,5,16);
				break;
			case 3:
				edit_control(spec,temp->spec,p,5,16);
				break;
			case 4:
				edit_control(sale_price,s_p,p,4,8);
				break;
			case 5:
				edit_control(purchase_price,p_p,p,4,8);
				break;
			case 6:
				edit_control(discount,d_c,p,4,4);
				break;
			case 7:
				edit_control(count,c,p,2,8);
				break;
			default:
				result = yes_or_no(20,21,1,30);
				if (result == -1)
					*p = 1;
				else if(result == 1)
				{
					if (strlen(temp->name)&&strlen(temp->unit)&&strlen(temp->spec)&&strlen(s_p)&&strlen(p_p)&&strlen(d_c)&&strlen(c))
					{
							temp->sale_price = atof(s_p);
							temp->purchase_price = atof(p_p);
							temp->discount = atof(d_c);
							temp->count = atoi(c);
							update_product_info(temp);
							delwin(name);
							delwin(unit);
							delwin(spec);
							delwin(sale_price);
							delwin(purchase_price);
							delwin(discount);
							delwin(count);
							free(temp);
							return 1;
					}
					else
					{
							message("信息不完整!!",10,30);
							*p = 1;
							break;
					}
				}
				else
				{
					delwin(name);
					delwin(unit);
					delwin(spec);
					delwin(sale_price);
					delwin(purchase_price);
					delwin(discount);
					delwin(count);
					free(temp);
					return 0;
				}
				break;
		}
	}
	return 1;

}

int delete_product()
{
	int result = 0;
	char bar_code[9] = {0};
	product_info *temp;
	temp = (product_info *)malloc(sizeof(product_info));
	memset(temp,0,sizeof(product_info));
	result = get_product_code(bar_code,temp,0);
	if (result == 0)
	{
		free(temp);
		return 0;
	}
	show_product_info(temp,3);
	result = yes_or_no(20,21,1,30);
	if (result == 1)
		del_product(bar_code);
	free(temp);
	return 1;
}

int show_product_info(product_info *temp,int stytle)
{
	WINDOW *info = NULL;
	
	info = create_default_color_window(25,80,0,0,6);
	mvwprintw(info,0,33,"欢迎光临xxx超市");
	if (stytle == 1)
		mvwprintw(info,2,37,"添加商品");
	else if (stytle == 2)
		mvwprintw(info,2,37,"修改商品");
	else
		mvwprintw(info,2,37,"删除商品");
	
	mvwprintw(info,4,20,"条形码:");
	mvwprintw(info,6,22,"名称:");
	mvwprintw(info,8,22,"单位:");
	mvwprintw(info,10,22,"规格:");
	mvwprintw(info,12,22,"售价:");
	mvwprintw(info,14,18,"进货价格:");
	mvwprintw(info,16,22,"折扣:");
	mvwprintw(info,18,22,"数量:");
	wattron(info,A_REVERSE);
	mvwhline(info,4,28,' ',50);
	mvwhline(info,6,28,' ',50);
	mvwhline(info,8,28,' ',50);
	mvwhline(info,10,28,' ',50);
	mvwhline(info,12,28,' ',50);
	mvwhline(info,14,28,' ',50);
	mvwhline(info,16,28,' ',50);
	mvwhline(info,18,28,' ',50);
	mvwprintw(info,4,28,temp->bar_code);
	mvwprintw(info,6,28,temp->name);
	mvwprintw(info,8,28,temp->unit);
	mvwprintw(info,10,28,temp->spec);
	mvwprintw(info,12,28,"%.2f",temp->sale_price);
	mvwprintw(info,14,28,"%.2f",temp->purchase_price);
	mvwprintw(info,16,28,"%.2f",temp->discount);
	mvwprintw(info,18,28,"%d",temp->count);
	wrefresh(info);
	delwin(info);	
}

int add_user()
{
	char temp_type[2] = {0};
	WINDOW *id = NULL,*name = NULL,*pwd = NULL,*type = NULL,*remark = NULL;
	int ch = 0,flag = 1;
	int *p = &flag;
	int result = 0;
	staff_info *temp;
	temp = (staff_info *)malloc(sizeof(staff_info));
	memset(temp,0,sizeof(staff_info));
	show_user_info(temp,1);
	
	id = create_no_border_color_window(1,50,4,28,1);
	wrefresh(id);
	name = create_no_border_color_window(1,50,6,28,1);
	wrefresh(name);
	pwd = create_no_border_color_window(1,50,8,28,1);
	wrefresh(pwd);
	type = create_no_border_color_window(1,50,10,28,1);
	wrefresh(type);
	remark = create_no_border_color_window(1,50,12,28,1);
	wrefresh(remark);
	yes_or_no(20,21,0,30);
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -