文件管理实验4Word文件下载.docx

上传人:b****6 文档编号:20926090 上传时间:2023-01-26 格式:DOCX 页数:17 大小:79.27KB
下载 相关 举报
文件管理实验4Word文件下载.docx_第1页
第1页 / 共17页
文件管理实验4Word文件下载.docx_第2页
第2页 / 共17页
文件管理实验4Word文件下载.docx_第3页
第3页 / 共17页
文件管理实验4Word文件下载.docx_第4页
第4页 / 共17页
文件管理实验4Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

文件管理实验4Word文件下载.docx

《文件管理实验4Word文件下载.docx》由会员分享,可在线阅读,更多相关《文件管理实验4Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

文件管理实验4Word文件下载.docx

//文件长度

charfpw[20];

//文件保护码

structUserFile*link;

//全局变量

intshoudsave;

//存储标记

intusingnum;

//当前用户标记

structMasterFileMFD[20];

//主目录

structUserFileUFD[20][20];

//用户目录

//寻找主目录空闲区

structMasterFile*MoveMFDToLast()

{

for(inti=0;

i<

20;

i++){

if(MFD[i].flag==0)

usingnum=i;

return&

MFD[i];

}

returnNULL;

}

//查找用户

structMasterFile*SearchMFD(charstr[]){

if(strcmp(str,MFD[i].username)==0){

return&

}

//寻找用户目录空闲区

structUserFile*MoveUFDToLast(){

if(UFD[usingnum][i].flag==0)

UFD[usingnum][i];

//查找用户文件

structUserFile*SearchUFD(intnum){

if(UFD[usingnum][i].fnum==num)

//删除用户文件目录

voidLeftMoveUFD(intnum){

if(UFD[usingnum][i].fnum==num){

for(intj=i;

j<

19;

j++){

UFD[usingnum][i].flag=UFD[usingnum][i+1].flag;

UFD[usingnum][i].flength=UFD[usingnum][i+1].flength;

strcpy(UFD[usingnum][i].fname,UFD[usingnum][i+1].fname);

UFD[usingnum][i].fnum=UFD[usingnum][i+1].fnum;

strcpy(UFD[usingnum][i].fpw,UFD[usingnum][i+1].fpw);

UFD[usingnum][i].link=UFD[usingnum][i+1].link;

}

//用户登陆

voidLogin(){

charflag1,flag2,flag3;

charstr1[20],str2[20],str3[20],str4[20];

structMasterFile*p;

printf("

你是已有用户吗(y/n)?

"

);

scanf("

%s"

&

flag1);

if(flag1=='

n'

){//新用户登录

printf("

请创建新的用户:

(y/n)"

scanf("

flag2);

if(flag2=='

){

printf("

你已退出了系统!

\n"

exit

(1);

}else{

请输入你的用户名:

scanf("

str1);

请输入口令:

str2);

p=MoveMFDToLast();

strcpy(p->

username,str1);

password,str2);

p->

flag=1;

%d"

MFD[usingnum].flag);

next=NULL;

shoudsave=1;

}else{//旧用户登录

while

(1){

//输入用户名

str3);

p=SearchMFD(str3);

if(p==NULL){

printf("

对不起,你输入的用户名不存在!

继续(y)还是放弃(n)?

scanf("

flag3);

if(flag3=='

y'

)continue;

else{

printf("

exit

(1);

}

}else{

while

(1){

//输入口令

scanf("

str4);

if(strcmp(str4,p->

password)!

=0){

printf("

对不起,你输入的口令不正确,请重新输入.\n"

continue;

}elsebreak;

}break;

//菜单

voidmenu(){

\n********************************************************************************"

\t1列文件目录\t\t\t\t\t2创建文件\n"

\t3删除文件\t\t\t\t\t4读文件\n"

\t5写文件\t\t\t\t\t\t0退出系统\n"

********************************************************************************\n"

//列文件目录

voidDir(){

if(MFD[usingnum].next==0)

目前你不存在任何文件!

else{

for(inti=0;

if(UFD[usingnum][i].flag==1)

文件编号\t%d\t文件名\t%s\t文件长度\t%d\t保护码\t%s\n"

UFD[usingnum][i].fnum,UFD[usingnum][i].fname,UFD[usingnum][i].flength,UFD[usingnum][i].fpw);

//创建文件

voidCreate(){

FILE*fp;

intnum;

structUserFile*f;

charstr1[20],str2[20];

请输入你要创建的文件名:

//输入文件信息

请输入文件编号:

num);

请输入文件保护码:

fp=fopen(str1,"

w"

//创建文件

f=MoveUFDToLast();

//寻找用户目录空闲区

if(&

UFD[usingnum][0]==f)//连接主目录

MFD[usingnum].next=(structMasterFile*)f;

f->

link=(structUserFile*)fp;

//设置用户目录

MFD[usingnum].next=(structMasterFile*)&

UFD[usingnum][0];

strcpy(f->

fname,str1);

fpw,str2);

fnum=num;

flength=0;

fclose(fp);

shoudsave=1;

//设置存储标记

文件已创建!

//删除文件

voidDelete(){

请输入你要删除的文件编号:

f=SearchUFD(num);

//查找用户文件

if(f==NULL){

你要删除的文件不存在!

}else{

LeftMoveUFD(num);

//删除用户文件目录

文件已删除!

//读文件

voidRead(){

charch;

请输入你要读的文件的编号:

//查找文件

if(f==NULL){

你输入的文件不存在!

if((fp=fopen(f->

fname,"

r"

))==NULL){//打开指定文件

不能打开该文件!

exit(0);

ch=fgetc(fp);

//输出文件内容

while(ch!

=EOF){

putchar(ch);

ch=fgetc(fp);

//关闭文件

文件已读完毕!

//写文件

voidWrite(){

请输入你要写的文件的编号:

wr"

请按字符输入内容(以'

#'

表示结束符)"

//写入文件

ch);

='

fwrite(&

ch,1,1,fp);

文件写入完毕!

//保存

voidSave(){

FILE*fpm,*fpu;

intflag=1,count=0;

fpm=fopen("

F:

\\MasterFile.txt"

"

wb"

//打开主文件

if(fpm==NULL){

\n提示:

重新打开主文件信息文件时发生错误!

exit

(1);

i++)

MFD[i],sizeof(structMasterFile),1,fpm);

//保存主文件目录信息

fclose(fpm);

主文件目录信息保存完毕!

fpu=fopen("

\\UserFile.txt"

//打开用户文件

if(fpu==NULL){

重新打开用户目录信息文件时发生错误!

for(intj=0;

j++)//保存用户文件目录信息

UFD[j],sizeof(structUserFile),20,fpu);

fclose(fpu);

用户文件目录信息保存完毕!

//主函数

intmain(){

\n\n\t\t*********************************************\t\t\n"

\t\t\t\t实验四文件管理\n"

\t\t*********************************************\t\t\n"

\n\n\n\t\t\t\t\t计算机1206\n"

\t\t\t\t\t王成义\n"

\t\t\t\t\t1030412612\n"

\t\t\t\t\t完成时间:

2015/5/28\n\n\n\n"

\t\t\t\tWelcome\n\n"

//文件指针

intsel;

charjian;

\t\t\t\t文件管理系统\n\t\t\t\t\n"

D:

rb"

//打开主文件目录信息文件

if(fpm==NULL){

主文件目录信息文件还不存在,是否创建?

(y/n)\n"

jian);

if(jian=='

||jian=='

Y'

fpm=fopen("

//创建主文件目录的文件

elseexit(0);

//打开用户文件目录信息文件

用户文件目录信息文件还不存在,是否创建?

fpu=fopen("

//创建用户文件目录的文件

文件正在打开,请稍等..."

i++)//读取主文件目录信息

fread(&

//将文件的内容放入接点中

//关闭文件

while(!

feof(fpu)){//读取用户目录文件信息

if(fread(&

UFD[i][0],sizeof(structUserFile),20,fpu))//将文件的内容放入接点中

MFD[i].next=(structMasterFile*)&

UFD[i][0];

\n文件已导入完毕!

Login();

//用户登录

while

(1){//菜单操作

menu();

请你选择操作:

sel);

if(sel==0){//保存文件信息

if(shoudsave==1){

getchar();

\n资料已经改动,是否将改动保存到文件中(y/n)?

%c"

if(ch=='

||ch=='

Save();

\n你已经退出系统,再见!

break;

switch(sel){

case1:

Dir();

//列文件目录

case2:

Create();

case3:

Delete();

//删除文件

case4:

Read();

//读文件

case5:

Write();

//写文件

default:

你输的选项有误,请重新输入!

system("

PAUSE"

return0;

}

5.运行情况

6.实验体会

通过编写和调试此次文件系统,加深了对各种文件操作命令的实质内容和执行过程的了解。

对文件系统有了更深的了解。

教师评价

及格

不及格

教师签名

日期

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

当前位置:首页 > 高等教育 > 工学

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

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