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

📄 paword.cpp

📁 学生管理系统是本人用c语言写的一个DOC界面的简单学生管理系统
💻 CPP
字号:
//添加用户


#include "head.h"
int password(userL *p)
{
	char user[10]={'a'};
	int number=0,i=0;
	int ID=0;
	char word[6]={' '};
	char word2[6]={' '};
	struct user  user_struct;
	struct userL *head=p, *taill=p;
	if (p==NULL)                  //如果无记录就添加新用户
	{
       ID=1;                       //管理员
	}
	else
	{
	   ID=0;                      //普通用户
	}

star1:
    printf("\n\n\n\n\t\t\t请输入新用户名: ");
	fflush(stdin);
	for(i=0;i<=10;i++)
	{
      number=number+1; 
	  if(number>9)
	  {
		  printf("用户名不能大于10位!\n");   //验证位数
		  number=0;
		  i=0;
		  goto star1;
	  }
	  scanf("%c",&user[i]);
	 
	  if(user[i]=='\n')
	  {
		  user[i]='\0';
		  break;
	  }
	}
	 while(head!=NULL)
	  {
	   if(strcmp(user,head->name)==0 || strcmp(user,"mm")==0)
	   {
	    printf("用户名已存在,请从新输入!\n");
		 goto star1;
	   }
	   head=head->next;
	  }
	  
star2:	
    number=0;	
    printf("\n\t\t\t密码:      ");	
	fflush(stdin);
	for(i=0;i<6;i++)
	{
      
	  if(number>6)
	  {    
		  printf("\n\t\t\t密码不能大于6位!\n");   //验证位数
		  number=0;
		  i=0;
		  goto star2;
	  }
	  word[i]=getch();//不带回显
	 
	  if((word[i]!='\r')&&(word[i]!=8))
	  {
		  printf("*");
	     number=number+1;
	  }
	  if(word[i]==8)
		 printf("\b\40\b");   //退格用空格替换再退
	     
	  if(word[i]=='\r')
	  {
		  word[i]='\0';
		  break;
	  }
	}
	printf("\n");
	number=0;
	printf("\n\t\t\t请再次确认:");  //密码确认
	for(i=0;i<=6;i++)
	{
	  
	  word2[i]=getch();//不带回显
	  if((word2[i]!='\r')&&(word2[i]!=8))
	  {
		  number=number+1;
		  printf("*");
	      
	  }
	  if(word2[i]==8) //退格用空格替换再
	  {
		 printf("\b\40\b");  
		 number=number-1;
	  }
	     
	  if(word2[i]=='\r')
	  {
		  word2[i]='\0';
		  break;
	  }
	}
   printf("\n");
       if(strcmp(word,word2)!=0)
		  {
			  printf("\n\t\t\t两次输入不一样请从新输入:\n");
			  goto star2;
		  }

 //将指针指向最后
	   head=p;
if (head!=NULL)
{
	while(head!=NULL)
	{
	taill=head;
    head=head->next; 
	}
	taill->next=(struct userL *)malloc(sizeof(struct userL));
	taill->next->next=NULL;
}
if(p!=NULL)
{   
	strcpy(taill->next->name,user);
	strcpy(taill->next->password,word);
	taill->next->ID=ID;
}

if (p==NULL)
{
 taill=(struct userL *)malloc(sizeof(struct userL));
 p=taill;
 p->next=NULL;
  strcpy(taill->name,user);
  strcpy(taill->password,word);
  taill->ID=ID;
}

    saver_user(p);
	printf("\t\t\tusername=%s    \n",user);

	printf("\t\t\tpassword=%s    \n\n",word);
	if(ID==1)
	 printf("\t\t\t权    限:管理员    \n");
	else if(ID==0)
     printf("\t\t\t权    限:普通用户    \n");
	 

	getch();

  return ID;

}

//保存用户记录
void saver_user(struct userL * p)
{
	 FILE *fp;
	 struct user stu;
	 struct userL *head=p;

	 fp=fopen("password.dat","wb");
	 if(fp==NULL)
		 
	 {
		 printf("不能打开!\n");
	     getch();
		 exit(1);
	 }
     while(head!=NULL)
			 {
				  strcpy(stu.name,head->name);
				  strcpy(stu.password,head->password);
				  stu.ID=head->ID;	
				   if(fwrite(&stu,sizeof(struct user),1,fp)!=1)
				   //if(fwrite(&stu,sizeof(struct user),1,fp)!=1)
				   {
				         printf("文件不能写入数据,请检查后从新输入。\n");
						 exit(1); //非正常退出
				   }
				  head=head->next;
			  }

	fclose(fp);	

}

⌨️ 快捷键说明

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