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

📄 pospublic.c

📁 一个不错的POS系统
💻 C
字号:
#include "posPublic.h"
#include "pub.h"
#include <string.h>
#include <stdlib.h>
int DrawLine(WINDOW * win,int x)
{
	int i=0;
	
	mvwaddch(win,x,0,ACS_LTEE);
	
	for(i=1;i<COLS-1;i++)
	{
		mvwaddch(win,x,i,ACS_HLINE);
	}
	mvwaddch(win,x,COLS-1,ACS_RTEE);
	return 0;
}
int MessageBox(char * msg,int flag)
{
	WINDOW * winmsg;
	scr_dump("scr_save.scr");
	init_pair(6,COLOR_BLACK,COLOR_MAGENTA);	
	winmsg=newwin(8,40,8,20);
	box(winmsg,0,0);
	

	if(has_colors())
	{
		wbkgd(winmsg,COLOR_PAIR(6));

	}
	mvwprintw(winmsg,0,15,"tip");
	mvwprintw(winmsg,2,5,"%s",msg);
	wrefresh(winmsg);
	getch();
	wclear(winmsg);	
	delwin(winmsg);
	scr_restore("scr_save.scr");
	refresh();	
	return 0;
}
int MessageBox2(char * msg)
{
	WINDOW * winmsg,*winsure,*wincancle;
	int n,flag=0,num=2,ch;
	scr_dump("scr_save.scr3");
	init_pair(11,COLOR_BLACK,COLOR_MAGENTA);
	init_pair(12,COLOR_BLACK,COLOR_WHITE);
	winmsg=newwin(8,40,8,20);
	box(winmsg,0,0);

	if(has_colors())
	{
		wbkgd(winmsg,COLOR_PAIR(11));
	}
	mvwprintw(winmsg,0,15,"tip");
	mvwprintw(winmsg,2,5,"%s",msg);
	wrefresh(winmsg);
	
	wincancle=newwin(1,6,12,48);
	wbkgd(wincancle,COLOR_PAIR(12));
	mvwprintw(wincancle,0,1,"退出");
	wrefresh(wincancle);

	winsure=newwin(1,6,12,25);
	wbkgd(winsure,COLOR_PAIR(12));
	wattron(winsure,A_REVERSE);	
	mvwprintw(winsure,0,1,"确定");
	wattroff(winsure,A_REVERSE);
	wrefresh(winsure);
	
	while(1)
	{
		ch=getch();
		if(ch==KEY_LEFT||ch==KEY_RIGHT)
			flag=buttonCtl(winsure,wincancle,num,ch,flag);
		switch(flag)
		{
			case 0:	
			wattron(winsure,A_REVERSE);
			mvwprintw(winsure,0,0," 确定 ");
			wattroff(winsure,A_REVERSE);
			wrefresh(winsure);
			break;
		case 1:
			touchwin(wincancle);
			wattron(wincancle,A_REVERSE);
			mvwprintw(wincancle,0,0," 退出 ");
			wattroff(wincancle,A_REVERSE);
			wrefresh(wincancle);
			break;
		}
		if(ch==KEY_ENTER||ch==10)
		{
			if(0==flag)
			{
				flag=10;
				break;
			}
			if(1==flag)
			{
				flag=20;
				break;
			}
		}
	}


	wclear(winmsg);
	wrefresh(winmsg);
	delwin(winmsg);
	scr_restore("scr_save.scr3");
	refresh();		
	if(10==flag)
		return 0;
	if(20==flag)
		return 1;
}

