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

📄 posaddaccount.c

📁 一个不错的POS系统
💻 C
字号:
#include "posAddAccount.h"
#include "posPublic.h"
#include "posBackOracle.h"
#include "pub.h"
#include <stdlib.h>
int printAddaccount(int key,STAFFINFO staffInfo)
{
	//WINDOW * winmain,*winbar_code,*winproduct_name,*winunit,*winspec,*winsale_price,*winsure,*wincancle;
	WINDOW * winmain,*winstaff_id,*winstaff_name,*winstaff_pwd,*winstaff_type,*winremark,*winsure,*wincancle;
	int ch,flag=0,num=7;
	char staff_type[3];
	char staff_id[10];
	char tmp[40]={0};
	memset(staff_type,0,sizeof(staff_type));
	memset(staff_id,0,sizeof(staff_id));
	sprintf(staff_type,"%d",staffInfo->staff_type);
	if(has_colors())
	{
		start_color();
		init_pair(26,COLOR_WHITE,COLOR_BLUE);
		init_pair(27,COLOR_BLACK,COLOR_WHITE);
		
	}
	winmain=newwin(24,80,0,0);
	box(winmain,0,0);
	wbkgd(winmain,COLOR_PAIR(26));
	if(key==2)
	{
		strcpy(staff_id,staffInfo->staff_id);
	}
	switch(key)
	{
		case 1:
			mvwprintw(winmain,2,30,"添  加  帐  户");
			break;
		case 2:
			mvwprintw(winmain,2,30,"修  改  帐  户");
			break;
		case 3:
			mvwprintw(winmain,2,30,"查  询  帐  户");
			mvwprintw(winmain,21,30,"按 ESC 键 退 出 ......");
			break;
	}
	
	mvwprintw(winmain,5,20,"编号:");
	mvwprintw(winmain,7,20,"姓名:");
	mvwprintw(winmain,9,20,"密码:");
	mvwprintw(winmain,11,20,"类型:");
	mvwprintw(winmain,13,20,"备注:");	
	wrefresh(winmain);

	winstaff_id=newwin(1,10,5,30);	
	wbkgd(winstaff_id,COLOR_PAIR(27));
	mvwprintw(winstaff_id,0,0,"%s",staffInfo->staff_id);
	wrefresh(winstaff_id);

	winstaff_name=newwin(1,17,7,30);	
	wbkgd(winstaff_name,COLOR_PAIR(27));
	mvwprintw(winstaff_name,0,0,"%s",staffInfo->staff_name);
	wrefresh(winstaff_name);

	winstaff_pwd=newwin(1,18,9,30);	
	wbkgd(winstaff_pwd,COLOR_PAIR(27));
	mvwprintw(winstaff_pwd,0,0,"%s",staffInfo->staff_pwd);
	wrefresh(winstaff_pwd);

	winstaff_type=newwin(1,3,11,30);	
	wbkgd(winstaff_type,COLOR_PAIR(27));
	mvwprintw(winstaff_type,0,0,"%s",staff_type);
	wrefresh(winstaff_type);

	winremark=newwin(1,32,13,30);	
	wbkgd(winremark,COLOR_PAIR(27));
	mvwprintw(winremark,0,0,"%s",staffInfo->remark);
	wrefresh(winremark);
	
	if(key!=3)
	{
		winsure=newwin(1,6,21,20);	
		wbkgd(winsure,COLOR_PAIR(27));
		mvwprintw(winsure,0,1,"确定");
		wrefresh(winsure);

		wincancle=newwin(1,6,21,40);	
		wbkgd(wincancle,COLOR_PAIR(27));
		mvwprintw(wincancle,0,1,"取消");
		wrefresh(wincancle);
	}

	if(key==3)
	{
		while(1)
		{
			ch=getch();
			if(27==ch)
			{
				break;
			}
		}
	}
	


	else
	{
		freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
		while(1)
		{
			ch=getch();
			if(ch==KEY_DOWN||ch==KEY_UP||ch==KEY_RIGHT||ch==KEY_LEFT)
			{
				flag=buttonCtl(winsure,wincancle,num,ch,flag);
				freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
			}
			else if(ch==10||ch==KEY_ENTER)
			{
			
				if(flag!=num-2&&flag!=num-1)
				{
					flag=++flag%num;
			    	 freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);
		
				}
				else if(flag==num-2)
				{
					int type,h=0;
					type=atoi(staff_type);
					staffInfo->staff_type=type;	
					if(IsRightNum(staffInfo->staff_id)!=0)
					{
						MessageBox("帐号有错,必须为数字组成!",0);
						h=1;
					}
					if(strlen(staffInfo->staff_pwd)==0)
					{
						MessageBox("密码不能为空!",0);
						h=1;
					}
					if(type!=0&&type!=1&&type!=2)
					{
						MessageBox("类型必须为0或1或2",0);
						h=1;					
					}
					if(strlen(staffInfo->staff_id)==0)
					{
						MessageBox("编号不能为空!",0);
						h=1;
					}
					if(key!=2)
					{
						if(IsStaffIDExit(staffInfo->staff_id)==0)
						{
							MessageBox("帐户已经存在!",0);
							h=1;
						}
					}
					if(key==2)
					{
						if(strcmp(staff_id,staffInfo->staff_id)!=0)
						{
							if(IsStaffIDExit(staffInfo->staff_id)==0)
							{
								char tmp[100]={0};
								sprintf(tmp,"%s帐户已经存在!",staffInfo->staff_id);
								MessageBox(tmp,0);
								h=1;
							}
						}
					}
					if(h!=1)
					{
						flag=100;
						break;
					}

				}
				else if(flag==num-1)
				{
					flag=200;
					break;
				}
			}	
		
			else if(KEY_BACKSPACE==ch)
			{	
				if(flag==0)
				{
					int len=strlen(staffInfo->staff_id);
					if(len>0)
					{
						staffInfo->staff_id[len-1]='\0';					
						wprintw(winstaff_id,"\b \b");
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==1)
				{
					int len=strlen(staffInfo->staff_name);
					if(len>0)
					{
						staffInfo->staff_name[len-1]='\0';					
						wprintw(winstaff_name,"\b \b");
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==2)
				{
					int len=strlen(staffInfo->staff_pwd);
					if(len>0)
					{
						staffInfo->staff_pwd[len-1]='\0';					
						wprintw(winstaff_pwd,"\b \b");
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==3)
				{
					int len=strlen(staff_type);
					if(len>0)
					{
						staff_type[len-1]='\0';					
						wprintw(winstaff_type,"\b \b");
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==4)
				{
					int len=strlen(staffInfo->remark);
					if(len>0)
					{
						staffInfo->remark[len-1]='\0';					
						wprintw(winremark,"\b \b");
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}

				
				
			}			
			else 
			{				
				if(flag==0)
				{
					int len=strlen(staffInfo->staff_id);
					if(len<6)
					{
						staffInfo->staff_id[len]=ch;
						wprintw(winstaff_id,"%c",ch);
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==1)
				{
					int len=strlen(staffInfo->staff_name);
					if(len<15)
					{
						staffInfo->staff_name[len]=ch;
						wprintw(winstaff_name,"%c",ch);
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==2)
				{
					int len=strlen(staffInfo->staff_pwd);
					if(len<16)
					{
						staffInfo->staff_pwd[len]=ch;
						wprintw(winstaff_pwd,"%s","*");
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==3)
				{
					int len=strlen(staff_type);
					if(len<2)
					{
						staff_type[len]=ch;
						wprintw(winstaff_type,"%c",ch);
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				if(flag==4)
				{
					int len=strlen(staffInfo->remark);
					if(len<30)
					{
						staffInfo->remark[len]=ch;
						wprintw(winremark,"%c",ch);
						freshaddaccountWin(flag,winstaff_id,winstaff_name,winstaff_pwd,winstaff_type,winremark,winsure,wincancle);

					}
				}
				
				
				
			
			}
		}
	}

	
	delwin(winmain);
	delwin(winstaff_id);
	delwin(winstaff_name);
	delwin(winstaff_pwd);
	delwin(winstaff_type);
	delwin(winremark);
	
	
	if(key!=3)
	{
		delwin(winsure);
		delwin(wincancle);
	}
	refresh();
	if(flag==100)
		return 0;
	else 
		return 1;

}

int freshaddaccountWin(int flag,WINDOW *winstaff_id,WINDOW *winstaff_name,WINDOW *winstaff_pwd,WINDOW *winstaff_type,WINDOW *winremark,WINDOW *winsure,WINDOW *wincancle)
{
		switch(flag)
		{
		case 0:
			touchwin(winstaff_id);
			wrefresh(winstaff_id);
			break;
		
		case 1:
			touchwin(winstaff_name);
			wrefresh(winstaff_name);
			break;	
		
		case 2:
			touchwin(winstaff_pwd);
			wrefresh(winstaff_pwd);
			break;	
		
		case 3:
			touchwin(winstaff_type);
			wrefresh(winstaff_type);
			break;	
		
		case 4:
			touchwin(winremark);
			wrefresh(winremark);
			break;
		case 5:			
			wattron(winsure,A_REVERSE);
			mvwprintw(winsure,0,0," 确定 ");
			wattroff(winsure,A_REVERSE);
			wrefresh(winsure);
			break;
		case 6:
			touchwin(wincancle);
			wattron(wincancle,A_REVERSE);
			mvwprintw(wincancle,0,0," 退出 ");
			wattroff(wincancle,A_REVERSE);
			wrefresh(wincancle);
			break;
	}
}
int posAddaccount()
{
	staffinfo staffInfo;
	int n,m;
	while(1)
	{
		memset(staffInfo.staff_id,0,sizeof(staffInfo.staff_id));
		memset(staffInfo.staff_name,0,sizeof(staffInfo.staff_name));
		memset(staffInfo.staff_pwd,0,sizeof(staffInfo.staff_pwd));
		memset(staffInfo.remark,0,sizeof(staffInfo.remark));
		staffInfo.staff_type=0;	
		n=printAddaccount(1,&staffInfo);
		if(n==1)
			return 1;
		n=AddAccount(&staffInfo);
		if(n==0)
		{
			m=MessageBox2("添加成功! 是否继续?");
			if(m==1)
				return 1;
		}
	}
	return 0;
}

⌨️ 快捷键说明

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