📄 新建 文本文档 (3).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 + -