int MessageBox3(char * msg,char * buf,int key)
{
/*	WINDOW * winmsg,*winsure,*wincancle,*winbuf;
	int n,flag=0,num=3,ch;
	scr_dump("scr_save.scr11");
	init_pair(35,COLOR_BLACK,COLOR_MAGENTA);
	init_pair(36,COLOR_BLACK,COLOR_WHITE);
	winmsg=newwin(8,40,8,20);
	box(winmsg,0,0);

	if(has_colors())
	{
		wbkgd(winmsg,COLOR_PAIR(35));
	}
	mvwprintw(winmsg,0,15,"tip");
	mvwprintw(winmsg,2,5,"%s",msg);
	wrefresh(winmsg);
	
	wincancle=newwin(1,6,12,48);
	wbkgd(wincancle,COLOR_PAIR(36));
	mvwprintw(wincancle,0,1,"退出");
	wrefresh(wincancle);

	winbuf=newwin(1,6,10,25);
	wbkgd(winbuf,COLOR_PAIR(36));	
	wrefresh(winbuf);

	winsure=newwin(1,6,12,25);
	wbkgd(winsure,COLOR_PAIR(36));
	wattron(winsure,A_REVERSE);	
	mvwprintw(winsure,0,1,"确定");
	wattroff(winsure,A_REVERSE);
	wrefresh(winsure);
	
	while(1)
	{
		ch=getch();
		if(ch==KEY_LEFT||ch==KEY_RIGHT)
			flag=buttonCtl(winsure,wincancle,num,ch,flag);
		switch(flag)
		{
		case 0:			
			touchwin(winbuf);	
			wrefresh(winbuf);
			break;
		case 1:	
			wattron(winsure,A_REVERSE);
			mvwprintw(winsure,0,0," 确定 ");
			wattroff(winsure,A_REVERSE);
			wrefresh(winsure);
			break;
		case 2:
			touchwin(wincancle);
			wattron(wincancle,A_REVERSE);
			mvwprintw(wincancle,0,0," 退出 ");
			wattroff(wincancle,A_REVERSE);
			wrefresh(wincancle);
			break;
		}
		if(ch==KEY_ENTER||ch==10)
		{
			if(0==flag)
			{
				flag=10;
				break;
			}
			if(1==flag)
			{
				flag=20;
				break;
			}
		}
		if()
	}


	wclear(winmsg);
	wrefresh(winmsg);
	delwin(winmsg);
	scr_restore("scr_save.scr11");
	refresh();		
	if(10==flag)
		return 0;
	if(20==flag)
		return 1;*/
}


int Trim(char * str)
{
	int len;
    char *p,*q;
    len = strlen(str);
    p= str+len-1;
    while(isspace(*p)) *p--='\0';
	q=str;
	while(isspace(*q)) *q++='\0';
	if(p==q)
		return 1;
	return 0;
}
int get_str(WINDOW *textbox, char inputed_str[], int style, int num_limit, int input_limit)
{
	int ch;
	int i=0;
	memset(inputed_str,0,sizeof(inputed_str));
	touchwin(textbox);
	wrefresh(textbox);
	/*clearWin(textbox ,0,0,3);*/
	keypad(textbox,TRUE);
	noecho();
	while(1)
	{
		ch=getch();
		if(KEY_BACKSPACE==ch)
		{
			if(i>0)
			{
				inputed_str[i--]='\0';				
				wprintw(textbox,"\b \b");
				wrefresh(textbox);
			}
		}	
		else if(KEY_ENTER==ch||10==ch)
			break;
		else if(KEY_F(2)==ch)
			return -2;
		else if(KEY_F(3)==ch)
			return -3;
		else if(KEY_F(4)==ch)
			return -4;
		else if(KEY_F(5)==ch)
			return -5;
		else if(KEY_F(6)==ch)
			return -6;
		else if(KEY_F(7)==ch)
			return -7;
		else if(KEY_F(8)==ch)
			return -8;
		else if(KEY_F(9)==ch)
			return -9;
		else if(KEY_UP==ch)
			return -10;
		else if (KEY_DOWN==ch)
			return -11;
		else if(KEY_LEFT==ch)
			return -12;
		else if(KEY_RIGHT==ch)
			return -13;
		else if(ch=='\t')
			return -14;
						
		else
		{
			if(i<num_limit)
			{
				
				if(isdigit(ch))
				{					
					wprintw(textbox,"%c",ch);
					inputed_str[i++]=ch;							
					wrefresh(textbox);
				}
						
			}
		}
	}

	return i;
}
int IsBarCode(char * barcode)
{

	return 0;
}
int clearWin(WINDOW * win ,int lineBegin,int lineEnd,int colBegin)
{
	int i=0;
	for(i=lineBegin;i<=lineEnd;i++)
	{
		mvwprintw(win,i,colBegin,"%-77c",' ');
	}
	/*wmove(win,lineBegin,);*/
	wrefresh(win);
	return 0;
}
int buttonCtl(WINDOW * winsure,WINDOW * wincancle,int num,int ch,int flag)
{
		int x=(num==2)?1:num-3;
		if(ch==KEY_DOWN||ch=='\t')
		{			
			
			flag=++flag%num;
			if(flag==0)
			{				
				mvwprintw(wincancle,0,0," 退出 ");
				wrefresh(wincancle);
			}
			if(flag==num-1)
			{				
				mvwprintw(winsure,0,0," 确定 ");
				wrefresh(winsure);	
			}
			return flag;
		}
		if(ch==KEY_UP)
		{			
			if(flag==0)
			{
				flag=num-1;
			}
			else
				flag=--flag%num;
			if(flag==num-2)
			{
				mvwprintw(wincancle,0,0," 退出 ");
				wrefresh(wincancle);
			}
			if(flag==x)
			{
				mvwprintw(winsure,0,0," 确定 ");
				wrefresh(winsure);	
			}
			return flag;
		}
		if(ch==KEY_LEFT)
		{	
			if(flag==num-1)
			{
				flag=abs(--flag)%num;
				mvwprintw(wincancle,0,0," 退出 ");
				wrefresh(wincancle);
				
			}
			return flag;
		}
		if(ch==KEY_RIGHT)
		{			
			if(flag==num-2)
			{
				flag=++flag%num;
				mvwprintw(winsure,0,0," 确定 ");
				wrefresh(winsure);	
				
			}
			return flag;
		}
}
int IsRightMoney(char * str)
{
	int len=strlen(str);
	int i=0,pointNum=0;
	if(str[len-1]=='.')
		return 1;
	for(i=0;i<len;i++)
	{
		if(str[i]=='.')
			pointNum++;
		else
		{
			if(!isdigit(str[i]))
				return 3;
		}
	}
	if(pointNum>1)
		return 2;
	return 0;
}
int IsRightBarcode(char * barcode)
{
	int i=0,len=strlen(barcode);
	if(len<=2)
		return 1;
	if(barcode[0]!='C'||barcode[1]!='N')
		return 1;
	for(i=2;i<len;i++)
	{
		if(!isdigit(barcode[i]))
			return 2;
	}
	return 0;
}
int IsRightDiscount(char * discount)
{
	int n=IsRightMoney(discount);
	if(n==0)
	{
		if(atof(discount)<0||atof(discount)>1)
			return 3;
	}
	else
		return n;
	return 0;

}
int IsRightNum(char * num)
{
	int i=0,len=strlen(num),flag=0;
	for(i=0;i<len;i++)
	{
		if(!isdigit(num[i]))
		{
			flag=1;
			return 1;
		}
	}
	if(0==flag&&atoi(num)<=0)
		return 2;		
	return 0;
}
int IsRightDate(char * date)
{
	int len=strlen(date);
	char mon[5],day[5];
	memset(mon,0,sizeof(mon));
	memset(day,0,sizeof(day));
	mon[0]=date[4];
	mon[1]=date[5];
	day[0]=date[6];
	day[1]=date[7];
	if(len<8)
		return 1;
	if(strcmp(date,"19000101")<0||strcmp(date,"20501231")>0)
	{
		return 2;
	}	
	if(atoi(mon)>12||atoi(mon)==0)
		return 3;
	if(atoi(day)>31||atoi(day)==0)
		return 3;
	return 0;
}

⌨️ 快捷键说明

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