操作系统文件资料资料资料管理系统设计实验_第1页
操作系统文件资料资料资料管理系统设计实验_第2页
操作系统文件资料资料资料管理系统设计实验_第3页
操作系统文件资料资料资料管理系统设计实验_第4页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用标准文案课程设计任务书专业计算机科学与技术年级09一、设计题目文件管理系统设计二、主要内容通过设计和调试一个简单的文件系统,主要是模拟文件操作命令的执行,来模拟文件管理 .三、具体要求设计一个支持 n 个用户的文件系统,每个用户可拥有多个文件;采用二级或二级以上的多级文件目录管理;对文件应设置存取控制保护方式,如“只能执行” 、“允许读”、“允许写”等;系统的外部特征应接近于真实系统, 可设置下述文件操作命令: 建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。通过键盘(或鼠标)使用该文件系统,系统应显示操作命令的执行结果。(2) 进度安排第一阶段 : 确定模块。

2、文件管理系统包括:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录这些功能。在程序中,为每个功能实现编写一个函数, ,如:第二阶段:编写程序代码用时 5 天。设计界面初始化模块,然后去实现每个模块的功能。第三阶段:发现问题及修改。用时2 天精彩文档实用标准文案第四阶段 : 答辩五、完成后应上交的材料课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录精彩文档实用标准文案一1二12.1.4.2.2.6三73.173.273.3103.4123.5133.616四18五19精彩文档实用标准文案一设计任务

3、分析在设计该文件管理系统时,设计多用户,以密码进入。在每个用户下建立文件,根据其结构体的元素有属性,名字,内容。利用这些元素去模拟文件的创建,删除,打开,修改属性。二系统设计2.1系统设计void check() /密码认证void createfile() /*创建文件操作 */void deletefile()/删除文件void openfile()/打开文件void modifyfile()/修改文件void copyfile()/复制void catalogue() /*目录管理子程序 */int init() /*初始化操作界面函数 */精彩文档实用标准文案开始选择用户Y退出N用户登

4、陆N成功 ?YY接收命令解析命令N消注?实现命令结束精彩文档实用标准文案AdministratorGuestflie1flie2flie1flie2edf_nameattf_cedf_nameattf_c2.2 数据结构说明本系统一共建立了Administrator和 Guest 两个用户,每个用户拥有结构体数组为 struct Flie fa8和 struct Flie fg8每个用户最多可建立8 个文件,每个文件对应一个文件模块;文件模块:struct Flieint ed;/判断是否正存放文件char f_name8; /文件名char f_c8;/存放文件内容int att ;/文件属

5、性 0 为只读 1 为只写/用于指向文件内容模块fa8,fg8;精彩文档实用标准文案三各核心模块设计及实现3.1 主函数通过 switch(i),当 case 1:/*创建文件 */case 2:/*删除文件 */case 3:/打开文件case 4:/修改文件case 5:/复制、粘贴文件case 6:/*文件目录管理 */3.2 创建文件:创建文件时,先比较名字是否已经被占用,把名字逐个与之前建立的文件名比较。如果没被用,就建立文件,选择属性,写入内容。void createfile() /*创建文件操作 */int handle=1,a,check,i,j,h;char name8,pi

