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

📄 back.c

📁 linux平台下用C开发的一个超市管理系统(结合了ORACLE数据库)
💻 C
📖 第 1 页 / 共 2 页
字号:
				 strcpy(temp.remark,remark);
				 if(type==1)
				 {
					 Insert_Staff(&temp);
				 }
				 if(type==2)
				 {
					Delete_Staff(staff_id);
					Insert_Staff(&temp);
				 }
				 return;
			 }
		}
	}
	
}
/************************************************************************************
函数功能:操作商品    参数:模式  1 添加,2修改,3删除
返回值:无  
*************************************************************************************/
void operator_goods(int type)
{
	char code[7]="",bar_code[9]="",goods_name[31]="",unit[17]="",spec[17]="",sale_price[9]="",purchase_price[9]="",stock[9]="",discount[9]="";
	GOODS temp;
	int res,k=1;
	WIN mianwin[3]={{25,80,0,0,8,"添加商品",1},{25,80,0,0,8,"修改商品",1},{25,80,0,0,8,"删除商品",1}};
	TEXT text[8]={{3,32,25,1,""},{5,32,25,1,""},{7,32,25,1,""},{9,32,25,1,""},{11,32,25,1,""},{13,32,25,1,""},{15,32,25,1,""},{17,32,25,1,""}};
	BUTTON but1={8,3,20,25,"确定",8,4};
	BUTTON but2={8,3,20,48,"退出",8,4};
	WIN *w1;	
	if(type==1)
	{
		w1=make_win(&mianwin[0]);
		
	}
	if(type==2)
	{
		w1=make_win(&mianwin[1]);
	}
	if(type==3)
	{
		w1=make_win(&mianwin[2]);
	}
	TEXT *t0=make_textbox(&text[0]);
	TEXT *t1=make_textbox(&text[1]);
	TEXT *t2=make_textbox(&text[2]);
	TEXT *t3=make_textbox(&text[3]);
	TEXT *t4=make_textbox(&text[4]);
	TEXT *t5=make_textbox(&text[5]);
	TEXT *t6=make_textbox(&text[6]);
	TEXT *t7=make_textbox(&text[7]);
	BUTTON *b1=make_button(&but1);
	BUTTON *b2=make_button(&but2);
	if(type==2||type==3)
	{
		bar_code[0]='C';
		bar_code[1]='N';
		if(input_string(code,6,1)==0)
		{
			return;
		}
		strcat(bar_code,code);
		getgoods_by_barcode(&temp,bar_code);
		TrimSpace(temp.goods_name);
		TrimSpace(temp.unit);
		TrimSpace(temp.spec);
		strcpy(goods_name,temp.goods_name);
		strcpy(unit,temp.unit);
		strcpy(spec,temp.spec);
		sprintf(sale_price,"%.2f",temp.sale_price);
		sprintf(purchase_price,"%.2f",temp.purchase_price);
		sprintf(stock,"%d",temp.stock);
		sprintf(discount,"%.2f",temp.discount);
		wprintw(t0->win,"%s",bar_code);
		wprintw(t1->win,"%s",goods_name);
		wprintw(t2->win,"%s",unit);
		wprintw(t3->win,"%s",spec);
		wprintw(t4->win,"%s",sale_price);
		wprintw(t5->win,"%s",purchase_price);
		wprintw(t6->win,"%s",stock);
		wprintw(t7->win,"%s",discount);
	}
	mvwprintw(w1->win,3,24,"条形码:");
	mvwprintw(w1->win,5,26,"名称:");
	mvwprintw(w1->win,7,26,"单位:");
	mvwprintw(w1->win,9,26,"规格:");
	mvwprintw(w1->win,11,26,"售价:");
	mvwprintw(w1->win,13,22,"进货价格:");
	mvwprintw(w1->win,15,26,"数量:");
	mvwprintw(w1->win,17,26,"折扣:");	
	w1->show_win(w1);
	b1->show_button(b1);
	b2->show_button(b2);
	t0->show_text(t0);
	t1->show_text(t1);
	t2->show_text(t2);
	t3->show_text(t3);
	t4->show_text(t4);
	t5->show_text(t5);
	t6->show_text(t6);
	t7->show_text(t7);	
	if(type==3)
	{
		res=run_button(b1,b2,1);
		if(res==1)//确定
		{
			Delete_Goods(bar_code);
			return;
		}
		if(res==2)
		{
			return;
		}
	}
	if(type==2)
	{
		k=2;
	}
	while(1)
	{
		if(k==1)
		{					
					
			res=GetString(t0->win,bar_code,8,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==14)
			{
				return;
			}
			else
			{
				continue;
			}
		}
		if(k==2)
		{
			res=GetString(t1->win,goods_name,25,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(type==1)
			{
				if(res==1)
				{
					k--;
					continue;
				}
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==3)
		{
			res=GetString(t2->win,unit,15,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==1)
			{
				k--;
				continue;
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==4)
		{
			res=GetString(t3->win,spec,15,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==1)
			{
				k--;
				continue;
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==5)
		{
			res=GetString(t4->win,sale_price,8,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==1)
			{
				k--;
				continue;
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==6)
		{
			res=GetString(t5->win,purchase_price,8,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==1)
			{
				k--;
				continue;
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==7)
		{
			res=GetString(t6->win,stock,8,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==1)
			{
				k--;
				continue;
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==8)
		{
			res=GetString(t7->win,discount,8,1);
			if(res==2||res==13||res==0)
			{
				k++;
				continue;
			}
			if(res==1)
			{
				k--;
				continue;
			}
			if(res==14)
			{
				return;
			}
		}
		if(k==9)
		{
			 res=run_button(b1,b2,0);
			 if(res==3)
			 {
				 k=8;
				 continue;
			 }
			 if(res==2)
			 {
				 return;
			 }
			 if(res==1)
			 {
				 if(strlen(bar_code)==0)
				 {
					 show_msg("条形码不能为空",0);
					 k=1;
					 continue;
				 }
				 if(type==1)
				 {
					 if(getgoods_by_barcode(&temp,bar_code)==0)
					 {
						 show_msg("该条形码已经被占用",0);
						 k=1;
						 continue;
					 }
				 }
				 strcpy(temp.bar_code,bar_code);
				 strcpy(temp.goods_name,goods_name);
				 strcpy(temp.unit,unit);
				 strcpy(temp.spec,spec);
				 temp.sale_price=atof(sale_price);
				 temp.purchase_price=atof(purchase_price);
				 temp.stock=atoi(stock);
				 temp.discount=atof(discount);
				 if(type==1)
				 {
					 Insert_Goods(&temp);
				 }
				 if(type==2)
				 {
					 Delete_Goods(bar_code);
					 Insert_Goods(&temp);
				 }
				 return;
			 }
		}
	}
}
/************************************************************************************
函数功能:接收输入字符串    参数:字符串 最大长度 模式
返回值:0 取消 1确定 
*************************************************************************************/
int input_string(char *str,int max,int type)
{
	int res,k=1,i;
	TEXT *t2;
	WIN mianwin={25,80,0,0,8,"",1};	
	TEXT text1={10,32,25,1,""};
	TEXT text2={10,30,2,1,"CN"};
	BUTTON but1={8,3,20,25,"确定",8,4};
	BUTTON but2={8,3,20,48,"退出",8,4};
	WIN *w1=make_win(&mianwin);
	TEXT *t1=make_textbox(&text1);
	BUTTON *b1=make_button(&but1);
	BUTTON *b2=make_button(&but2);
	if(type==1)//输入商品条形码
	{		
		mvwprintw(w1->win,10,22,"条形码:");
		t2=make_textbox(&text2);
		
	}
	if(type==2)//输入账户ID
	{		
		mvwprintw(w1->win,10,22,"账户ID:");
	}
	if(type==3)
	{
		mvwprintw(w1->win,10,22,"员工ID:");
	}
	w1->show_win(w1);
	if(type==1)
	{
		t2->show_text(t2);
	}
	t1->show_text(t1);
	b1->show_button(b1);
	b2->show_button(b2);
	while(1)
	{
		if(k==1)
		{
			res=GetString(t1->win,str,max,1);
			if(res==0||res==2)
			{
				k=2;
				continue;
			}
		}
		if(k==2)
		{
			res=run_button(b1,b2,0);
			if(res==3)
			{
				k=1;
				continue;
			}
			if(res==2)
			{
				return 0;//取消
			}
			if(res==1)
			{
				if(strlen(str)==0)
				{
					show_msg("输入不能为空",0);
					k=1;
					continue;
				}
				if(strlen(str)<6||check_str(str,6)!=0)
				{
					show_msg("输入必须为六位数字",0);
					str[0]='\0';
					werase(t1->win);
					wrefresh(t1->win);
					k=1;
					continue;
				}
				return 1;//确定
			}
		}
			
	}
}
/************************************************************************************
函数功能:按ID查询消费    参数:无
返回值:无  
*************************************************************************************/
void search_by_ID()
{
	char id[7]="";
	
	if(input_string(id,6,3)==0)
	{
		return;
	}
	C_CLASS LINKLIST list;
	link_init(&list);
	get_sale_byID(&list,id);
	if(list.count==0)
	{
		show_msg("没有查到相应的记录",0);
		return;
	}
	print_search(&list,3);
	link_clear(&list);

}
/************************************************************************************
函数功能:按日期查询消费    参数:无
返回值:无  
*************************************************************************************/
void search_by_date()
{
	int res,k=1;	
	char b_year[5]="",b_month[3]="",b_day[3]="",e_year[5]="",e_month[3]="",e_day[3]="",begin_date[13]="",end_date[13]="";
	WIN mianwin={25,80,0,0,8,"",1};	
	TEXT text[6]={{10,33,6,1,""},{10,42,6,1,""},{10,51,6,1,""},{12,33,6,1,""},{12,42,6,1,""},{12,51,6,1,""}};
	BUTTON but1={8,3,20,25,"确定",8,4};
	BUTTON but2={8,3,20,48,"退出",8,4};
	WIN *w1=make_win(&mianwin);
	TEXT *t1=make_textbox(&text[0]);
	TEXT *t2=make_textbox(&text[1]);
	TEXT *t3=make_textbox(&text[2]);
	TEXT *t4=make_textbox(&text[3]);
	TEXT *t5=make_textbox(&text[4]);
	TEXT *t6=make_textbox(&text[5]);
	BUTTON *b1=make_button(&but1);
	BUTTON *b2=make_button(&but2);
	mvwprintw(w1->win,10,24,"%s","起始日期:");
	mvwprintw(w1->win,10,40,"%s","-");
	mvwprintw(w1->win,10,49,"%s","-");
	mvwprintw(w1->win,12,24,"%s","结束日期:");
	mvwprintw(w1->win,12,40,"%s","-");
	mvwprintw(w1->win,12,49,"%s","-");
	w1->show_win(w1);
	t1->show_text(t1);
	t2->show_text(t2);
	t3->show_text(t3);
	t4->show_text(t4);
	t5->show_text(t5);
	t6->show_text(t6);
	b1->show_button(b1);
	b2->show_button(b2);
	while(1)
	{
		if(k==1)
		{
			res=GetString(t1->win,b_year,4,1);
			if(res==2||res==13||res==0)
			{
				k++;				
			}
			continue;
		}
		if(k==2)
		{
			res=GetString(t2->win,b_month,2,1);
			if(res==2||res==13||res==0)
			{
				k++;				
			}
			if(res==1)
			{
				k--;
			}
			continue;
		}
		if(k==3)
		{
			res=GetString(t3->win,b_day,2,1);
			if(res==2||res==13||res==0)
			{
				k++;				
			}
			if(res==1)
			{
				k--;
			}
			continue;
		}
		if(k==4)
		{
			res=GetString(t4->win,e_year,4,1);
			if(res==2||res==13||res==0)
			{
				k++;				
			}
			if(res==1)
			{
				k--;
			}
			continue;
		}
		if(k==5)
		{
			res=GetString(t5->win,e_month,2,1);
			if(res==2||res==13||res==0)
			{
				k++;				
			}
			if(res==1)
			{
				k--;
			}
			continue;
		}
		if(k==6)
		{
			res=GetString(t6->win,e_day,2,1);
			if(res==2||res==13||res==0)
			{
				k++;				
			}
			if(res==1)
			{
				k--;
			}
			continue;
		}
		if(k==7)
		{
			res=run_button(b1,b2,0);
			if(res==3)
			{
				k=6;
				continue;
			}
			if(res==2)
			{				
				return ;//取消
			}
			if(res==1)
			{
				if(check_str(b_year,1)!=0||check_str(b_month,1)!=0||check_str(b_day,1)!=0||check_str(e_year,1)!=0||check_str(e_month,1)!=0||check_str(e_day,1)!=0)
				{
					show_msg("日期只能是数字且不为空",0);
					k=1;
					continue;
				}
				sprintf(begin_date,"%04s%02s%02s",b_year,b_month,b_day);				
				sprintf(end_date,"%04s%02s%02s",e_year,e_month,e_day);
				if(atoi(end_date)<atoi(begin_date))
				{
					show_msg("结束日期不能小于起始日期",0);
					k=1;
					continue;
				}
				C_CLASS LINKLIST list;
				link_init(&list);
				get_sale_byDATE(&list,begin_date,end_date);
				if(list.count==0)
				{
					show_msg("没有查到相应的记录",0);
					return;
				}
				print_search(&list,3);
				link_clear(&list);
				return ;//确定
			}
		}
	}

}




	







	


	








⌨️ 快捷键说明

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