洛阳理工学院操作系统实验报告.docx

上传人:b****6 文档编号:7055013 上传时间:2023-01-16 格式:DOCX 页数:9 大小:76.92KB
下载 相关 举报
洛阳理工学院操作系统实验报告.docx_第1页
第1页 / 共9页
洛阳理工学院操作系统实验报告.docx_第2页
第2页 / 共9页
洛阳理工学院操作系统实验报告.docx_第3页
第3页 / 共9页
洛阳理工学院操作系统实验报告.docx_第4页
第4页 / 共9页
洛阳理工学院操作系统实验报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

洛阳理工学院操作系统实验报告.docx

《洛阳理工学院操作系统实验报告.docx》由会员分享,可在线阅读,更多相关《洛阳理工学院操作系统实验报告.docx(9页珍藏版)》请在冰豆网上搜索。

洛阳理工学院操作系统实验报告.docx

洛阳理工学院操作系统实验报告

阳理工学院实验报告用纸

计算机系B090501班姓名袁乐平学号B09050103成绩

实验

名称

文件管理

同组人

日期

12.6

一、实验目的

通过这次实验,掌握文件系统的用户管理,掌握普通文件、目录文件管理的的基本原理。

二、实验原理

使用文件系统的用户要通过用户名、密码的验证,对不同用户设置不同(自己相应)的子目录,如图(a)所示。

MFD是主文件目录,Power是存放用户名、密码的文件,简单起见此处用数组代替;UFD0,UFD1,…,UFD9是10个用户目录,用户0的目录(UFD0)下包含文件f1.txt,…,f7.c。

图(b)是创建目录、文件以及删除目录、文件所用的存储数据结构。

三、实验内容

#include

#include

#include

#include

typedefstructuser

{

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;i<5;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;i<5;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(i<2&&strcmp(power[i].UName,name)!

=0)

i++;

if(i<5)

{

printf("请输入密码:

");

gets_s(password);

while(strcmp(power[i].Password,password)!

=0&&j<3)

{

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;j<3;j++){

p=(File*)malloc(sizeof(File));

printf("请输入所包含的文件:

");

gets_s(p->FName);

s->next=p;

p->next=NULL;

s=p;

}

}

else

printf("没有该用户名!

\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;

else

printf("没有该文件名!

\n");

}

else

printf("没有该用户名!

\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;

}

}

}

四、原始数据记录

输入数据:

用户名密码文件名

aaa111a1a2a3

bbb222b1b2b3

ccc333c1c2c3

ddd444d1d2d3

fff555f1f2f3

五、结论

预期的输出:

用户初始化:

创建文件:

(为了简洁,只截两个用户名的文件的创建)

删除文件:

(为了简洁,只截一个用户名的文件)

实际输出数据与预期的输出相同(不相同)

实际输出数据与预期的输出相同。

 

第页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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