📄 复件 模拟文件系统6.c
字号:
#include <stdio.h>
#include <stdlib.h> /*不容易归类的标准函数库*/
#include <string.h>
struct Flie
{
int ed; //判断是否正存放文件
char f_name[8]; //文件名
char f_c[8]; //存放文件内容
int att ; // 文件属性 0为只读 1为只写 //用于指向文件内容模块
}fa[8],fg[8];
int x; //全局钥匙
void check() //密码认证
{
int check,a=1;
char pin1[]="admin"; //此处设定用户口令
char pin[20];
while(a)
{
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * 文件管理系统用户登录 *\n");
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("请选择用户:\n");
printf(" 1.Administrator 2.Guest 3.退出系统\n");
while(1)
{
scanf("%d",&x);
getchar();
if(x>3)
printf("\n选择错误! 请重新输入:\n");
else
break;
}
if(x==3)
{
system("cls");
break;
}
printf("密 码:");
scanf ("%s",pin);
check=strcmp(pin,pin1);
if (check!=0)
{
system("cls");
printf("\n密码错误! 请重新输入:\n");
}
else
{
system("cls");
a=0;
}
}
}
void createfile() /*创建文件操作*/
{
int handle=1,a,check,i,j,h;
char name[8],pin[8];
while(1)
{
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * 创建文件 *\n");
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("请输入所要创建的文件名称:\n");
scanf("%s",name);
if(x==1)
{
for( i=0;i<8;i++)//判断是否有相同的文件
{
for(j=0;j<8;j++)
pin[j]=fa[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
printf("\n创建错误!文件已经存在!");
handle=0;
getchar();
break;
}
}
if(handle==1)
{
for(h=0;h<8;h++)
if(fa[h].ed==0)
{
strcpy(fa[h].f_name,name);
while(1)
{
printf("\n请选择文件属性(0.只读 - 1.只写):");
scanf("%d",&a);
getchar();
if(a==0||a==1)
{
fa[h].att=a;
printf("\n创建文件成功.\n");
fa[h].ed=1;
break;
}
else
printf("错误! 请重新输入:\n");
}
break;
}
}
getchar();
break;
}
if(x==2)
{
for( i=0;i<8;i++)
{
for(j=0;j<8;j++)
pin[j]=fg[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
printf("\n创建错误!文件已经存在!");
handle=0;
break;
}
}
if(handle==1)
{
for(h=0;h<8;h++)
if(fa[h].ed==0)
{
strcpy(fg[h].f_name,name);
while(1)
{
printf("\n请选择文件属性(0.只读 - 1.只写):");
scanf("%d",&a);
getchar();
if(a==0||a==1)
{
fg[h].att=a;
printf("\n创建文件成功.\n");
fg[h].ed=1;
getchar();
break;
}
else
printf("错误! 请重新输入:\n");
}
break;
}
}
break;
}
}
}
void deletefile() /*删除文件的操作*/
{
int status=0,j=0,i,check,choice;
char name[8],pin[8];
while(1)
{
system("cls");
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * 删除文件 *\n");
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
if(x==1)
{
printf("请输入所要删除的文件名称:\n");
scanf("%s",name); /*输入要删除的文件名*/
printf("\n请确认(0 - 1):");
scanf("%d",&choice);
getchar();
if(choice==1)
{
for( i=0;i<8;i++)
{
for(j=0;j<8;j++)
pin[j]=fa[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
status=1;
if(fa[i].att==0) /*获取文件的状态,是否存在并且是否只读*/
j=1;
if(j==1)
{
printf("\n删除错误! 文件为只读文件!"); //只读文件
}
else if(j!=0) //从目录中删除一个文件
{
strcpy(fa[i].f_name," ");
strcpy(fa[i].f_c," ");
fa[i].ed=0;
printf("\n删除文件成功.");
}
getchar();
break;
}
}
if(status!=1)
{
printf("\n删除错误! 所要删除的文件不存在!\n");/*文件不存在*/
getchar();
}
}
break;
}
if(x==2)
{
printf("请输入所要删除的文件名称:\n");
scanf("%s",name); /*输入要删除的文件名*/
printf("\n请确认(0 - 1):");
scanf("%d",&choice);
getchar();
if(choice==1)
{
for( i=0;i<8;i++)
{
for(j=0;j<8;j++)
pin[j]=fg[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
status=1;
if(fg[i].att==0) /*获取文件的状态,是否存在并且是否只读*/
j=1;
if(j==1)
{
printf("\n删除错误! 文件为只读文件!"); //只读文件
}
else if(j!=0) //从目录中删除一个文件函数
{
strcpy(fg[i].f_name," ");
strcpy(fg[i].f_c," ");
fg[i].ed=0;
printf("\n删除文件成功.");
break;
}
getchar();
break;
}
}
if(status!=1)
{
printf("\n删除错误! 所要删除的文件不存在!");/*文件不存在*/
getchar();
}
}
}
break;
}
}
void openfile() /*打开文件操作*/
{
int i,a=0,j,check;
char name[8],pin[8];
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * 打开文件 *\n");
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("请输入您所要打开文件的名称: \n");
scanf("%s",name);
getchar();
if(x==1)
{
for( i=0;i<8;i++)
{
for(j=0;j<8;j++)
pin[j]=fa[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
printf("%s",fa[i].f_c);
a=1;
}
}
if(a!=1)
printf("文件不存在!");
getchar();
}
else if(x==2)
{
for( i=0;i<8;i++)
{
for(j=0;j<8;j++)
pin[j]=fg[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
printf("%s",fg[i].f_c);
a=1;
}
}
if(a!=1)
printf("文件不存在!");
getchar();
}
}
void writefile() /*书写文件*/
{
int i,j,check,b=1;
char ch=0,a=0,name[8],c[8],pin[8];
while(b)
{
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * 书写文件 *\n");
printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("请输入要书写的文件的名称:\n");
scanf("%s",name);
if(x==1)
{
for( i=0;i<8;i++) /*获取文件的状态,是否存在*/
{
for(j=0;j<8;j++)
pin[j]=fa[i].f_name[j];
check=strcmp(pin,name);
if (check!=0){}
else
{
if(fa[i].att==0)
{
printf("书写错误!只读文件!\n");
a=1;
getchar();
getchar();
break;
}
printf("请输入文件的内容: \n");
scanf("%s",c);
strcpy(fa[i].f_c,c);
printf("书写文件成功.\n");
a=1;
b=0;
getchar();
getchar();
break;
}
break;
}
if(a!=1)
{
printf("文件不存在!");
getchar();
getchar();
break;
}
break;
}
getchar();
if(x==2)
{
for( i=0;i<8;i++) /*获取文件的状态,是否存在*/
{
for(j=0;j<8;j++)
pin[j]=fg[i].f_name[j];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -