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

📄 manager.c

📁 LINUX下POS收银系统,可以对货物及工作人员进行管理.近本实现增删改查的功能
💻 C
📖 第 1 页 / 共 5 页
字号:
		{
			if(d>29||d<1)
				return 21;
		}
		else
		{
			if(d>28||d<1)
				return 22;
		}
		break;
	case 3:
		if(d>31||d<1)
			return 3;
		break;
	case 4:
		if(d>30||d<1)
			return 4;
		break;
	case 5:
		if(d>31||d<1)
			return 5;
		break;
	case 6:
		if(d>30||d<1)
			return 6;
		break;
	case 7:
		if(d>31||d<1)
			return 7;
		break;
	case 8:
		if(d>31||d<1)
			return 8;
		break;
	case 9:
		if(d>30||d<1)
			return 9;
		break;
	case 10:
		if(d>31||d<1)
			return 10;
		break;
	case 11:
		if(d>30||d<1)
			return 11;
		break;
	case 12:
		if(d>31||d<1)
			return 12;
		break;
	}
	return 13;
}
void clue_on_input(int is_true)
{
	switch (is_true)
	{
	case 1:
		messagebox(stdscr,7,19,44,12,PAUSE,"1月份是从1号开始31号结束的,小弟");
		break;
	case 21:
		messagebox(stdscr,7,19,44,12,PAUSE,"闰年的2月份是从1号开始29号结束的,小弟");
		break;
	case 22:
		messagebox(stdscr,7,19,44,12,PAUSE,"平年的2月份是从1号开始28号结束的,小弟");
		break;
	case 3:
		messagebox(stdscr,7,19,44,12,PAUSE,"3月份是从1号开始31号结束的,小弟");
		break;
	case 4:
		messagebox(stdscr,7,19,44,12,PAUSE,"4月份是从1号开始30号结束的,小弟");
		break;
	case 5:
		messagebox(stdscr,7,19,44,12,PAUSE,"5月份是从1号开始31号结束的,小弟");
		break;
	case 6:
		messagebox(stdscr,7,19,44,12,PAUSE,"6月份是从1号开始30结束的,小弟");
		break;
	case 7:
		messagebox(stdscr,7,19,44,12,PAUSE,"7月份是从1号开始31号结束的,小弟");
		break;
	case 8:
		messagebox(stdscr,7,19,44,12,PAUSE,"8月份是从1号开始31号结束的,小弟");
		break;
	case 9:
		messagebox(stdscr,7,19,44,12,PAUSE,"9月份是从1号开始30号结束的,小弟");
		break;
	case 10:
		messagebox(stdscr,7,19,44,12,PAUSE,"10月份是从1号开始31号结束的,小弟");
		break;
	case 11:
		messagebox(stdscr,7,19,44,12,PAUSE,"11月份是从1号开始30号结束的,小弟");
		break;
	case 12:
		messagebox(stdscr,7,19,44,12,PAUSE,"12月份是从1号开始31号结束的,小弟");
		break;
	default:
		break;
	}
}
int action_demand_note_by_time(DIALOG *d)
{
	int result=0,sign=1;
	int y=0,m=0,is_true=0;
	NODE *temp=NULL;
	do
	{
		switch (sign)
		{
		case 1:
			sign=(*((d->i)))->input_char(*((d->i)),1,0,1);//输入个数
			if(sign==27)
			{
				sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
				if(sign)
				{
					sign=0;
					break;
				}
				else
				{
					sign=1;
				}
			}
			/*数目有没有超过*/
			del_blank((*(d->i))->str);
			if(isdigital((*(d->i))->str)&&strlen((*(d->i))->str)!=0)//输入的数目不否合法
			{
				y=atoi((*(d->i))->str);
				if(y<0)
				{
					sign=1;
					messagebox(stdscr,7,19,44,12,PAUSE,"公元前有超市吗?");
					(*(d->i))->del_str(*(d->i));
				}
			}
			else
			{
				sign=1;
				messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入年份");
				(*(d->i))->del_str(*(d->i));
				/*提示有非数字字符*/
			}
			break;
		case 2:
			sign=(*((d->i+1)))->input_char(*((d->i+1)),1,0,1);//输入个数
			if(sign==27)
			{
				sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
				if(sign)
				{
					sign=0;
					break;
				}
				else
				{
					sign=2;
				}
			}
			/*数目有没有超过*/
			del_blank((*(d->i+1))->str);
			if(isdigital((*(d->i+1))->str)&&strlen((*(d->i+1))->str)!=0)//输入的数目不否合法
			{
				m=atoi((*(d->i+1))->str);
				if(m<1||m>12)
				{
					sign=2;
					messagebox(stdscr,7,19,44,12,PAUSE,"老大,一年只有1到12个月份");
					(*(d->i+1))->del_str(*(d->i+1));
				}
			}
			else
			{
				sign=2;
				messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入月份");
				(*(d->i+1))->del_str(*(d->i+1));
				/*提示有非数字字符*/
			}
			break;
		case 3:
			sign=(*((d->i+2)))->input_char(*((d->i+2)),1,0,1);//输入个数
			if(sign==27)
			{
				sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
				if(sign)
				{
					sign=0;
					break;
				}
				else
				{
					sign=3;
				}
			}
			/*数目有没有超过*/
			del_blank((*(d->i+2))->str);
			if(isdigital((*(d->i+2))->str)&&strlen((*(d->i+2))->str)!=0)//输入的数目不否合法
			{
				is_true=if_right_date((*(d->i))->str,(*(d->i+1))->str,(*(d->i+2))->str);
				if(is_true != 13)
				{
					sign=3;
					clue_on_input(is_true);
					(*(d->i+2))->del_str(*(d->i+2));
				}
			}
			else
			{
				sign=3;
				messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入日期");
				(*(d->i+2))->del_str(*(d->i+2));
				/*提示有非数字字符*/
			}
			break;
		case 4:
			sign=(*((d->i+3)))->input_char(*((d->i+3)),1,0,1);//输入个数
			if(sign==27)
			{
				sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
				if(sign)
				{
					sign=0;
					break;
				}
				else
				{
					sign=4;
				}
			}
			/*数目有没有超过*/
			del_blank((*(d->i+3))->str);
			if(isdigital((*(d->i+3))->str)&&strlen((*(d->i+3))->str)!=0)//输入的数目不否合法
			{
				if(strcmp((*(d->i+3))->str,(*(d->i))->str)<0)
				{
					sign=4;
					messagebox(stdscr,7,19,44,12,PAUSE,"结束的年份应该大等于开始年份");
					(*(d->i+3))->del_str(*(d->i+3));
				}
			}
			else
			{
				sign=4;
				messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入年份");
				(*(d->i+3))->del_str(*(d->i+3));
				/*提示有非数字字符*/
			}
			break;
		case 5:
			sign=(*((d->i+4)))->input_char(*((d->i+4)),1,0,1);//输入个数
			if(sign==27)
			{
				sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
				if(sign)
				{
					sign=0;
					break;
				}
				else
				{
					sign=5;
				}
			}
			/*数目有没有超过*/
			del_blank((*(d->i+4))->str);
			if(isdigital((*(d->i+4))->str)&&strlen((*(d->i+4))->str)!=0)//输入的数目不否合法
			{
				m=atoi((*(d->i+4))->str);
				if(m<1||m>12)
				{
					sign=5;
					messagebox(stdscr,7,19,44,12,PAUSE,"老大,一年只有1到12个月份");
					(*(d->i+4))->del_str(*(d->i+4));
				}
				else
				{
					if(atoi((*(d->i+3))->str) ==  atoi((*(d->i))->str)&&atoi((*(d->i+4))->str)<atoi((*(d->i+1))->str))
					{
						sign=5;
						messagebox(stdscr,7,19,44,12,PAUSE,"同一年份年份时结束的月份应该大等于开始的月份");
						(*(d->i+4))->del_str(*(d->i+4));
					}
				}

			}
			else
			{
				sign=5;
				messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入月份");
				(*(d->i+4))->del_str(*(d->i+4));
				/*提示有非数字字符*/
			}
			break;
		case 6:
			sign=(*((d->i+5)))->input_char(*((d->i+5)),1,0,1);//输入个数
			if(sign==27)
			{
				sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
				if(sign)
				{
					sign=0;
					break;
				}
				else
				{
					sign=6;
				}
			}
			/*数目有没有超过*/
			del_blank((*(d->i+5))->str);
			if(isdigital((*(d->i+5))->str)&&strlen((*(d->i+5))->str)!=0)//输入的数目不否合法
			{
				if(is_true != 13)
				{
					sign=6;
					clue_on_input(is_true);
					(*(d->i+5))->del_str(*(d->i+5));
				}
				else
				{
					if(atoi((*(d->i+3))->str) ==  atoi((*(d->i))->str)&&atoi((*(d->i+4))->str) == atoi((*(d->i+1))->str)&&atoi((*(d->i+5))->str) < atoi((*(d->i+2))->str))
					{
						sign=6;
						messagebox(stdscr,7,19,44,12,PAUSE,"同一年年份月份时结束的日期应该大等于开始的日期");
						(*(d->i+5))->del_str(*(d->i+5));
					}
				}
			}
			else
			{
				sign=6;
				messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入日期");
				(*(d->i+5))->del_str(*(d->i+5));
				/*提示有非数字字符*/
			}
			break;
		case 7:
			(*(d->b))->pitch_on(*(d->b));
			sign=(*(d->b))->attack(*(d->b),1,3,3);
			if(sign == 0)
			{
				result=1;
			}
			break;
		case 8:
			(*((d->b)+1))->pitch_on(*((d->b)+1));
			sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
			if(sign == 0)
			{
				result=0;
			}
			break;
		}
	}
	while (sign);
	return result;
}

void demand_note_by_time()
{
	wbkgd(stdscr,COLOR_PAIR(2));
	refresh();
	FRAME *f[7];
	BUTTON *b[2];
	INPUT *i[6];
	int result=0,sign=1,exist=0;
	char *str[6]={"销售时间","开始时间:","结束时间:","年","月","日"};
	char *str1[9]={"销售单号","雇员ID","单号","销售时间","付款金额","应付款","实付款","找零","销售状态"};
	char date_s[9],date_e[9];
	int y=0,m=0,day=0;

	LINK *note=NULL;
	note=new_link();

	memset(date_s,0,9);
	memset(date_e,0,9);
	f[0]=creat_frame(1,19,16,40,3);

	f[1]=creat_frame(5,31,1,4,1);
	f[2]=creat_frame(5,37,1,2,1);
	f[3]=creat_frame(5,41,1,2,1);

	f[4]=creat_frame(9,31,1,4,1);
	f[5]=creat_frame(9,37,1,2,1);
	f[6]=creat_frame(9,41,1,2,1);

	b[0]=createButton(11,26,3,8,"确定");
	b[1]=createButton(11,44,3,8,"取消");

	i[0]=create_input(f[1],4,0,2,8);
	i[1]=create_input(f[2],2,1,3,8);
	i[2]=create_input(f[3],2,2,4,8);
	i[3]=create_input(f[4],4,3,5,8);
	i[4]=create_input(f[5],2,4,6,8);
	i[5]=create_input(f[6],2,5,7,8);


	FRAME *frame[2];

	INPUT *input[1];
	int color[2]={3,2};
	frame[0]=creat_frame(20,0,10,80,3);
	frame[1]=creat_frame(20,0,1,80,2);

	input[0]=create_input(frame[1],0,2,1,0);

	ROLL_BAR *r=create_roll_bar(&note,frame,input,20,0,5,80,color);


	DIALOG *d=create_dialog(f,i,b,str,NULL);
	do
	{
		show_demand_note_by_time(d);
		result=action_demand_note_by_time(d);

		if(result)
		{
			y=atoi(i[0]->str);
			m=atoi(i[1]->str);
			day=atoi(i[2]->str);
			sprintf(date_s,"%04d%02d%02d",y,m,day);
			y=atoi(i[3]->str);
			m=atoi(i[4]->str);
			day=atoi(i[5]->str);
			sprintf(date_e,"%04d%02d%02d",y,m,day);
			
			exist=select_note_by_date(date_s,date_e,note);
			if(exist)
			{

				mvprintw(18,0,"%-10s%-8s%-6s%-9s%-9s%-9s%-9s%-9s%-9s",str1[0],str1[1]
					,str1[2],str1[3],str1[4],str1[5],str1[6],str1[7],str1[8]);
				mvprintw(26,0,"按回车键退出");
				refresh();
				print_a_page(r);
				action_roll(r);
				erase();
				wbkgd(stdscr,COLOR_PAIR(2));
				refresh();
				sign=0;
			}
			else
			{
				messagebox(stdscr,7,19,44,12,PAUSE,"这段时间内没有交易记录");
				sign=0;
			}
		}
		else
		{
			sign=0;
		}
	}
	while (sign);

	free(d);

	f[0]->free(&f[0]);
	f[1]->free(&f[1]);
	f[2]->free(&f[2]);
	f[3]->free(&f[3]);
	f[4]->free(&f[4]);
	f[5]->free(&f[5]);
	f[6]->free(&f[6]);

	b[0]->free(&b[0]);
	b[1]->free(&b[1]);

	i[0]->free(&i[0]);
	i[1]->free(&i[1]);
	i[2]->free(&i[2]);
	i[3]->free(&i[3]);
	i[4]->free(&i[4]);
	i[5]->free(&i[5]);

	frame[0]->free(&frame[0]);
	frame[0]->free(&frame[1]);
	input[0]->free(&input[0]);
	note->del_all(&note);
	r->free(&r);

	scr_restore("scan15.dat");//屏幕恢复
}
////////////////////////////////////////////////////////按收银员号查询


