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

📄 background.c

📁 福建博洋教育C/C++软件项目实战:POS收银系统
💻 C
📖 第 1 页 / 共 5 页
字号:
					remark[--cnt[4]]='\0';
					wmove(txtbox[4],0,row[4]);
					wrefresh(txtbox[4]);
				}				
				break;
			case KEY_F(1):
				return;
			case KEY_UP:
				goto FOUR;			
			case KEY_DOWN:
			case '\n':
				goto ENSURE;
			default:
				if ( cnt[4]<30 )
				{								
					row[4]++;
					waddch(txtbox[4],ch);
					remark[cnt[4]]=ch;
					remark[++cnt[4]]='\0';					
					wrefresh(txtbox[4]);				
					break;
				}	
			}
		}	
	ENSURE:	
		wattron(dialog[1],A_REVERSE);
		mvwprintw(dialog[1],1,2, "确定");		
		wrefresh(dialog[1]);		  
		while (1)
		{
			ch=wgetch(dialog[1]);
			switch (ch)
			{		
			case KEY_F(1):
				return;
			case KEY_UP:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "确定");
				wrefresh(dialog[1]);					
				goto FIVE;
			case KEY_RIGHT:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "确定");
				wrefresh(dialog[1]);			
				goto CANCEL;
			case '\n':	
				//对输入的数据做验证,确保其合法性
				if (cnt[0]!=6)
				{
					scr_dump("adduser.scr");
					Message("请输入6位帐户ID",10,40);	
					scr_restore("adduser.scr");						
					goto FIRST;
				}
				if (cnt[1]==0)
				{	
					scr_dump("adduser.scr");
					Message("请输入帐户姓名",10,40);
					scr_restore("adduser.scr");
					goto SECOND;
				}
				//对帐户密码进行验证判断密码输入是否大于6位
				if (cnt[2]<6)
				{		
					scr_dump("adduser.scr");
					Message("请输入帐户密码,长度为6-12位",10,40);
					scr_restore("adduser.scr");
					goto THIRD;
				}
				if (cnt[3]==0)
				{	
					scr_dump("adduser.scr");
					Message("请输入帐户类型 0:超级帐户,1:管理员,2:收银员",10,40);
					scr_restore("adduser.scr");
					goto FOUR;
				}	
				//帐户备注如果没有输入的话
				if (cnt[4]==0)
				{
					strcpy(remark," ");
				}
				//获取所有输入数据,判断所输入的信息在帐户表中是否已经存在,存在给予提示,不存在插入到帐户表
				{
					STAFF *staff_info=(STAFF *)malloc(sizeof(STAFF));
					strcpy(staff_info->staff_id,account);
					strcpy(staff_info->staff_name,name);
					strcpy(staff_info->staff_pwd,password);
					staff_info->staff_type = atoi(type);
					strcpy(staff_info->remark,remark);
					Trim(account);
					Trim(name);
					Trim(password);
					Trim(remark);
					//判断数据库中是否存在商品条形码
					res=staffid_in_staff(staff_info);
					if (res==-1)
					{
						Message("数据库出错",10,40);
						endwin();
						exit(1);
					}
					if (res==1)
					{
						Message("此帐户已存在",10,40);
						scr_restore("addaccount.scr");
						account[0] = '\0';
						name[0] = '\0';
						password[0] = '\0';
						type[0] = '\0';
						remark[0] = '\0';						
						for ( i=0; i<=6; i++ )
						{
							col[i] = 0;							
							cnt[i] = 0;
							row[i] = 0;														
						}						
						goto FIRST;
					}
					//插入数据库
					res = insert_staff(staff_info);
					if (res == -1)
					{
						Message("数据库出错",10,40);
						endwin();
						exit(1);
					}
					if (res==0)
					{
						Message("添加帐户信息到数据库出错",10,40);
						endwin();
						exit(1);
					}
				}
				return;						
			}			
		}
	CANCEL:	
		wattron(dialog[2],A_REVERSE);
		mvwprintw(dialog[2],1,2, "取消");		
		wrefresh(dialog[2]);
		  
		while (1)
		{
			ch=wgetch(dialog[2]);
			switch (ch)
			{
			case KEY_F(1):
				return;
			case KEY_LEFT:		
				wattroff(dialog[2],A_REVERSE);
				mvwprintw(dialog[2],1,2, "取消");
				wrefresh(dialog[2]);
				goto ENSURE;		
			case '\n':
				return;						
			}
		}
	
}
/*==============================================================
function:修改帐户窗口
==============================================================*/
void modify_account_win()
{	
	WINDOW *dialog[3]={NULL};
	print_dialog_box(24,80,"欢迎光临XXX超市",5,dialog);
	mvwprintw(dialog[0],6,36,"修改帐户");
	mvwprintw(dialog[0],10,11,"帐户ID");
	wrefresh(dialog[0]);
	WINDOW *txtbox={NULL};
	char account[7]={'\0'};
	int cnt=0;
	int col=0;
	int row=0;
	int res=0;
	int ch=0;
	txtbox=create_win(1,42,10,20);
	keypad(txtbox,TRUE);
	keypad(dialog[1],TRUE);
	keypad(dialog[2],TRUE);
	wbkgd(txtbox,COLOR_PAIR(1));
	wrefresh(txtbox);
	scr_dump("modifyaccount.scr");
	FIRST:
		wmove(txtbox,0,0);
		wprintw(txtbox,account);	
		wrefresh(txtbox);
		while(1)
		{
			ch=wgetch(txtbox);
			switch (ch)
			{
			case  KEY_BACKSPACE:  //按退格键盘
				if (cnt>0)
				{
					getyx(txtbox,col,row);
					mvwaddch(txtbox,col,--row,' ');			
					account[--cnt]='\0';
					wmove(txtbox,0,row);
					wrefresh(txtbox);
				}				
				break;
			case KEY_F(1):
				return;
			case KEY_DOWN:
			case '\n':					
				goto ENSURE;
			default:
				if (ch>='0'&&ch<='9' && cnt<6)
				{
					row++;
					waddch(txtbox,ch);
					account[cnt]=ch;
					account[++cnt]='\0';					
					wrefresh(txtbox);				
					break;
				}	
			}
		}		
	ENSURE:	
		wattron(dialog[1],A_REVERSE);
		mvwprintw(dialog[1],1,2, "确定");		
		wrefresh(dialog[1]);
		  
		while (1)
		{
			ch=wgetch(dialog[1]);
			switch (ch)
			{		
			case KEY_F(1):
				return;
			case KEY_UP:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "确定");
				wrefresh(dialog[1]);					
				goto FIRST;
			case KEY_RIGHT:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "确定");
				wrefresh(dialog[1]);			
				goto CANCEL;
			case '\n':	
				if (cnt!=6)
				{
					Message("请输入6位员工ID",10,40);
					scr_restore("modifyaccount.scr");
					account[0] = '\0';					
					col = 0;							
					cnt = 0;
					row = 0;									
					goto FIRST;
				}
				//验证输入的帐户id是否存在,存在继续执行,不存在给提示			
				{
					STAFF *staff_info=(STAFF *)malloc(sizeof(STAFF));
					strcpy(staff_info->staff_id,account);					
					//判断数据库中是否存在帐户ID
					res = get_staff(staff_info);					
					if (res==-1)
					{
						Message("数据库出错",10,40);
						endwin();
						exit(1);
					}
					if (res==0)
					{
						Message("此帐户ID不存在",10,40);
						scr_restore("modifyaccount.scr");
						account[0] = '\0';					
						col = 0;							
						cnt = 0;
						row = 0;									
						goto FIRST;
					}
					//打印新窗口并将所有数据打印出来	
					modify_account_data_win(staff_info);
				}
				return;						
			}			
		}
	CANCEL:	
		wattron(dialog[2],A_REVERSE);
		mvwprintw(dialog[2],1,2, "取消");		
		wrefresh(dialog[2]);		  
		while (1)
		{
			ch=wgetch(dialog[2]);
			switch (ch)
			{
			case KEY_F(1):
				return;
			case KEY_LEFT:		
				wattroff(dialog[2],A_REVERSE);
				mvwprintw(dialog[2],1,2, "取消");
				wrefresh(dialog[2]);
				goto ENSURE;		
			case '\n':
				return;						
			}
		}	
}
/*=====================================================
function:修改帐户数据窗口
======================================================*/
void modify_account_data_win(STAFF *staff_info)
{
	WINDOW *dialog[3]={NULL};
	print_dialog_box(24,80,"欢迎光临XXX超市",5,dialog);
	keypad(dialog[1],TRUE);
	keypad(dialog[2],TRUE);
	mvwprintw(dialog[0],3,36,"修改帐户");
	mvwprintw(dialog[0],6,11,"帐户ID:");
	mvwprintw(dialog[0],8,11,"用户名:");
	mvwprintw(dialog[0],10,13,"密码:");
	mvwprintw(dialog[0],12,13,"身份:");
	mvwprintw(dialog[0],14,13,"备注:");
	wrefresh(dialog[0]);
	WINDOW *txtbox[5] = {NULL};
	char account[7] = {'\0'};
	char name[16] = {'\0'};
	char password[17] = {'\0'};
	char type[5] = {'\0'};
	char remark[31] = {'\0'};
	Trim(staff_info->staff_id);
	Trim(staff_info->staff_name);
	Trim(staff_info->staff_pwd);
	Trim(staff_info->remark);
	strcpy(account, staff_info->staff_id);
	strcpy(name, staff_info->staff_name);
	strcpy(password, staff_info->staff_pwd);
	strcpy(remark, staff_info->remark);
	sprintf(type, "%d", staff_info->staff_type);
	int cnt[5]={0};
	int col[5]={0};
	int row[5]={0};		
	cnt[1]=row[1]=strlen(name);
	cnt[2]=row[2]=strlen(password);
	cnt[3]=row[3]=strlen(type);
	cnt[4]=row[4]=strlen(remark);
	int i=0;
	int ch=0;
	int res=0;
	for (i=0; i<5; i++)
	{
		txtbox[i]=create_win(1,42,6+2*i,20);
		keypad(txtbox[i],TRUE);
		wbkgd(txtbox[i],COLOR_PAIR(1));
		wrefresh(txtbox[i]);		
	}
	wprintw(txtbox[0],account);
	wprintw(txtbox[1],name);
	wprintw(txtbox[2],password);
	wprintw(txtbox[3],type);
	wprintw(txtbox[4],remark);	
	for (i=0; i<5; i++)
	{		
		wrefresh(txtbox[i]);
	}
	//帐户姓名窗口
	SECOND:
		wmove(txtbox[1],0,0);
		wprintw(txtbox[1],name);	
		wrefresh(txtbox[1]);
		while(1)
		{
			ch=wgetch(txtbox[1]);
			switch (ch)
			{
			case  KEY_BACKSPACE:  //按退格键盘
				if (cnt[1]>0)
				{
					getyx(txtbox[1],col[1],row[1]);
					mvwaddch(txtbox[1],col[1],--row[1],' ');			
					name[--cnt[1]]='\0';
					wmove(txtbox[1],0,row[1]);
					wrefresh(txtbox[1]);
				}				
				break;
			case KEY_F(1):
				return;
			case KEY_DOWN:
			case '\n':
				goto THIRD;
			default:
				if ( cnt[1]<15 )
				{
					row[1]++;
					waddch(txtbox[1],ch);
					name[cnt[1]]=ch;
					name[++cnt[1]]='\0';					
					wrefresh(txtbox[1]);				
					break;
				}	
			}
		}
		//帐户密码窗口
	THIRD:
		wmove(txtbox[2],0,0);
		wprintw(txtbox[2],password);	
		wrefresh(txtbox[2]);
		while(1)
		{
			ch=wgetch(txtbox[2]);
			switch (ch)
			{
			case  KEY_BACKSPACE:  //按退格键盘
				if (cnt[2]>0)
				{
					getyx(txtbox[2],col[2],row[2]);
					mvwaddch(txtbox[2],col[2],--row[2],' ');			
					password[--cnt[2]]='\0';
					wmove(txtbox[2],0,row[2]);
					wrefresh(txtbox[2]);
				}				
				break;
			case KEY_F(1):
				return;
			case KEY_UP:
				goto SECOND;
				break;
			case KEY_DOWN:
			case '\n':
				goto FOUR;
			default:
				if ( cnt[2]<12 && (ch>='0'&&ch<='9') || (ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z') )
				{
					row[2]++;
					waddch(txtbox[2],ch);
					password[cnt[2]]=ch;
					password[++cnt[2]]='\0';					
					wrefresh(txtbox[2]);				
					break;
				}	
			}
		}
		//帐户类型窗口
	FOUR:
		wmove(txtbox[3],0,0);
		wprintw(txtbox[3],type);	
		wrefresh(txtbox[3]);
		while(1)
		{
			ch=wgetch(txtbox[3]);
			switch (ch)
			{
			case  KEY_BACKSPACE:  //按退格键盘
				if (cnt[3]>0)
				{
					getyx(txtbox[3],col[3],row[3]);
					mvwaddch(txtbox[3],col[3],--row[3],' ');			
					type[--cnt[3]]='\0';
					wmove(txtbox[3],0,row[3]);
					wrefresh(txtbox[3]);
				}				
				break;
			case KEY_F(1):
				return;
			case KEY_UP:
				goto THIRD;				
			case KEY_DOWN:
			case '\n':
				goto FIVE;
			default:
				if ( (ch>='0'&&ch<='2') && cnt[3]<1 )
				{
					row[3]++;
					waddch(txtbox[3],ch);
					type[cnt[3]]=ch;
					type[++cnt[3]]='\0';					
					wrefresh(txtbox[3]);				
					break;
				}	
			}
		}
		//帐户备注窗口
	FIVE:
		wmove(txtbox[4],0,0);
		wprintw(txtbox[4],remark);	
		wrefresh(txtbox[4]);
		while(1)
		{
			ch=wgetch(txtbox[4]);			
			switch (ch)
			{
			case  KEY_BACKSPACE:  //按退格键盘
				if (cnt[4]>0)
				{				
					getyx(txtbox[4],col[4],row[4]);
					mvwaddch(txtbox[4],col[4],--row[4],' ');			
					remark[--cnt[4]]='\0';
					wmove(txtbox[4],0,row[4]);
					wrefresh(txtbox[4]);
				}				
				break;
			case KEY_F(1):
				return;
			case KEY_UP:
				goto FOUR;			
			case KEY_DOWN:
			case '\n':
				goto ENSURE;
			default:
				if ( cnt[4]<30 )
				{								
					row[4]++;
					waddch(txtbox[4],ch);
					remark[cnt[4]]=ch;
					remark[++cnt[4]]='\0';					
					wrefresh(txtbox[4]);				
					break;
				}	
			}
		}	
	ENSURE:	
		wattron(dialog[1],A_REVERSE);
		mvwprintw(dialog[1],1,2, "确定");		
		wrefresh(dialog[1]);
		  
		while (1)
		{
			ch=wgetch(dialog[1]);
			switch (ch)
			{		
			case KEY_F(1):
				return;
			case KEY_UP:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "确定");
				wrefresh(dialog[1]);					
				goto FIVE;
			case KEY_RIGHT:
				wattroff(dialog[1],A_REVERSE);
				mvwprintw(dialog[1],1,2, "确定");
				wrefresh(dialog[1]);			
				goto CANCEL;
			case '\n':	
				//对输入的数据进行验证
				//对帐户名进行验证
				if (cnt[1]==0)
				{	
					scr_dump("addaccountdata.scr");
					Message("请输入帐户姓名",10,40);
					scr_restore("addaccountdata.scr");
					goto SECOND;
				}
				//对帐户密码进行验证密码输入是否大于6位
				if (cnt[2]<6)
				{		
					scr_dump("addaccountdata.scr");
					Message("请输入帐户密码,长度为6-12",10,40);
					scr_restore("addaccountdata.scr");
					goto THIRD;
				}
				if (cnt[3]==0)
				{	
					scr_dump("addaccountdata.scr");
					Message("请输入帐户类型 0:超级帐户,1:管理员,2:收银员",10,40);
					scr_restore("addaccountdata.scr");
					goto FOUR;
				}	
				//帐户备注如果没有输入的话
				if (cnt[4]==0)
				{
					strcpy(remark," ");
				}
				//插入数据库
				strcpy(staff_info->staff_id, account);
				strcpy(staff_info->staff_name, name);
				strcpy(staff_info->staff_pwd, password);
				strcpy(staff_info->remark, remark);
				staff_info->staff_type = atoi(type);			
				res=update_staff(staff_info);
				if (res==-1)
				{
					Message("数据库出错",10,40);
					endwin();
					exit(1);
				}
				if (res==0)
				{
					Message("修改帐户数据的时候出错",10,40);
					endw

⌨️ 快捷键说明

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