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

📄 新建 文本文档 (3).txt

📁 一个典型的小区消息管理系统
💻 TXT
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define MAX_MENU_LEN  10
#define MAX_USER_LEN 10

typedef struct   
{ FILE *fp;
  char send_time[MAX_USER_LEN];
  char sender_name[MAX_USER_LEN];
  int  flag;//标记信件状态已读或未读(初始化为0)
}User_Rec_Box;

typedef struct user     //用户结构体定义
{char user_name[MAX_USER_LEN];
  char user_code[MAX_USER_LEN];
  int count;  //记录收到的信件数(初始化值为-1)
  char gname[MAX_USER_LEN];
  User_Rec_Box  *info_box[MAX_USER_LEN];
  

  struct user *next;//指向同一组的下一个用户
}User_Item;


//用户组结构体定义:
typedef struct usergroup
{char group_name[MAX_USER_LEN];//组号
 
 struct usergroup *glink; //指向下一个用户组的指针
 User_Item  *ulink; //指向组里的第一个用户的指针
 int b;  
}User_Group;

typedef struct
{
	char admin_mc[MAX_MENU_LEN];
	char admin_num[MAX_MENU_LEN];
	int  a;
	int  num;
	char user[100][MAX_USER_LEN];
		
} admin;

///////////////////////////////////////////////////////////////////////////////
int build_i_dir(char *dir_i, char *filename)
{
	char dir[128];
	FILE *fp;

	strcpy(dir, "md ");
	strcat(dir, dir_i);
	system(dir);

	if (!(NULL == filename))
	{
		strcpy(dir, dir_i);
		strcat(dir, "\\");
		strcat(dir, filename);
		fp = fopen(dir, "wb");
		fclose(fp);
	}

	return 1;
}
////////////////////////////////////////////////////////////////////////////////////////
int create_i_dir(char *finalpath, char *dir_i, char *filename)
{
	strcpy(finalpath, "");
	strcat(finalpath, dir_i);
	strcat(finalpath, "\\");
	strcat(finalpath, filename);

	return 1;
}
////////////////////////////////////////////////////////////////////////////////////////
int save_system_info(admin *system_info_pt)
{
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	
	// 取得文件路径
	create_i_dir(filepath, "cd","cd");
      fp = fopen(filepath, "rb+");		// 随机读写使用 rb+ 方式打开文件
	fwrite(system_info_pt, sizeof(admin), 1, fp);
	fclose(fp);

	return 1;
}
////////////////////////////////////////////////////////////////////////////////////////
int create_default_system_settings(admin *system_info_pt)
 {
	 strcpy(system_info_pt->admin_mc,"gecd");strcpy(system_info_pt->admin_num,"123");
     system_info_pt->a=1;
    save_system_info(system_info_pt);
	return 1;
          


 }
//////////////////////////////////////////////////////////////////////////////////////

int load_system_settings(admin *system_info_pt)
{
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	
	

	// 生成文件路径
	create_i_dir(filepath, "cd", "cd");
    fp = fopen(filepath, "rb"); 
	fread(system_info_pt, sizeof(admin), 1, fp);
	

	fclose(fp);
	return 1;
}
int save_group_info(User_Group  *system_info_pt)
{
	FILE *fp;
	char filepath[MAX_MENU_LEN];
	
	// 取得文件路径
	create_i_dir(filepath, "usergroup","ghhg");
      fp = fopen(filepath, "rb+");		// 随机读写使用 rb+ 方式打开文件
	fwrite(system_info_pt, sizeof(User_Group), 1, fp);
	fclose(fp);

	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, "usergroup",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;
}




////////////////////////////////////////////////////////////////////////////////
void main()
{
	admin gecd;
    User_Group head;//初始化用户链表
		 
	load_system_settings(&gecd);
	load_usergr_settings(&head,gecd.a);  //加载用户组头接点的信息
	 if( !load_user_settings(&head,gecd.user,gecd.a))
			 printf("ifj");


		
	
          
		  
		  


		 


  
     



}

⌨️ 快捷键说明

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