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

📄 userlogin.c

📁 在LINUX下实现的一个超市的收银系统
💻 C
字号:
#include "extern.h"/*==============用户登录函数=================*/void UserLogin(){    int ch,temp,len,business_no;    char PASSWORD[20],buf[20];    bkgd(COLOR_PAIR(1));	refresh();	//打印界面	WINDOW *msg_win =newwin(1,80,0,0);	wbkgd(msg_win,COLOR_PAIR(5));	wattron(msg_win,COLOR_PAIR(5));	mvwprintw(msg_win,0,0,"超市收银系统");	touchwin(stdscr);	refresh();	wrefresh(msg_win);	wattroff(msg_win,COLOR_PAIR(5));		WINDOW *new_win =newwin(10,40,7,20);	wbkgd(new_win,COLOR_PAIR(2));	wattron(new_win,COLOR_PAIR(2));	box(new_win,0,0);	mvwprintw(new_win,0,12,"欢迎进入登陆窗口");	mvwprintw(new_win,2,4,"  帐号:");	mvwprintw(new_win,4,4,"  密码:");	wattroff(new_win,COLOR_PAIR(2));			WINDOW *ok_win = subwin(new_win,3,10,13,26);	wbkgd(ok_win,COLOR_PAIR(3));	box(ok_win,0,0);	mvwprintw(ok_win,1,1,"  确定  ");	touchwin(new_win);	wrefresh(new_win);	wrefresh(ok_win);	   	WINDOW *cancel_win = subwin(new_win,3,10,13,44);	wbkgd(cancel_win,COLOR_PAIR(3));	box(cancel_win,0,0);	mvwprintw(cancel_win,1,1,"  取消  ");	touchwin(new_win);	wrefresh(new_win);	wrefresh(cancel_win);			WINDOW *input_id =subwin(new_win,1,20,9,34);	wbkgd(input_id,COLOR_PAIR(4));	touchwin(new_win);	wrefresh(new_win);	wrefresh(input_id);		WINDOW *passwd_win = subwin(new_win,1,20,11,34);	wbkgd(passwd_win,COLOR_PAIR(4));	touchwin(new_win);	wrefresh(new_win);	wrefresh(passwd_win);	//输入帐号和密码	do	{		wmove(input_id,0,0);		wclrtoeol(input_id);		wmove(passwd_win,0,0);		wclrtoeol(passwd_win);		wrefresh(input_id);		wrefresh(passwd_win);					keypad(input_id,TRUE);		keypad(passwd_win,TRUE);				memset(ACCOUNTID,0,sizeof(ACCOUNTID));		memset(PASSWORD,0,sizeof(PASSWORD));		//输入帐号		echo();		mvwgetnstr(input_id,0,0,ACCOUNTID,20);		len = strlen(ACCOUNTID);		noecho();			temp=0;			do		{				//输入密码			ch = mvwgetch(passwd_win,0,0+temp);					if((isprint(ch)) && (!isspace(ch)))//the word can print			{				mvwaddch(passwd_win,0,0+temp,'*');				wrefresh(passwd_win);				PASSWORD[temp] = ch;				temp++;				if(temp >=20)				{					break;				}			}			if(ch == '\n')			{				break;			}			else if(ch == KEY_BACKSPACE)			{				if(temp > 0)				{					--temp;					wmove(passwd_win,0,0+temp);					wclrtoeol(passwd_win);				}				else				{					wmove(passwd_win,0,0);					wclrtoeol(passwd_win);				}			}		}while(1);		keypad(input_id,FALSE);		keypad(passwd_win,FALSE);		PASSWORD[temp] = '\0';								do		{			wattron(ok_win,A_REVERSE);				mvwprintw(ok_win,1,1,"  确定  ");			ch = mvwgetch(ok_win,1,8);			wattroff(ok_win,A_REVERSE);			wrefresh(ok_win);				//当用户输入回车			if(ch == '\n')			{					//输入的用户名和密码是否正确							if(CheckUserLogin(ACCOUNTID,PASSWORD,EMP_NAME,&EMP_GRADE)==1)				{					//如果ID的类型为1的话,进入后台管理					if(1 == EMP_GRADE)					{												clear();						delwin(msg_win);						delwin(new_win);						refresh();						ShowMessage("         管理员登录,请稍后......");						BackManager();					}					else					{						clear();						delwin(msg_win);						delwin(new_win);						refresh();						ShowMessage("          正在登录,请稍后......");												//查询数据库,获取交易号						SearchMaxBusinessNo(BUSINESS_NO);						business_no = atoi(BUSINESS_NO);						business_no++;						sprintf(BUSINESS_NO,"%04d",business_no);						//如果交易号为空						if(BUSINESS_NO == NULL)						{							strncpy(BUSINESS_NO,"0001",strlen("0001"));						}												Cashier();					}				}				//用户不存在				//判断帐号长度是否为6位				if(strlen(ACCOUNTID) != 6)				{					mvwprintw(ok_win,1,1,"  确定  ");					touchwin(new_win);					wrefresh(ok_win);					mvwprintw(cancel_win,1,1,"  取消  ");					touchwin(new_win);					wrefresh(cancel_win);					ShowMessage("     输入错误,员工号必须为6位数字");					touchwin(msg_win);					wrefresh(msg_win);					touchwin(new_win);					wrefresh(new_win);					refresh();					break;				}				// 判断用户输入的密码是否为6到12位				if(strlen(PASSWORD)<6 || strlen(PASSWORD) > 12)				{					mvwprintw(ok_win,1,1,"  确定  ");					touchwin(new_win);					wrefresh(ok_win);					mvwprintw(cancel_win,1,1,"  取消  ");					touchwin(new_win);					wrefresh(cancel_win);					ShowMessage("     输入错误,密码必须为6到12位");					touchwin(msg_win);					wrefresh(msg_win);					touchwin(new_win);					wrefresh(new_win);					refresh();					break;				}				else				{					mvwprintw(ok_win,1,1,"  确定  ");					touchwin(new_win);					wrefresh(ok_win);					mvwprintw(cancel_win,1,1,"  取消  ");					touchwin(new_win);					wrefresh(cancel_win);					ShowMessage("         用户不存在,请重新输入");					touchwin(msg_win);					wrefresh(msg_win);					touchwin(new_win);					wrefresh(new_win);						refresh();					break;				}			}						else			{				mvwprintw(ok_win,1,1,"  确定  ");				wrefresh(ok_win);				wattron(cancel_win,A_REVERSE);				mvwprintw(cancel_win,1,1,"  取消  ");				ch = mvwgetch(cancel_win,1,8);				wattroff(cancel_win,A_REVERSE);				wrefresh(cancel_win);				if(ch == '\n')				{					mvwprintw(ok_win,1,1,"  确定  ");					touchwin(new_win);					wrefresh(ok_win);					mvwprintw(cancel_win,1,1,"  取消  ");					touchwin(new_win);					wrefresh(cancel_win);					break;	                   				}				else 				{						mvwprintw(cancel_win,1,1,"  取消  ");					wrefresh(cancel_win);					continue;				}			}						}while(1);	}while(1);			endwin();    exit(0);}

⌨️ 快捷键说明

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