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

📄 dljm.cpp

📁 用c++编写的一个机票预订系统 是软件工程的课程设计来的
💻 CPP
字号:
#include "public.h"
#ifndef _dljm_cpp
#define _dljm_cpp
extern char ID[6];    //用户名
extern int admin;             //权限0 游客 1旅行社 2航班管理
#endif



void start()///////////////////////////////////////////////////////////////////////////////////////////////
{

	FILE *f1,*f;guanliy aa[10];

	    if ((f=fopen("gly.dat","r"))==NULL)
	  {
		printf("File Can't be find!\n");
		return;
	  }
	  else
	  {   fflush(stdin);
	      //fgets(s, 6, f);//////////////////////////////
		  fread(&aa,sizeof(aa),1,f);
	  }
	  fclose(f);
	  //printf("\n%s",name);//////////////////////////////////
      
        if(aa[0].k==2)return;

	char ch;int i;
	guanliy gly[20]; 
    printf("*******************************************************************************\n");
    printf("                  欢迎使用机票预定系统   请按提示完成系统初始化                \n");
    printf("*******************************************************************************\n");
	printf("           提示:初始化用户名和初始化用密码最多用6位的数字或者字母!\n                     初始化权限:1 表示用户 2 表示管理员\n");
	fflush(stdin);
	printf("\n\n\n\n\t\t\t请输入初始化用户名: ");
	cin>>gly[0].zhh;
	printf("\n\t\t\t请输入初始化密码并牢记: ");
    fflush(stdin);
	i=0;
	   while((ch=getch())!=13)
	  {
		  if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
		  {		
			  if(ch=='\b')			//如果是退格键
			  { 
				  putchar('\b');	//屏幕往回退一格 
				  putchar(' ');		//输出一个空格键把当前位置的*擦除 
				  putchar('\b');	//回退一格到刚才那个空格的位置 
				  i--;				//光标位置 - 1
			  }
			  else					//如果不是退格键
			  {
				  gly[0].mm[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				  putchar('*');		//在当前屏幕位置输出一个*
				  i++;				//光标位置 + 1 
			  }
		  }//if
	  }//while
	  gly[0].mm[i] = '\0';
	printf("\n\n\t\t\t请输入初始化权限: ");
	fflush(stdin);
	cin>>gly[0].k;
	if ((f1=fopen("gly.dat","w+b"))==NULL)
	{   fflush(stdin);
		printf("File Can't be find!\n");
	}
	else
	{     fflush(stdin);
		  fwrite(&gly,sizeof(gly),1,f1);
	}
	fclose(f1);
	printf("\n\t\t\t初始化成功,请按任意键返回!\n ");getch();
}//////////////////////////////////////////////////////////////////////////////////////////////////////////
void dlk()
{   int a,k;
    while(1)
	{
    system("cls");
	printf("\n*-------------------------------------------------------------------------------");
	printf("*\t\t\t欢迎使用飞机票预定系统                                 *");
	printf("*------------------------------------------------------------------------------*");
	printf("*\t\t\t请输入操作                                             *");
	printf("*                                                                              *");
	printf("*\t\t\t登陆请输入 1                                           *");
	printf("*                                                                              *");
	printf("*\t\t\t注册请输入 2                                           *");
	printf("*                                                                              *");	
	printf("*------------------------------------------------------------------------------*\n");
	scanf("%d",&a);
	switch(a)
	{
	case 1: system("cls");
		    system("cls");k=denglu();
			if(k==1)
			{
				printf("\n\t\t 登 陆 成 功!\n");
				getch();
				return;
			}
	        else printf("\n\t\t输入信息有错,欢迎再次光临,按任意键退出!\n");
			break;
	case 2: system("cls");
		      system("cls");zhuce();
			  break;
	default: printf("error\n");
	}
	}
}

int denglu()
{
   guanliy aa[10]; 	
   int i,j=0;
   char ch;
   FILE *f;
   char name[6];
   char password[6];
   printf("*******************************************************************************\n");
   printf(" 请按照下面的提示完成操作!\n");
   printf("*******************************************************************************\n");
   printf("\n\n\t\t请输入用户名:");
   fflush(stdin);
   scanf("%s",name);
///////////////////////////////检查用户名//////////////////////////////////////////////////////////////

	  while ( name[0]=='\0' || strlen(name) > 6 )				//判断用户名长度
	  {
		  system("cls");
		  printf("\n\t用户名不合要求,不要超过6个数字或者字母!\n");
		  fflush(stdin);
		  printf("\n\t\t请输入用户名:");
          scanf("%s",name);
	      for(i=0;name[i]!='\0';i++)		//判断用户名为字母或数字
		  {
		      if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
			  {
			     system("cls");
			     printf("\n\t\t用户名必须是字母或数字,重新输入一次吧!");
			     fflush(stdin);
				 printf("\n\t\t请输入用户名:");
                 scanf("%s",name);
			     i=-1;
			  }//if
		  }//for
	  }//while
 ///////////////////////////////////////////////////密码检查//////////////////////////////////////////////////////
	  
	  printf("\n\t\t输入你的密码:");
	  fflush(stdin);
	   i=0;
	   while((ch=getch())!=13)
	  {
		  if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
		  {		
			  if(ch=='\b')			//如果是退格键
			  { 
				  putchar('\b');	//屏幕往回退一格 
				  putchar(' ');		//输出一个空格键把当前位置的*擦除 
				  putchar('\b');	//回退一格到刚才那个空格的位置 
				  i--;				//光标位置 - 1
			  }
			  else					//如果不是退格键
			  {
				  password[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				  putchar('*');		//在当前屏幕位置输出一个*
				  i++;				//光标位置 + 1 
			  }
		  }//if
	  }//while
	  password[i] = '\0';
///////////////////////////////////判断密码////////////////////////////////////////////////
	  while(password[0]=='\0' || strlen(password)>6)				
	  {
		  system("cls");
		  printf("\n\t\t密码不合要求,请重新输入密码:");
	      fflush(stdin);
		  i=0;
	      while((ch=getch())!=13)
		  {
		     if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
			 {		
			     if(ch=='\b')			//如果是退格键
				 { 
				    putchar('\b');	//屏幕往回退一格 
				    putchar(' ');		//输出一个空格键把当前位置的*擦除 
				    putchar('\b');	//回退一格到刚才那个空格的位置 
				    i--;				//光标位置 - 1
				 }
			     else					//如果不是退格键
				 {
				    password[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				    putchar('*');		//在当前屏幕位置输出一个*
				    i++;				//光标位置 + 1 
				 }
			 }//if
		  }//while
	      password[i] = '\0';

	      for(i=0;password[i]!='\0';i++)		//判断密码是否为字母或数字
		  {
		     while(password[i]<48 || (password[i]>57 && password[i]<65) || (password[i]>90 && password[i]<97) || (password[i]>122))
			 {
			    system("cls");
			    printf("\n\t\t密码必须是字母或数字,请重新输入!\n");
				printf("\t\t输入你的密码:");
			    fflush(stdin);
			    i=0;
	            while((ch=getch())!=13)
				{
		           if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
				   {		
			          if(ch=='\b')			//如果是退格键
					  { 
				         putchar('\b');	//屏幕往回退一格 
				         putchar(' ');		//输出一个空格键把当前位置的*擦除 
				         putchar('\b');	//回退一格到刚才那个空格的位置 
				         i--;				//光标位置 - 1
					  }
			          else					//如果不是退格键
					  {
				        password[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				        putchar('*');		//在当前屏幕位置输出一个*
				        i++;				//光标位置 + 1 
					  }
				   }//if
				}//while
	            password[i] = '\0';
				i=-1;
			}//while
	  }//for
	  }//while
	  
	  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	  //打开文件核对用户名跟用户密码
     fflush(stdin); 
     if ((f=fopen("gly.dat","r"))==NULL)
	  {
		printf("File Can't be find!\n");
		return 0;
	  }
	  else
	  {   fflush(stdin);
	      //fgets(s, 6, f);//////////////////////////////
		  fread(&aa,sizeof(aa),1,f);
	  }
	  fclose(f);
	  //printf("\n%s",name);//////////////////////////////////
      
      j=0;
	  while(j<AvailableTag(2))
	  { 
	    if((strcmp(aa[j].mm,password)==0 ) && (strcmp(aa[j].zhh,name)==0) )
		{  
			strcpy(ID,name);admin=aa[j].k;
	    	return 1;
		}
	    else j++;
	  }
      return 0;	  
}/////////////////////







int zhuce()
{
    char ch;
	int i,j=0,k;
	k=AvailableTag(2);
	guanliy aa[10];
	FILE *f;
	if ((f=fopen("gly.dat","rb"))==NULL)//////////////////////////
	  {
		printf("File Can't be find!\n");
	  }
	  else
	  { fflush(stdin);
		fread(&aa,sizeof(aa),1,f);
	  }
	  fclose(f);
	  printf("*******************************************************************************\n");
      printf(" 请按照下面的提示完成操作!\n");
      printf("*******************************************************************************\n");
	  printf("\n\t\t请输入用户名:");
	  scanf("%s",aa[k].zhh);

 ///////////////////////////////检查用户名//////////////////////////////////////////////////////////////
	  while (strlen(aa[k].zhh)>6 || aa[k].zhh[0]=='\0')				//判断用户名长度
	  {
		  system("cls");
		  printf("\n\t\t用户名不要超过6个数字或者字母,重新输入一次吧!");
		  fflush(stdin);
	      scanf("%s",aa[k].zhh);
	  	  for(i=0;aa[k].zhh[i]!='\0';i++)		//判断用户名为字母或数字
		  {
		     while(aa[k].zhh[i]<48 || (aa[k].zhh[i]>57 && aa[k].zhh[i]<65) || (aa[k].zhh[i]>90 && aa[k].zhh[i]<97) || (aa[k].zhh[i]>122))
			 {
			    system("cls");
			    printf("\n\t\t\t必须是字母或数字!");
			    fflush(stdin);
	            scanf("%s",aa[k].zhh);
			 }
		     i=-1;
		  }//for
	  }//while

	  j=0;
	  while(j<k)  //判断用户名是否可以使用
	  { 
		 if(strcmp(aa[j].zhh,aa[k].zhh)==0)
		 {   printf("\n\t\t这个帐号已经被人注册,请你换一个!\n");
		    // printf("\n\n\n\n\t\t\t请输入用户名:");
           //  fflush(stdin);
	        // scanf("%s",aa[k].zhh); 
	         return 0;
		 }
	     else j++;
	  }


      
     


////////////////////////////////////////////////////////////////////////////////////////////////////////////
	 int r=1;
	 while(r)
	 {
       printf("\n\t\t输入你的密码:");
	   fflush(stdin);
	   i=0;
	   while((ch=getch())!=13)
	   {
		  if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
		  {		
			  if(ch=='\b')			//如果是退格键
			  { 
				  putchar('\b');	//屏幕往回退一格 
				  putchar(' ');		//输出一个空格键把当前位置的*擦除 
				  putchar('\b');	//回退一格到刚才那个空格的位置 
				  i--;				//光标位置 - 1
			  }
			  else					//如果不是退格键
			  {
				  aa[k].mm[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				  putchar('*');		//在当前屏幕位置输出一个*
				  i++;				//光标位置 + 1 
			  }
		  }//if
	  }//while
	  aa[k].mm[i] = '\0';

//////////////////////////////////	/判断密码////////////////////////////////////////
	  while (strlen(aa[k].mm)>6 || aa[k].mm[0]=='\0')
	  {
		  system("cls");
		  printf("\n\t\t您输入的密码长度不对,请重新输入!");
		  fflush(stdin);
		  i=0;
	      while((ch=getch())!=13)
		  {
		     if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
			 {		
			    if(ch=='\b')			//如果是退格键
				{ 
				  putchar('\b');	//屏幕往回退一格 
				  putchar(' ');		//输出一个空格键把当前位置的*擦除 
				  putchar('\b');	//回退一格到刚才那个空格的位置 
				  i--;				//光标位置 - 1
				}
			    else					//如果不是退格键
				{
				  aa[k].mm[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				  putchar('*');		//在当前屏幕位置输出一个*
				  i++;				//光标位置 + 1 
				}
			 }
		  }//while
	     aa[k].mm[i] = '\0';////////////////////////////////////////////////////
      
	     for(i=0;aa[k].mm[i]!='\0';i++)		//判断密码是否为字母或数字
		 {
		    if(aa[k].mm[i]<48 || (aa[k].mm[i]>57 && aa[k].mm[i]<65) || (aa[k].mm[i]>90 && aa[k].mm[i]<97) || (aa[k].mm[i]>122))
			{
			  system("cls");
			  printf("\n\t\t密码必须是字母或数字,请重新输入!");
			  fflush(stdin);
			  i=0;
	          while((ch=getch())!=13)
			  {
		         if(i!=0 || ch!='\b' )		//如果当前光标位置到达最开始的地方执行 
				 {		
			       if(ch=='\b')			//如果是退格键
				   { 
				      putchar('\b');	//屏幕往回退一格 
				      putchar(' ');		//输出一个空格键把当前位置的*擦除 
				      putchar('\b');	//回退一格到刚才那个空格的位置 
				      i--;				//光标位置 - 1
				   }//if
			     else					//如果不是退格键
				 {
				    aa[k].mm[i] = ch; //将passwprd[]数组第i个字符设置为刚读到的密码
				    putchar('*');		//在当前屏幕位置输出一个*
				    i++;				//光标位置 + 1 
				 }//else
				}//if
			  }//while
	          aa[k].mm[i] = '\0';////////////////////////////////////////////////////
			}//if
			i=-1;
		 }//for
	  }//while
        if ((f=fopen("gly.dat","w+b"))==NULL)
		{
	     	printf("File Can't be find!\n");
		    return 0;
		}
	    else
		{ 
		   aa[k].k=1;
		   fflush(stdin);
		   fwrite(&aa,sizeof(aa),1,f);
		}
	    fclose(f);
	    printf("\n\t\t恭喜你,注册成功,请你牢记帐户和密码!\n");
	    return 1;

	}
  
}

⌨️ 快捷键说明

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