如何操作文件的打开关闭修改
的存在的文件计数
} MFD[N];
2.4 程序流程图
失败 重新登录
成功
用户命令
三 程序代码以及运行结果
系统管理员登陆以及验证:
bool login(char *name, char *pwd )
{
if( (strcmp(name, http://www.77cn.com.cn)==0) && (strcmp(pwd, admin.password)==0))
{ return true; }
return false;
}
创建新用户
bool NewUser(char user[])
{ int i=0;
while(strcmp(MFD[i].Username,"")!=0&&(i<N))//查看MFD,检测用户数是否已满
{ i++; }
if(i>=N){ //如果用户数已满
cout<<"用户数已满. 你必须删除一个用户才继续新建用户"<<endl;
return 0;
}
else{ //如果用户数未满,则建立新用户
strcpy(MFD[i].Username,user);
NOU++;//用户数加1
cout<<" 用户 "<<user<<" 创建成功 ."<<endl;//提示当前用户创建成功
cout<<" 系统现有的用户数 : "<<NOU<<endl;//显示系统现有的用户数
return 1;
}
}
注销用户
void Logout(int a)
{ //注销用户,清除所有文件的登记栏
string str;
char temp[5]="";
for(int i=0;i<L;i++)
{ //对 UFD中的文件名MFD[a].UserDirec[i].fname进行处理
str=static_cast<string>(MFD[a].UserDirec[i].fname);
strcpy(MFD[a].UserDirec[i].fname,str.substr(0,4).c_str());
for(int j=0;j<S;j++) //如果UFD中的文件名与UOF中的文件名相同
{//对UOF中的文件名UOF[i].fname进行处理
str=static_cast<string>(MFD[a].OpenUser[j].fname);
strcpy(MFD[a].OpenUser[j].fname,str.substr(0,4).c_str());
//清除UOF中信息
if(strcmp(MFD[a].UserDirec[i].fname,MFD[a].OpenUser[j].fname)==0)
{ strcpy(MFD[a].OpenUser[j].fname,""); //清除UOF中文件名
strcpy(MFD[a].OpenUser[j].proper,"");//清除UOF中文件属性
MFD[a].OpenUser[j].length=0; //清除UOF中记录长度
strcpy(MFD[a].OpenUser[j].state,""); //清除UOF中文件状态
MFD[a].OpenUser[j].read=0; //清除UOF中读指针
MFD[a].OpenUser[j].write=0; //清除UOF中写指针
}
}
//清除UFD中信息
strcpy(MFD[a].UserDirec[i].fname,"");//清除UFD中文件名
strcpy(MFD[a].UserDirec[i].proper,"");//清除UFD中文件属性
MFD[a].UserDirec[i].length=0;//清除UFD中记录长度
MFD[a].UserDirec[i].addr=0; //清除UFD中文件地址
}
strcpy(temp, MFD[a].Username);
strcpy(MFD[a].Username,"");//清除MFD中的用户
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库操作系统+文件管理+部分代码(2)在线全文阅读。
相关推荐: