ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:79.27KB ,
资源ID:7798389      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7798389.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(文件管理实验4.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

文件管理实验4.docx

1、文件管理实验4文件管理-实验4江南大学物联网工程学院实验报告课程名称 操作系统 实验名称 文件系统实验 实验日期 2015/5/28 班级 计算机1206 姓名 王成义 学号 1030412612 仪器编号 实验报告要求 1实验目的 2实验要求 3实验步骤 4程序清单 5运行情况 5实验体会实验目的用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 实验要求要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、cl

2、ose、read、write等命令。 3实验步骤主目录操作:流程图:4程序清单编一个通过屏幕选择命令的文件管理系统,每屏要为用户提供足够的选择信息,不需要打入冗长的命令。#include #include #include /主文件结构体 struct MasterFile char username20; /用户名 char password20; /用户名密码 char flag; /标志 struct MasterFile *next; ; /用户文件结构体 struct UserFile int fnum; /文件编号 char fname20; /文件名 int flength; /

3、文件长度 char flag; /标志 char fpw20; /文件保护码 struct UserFile *link; ; /全局变量 int shoudsave; /存储标记 int usingnum; /当前用户标记 struct MasterFile MFD20; /主目录 struct UserFile UFD2020; /用户目录 /寻找主目录空闲区 struct MasterFile*MoveMFDToLast() for(int i=0;i20;i+) if(MFDi.flag=0) usingnum=i; return &MFDi; return NULL; /查找用户 s

4、truct MasterFile*SearchMFD(char str) for(int i=0;i20;i+) if(strcmp(str,MFDi.username)=0) usingnum=i; return &MFDi; return NULL; /寻找用户目录空闲区 struct UserFile *MoveUFDToLast() for(int i=0;i20;i+) if(UFDusingnumi.flag=0) return &UFDusingnumi; return NULL; /查找用户文件 struct UserFile *SearchUFD(int num) for(i

5、nt i=0;i20;i+) if(UFDusingnumi.fnum=num) return &UFDusingnumi; return NULL; /删除用户文件目录 void LeftMoveUFD(int num) for(int i=0;i20;i+) if(UFDusingnumi.fnum=num) for(int j=i;jusername,str1); strcpy(p-password,str2); p-flag=1; printf(%d,MFDusingnum.flag); p-next=NULL; shoudsave=1; /存储标记 else /旧用户登录 while

6、(1) printf(请输入你的用户名:); /输入用户名 scanf(%s,&str3); p=SearchMFD(str3); if(p=NULL) printf(对不起,你输入的用户名不存在!n); printf(继续(y)还是放弃(n)?); scanf(%s,&flag3); if(flag3=y) continue; else printf(你已退出了系统!n); exit(1); else while(1) printf(请输入口令:); /输入口令 scanf(%s,&str4); if(strcmp(str4,p-password)!=0) printf(对不起,你输入的口令

7、不正确,请重新输入.n); continue; else break; break; /菜单 void menu() printf(n*); printf(t1列文件目录ttttt2创建文件n); printf(t3删除文件ttttt4读文件n); printf(t5写文件tttttt0退出系统n); printf(*n); /列文件目录 void Dir() if(MFDusingnum.next=0) printf(目前你不存在任何文件!n); else for(int i=0;ilink=(struct UserFile*)fp; /设置用户目录 MFDusingnum.next=(st

8、ruct MasterFile*)&UFDusingnum0; strcpy(f-fname,str1); strcpy(f-fpw,str2); f-fnum=num; f-flength=0; f-flag=1; fclose(fp); shoudsave=1; /设置存储标记 printf(文件已创建!n); /删除文件 void Delete() struct UserFile *f; int num; printf(请输入你要删除的文件编号:); scanf(%d,&num); f=SearchUFD(num); /查找用户文件 if(f=NULL) printf(你要删除的文件不存

9、在!n); else LeftMoveUFD(num); /删除用户文件目录 printf(文件已删除!n); shoudsave=1; /设置存储标记 /读文件 void Read() char ch; struct UserFile *f; FILE *fp; int num; printf(请输入你要读的文件的编号:); scanf(%d,&num); f=SearchUFD(num); /查找文件 if(f=NULL) printf(你输入的文件不存在!n); else if(fp=fopen(f-fname,r)=NULL) /打开指定文件 printf(不能打开该文件!n); ex

10、it(0); ch=fgetc(fp); /输出文件内容 while(ch!=EOF) putchar(ch); ch=fgetc(fp); printf(n); fclose(fp); /关闭文件 printf(文件已读完毕!n); /写文件 void Write() char ch; struct UserFile *f; FILE *fp; int num; printf(请输入你要写的文件的编号:); scanf(%d,&num); f=SearchUFD(num); /查找文件 if(f=NULL) printf(你输入的文件不存在!n); else if(fp=fopen(f-fn

11、ame,wr)=NULL) /打开指定文件 printf(不能打开该文件!n); exit(0); printf(请按字符输入内容(以#表示结束符); /写入文件 scanf(%s,&ch); while(ch!=#) fwrite(&ch,1,1,fp); scanf(%s,&ch); fclose(fp); /关闭文件 shoudsave=1; /设置存储标记 printf(文件写入完毕!n); /保存 void Save() FILE *fpm,*fpu; int flag=1,count=0; fpm=fopen(F:MasterFile.txt,wb); /打开主文件 if(fpm=

12、NULL) printf(n提示:重新打开主文件信息文件时发生错误!n); exit(1); for(int i=0;i20;i+) fwrite(&MFDi,sizeof(struct MasterFile),1,fpm); /保存主文件目录信息 fclose(fpm); printf(主文件目录信息保存完毕!n); fpu=fopen(F:UserFile.txt,wb); /打开用户文件 if(fpu=NULL) printf(n提示:重新打开用户目录信息文件时发生错误!n); exit(1); for(int j=0;j20;j+) /保存用户文件目录信息 fwrite(&UFDj,s

13、izeof(struct UserFile),20,fpu); fclose(fpu); printf(用户文件目录信息保存完毕!n); /主函数 int main() printf(nntt*ttn); printf(tttt实验四 文件管理n); printf(tt*ttn); printf(nnnttttt计算机1206n); printf(ttttt王成义n); printf(ttttt1030412612n); printf(ttttt完成时间:2015/5/28nnnn); printf(ttttWelcomenn); FILE *fpm,*fpu; /文件指针 int sel;

14、char ch; char jian; printf(tttt文件管理系统nttttn); fpm=fopen(D:MasterFile.txt,rb); /打开主文件目录信息文件 if(fpm=NULL) printf(n提示:主文件目录信息文件还不存在,是否创建?(y/n)n); scanf(%s,&jian); if(jian=y|jian=Y) fpm=fopen(D:MasterFile.txt,wb); /创建主文件目录的文件 else exit(0); fpu=fopen(D:UserFile.txt,rb); /打开用户文件目录信息文件 if(fpu=NULL) printf(

15、n提示:用户文件目录信息文件还不存在,是否创建?(y/n)n); scanf(%s,&jian); if(jian=y|jian=Y) fpu=fopen(D:UserFile.txt,wb); /创建用户文件目录的文件 else exit(0); printf(文件正在打开,请稍等.); for(int i=0;i20;i+) /读取主文件目录信息 fread(&MFDi,sizeof(struct MasterFile),1,fpm); /将文件的内容放入接点中 fclose(fpm); / 关闭文件 while(!feof(fpu) /读取用户目录文件信息 for(int i=0;i20

16、;i+) if(fread(&UFDi0,sizeof(struct UserFile),20,fpu) /将文件的内容放入接点中 MFDi.next=(struct MasterFile*)&UFDi0; fclose(fpu); /关闭文件 printf(n文件已导入完毕!n); Login(); /用户登录 while(1) /菜单操作 menu(); printf(请你选择操作:); scanf(%d,&sel); if(sel=0) /保存文件信息 if(shoudsave=1) getchar(); printf(n资料已经改动,是否将改动保存到文件中(y/n)?n); scanf

17、(%c,&ch); if(ch=y|ch=Y) Save(); printf(n你已经退出系统,再见!n); break; switch(sel) case 1:Dir(); break; /列文件目录 case 2:Create(); break; /创建文件 case 3:Delete(); break; /删除文件 case 4:Read(); break; /读文件 case 5:Write(); break; /写文件 default: printf(你输的选项有误,请重新输入!n); break; system(PAUSE); return 0;5运行情况6实验体会 通过编写和调试此次文件系统,加深了对各种文件操作命令的实质内容和执行过程的了解。对文件系统有了更深的了解。教师评价 优良 中及格不及格教师签名日期

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1