您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 洛阳理工学院操作系统实验报告
阳理工学院实验报告用纸计算机系B090501班姓名袁乐平学号B09050103成绩实验名称文件管理同组人日期12.6一、实验目的通过这次实验,掌握文件系统的用户管理,掌握普通文件、目录文件管理的的基本原理。二、实验原理使用文件系统的用户要通过用户名、密码的验证,对不同用户设置不同(自己相应)的子目录,如图(a)所示。MFD是主文件目录,Power是存放用户名、密码的文件,简单起见此处用数组代替;UFD0,UFD1,…,UFD9是10个用户目录,用户0的目录(UFD0)下包含文件f1.txt,…,f7.c。图(b)是创建目录、文件以及删除目录、文件所用的存储数据结构。三、实验内容#includestdio.h#includemalloc.h#includestdlib.h#includestring.htypedefstructuser{charUName[8];//用户名charPassword[10];//密码}Access;typedefstructFilenode{charFName[10];structFilenode*next;}File;typedefstructMFDnode{charUName[8];structMFDnode*right;File*down;}DFlink;Accesspower[10];DFlink*head;voidinitPower(){inti;printf(请输入用户信息:\n);for(i=0;i5;i++){printf(请输入用户名:);gets_s(power[i].UName);printf(请输入密码:);gets_s(power[i].Password);}}voidinitHead(){inti;DFlink*m,*n;m=(DFlink*)malloc(sizeof(DFlink));m-right=NULL;m-down=NULL;head=m;for(i=0;i5;i++){n=(DFlink*)malloc(sizeof(DFlink));strcpy_s(n-UName,power[i].UName);m-right=n;n-right=NULL;n-down=NULL;m=n;}}intlogging(){charname[8],password[10];inti=0;intj=0;printf(请输入登录的用户名:);gets_s(name);while(i2&&strcmp(power[i].UName,name)!=0)i++;if(i5){printf(请输入密码:);gets_s(password);while(strcmp(power[i].Password,password)!=0&&j3){printf(密码不正确,请重新输入:);gets_s(password);j++;}if(j==3){printf(密码输入错误超过三次,禁止输入\n);return-1;}else{returni;}}else{return-1;}}voidfileCreate(intindex){charname1[8];DFlink*n;File*s,*p;intj;strcpy_s(name1,power[index].UName);n=head-right;while(n!=NULL&&strcmp(n-UName,name1)!=0)n=n-right;if(n!=NULL){s=(File*)malloc(sizeof(File));n-down=s;s-next=NULL;for(j=0;j3;j++){p=(File*)malloc(sizeof(File));printf(请输入所包含的文件:);gets_s(p-FName);s-next=p;p-next=NULL;s=p;}}elseprintf(没有该用户名!\n);}voidfileDelete(intindex){charname1[8];charname2[8];DFlink*n;File*s,*p;strcpy_s(name1,power[index].UName);n=head-right;while(n!=NULL&&strcmp(n-UName,name1)!=0)n=n-right;if(n!=NULL){printf(请输入要删除的文件名:);gets_s(name2);s=n-down;p=s-next;while(p!=NULL&&strcmp(p-FName,name2)!=0){s=s-next;p=p-next;}if(p!=NULL)s-next=p-next;elseprintf(没有该文件名!\n);}elseprintf(没有该用户名!\n);}voidprint(intindex){charname[8];DFlink*n;File*s,*p;strcpy_s(name,power[index].UName);n=head-right;while(n!=NULL&&strcmp(n-UName,name)!=0)n=n-right;if(n!=NULL){s=n-down;p=s-next;printf(包含的文件为:);while(p!=NULL){printf(%s,p-FName);p=p-next;}}}voidmain(){intf=1;chara;intj;while(f){printf(\n);printf(i用户初始化\n);printf(c创建文件\n);printf(d删除文件\n);printf(e退出\n);printf(请选择:);scanf_s(%c,&a);getchar();switch(a){case'i':initPower();initHead();break;case'c':j=logging();fileCreate(j);print(j);break;case'd':j=logging();fileDelete(j);print(j);break;case'e':f=0;break;}}}四、原始数据记录输入数据:用户名密码文件名aaa111a1a2a3bbb222b1b2b3ccc333c1c2c3ddd444d1d2d3fff555f1f2f3五、结论预期的输出:用户初始化:创建文件:(为了简洁,只截两个用户名的文件的创建)删除文件:(为了简洁,只截一个用户名的文件)实际输出数据与预期的输出相同(不相同)实际输出数据与预期的输出相同。第页
本文标题:洛阳理工学院操作系统实验报告
链接地址:https://www.777doc.com/doc-5802177 .html