void demand_note_by_employeeID()
{
	wbkgd(stdscr,COLOR_PAIR(2));
	refresh();
	FRAME *f[2];
	BUTTON *b[2];
	INPUT *i;
	EMP e;
	memset(&e,0,sizeof(EMP));
	int result=0;
	int exist=0;
	char *str[2]={"请输入用户ID","用户ID:"};
	char *str1[9]={"销售单号","雇员ID","单号","销售时间","付款金额","应付款","实付款","找零","销售状态"};
	f[0]=creat_frame(7,15,11,30,3);
	f[1]=creat_frame(10,24,1,18,1);
	b[0]=createButton(12,18,3,8,"确定");
	b[1]=createButton(12,33,3,8,"取消");
	i=create_input(f[1],6,0,2,2);
	DIALOG *d=create_dialog(f,&i,b,str,NULL);

	LINK *note=NULL;
	note=new_link();

	FRAME *frame[2];

	INPUT *input[1];
	int color[2]={3,2};
	frame[0]=creat_frame(20,0,10,80,3);
	frame[1]=creat_frame(20,0,1,80,2);

	input[0]=create_input(frame[1],0,2,1,0);

	ROLL_BAR *r=create_roll_bar(&note,frame,input,20,0,5,80,color);

	show_inut_user_ID(d);
	
	result=action_input_user_ID(d,&e,0);
	
	if(result)
	{
		exist=select_note_by_user_id(i->str,note);
		if(exist)
		{
			mvprintw(18,0,"%-10s%-8s%-6s%-9s%-9s%-9s%-9s%-9s%-9s",str1[0],str1[1]
				,str1[2],str1[3],str1[4],str1[5],str1[6],str1[7],str1[8]);
			mvprintw(26,0,"按回车键退出");
			refresh();
			print_a_page(r);
			action_roll(r);
			erase();
			wbkgd(stdscr,COLOR_PAIR(2));
			refresh();
		}
		else
		{
			messagebox(stdscr,7,19,44,12,PAUSE,"这段时间内没有交易记录");
		}
	}
	free(d);
	f[0]->free(&f[0]);
	f[1]->free(&f[1]);
	b[0]->free(&b[0]);
	b[1]->free(&b[1]);
	i->free(&i);

	frame[0]->free(&frame[0]);
	frame[0]->free(&frame[1]);
	input[0]->free(&input[0]);
	note->del_all(&note);
	r->free(&r);

	scr_restore("scan7.dat");//屏幕恢复
}
///////////////////////////////////////////////////////////
void show_dema

⌨️ 快捷键说明

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