📄 dljm.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 + -