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

📄 login.c

📁 linux平台下用C开发的一个超市管理系统(结合了ORACLE数据库)
💻 C
字号:
#include"login.h"
#include"window.h"
#include"public.h"
#include<stdio.h>

/************************************************************************************
函数功能:登录验证    参数:类型 1管理员,普通职员登录 2超级用户登录 
返回值:1管理员,普通职员登录,0超级用户登录 
*************************************************************************************/
int show_login(int type)
{
	init_color_info();	
    refresh();
	char str1[7]="",str2[13]="";
	int k=1,res,i;		
	WIN mainatt={11,40,8,20,5,"超市系统登录窗口",1};
	WIN mainwin={25,80,0,0,7,"",0};
	TEXT box1={10,34,15,1,""};
    TEXT box2={12,34,15,1,""};
	TEXT box3={10,28,5,5,"帐号:"};
	TEXT box4={12,28,5,5,"密码:"};
	TEXT box5={0,0,80,5,"欢迎来到博洋超市管理系统"};
	TEXT box6={24,0,80,5,"SOFT:LINUX POS SYSTEM      AUTHOR:PENG JIAN ZHONG"};
    BUTTON but1={8,3,14,28,"确定",5,4};
	BUTTON but2={8,3,14,41,"退出",5,4};
	WIN *w1=make_win(&mainatt);		
	TEXT *t1=make_textbox(&box1);
	TEXT *t2=make_textbox(&box2);
	TEXT *t3=make_textbox(&box3);
	TEXT *t4=make_textbox(&box4);
    BUTTON *b1=make_button(&but1);
	BUTTON *b2=make_button(&but2);	
	WIN *w2=NULL;
	TEXT *t5=NULL,*t6=NULL;
	if(type==1)
	{
		w2=make_win(&mainwin);	
		t5=make_textbox(&box5);
		t6=make_textbox(&box6);
		w2->show_win(w2);
		t5->show_text(t5);
		t6->show_text(t6);
	}
	w1->show_win(w1);
	t1->show_text(t1);
	t2->show_text(t2);
	t3->show_text(t3);
	t4->show_text(t4);
	b1->show_button(b1);
	b2->show_button(b2);	
	do
	{
		switch(k)
		{
		case 1:
			   //curs_set(1);			   
			   res=GetString(t1->win,str1,6,1);
			   if(res==0||res==2||res==13)
			   {
				   k=2;
				   continue;
			   }
			   else if(res==14)
			   {
				   k=4;
				   continue;
			   }
			   else
			   {
				   continue;
			   }
		case 2:			  
		       res=GetString(t2->win,str2,12,0);
			   if(res==1||res==13)
			   {
				   k=1;
				   continue;
			   }
               else if(res==0||res==2)
			   {
				   k=3;
				   continue;
			   }
			   else if(res==14)
			   {
				   k=4;
				   continue;
			   }
			   else
			   {
				   continue;
			   }
		case 3:
			   do
			   {  
				  b1->print_white(b1);
				  noecho();
				  cbreak();					
				  keypad(b1->win3,true );
				  i=wgetch(b1->win3);
				 // printw("%d",i);
				 // refresh();
				  switch(i)
				  {				  
				  case 259:
					  k=2;
                      b1->delete_white(b1);
					  break;
				  case 27:
				  case 261:
					  k=4;
                      b1->delete_white(b1);
					  break;
				  case 10:					  
						b1->focus_button(b1);
						if(strlen(str1)==0)
						{
							show_msg("帐号不能为空",0);
							k=1;
							b1->delete_white(b1);
							break;
						}
						if(check_str(str1,6)!=0)
						{
							show_msg("帐号必须是六位数字",0);
							str1[0]='\0';
							werase(t1->win);
							wrefresh(t1->win);
							k=1;
							b1->delete_white(b1);
							break;
						}
						if(strlen(str2)==0)
					    {
							show_msg("密码不能为空",0);
							k=2;
							b1->delete_white(b1);
							break;
						}
						if(strlen(str2)<6)
						{
							show_msg("密码至少为六位",0);
							str2[0]='\0';
							werase(t2->win);
							wrefresh(t2->win);
							k=2;
							b1->delete_white(b1);
							break;
						}						
						if(get_account(&login,str1)==0)
						{
							if(LoginDB(&login,str1,str2)==0)
							{
								if(type==1)
								{
									if(login.staff_type==0)
									{
										show_msg("此用户只能退货时登录",0);
										str1[0]='\0';
										str2[0]='\0';
										werase(t1->win);
										werase(t2->win);
										wrefresh(t1->win);
										wrefresh(t1->win);										
										wrefresh(t2->win);
										k=1;
										b1->delete_white(b1);
										break;
									}
									free_win(w1);
									free_text(t1);
									free_text(t2);
									free_text(t3);
									free_text(t4);
									free_button(b1);
									free_button(b2);
									if(type==1)
									{
										free_win(w2);
										free_text(t5);
										free_text(t6);
									}
									touchwin(stdscr);
									refresh();
									if(login.staff_type==1)//管理员(进后台)
									{
										return 1;
									}
									if(login.staff_type==2)//普通职员(进前台)
									{
										return 2;
									}
								}
								if(type==2)//前台退货时登录
								{
									if(login.staff_type!=0)
									{
										show_msg("此用户不能用于退货",0);
										str1[0]='\0';
										str2[0]='\0';
										werase(t1->win);
										werase(t2->win);
										wrefresh(t1->win);
										wrefresh(t1->win);										
										wrefresh(t2->win);
										k=1;
										b1->delete_white(b1);
										break;
									}
									else
									{
										free_win(w1);
										free_text(t1);
										free_text(t2);
										free_text(t3);
										free_text(t4);
										free_button(b1);
										free_button(b2);
										if(type==1)
										{
											free_win(w2);
											free_text(t5);
											free_text(t6);
										}																				
										return 0;
									}
								}
							}
							else
							{
								show_msg("密码错误",0);
								str2[0]='\0';
								werase(t2->win);
								wrefresh(t2->win);
								k=2;
								b1->delete_white(b1);
								break;
							}

						}
						else
						{
							show_msg("帐号错误",0);
							str1[0]='\0';
							werase(t1->win);
							wrefresh(t1->win);
							k=1;
							b1->delete_white(b1);
							break;
						}					 
						
				  }
				 break;    
			   }while(1);
			   continue;
		case 4:
			   do
			   {  
				  b2->print_white(b2);
				  noecho();
				  cbreak();					
				  keypad(b2->win3,true );
				  i=wgetch(b2->win3);
				  switch(i)
				  {
				  case 259:
					  k=2;
                      b2->delete_white(b2);					  
					  break;
				  case 260:
					  k=3;
                      b2->delete_white(b2);
					  break;
				  case 10:
					  b2->focus_button(b2);
				      res=show_msg("确认退出超市系统登录",1);
					  if(res==0)
					  {
						endwin();
						free_win(w1);
						free_text(t1);
						free_text(t2);
						free_text(t3);
						free_text(t4);
						free_button(b1);
						free_button(b2);
						if(type==1)
						{
							DisconnectDB();
							exit(0);
						}
						if(type==2)
						{
							return -1;
						}
					  }
					  else
					  {
						  k=1;
						  b2->delete_white(b2);	
						  break;
					  }
				  }
				  break;
			   }while(1);
			   continue;
		 }
	}while(1); 			  
}




⌨️ 快捷键说明

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