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

📄 function.h

📁 一个典型的小区消息管理系统
💻 H
📖 第 1 页 / 共 2 页
字号:
	message(INFO,"正在读取用户信息.......",WC);
	display(head);
    message(INFO,"请输入你要删除的用户名称:",NULL);
	gets(uname);
	gp=head->glink;
	  while(gp)
       {
	     up=gp->ulink;
         while(up)
             {if(!strcmp(uname,up->user_name))
		       {   
			       if(up==gp->ulink)
		           {
		             gp->ulink=up->next;
					 gp->b--;
					 //save_delete_group_info(head->glink,adpt->a);

					 free(up);
				     message(INFO,"该用户已删除!",WC);
					 for(i=0;i<adpt->num;i++)
					 {
                           if(strcmp(uname,adpt->user[i])==0)
						   {
							   for(j=i;j<adpt->num;j++)
								   strcpy(adpt->user[j],adpt->user[j+1]);
						        break;
						   }
					 }
					 adpt->num--;
					 save_system_info(adpt);
					 return 1;
		           }
		           else
				   {
			       p->next=up->next;
                   gp->b--;
				    save_delete_group_info(head->glink,adpt->a);
				   free(up);
				   for(i=0;i<adpt->num;i++)
					 {
                           if(strcmp(uname,adpt->user[i])==0)
						   {
							   for(j=i;j<adpt->num;j++)
								   strcpy(adpt->user[j],adpt->user[j+1]);
						        break;
						   }
					 }
					 adpt->num--;
					 save_system_info(adpt);
				   message(INFO,"该用户已删除!",WC);
				   return 1;
				   }
		       }
		        p=up;
		        up=up->next;
             }
		 
         gp=gp->glink;
	  }
   if(!gp) 
   {
	   message(ERROR,"该用户名不存在,删除用户失败!",WC); 
   }  
   return 1;
 
 }


////////////////////////////////////////////////////////////////////////////////////////////////////////////// 



//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 


//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

