




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书专业 计算机科学与技术 年级 09 一、 设计题目 文件管理系统设计二、 主要内容通过设计和调试一个简单的文件系统,主要是模拟文件操作命令的执行,来模拟文件管理.三、具体要求设计一个支持n个用户的文件系统,每个用户可拥有多个文件;采用二级或二级以上的多级文件目录管理;对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。通过键盘(或鼠标)使用该文件系统,系统应显示操作命令的执行结果。(2)进度安排第一阶段:确定模块。文件管理系统包括
2、:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录这些功能。在程序中,为每个功能实现编写一个函数,如:第二阶段:编写程序代码用时5天。设计界面初始化模块,然后去实现每个模块的功能。第三阶段:发现问题及修改。用时2天第四阶段:答辩五、完成后应上交的材料课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。六、总评成绩指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日目 录一设计任务分析1二系统分析及设计12.1. 系统设计.42.2. 数据结构说明.6三各核心模块的设计及实现7 3.1主函数73.2创建文件73.3删除文件103.4打开文件12 3
3、.5修改文件133.6复制文件16四运行结果18五心得体会19一设计任务分析在设计该文件管理系统时,设计多用户,以密码进入。在每个用户下建立文件,根据其结构体的元素有属性,名字,内容。利用这些元素去模拟文件的创建,删除,打开,修改属性。二系统设计 2.1系统设计void check() /密码认证void createfile() /*创建文件操作*/void deletefile()/删除文件void openfile()/打开文件void modifyfile()/修改文件void copyfile()/复制void catalogue() /*目录管理子程序*/ int init() /
4、*初始化操作界面函数*/消注?成功? 开始用户登陆ny接收命令 解析命令实现命令 结束n选择用户退出nyyadministratorguestflie1 flie2 flie1 flie2 ed f_name att f_c文件名文件属性文件内容判断存储状态ed f_name att f_c2.2数据结构说明本系统一共建立了administrator 和guest两个用户,每个用户拥有结构体数组为struct flie fa8和 struct flie fg8每个用户最多可建立8个文件,每个文件对应一个文件模块;文件模块:struct flieint ed; /判断是否正存放文件char f_
5、name8; /文件名char f_c8; /存放文件内容int att ; / 文件属性 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 han
6、dle=1,a,check,i,j,h;char name8,pin8;while(1) printf(不能超过8个文件!n);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf( * 创建文件 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf(请输入所要创建的文件名称:n);scanf(%s,name);if(x=1)for( i=0;i8;i+) for(h=0;h=8)printf(已经超过8个
7、文件!);break; if(handle=1)for(h=0;h8;h+)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; else printf(错误! 请重新输入:n);printf(请输入文件内容:);scanf(%s,fah.f_c);printf( 输入内容成功!);br
8、eak;break;3.3删除文件:通过比较文件名找到文件,把空字符复制到文件里面实现删除。void deletefile() /删除文件; char name8,same8; int i,check,h; while(1) if(x=1) printf(请输入要删除的文件:); scanf(%s,name); for( i=0;i8;i+)for(h=0;h8;h+) sameh=fai.f_nameh;check=strcmp(same,name); if (check!=0)printf(文件不存在!); break; elsestrcpy(fai.f_name, ); strcpy(f
9、ai.f_c, );fai.ed=0; printf(删除成功!);getchar();break; break; 3.4打开文件:通过记录文件是的i值,即文件的排序找到文件,输出文件的内容。void openfile() /打开文件; while(1)int i;if(x=1) printf(请输入k的值:); scanf(%d,&i); if(i=k) printf(文件%s:%sn,fai.f_name,fai.f_c); else printf(请重新输入i); break;3.5修改文件:void modifyfile() /修改文件;int i,h,j; char name8,na
10、me18; printf(1.修改文件名称n2.修改文件属性n); scanf(%d,&i); if(x=1) for(h=0;hk;h+) printf(文件名为:%sn,fah.f_name); printf(文件属性:%dn,fah.att); if(i=1) printf(请输入要修改的文件名称:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fah.f_name)=0) printf(请输入新的文件名:); scanf(%s,name1); strcpy(fah.f_name,name1); printf(修改成功!); sleep(
11、1000); break; else printf(没找到相应的文件!); if(i=2) printf(请输入要修改的文件名称:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fah.f_name)=0) sleep(1000); printf(请选择:1.只读/2.只写n); scanf(%d,&j); if(j=1) fah.att=0; else fah.att =1; printf(修改成功!); sleep(1000); break; 3.6复制文件void copyfile() /复制/粘贴文件;int h;char name8;
12、int j;if(x=1) for(h=0;hk;h+) printf(文件名为:%sn,fah.f_name); printf(文件属性:%dn,fah.att); printf(文件内容:%sn,fah.f_c); printf(*n); printf(请输入需要复制的文件名:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fah.f_name)=0) printf(复制文件成功!n); if(k8) printf(进行粘贴吗?请选择:1.yes 2.n0tn); scanf(%d,&j); if(j=1) fak.att=fah.att;
13、 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;hk;h+) printf(文件名为:%sn,fah.f_name); printf(文件属性:%dn,fah.att); printf(文件内容:%sn,fah.f_c); printf(文件状态:%dn,fah.ed); printf(*n); sleep(2000); break; 四运行结果五.课程设计心得体会 这次课程设计让我感触颇深,过程曲折。首先,开始
14、的时候对文件管理系统的认识不深,以至于所要编程的方向与题目要求发生了偏差,直到时间不多的时候才发现问题,这时候只能对程序略加修改。其实多点与老师,同学交流,完全可以避免这种情况发生。另外,对数据结构的理解不够深刻,基本功不扎实,编程起来比较吃力。以后我会努力学好基础编程科目,努力改正不耐心,对基础不够重视的缺点。还要多练习,多与同学老师沟通,这一点太重要了。这直接关系到自己的团队协作能力的培养。源代码:#include #include /*不容易归类的标准函数库*/#include #include #include struct flieint ed; /判断是否正存放文件char f_n
15、ame8; /文件名char f_c8; /存放文件内容int att ; / 文件属性 0为只读 1为只写 /用于指向文件内容模块fa8,fg8;int x,k=0; /全局钥匙void check() /密码认证int check,a=1;char pin1=a; /此处设定用户口令char pin20; while(a)printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf( * 文件管理系统用户登录 *n);printf(* * * * * * * * * * * * * * * * * * * *
16、 * * * * * * * *n);printf(请选择用户:n);printf( 1.administrator 2.guest 3.退出系统n);scanf(%d,&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;ch
17、ar name8,pin8,f_c8;while(1) printf(不能超过8个文件!n);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf( * 创建文件 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf(请输入所要创建的文件名称:n);scanf(%s,name);if(x=1)for( i=0;i8;i+) for(h=0;h=8)printf(已经超过8个文件!);break; if(ha
18、ndle=1)for(h=0;h8;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; else printf(错误! 请重新输入:n);printf(请输入文件内容:);scanf(%s,fah.f_c);printf( 输入内容成功!);break;break;if(x=2)
19、for( i=0;i8;i+)for(j=0;j8;j+) pinj=fgi.f_namej;check=strcmp(pin,name); if (check!=0) else printf(n创建错误!文件已经存在!);handle=0;break; if(handle=1) for(h=0;h8;h+)if(fah.ed=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);
20、fgh.ed=1; k=k+1;printf(k=%dn,k); break; else printf(错误! 请重新输入:n); printf(请输入文件内容:);scanf(%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;i8;i+)for(h=0;h8;h+) sameh=fai.f_nameh;check=strcmp(s
21、ame,name); if (check!=0)printf(文件不存在!); 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;i8;i+)for(h=0;h8;h+) sameh=fgi.f_nameh;check=strcmp(same,name); if (check!=0)printf(文件不存在!); break; elsestrcpy(f
22、gi.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); if(i=k) printf(文件%s:%sn,fai.f_name,fai.f_c); else printf(请重新输入i); break;if(x=2) printf(请输入i的值:); scanf(%d,&i); if(i=k) printf(文件%s:%sn,fgi.f_nam
23、e,fgi.f_c); else printf(请重新输入i); break; getchar();void modifyfile() /修改文件;int i,h,j; char name8,name18; printf(1.修改文件名称n2.修改文件属性n); scanf(%d,&i); if(x=1) for(h=0;hk;h+) printf(文件名为:%sn,fah.f_name); printf(文件属性:%dn,fah.att); if(i=1) printf(请输入要修改的文件名称:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,
24、fah.f_name)=0) printf(请输入新的文件名:); scanf(%s,name1); strcpy(fah.f_name,name1); printf(修改成功!); sleep(1000); break; else printf(没找到相应的文件!); if(i=2) printf(请输入要修改的文件名称:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fah.f_name)=0) sleep(1000); printf(请选择:1.只读/2.只写n); scanf(%d,&j); if(j=1) fah.att=0; els
25、e fah.att =1; printf(修改成功!); sleep(1000); break; if(x=2) for(h=0;hk;h+) printf(文件名为:%sn,fgh.f_name); printf(文件属性:%dn,fgh.att); if(i=1) printf(请输入要修改的文件名称:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fgh.f_name)=0) printf(请输入新的文件名:); scanf(%s,name1); strcpy(fgh.f_name,name1); printf(修改成功!); sleep
26、(1000); break; else printf(没找到相应的文件!); if(i=2) printf(请输入要修改的文件名称:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fgh.f_name)=0) printf(请选择:1.只读/2.只写n); scanf(%d,&j); if(j=1) fgh.att=0; else fgh.att =1; printf(修改成功!); sleep(1000); break; else printf(没找到相应的文件!); void copyfile() /复制/粘贴文件;int h;char n
27、ame8;int j;if(x=1) for(h=0;hk;h+) printf(文件名为:%sn,fah.f_name); printf(文件属性:%dn,fah.att); printf(文件内容:%sn,fah.f_c); printf(*n); printf(请输入需要复制的文件名:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fah.f_name)=0) printf(复制文件成功!n); if(k8) printf(进行粘贴吗?请选择:1.yes 2.n0tn); scanf(%d,&j); if(j=1) fak.att=fah
28、.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;hk;h+) printf(文件名为:%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;hk;h+) printf(文件名为
29、:%sn,fgh.f_name); printf(文件属性:%dn,fgh.att); printf(文件内容:%sn,fgh.f_c); printf(*n); printf(请输入需要复制的文件名:); scanf(%s,name); for(h=0;hk;h+) if(strcmp(name,fgh.f_name)=0) printf(复制文件成功!n); if(k8) printf(进行粘贴吗?请选择:1.yes 2.n0tn); scanf(%d,&j); if(j=1) fgk.att=fgh.att; fgk.ed=fgh.ed; strcpy(fgk.f_c,fgh.f_c);
30、 strcpy(fgk.f_name,fgh.f_name); printf(粘贴成功:n); sleep(1000); k=k+1; for(h=0;hk;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(* * * * * *
31、* * * * * * * * * * * * * * * * * * * * * *n); printf( * 目录管理 *n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf( 1.显示目录 2.退出目录n);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf(请选择:);scanf(%d,&x);while(x2)printf(n错误! 请重新输入:);scanf(%d,&x);switch(x) case 1: /*显示目录操作*/ system(cls);printf(n文件目录为:n); for(h=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五育课题申报书模板
- 德育教改课题申报书
- 体育跨学科课题申报书
- 小学课题申报评审书范文
- 地理教学课题申报书
- 代签离婚协议合同范例
- 劣质柴油采购合同范本
- 传媒经纪人合同范本
- 吊车租赁机械合同范例
- 农村油漆购买合同范本
- 2025-2030年中国电船行业运行状况及发展潜力分析报告
- 2025年黑龙江农垦职业学院单招职业倾向性测试题库完整版
- 2025年时事政治考题及参考答案(350题)
- 2025年02月黄石市残联专门协会公开招聘工作人员5人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 1.1 青春的邀约 课件 2024-2025学年七年级道德与法治下册
- 取水许可申请书范本
- 蚌埠介绍-蚌埠简介课件(经典版)
- GB/T 15561-2024数字指示轨道衡
- 探究烟花爆竹知识产权-洞察分析
- 网络保险风险评估-洞察分析
- 呼吸机湿化的护理
评论
0/150
提交评论