6、n8;while(1)printf("不能超过 8 个文件 !n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("*创建文件 *n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("请输入所要创建的文件名称:n");精彩文档实用标准文案scanf("%s",name);if(x

7、=1)for( i=0;i<8;i+)for(h=0;h<8;h+)pinh=fai.f_nameh;check=strcmp(pin,name);if (check!=0)elseprintf("n创建错误 !.文件已经存在 !n");printf("n创建错误 !.文件已经存在 !n");Sleep(1000);handle=0;getchar();break;精彩文档实用标准文案if(k>=8)printf("已经超过 8 个文件 !");break;if(handle=1)for(h=0;h<8;h+)

8、if(fah.ed=0)strcpy(fgh.f_name,name);while(1)printf("n请选择文件属性(0. 只读 - 1.只写):");scanf("%d",&a);getchar();if(a=0|a=1)fah.att=a;printf("n创建文件成功 .n");精彩文档实用标准文案fah.ed=1;k=k+1;printf("K=%dn",k);break;elseprintf("错误 !请重新输入 :n");printf("请输入文件内容: &qu

9、ot;);scanf("%s",fah.f_c);printf( "输入内容成功 !");break;break;3.3 删除文件 :通过比较文件名找到文件,把空字符复制到文件里面实现删除。精彩文档实用标准文案void deletefile() /删除文件; char name8,same8; int i,check,h;while(1)if(x=1)printf("请输入要删除的文件:");scanf("%s",name);for( i=0;i<8;i+)for(h=0;h<8;h+)sameh=fa

10、i.f_nameh;check=strcmp(same,name);if (check!=0)printf("文件不存在 !");break;精彩文档实用标准文案elsestrcpy(fai.f_name,"");strcpy(fai.f_c,"");fai.ed=0;printf("删除成功 !");getchar();break;break;3.4 打开文件:通过记录文件是的I 值,即文件的排序找到文件,输出文件的内容。void openfile() /打开文件;while(1)int i;精彩文档实用标准文案

11、if(x=1)printf("请输入 K 的值 :");scanf("%d",&i);if(i<=k)printf("文件 %s:%sn",fai.f_name,fai.f_c);elseprintf("请重新输入I");break;3.5 修改文件:void modifyfile() /修改文件;int i,h,j;char name8,name18;printf("1.修改文件名称 n2. 修改文件属性 n");scanf("%d",&i);if(x

12、=1)精彩文档实用标准文案for(h=0;h<k;h+)printf("文件名为 :%sn",fah.f_name);printf("文件属性 :%dn",fah.att);if(i=1)printf("请输入要修改的文件名称:");scanf("%s",name);for(h=0;h<k;h+) if(strcmp(name,fah.f_name)=0) printf("请输入新的文件名: "); scanf("%s",name1); strcpy(fah.f_

13、name,name1);printf("修改成功 !");Sleep(1000);break;elseprintf("没找到相应的文件!");精彩文档实用标准文案if(i=2)printf("请输入要修改的文件名称:");scanf("%s",name);for(h=0;h<k;h+) if(strcmp(name,fah.f_name)=0) Sleep(1000);printf(" 请选择: 1. 只读 /2. 只写 n"); scanf("%d",&j);

14、if(j=1)fah.att=0;elsefah.att =1;printf("修改成功 !");Sleep(1000);break;精彩文档实用标准文案3.6 复制文件void copyfile() /复制 / 粘贴文件;int h;char name8;int j;if(x=1)for(h=0;h<k;h+)printf("文件名为: %sn",fah.f_name);printf("文件属性 :%dn",fah.att);printf("文件内容 :%sn",fah.f_c);printf("

15、*n");printf("请输入需要复制的文件名:");scanf("%s",name);for(h=0;h<k;h+) if(strcmp(name,fah.f_name)=0)printf("复制文件成功 !n");精彩文档实用标准文案if(k<8)printf("进行粘贴吗?请选择:1.YES 2.N0Tn");scanf("%d",&j);if(j=1)fak.att=fah.att;fak.ed=fah.ed;strcpy(fak.f_c,fah.f_c)

16、;strcpy(fak.f_name,fah.f_name);printf("粘贴成功 :n");k=k+1;Sleep(1000);for(h=0;h<k;h+)printf("文件名为: %sn",fah.f_name);printf("文件属性 :%dn",fah.att);printf("文件内容 :%sn",fah.f_c);printf("文件状态: %dn",fah.ed);printf("*n");Sleep(2000);精彩文档实用标准文案break;

17、四运行结果精彩文档实用标准文案五. 课程设计心得体会这次课程设计让我感触颇深,过程曲折。首先,开始的时候对文件管理系统的认识不深,以至于所要编程的方向与题目要求发生了偏差,直到时间不多的时候才发现问题,这时候只能对程序略加修改。其实多点与老师,同学交流,完全可以避免这种情况发生。另外,对数据结构的理解不够深刻,基本功不扎实,编程起来比较吃力。以后我会努力学好基础编程科目,努力改正不耐心,对基础不够重视的缺点。还要多练习,多与同学老师沟通,这一点太重要了。这直接关系到自己的团队协作能力的培养。源代码:精彩文档实用标准文案#include <stdio.h>#include <s

18、tdlib.h>/*不容易归类的标准函数库*/#include <string.h>#include <time.h>#include<windows.h>struct Flieint ed;/判断是否正存放文件char f_name8; /文件名char f_c8;/存放文件内容int att ;/文件属性 0 为只读 1 为只写/用于指向文件内容模块fa8,fg8;int x,k=0;/全局钥匙void check() /密码认证int check,a=1;char pin1="a" /此处设定用户口令精彩文档实用标准文案cha

19、r pin20;while(a)printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("*文件管理系统用户登录*n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("请选择用户 :n");printf("1.Administrator2.Guest3.退出系统 n");scanf("%d"

20、,&x);getchar();if(x=3)system("cls");break;printf("密码:");scanf ("%s",pin);check=strcmp(pin,pin1);if (check!=0)精彩文档实用标准文案system("cls");printf("n密码错误 !请重新输入 :n");elsesystem("cls");a=0;void createfile() /*创建文件操作 */int handle=1,a,check,i,j,h

21、;char name8,pin8,f_c8;while(1) printf("不能超过 8 个文件 !n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("*创建文件 *n");printf("* * * * * * * * * * * * * * * * * * * * * *精彩文档实用标准文案* * * * * *n");printf("请输入所要创建的文件名称:n");scanf(&qu

22、ot;%s",name);if(x=1)for( i=0;i<8;i+)for(h=0;h<8;h+)pinh=fai.f_nameh;check=strcmp(pin,name);if (check!=0)elseprintf("n创建错误!.文件已经存在 !n");printf("n创建错误!.文件已经存在 !n");Sleep(1000);handle=0;getchar();break;精彩文档实用标准文案if(k>=8)printf("已经超过 8 个文件 !");break;if(handle=

23、1)for(h=0;h<8;h+)if(fah.ed=0)strcpy(fah.f_name,name);while(1)printf("n请选择文件属性 (0. 只读 -1.只写 ):");scanf("%d",&a);getchar();if(a=0|a=1)fah.att=a;printf("n创建文件成功 .n");fah.ed=1;k=k+1;精彩文档实用标准文案printf("K=%dn",k);break;elseprintf("错误 !请重新输入 :n");prin

24、tf("请输入文件内容: ");scanf("%s",fah.f_c);printf( "输入内容成功 !");break;break;if(x=2)for( i=0;i<8;i+)for(j=0;j<8;j+)pinj=fgi.f_namej;精彩文档实用标准文案check=strcmp(pin,name);if (check!=0)elseprintf("n创建错误 ! 文件已经存在 !");handle=0;break;if(handle=1)for(h=0;h<8;h+)if(fah.ed

25、=0)strcpy(fgh.f_name,name);while(1)printf("n请选择文件属性 (0. 只读 -1.只写 ):");scanf("%d",&a);getchar();if(a=0|a=1)精彩文档实用标准文案fgh.att=a;printf("n创建文件成功 .n");fgh.ed=1;k=k+1;printf("K=%dn",k);break;elseprintf("错误 !请重新输入 :n");printf("请输入文件内容: ");sca

26、nf("%s",fgh.f_c);printf( "输入内容成功 !");break;break;精彩文档实用标准文案void deletefile() /删除文件; char name8,same8; int i,check,h;while(1)if(x=1)printf("请输入姓名 :");scanf("%s",name);for( i=0;i<8;i+)for(h=0;h<8;h+)sameh=fai.f_nameh;check=strcmp(same,name);if (check!=0)pr

27、intf("文件不存在 !");break;elsestrcpy(fai.f_name,"");精彩文档实用标准文案strcpy(fai.f_c,"");fai.ed=0;printf("删除成功 !");getchar();break;break;if(x=2)printf("请输入姓名 :");scanf("%s",name);for( i=0;i<8;i+)for(h=0;h<8;h+)sameh=fgi.f_nameh;check=strcmp(same,

28、name);if (check!=0)printf("文件不存在 !");精彩文档实用标准文案break;elsestrcpy(fgi.f_name,"");strcpy(fgi.f_c,"");fgi.ed=0;printf("删除成功 !");getchar();break;break;void openfile() /打开文件;while(1)int i;精彩文档实用标准文案if(x=1)printf("请输入 K 的值 :");scanf("%d",&i);i

29、f(i<=k)printf("文件 %s:%sn",fai.f_name,fai.f_c);elseprintf("请重新输入 I");break;if(x=2)printf("请输入 i 的值 :");scanf("%d",&i);if(i<=k)printf(" 文件 %s:%sn",fgi.f_name,fgi.f_c); elseprintf("请重新输入 I");break;getchar();精彩文档实用标准文案void modifyfile(

30、) /修改文件;int i,h,j;char name8,name18;printf("1.修改文件名称 n2. 修改文件属性 n");scanf("%d",&i);if(x=1)for(h=0;h<k;h+)printf("文件名为 :%sn",fah.f_name);printf("文件属性 :%dn",fah.att);if(i=1)printf("请输入要修改的文件名称:");scanf("%s",name);for(h=0;h<k;h+) if(

31、strcmp(name,fah.f_name)=0) printf("请输入新的文件名: "); scanf("%s",name1); strcpy(fah.f_name,name1);printf("修改成功 !");精彩文档实用标准文案Sleep(1000);break;elseprintf("没找到相应的文件 !");if(i=2)printf(" 请输入要修改的文件名称 :"); scanf("%s",name);for(h=0;h<k;h+) if(strcm

32、p(name,fah.f_name)=0) Sleep(1000);printf("请选择: 1. 只读 /2. 只写 n");scanf("%d",&j);if(j=1)fah.att=0;elsefah.att =1;printf("修改成功 !");Sleep(1000);精彩文档实用标准文案break;if(x=2)for(h=0;h<k;h+)printf("文件名为: %sn",fgh.f_name);printf("文件属性 :%dn",fgh.att);if(i=1

33、)printf("请输入要修改的文件名称:");scanf("%s",name);for(h=0;h<k;h+) if(strcmp(name,fgh.f_name)=0) printf("请输入新的文件名: "); scanf("%s",name1);strcpy(fgh.f_name,name1);printf("修改成功 !");Sleep(1000);break;精彩文档实用标准文案elseprintf("没找到相应的文件 !");if(i=2)printf(&

34、quot; 请输入要修改的文件名称 :"); scanf("%s",name);for(h=0;h<k;h+) if(strcmp(name,fgh.f_name)=0)printf(" 请选择: 1. 只读 /2. 只写 n"); scanf("%d",&j);if(j=1)fgh.att=0; elsefgh.att =1;printf("修改成功 !");Sleep(1000);break;精彩文档实用标准文案elseprintf("没找到相应的文件 !");voi

35、d copyfile() /复制 / 粘贴文件;int h;char name8;int j;if(x=1)for(h=0;h<k;h+)printf("文件名为: %sn",fah.f_name);printf("文件属性 :%dn",fah.att);printf("文件内容 :%sn",fah.f_c);printf("*n");精彩文档实用标准文案printf("请输入需要复制的文件名:");scanf("%s",name);for(h=0;h<k;h+)

36、 if(strcmp(name,fah.f_name)=0)printf("复制文件成功 !n");if(k<8)printf("进行粘贴吗?请选择 :1.YES 2.N0Tn");scanf("%d",&j);if(j=1)fak.att=fah.att;fak.ed=fah.ed;strcpy(fak.f_c,fah.f_c);strcpy(fak.f_name,fah.f_name);printf("粘贴成功 :n");k=k+1;Sleep(1000);for(h=0;h<k;h+)pr

37、intf("文件名为: %sn",fah.f_name);printf("文件属性 :%dn",fah.att);printf("文件内容 :%sn",fah.f_c);精彩文档实用标准文案printf("文件状态: %dn",fah.ed);printf("*n");Sleep(2000);break;if(x=2)for(h=0;h<k;h+)printf("文件名为: %sn",fgh.f_name);printf("文件属性 :%dn",fg

38、h.att);printf("文件内容 :%sn",fgh.f_c);printf("*n");printf("请输入需要复制的文件名:");scanf("%s",name);for(h=0;h<k;h+)精彩文档实用标准文案 if(strcmp(name,fgh.f_name)=0)printf("复制文件成功 !n");if(k<8)printf("进行粘贴吗?请选择 :1.YES 2.N0Tn");scanf("%d",&j);i

39、f(j=1)fgk.att=fgh.att;fgk.ed=fgh.ed;strcpy(fgk.f_c,fgh.f_c);strcpy(fgk.f_name,fgh.f_name);printf("粘贴成功 :n");Sleep(1000);k=k+1;for(h=0;h<k;h+)printf("文件名为: %sn",fgh.f_name);printf("文件属性 :%dn",fgh.att);printf("文件内容 :%sn",fgh.f_c);printf("文件状态: %dn",fgh.ed);printf("*n");Sleep(3000);精彩文档实用标准文案break;void catalogue()/*目录管理子程序 */int x,a=1,h;while(a)/*目录管理操作 */printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("*目录管理 *n");printf("* * * * * * * * * * * * *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论