int load_user_settings(User_Group *system_info_pt,char name[][MAX_USER_LEN] ,int a)//载入用户信息函数
{

	int i;
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	User_Item *user;
	User_Group *p;

	// 生成文件路径
	if(a==0) return 0;
   for(i=1;i<=a;i++)
	{
	   p=system_info_pt->glink;
	 create_i_dir(filepath, "user",name[i-1]);
     fp = fopen(filepath, "rb"); 
	
	 if(!(user= (User_Item *)malloc(sizeof(User_Item))))
			printf("错误\n");

     fread(user, sizeof(User_Item), 1, fp);
     while(p)
		 {if(!strcmp(p->group_name,user->gname))
        	 { user->next=p->ulink;
			   p->ulink=user;
			   break;
			  }
          p=p->glink;
		 }
   }
   fclose(fp);
   return 1;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
int load_usergr_settings(User_Group *system_info_pt,int a)//载入用户组信息函数
{
	int i;
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	User_Group *useg;
	
	

	// 生成文件路径
	create_i_dir(filepath, "usergroup", "ghhg");
    fp = fopen(filepath, "rb"); 
	for(i=1;i<=a;i++)
	{
		if(!(useg= (User_Group *)malloc(sizeof(User_Group))))
			printf("错误\n");

                fread(useg, sizeof(User_Group), 1, fp);
				
                system_info_pt->glink=useg;
				system_info_pt=useg;
	}		
	if(a)
				{
					system_info_pt->glink=NULL;

				}
	

	fclose(fp);
	return 1;
} 



//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 



int create_group(User_Group *head,admin *gecd)//创建用户组函数
{
     CLS;
     User_Group *p,*pt,*ps;
     pt=head->glink;
     p=(User_Group *)malloc(sizeof(User_Group));
     message(INFO,"请输入新用户组的名称:",NULL);
     scanf("%s",p->group_name);
     while(pt)
	 {
       if(!(strcmp(pt->group_name,p->group_name)))
	   {
         message(ERROR,"该用户组已存在,请重新创建",WC);
         return 1;
	   }
	   ps=pt;
       pt=pt->glink;
	 }
     if(!pt)
	 {
     ps->glink=p;
	 p->glink=NULL;
     p->ulink=NULL;
     p->b=0;
	 gecd->a++;
     save_system_info(gecd);
     save_group_info(p);
    message(INFO,"创建用户组成功,返回上层菜单",WC);
	 }
return 1;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 




//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
int delete_group(User_Group *head,admin *gecd)//删除用户组函数
{
   CLS;
   User_Group *p,*pt,*ps;
   char gname[MAX_USER_LEN];
   int i=1;
   char choice;
   p=head->glink;
   pt=head->glink;
   message(INFO,"正在读取用户组信息........",W);
   while(p)                    //输出存在的用户组序列
   {
     printf("【%d】:用户组%s\n",i++,p->group_name);
            p=p->glink;
   }
   message(INFO,"请输入要删除的用户组名称:",NULL);
   scanf("%s",gname);
   while(pt)
	 {
          if(!(strcmp(pt->group_name,gname)))
	   {
            message(WARN,"若删除该组,则组中用户的信息将丢失.",NULL);
            message(WARN,"你确认要删除该用户组吗?(Y/N)",NULL);
            choice = getch();
	        if (('y' == choice) || ('Y' == choice))
            {
              if(pt==head->glink)
			  {
			   message(TIP,"该组含有系统配置文件,不能删除!",WC);
			   return 1;
			  }
			  else
              ps->glink=pt->glink;
			  gecd->num-=pt->b;
			  free(pt);
			  message(INFO,"删除用户组成功,返回上层菜单",WC);
              gecd->a--;
			  save_system_info(gecd); 
              save_delete_group_info(head->glink,gecd->a);



			  break;
            }
			else 
			message(INFO,"删除用户组取消",WC);	 
			return 1;
            
	   }
		   ps=pt;
           pt=pt->glink;
          
	 }
   if(!pt)
   {
    message(ERROR,"该用户组不存在,删除组失败",WC);
   }
   return 1;

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
/*int change_user_group(User_Group *head,admin *adpt)//更改用户组函数
 {
	 CLS;
	User_Group *gp=head->glink;
	User_Item *up,*p;
	char uname[MAX_USER_LEN];
	while(gp)
    {
       printf("用户组%s:\n",gp->group_name);
       up=gp->ulink;
       while(up)
	   {
          printf("用户%s",up->user_name);
          up=up->next;
       }
	  gp=gp->glink;
    } 

      message(INFO,"请输入你要转移的用户名称:",NULL);
	  gets(uname);
	  gp=head->glink;
	  while(gp)
       {
	     up=gp->ulink;
         while(up)
         {
			   if(!strcmp(uname,up->user_name))
				{   
			       if(up==gp->ulink)
		           {
		            gp->ulink=up->next;
					 
				     message(INFO,"该用户已从原组删除!",WC);
					 break;
					}
		           else
				   {
			         p->next=up->next;
				     message(INFO,"该用户已从原组删除!",WC);
					 break;
				   }
				 if(up)
				   {
                    if(!strcmp(uname,up->user_name))
					break;
				   } 
				 }
		           p=up;
		           up=up->next;
		     }
		 
             gp=gp->glink;
		 }
   if(!gp) 
   {
	   message(ERROR,"该用户名不存在,转移用户失败!",WC); 
   }  
   message(INFO,"请选择你要转入的组",WC);
   gets(uname);
   gp=head->glink;
   while(gp)
   {
	   if(strcmp(gp->group_name,uname)==0)
	   { 
		   p=gp->ulink;
	       gp->ulink=up;
		   up->next=p;
	   }
	   gp=gp->glink;
		   
   }
  if(!gp) 
   {
	   message(ERROR,"该用组不存在,转移用户失败!",WC); 
   }  
   
   return 1;
 
 }*/ 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
int send_user_message(User_Group *g)
{  
	char time[MAX_INFO_SMY_LEN],messg[MAX_USER_LEN],mess[MAX_USER_LEN],
		gname[MAX_INFO_SMY_LEN],uname[MAX_INFO_SMY_LEN];
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	User_Group *q=g->glink;
	User_Item *p;
	display(g);
    message(INFO,"请输入你要发信的人所属组",NULL);
	
	  scanf("%s",gname);
		while(q)
	{
		if(strcmp(q->group_name,gname)==0&&(q->b)>0)
		{
			message(INFO,"此用户组存在且有用户发送有效",NULL);
			break;
		}
		q=q->glink;
	}
		if(!q)
		{
			message(INFO,"此用户组不存在,发信失败",NULL);
		    return 0;
		}
		p=q->ulink;

	message(INFO,"请输入你要发送的用户",NULL);
	scanf("%s",uname);
	while(p)
	{
		if(strcmp(p->user_name,uname)==0)
    	message(INFO,"此用户存在发送有效",NULL);
			break;
	}
	if(!p)
	{
		message(INFO,"此用户不存在发送无效",NULL);

	}
    message(INFO,"请输入你要发信时间",NULL);
	scanf("%s",time);
	message(INFO,"请输入你要发信的概要",NULL);
	scanf("%s",messg);
	build_i_dir("userinf",mess);
	message(INFO,"请输入你要发的内容",NULL);
	scanf("%s",mess);
	create_i_dir(filepath,"userinf",mess);

	fp=fopen(filepath, "wb");
	if(!fp) 
	{printf("can not open file\n"); return 0;}
	fputs(mess,fp);
	fclose(fp);
	(p->user_info_box)[p->count].flag=0;
    strcmp((p->user_info_box)[p->count].info_summary,messg);
	strcmp((p->user_info_box)[p->count].send_time,time);
	strcmp((p->user_info_box)[p->count].sender_name,"admin");
	save_user_info_b(p);
	return 1;
}
int send_group_message(User_Group *g)
{ 
	char time[MAX_INFO_SMY_LEN],messg[MAX_USER_LEN],mess[MAX_USER_LEN],
		gname[MAX_INFO_SMY_LEN];
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	User_Group *q=g->glink;
	User_Item *p;
	display(g);
    message(INFO,"请输入你要发信的人或组",NULL);
	scanf("%s",gname);
		while(q)
	{
		if(strcmp(q->group_name,gname)==0&&q->b)
		{
			message(INFO,"此用户存在发送有效",NULL);
			break;
		}
		q=q->glink;
	}
		if(!q)
		{
			message(INFO,"此用户组不存在或无用户,发信失败",NULL);
		    return 0;
		}

    message(INFO,"请输入你要发信时间",NULL);
	scanf("%s",time);
	message(INFO,"请输入你要发信的概要",NULL);
	scanf("%s",messg);
	build_i_dir("userinf",mess);
	message(INFO,"请输入你要发的内容",NULL);
	scanf("%s",mess);
	create_i_dir(filepath,"userinf",mess);
    fp=fopen(filepath, "wb");
	if(!fp) 
	{
		printf("can not open file\n"); return 0;}
	    fputs(mess,fp);
	    fclose(fp);
	    p=q->ulink;
	while(p)
	{
		(p->user_info_box)[p->count].flag=0;
		strcpy((p->user_info_box)[p->count].info_summary,messg);
		strcpy((p->user_info_box)[p->count].send_time,time);
		strcpy((p->user_info_box)[p->count].sender_name,"admin");
		save_user_info_b(p);
		p=p->next;
	}
	
			return 1;
}
int send_admin_message(admin *adpt,User_Item *use)
{   
	CLS;
	char time[MAX_INFO_SMY_LEN],messg[MAX_USER_LEN],mess[MAX_USER_LEN];
    FILE *fp;
	char filepath[MAX_MENU_LEN];
	message(INFO,"请输入你要发信时间",NULL);
	scanf("%s",time);
	message(INFO,"请输入你要发信的概要",NULL);
	scanf("%s",messg);
	build_i_dir("admininf",mess);
	message(INFO,"请输入你要发的内容",NULL);
	scanf("%s",mess);
	create_i_dir(filepath,"admininf",mess);
    fp=fopen(filepath, "wb");
	if(!fp) 
	{printf("can not open file\n"); return 0;}
	fputs(mess,fp);
	fclose(fp);
	
	strcpy((adpt->admin_info_box)[adpt->count].info_summary,messg);
	strcpy((adpt->admin_info_box)[adpt->count].send_time,time);
	strcpy((adpt->admin_info_box)[adpt->count].sender_name,use->user_name);
    adpt->count++;
	save_system_info(adpt);
	return 1;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

⌨️ 快捷键说明

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