📄 lwd.cpp
字号:
for(t=0; t<Num; t++)
{
if(fil_list[t].name[0])
{
printf("%4d %-10s %10ld %8ld %s \n", t+1,fil_list[t].name,fil_list[t].size,fil_list[t].editime,fil_list[t].handlers);
}
}
for( ; ; )
{
choice = menu_list();
switch(choice)
{
case 1: more();
break;
case 2: list_editime();
break;
case 3: list_size();
break;
case 0: ok();
}
}
}
void save() //文件保存
{
FILE *fp;
register int i;
if((fp=fopen("data.dat", "wb"))==NULL)
printf("载入文件失败!\n");
for(i=0; i<Num; i++)
if(*fil_list[i].name)
if(fwrite(&fil_list[i], sizeof(struct fil), 1, fp)!=1)
printf("保存文件失败!\n");
system("cls");
printf("*************************");
printf("*系统:成功保存数据文件!*");
printf("*************************");
fclose(fp);
}
void load() //载入
{
FILE *fp;
register int i;
if((fp=fopen("data.dat", "rb"))==NULL)
printf("载入文件失败!\n");
init_list();
for(i=0; i<Num; i++)
if(fread(&fil_list[i], sizeof(struct fil), 1, fp)!=1)
{
if(feof(fp))
break;
printf("载入文件失败!\n");
}
system("cls");
printf("\n * 系统:成功载入数据文件! *");
fclose(fp);
}
void help() //帮助
{
printf("\n * *");
printf("\n * *");
printf("\n * ==================================================================== *");
printf("\n * *");
printf("\n * *");
}
int menu() //主菜单
{
char str[10];
int c;
printf("\n * ============================================== *");
printf("\n * 1.添加 2.修改 3.删除 4.列表 5.保存 6.载入 7.查找 8.清理 9.帮助 0.退出 *");
printf("\n * ============================================== *");
do{
printf("\n \2 请输入您的选择:");
scanf ("%s",str);
c = atoi(str);
} while(c<0 || c>9);
system("cls");
return c;
}
int menu_list() //列表菜单
{
char str[10];
int c;
printf("\n * ===================================================================== *");
printf("\n * 1.查看文件详细信息 2.按文件修改日期排列 3.按文件大小排列 0.返回 *");
printf("\n * ===================================================================== *");
do{
printf("\n \2 请输入您的选择:");
scanf ("%s",&str);
c = atoi(str);
} while(c<0 || c>3);
return c;
}
int find() //检查容量
{
register int t;
for(t=0; fil_list[t].name[0]&&t<Num; t++);
if(t==Num)
return -1;
return t;
}
int menu_search() //查找菜单
{
char str[80];
int c;
printf("\n * ======================================================================= *");
printf("\n * 欢迎使用 文件管理系统之'文件查找功能' *");
printf("\n * ======================================================================= *");
printf("\n *1.按文件名查找\n 2.按修改日期查找\n 3.按过期日期查找\n 4.按类型查找 *");
printf("\n *5.按文件说明内容查找(关键字查找)\n 6.按操作用户名称查找\n 0.返回主菜单 *");
printf("\n *=========================================================================*");
do{
printf("\n \2 请输入您的选择:");
scanf ("%s",str);
c = atoi(str);
} while(c<0 || c>6);
return c;
}
void search_name() //查找模块1
{
register int t,flag=0;
char sname[20];
system("cls");
printf("\n * ================================================================= *");
printf("\n * 欢迎使用 文件管理系统之文件查找功能 *");
printf("\n * ================================================================= *");
printf("\n *\2 请输入您要查找文件的名称:");
scanf ("%s",&sname);
system("cls");
printf("\n * 找到以下文件符合你的查找要求: *");
printf("\n * ================================================================= *");
for(t=0; t<Num; t++)
{
if(strcmp(fil_list[t].name,sname)==0)
{printf("\n 编号:%-4d 名称:%-10s\n", t+1,fil_list[t].name);
flag=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 查找结果: 没有找到相应文件! *");
printf("\n * *");
}
else more();
}
void search_editime() //查找模块2
{
register int t,flag=0;
unsigned long int time_a,time_b;
system("cls");
printf("\n * ================================================================ *");
printf("\n * 欢迎使用 文件管理系统之文件查找功能 *");
printf("\n * ================================================================ *");
printf("\n \2 请输入查找文件的修改日期范围(用8位数字表示,如2004年8月3日即为20040803)");
printf("\n \1 首先请输入开始日期:");
scanf ("%d",&time_a);
printf(" \2 然后请输入结束日期:");
scanf ("%d",&time_b);
system("cls");
printf("\n * 找到以下文件符合你的查找要求: *");
printf("\n * ================================================================ *");
for(t=0; t<Num; t++)
{
if(fil_list[t].editime>=time_a&&fil_list[t].editime<=time_b)
{printf("\n 编号:%-4d 名称:%-10s\n", t+1,fil_list[t].name);
flag=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 查找结果: 没有找到相应文件! *");
printf("\n * *");
}
else more();
}
void search_overdue() //查找模块3
{
register int t,flag=0;
unsigned long int time_a,time_b;
system("cls");
printf("\n * ================================================================ *");
printf("\n * 欢迎使用 文件管理系统之文件查找功能 *");
printf("\n * ================================================================ *");
printf("\n \2 请输入查找文件的过期日期范围(用8位数字表示,如2004年8月3日即为20040803)");
printf("\n \1 首先请输入开始日期:");
scanf ("%d",&time_a);
printf(" \2 然后请输入结束日期:");
scanf ("%d",&time_b);
system("cls");
printf("\n * 找到以下文件符合你的查找要求: *");
printf("\n * =============================================================== *");
for(t=0; t<Num; t++)
{
if(fil_list[t].overdue>=time_a&&fil_list[t].overdue<=time_b)
{printf("\n 编号:%-4d 名称:%-10s\n", t+1,fil_list[t].name);
flag=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 查找结果: 没有找到相应文件! *");
printf("\n * *");
}
else more();
}
void search_type() //查找模块4
{
register int t,flag=0;
char stype[20];
system("cls");
printf("\n * ======================================================= *");
printf("\n * 欢迎使用 文件管理系统之文件查找功能 *");
printf("\n * ======================================================= *");
printf("\n \2 请输入您要查找文件的类型:");
scanf ("%s",stype);
system("cls");
printf("\n * 找到以下文件符合你的查找要求: *");
printf("\n * ======================================================= *");
for(t=0; t<Num; t++)
{
if(strcmp(fil_list[t].type,stype)==0)
{printf("\n 编号:%-4d 名称:%-10s\n", t+1,fil_list[t].name);
flag=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 查找结果: 没有找到相应文件! *");
printf("\n * *");
}
else more();
}
void search_handlers() //查找模块5
{
register int t,flag=0;
char shandlers[20];
system("cls");
printf("\n * ================================================================ *");
printf("\n * 欢迎使用 文件管理系统之文件查找功能 *");
printf("\n * ================================================================ *");
printf("\n \2 请输入您要查找文件的操作用户名称:");
scanf ("%s",shandlers);
system("cls");
printf("\n * 找到以下文件符合你的查找要求: *");
printf("\n * ================================================================ *");
for(t=0; t<Num; t++)
{
if(strcmp(fil_list[t].handlers,shandlers)==0)
{printf("\n 编号:%-4d 名称:%-10s\n", t+1,fil_list[t].name);
flag=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 查找结果: 没有找到相应文件! *");
printf("\n * *");
}
else more();
}
void search_content() //关键字查找模块
{
register int t,flag=0,flag1;
int a,b,c,d=0;
char scontent[20];
system("cls");
printf("\n * ================================================================ *");
printf("\n * 欢迎使用 文件管理系统之文件查找功能 *");
printf("\n * ================================================================ *");
printf("\n \6 文件说明内容关键字查找,请输入关键字或词(8个字以内):");
scanf ("%s",scontent);
system("cls");
printf("\n * 找到以下文件符合你的查找要求: *");
printf("\n * ================================================================ *");
for(b=0;scontent[b]!='\0';) {b++;}
for(t=0; t<Num; t++)
for(a=0,flag1=0;fil_list[t].content[a]!='\0';a++)
{
d=0;
for(c=0; c<b; c++) {if(scontent[c]==fil_list[t].content[a+c]) d++;}
if(d==b&&flag1==0)
{printf("\n 编号:%-4d 名称:%-10s\n", t+1,fil_list[t].name);
flag=1;flag1=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 查找结果: 没有找到相应文件! *");
printf("\n * *");
}
else more();
}
void overdue_del() //文件清理
{
register int t,a,flag=0;
unsigned long int soverdue;
system("cls");
printf("\n * ================================================================ *");
printf("\n * 欢迎使用 文件管理系统之[过期文件清理功能 *");
printf("\n * ================================================================ *");
printf("\n * 根据当前计算机时间,系统查找出以下文件已经过期: *");
printf("\n * ================================================================ *");
soverdue=time();
for(t=0; t<Num; t++)
{
if(fil_list[t].overdue<soverdue&&fil_list[t].overdue>0)
{printf("\n 编号:%-4d 名称:%-10s", t+1,fil_list[t].name);
flag=1;}
}
if(flag==0)
{
system("cls");
printf("\n * *");
printf("\n * 清理结果: 没有过期文件! *");
printf("\n * *");
}
else
{
printf("\n\n 请键入1,删除全部过期文件(谨慎操作,不可恢复) , 或键入其它取消操作: ");
scanf("%d",&a);
if (a==1)
{
for(t=0; t<Num; t++)
{ if(fil_list[t].overdue<=soverdue&&fil_list[t].overdue>0) fil_list[t].name[0]='\0';}
save();
load();
}
else system("cls");
}
}
void search() //查找
{
char ch;
for( ; ; )
{
ch = menu_search();
switch(ch)
{
case 1: search_name();
break;
case 2: search_editime();
break;
case 3: search_overdue();
break;
case 4: search_type();
break;
case 6: search_handlers();
break;
case 5: search_content();
break;
case 0: ok();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -