版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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");sca
7、nf("%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) else printf("n创建错误!.文件已经存在!n"); printf("n创建错误!.文件已经存在!n");sleep(1000);handle=0;getchar(); break;if(k>=8)printf("已经超过8个文件!");break; if(handle=1
8、)for(h=0;h<8;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(&q
9、uot;请输入文件内容:");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+)
10、sameh=fai.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;if(x=1
11、) 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,name18; printf("1.修改文件名称n2.修改文件属性n"); scanf("%d",&i); if(x=1)
12、 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_name,name
13、1); printf("修改成功!"); sleep(1000); break; else printf("没找到相应的文件!"); 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); if(j=1) fah.att
14、=0; else fah.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("*n"); printf(&q
15、uot;请输入需要复制的文件名:"); 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); strcpy(fak.f_name,
16、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 <stdlib.h> /*不容易归类的标准函数库*/#include <st
18、ring.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" /此处设定用户口令char pin20; while(a)printf("* * * * * * * *
19、 * * * * * * * * * * * * * * * * * * * *n");printf(" * 文件管理系统用户登录 *n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("请选择用户:n");printf(" 1.administrator 2.guest 3.退出系统n");scanf("%d",&x);getchar();if(x=3)system(&qu
20、ot;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;char name8,pin8,f_c8;while(1) printf("不能超
21、过8个文件!n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf(" * 创建文件 *n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("请输入所要创建的文件名称:n");scanf("%s",name);if(x=1)for( i=0;i<8;i+) for(h=0;h&
22、lt;8;h+) pinh=fai.f_nameh;check=strcmp(pin,name); if (check!=0) else printf("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+)if(fah.ed=0)strcpy(fah.f_name,name); while
23、(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( &qu
24、ot;输入内容成功!");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) else printf("n创建错误!文件已经存在!");handle=0;break; if(handle=1) for(h=0;h<8;h+)if(fah.ed=0)strcpy(fgh.f_name,name); while(1) printf("n请选择文件属性(0.只读 - 1.只写):&qu
25、ot;); 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; else printf("错误! 请重新输入:n"); printf("请输入文件内容:");scanf("%s",fgh.f_c);printf( "输入内容成功!");break;break; void del
26、etefile() /删除文件; 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)printf("文件不存在!"); break; elsestrcpy(fai.f_name," "); strcpy(fai
27、.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,name); if (check!=0)printf("文件不存在!"); break; elsestrcpy(fgi.f_name,"
28、; "); 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"); b
29、reak;if(x=2) printf("请输入i的值:"); scanf("%d",&i); if(i<=k) printf("文件%s:%sn",fgi.f_name,fgi.f_c); else printf("请重新输入i"); break; getchar();void modifyfile() /修改文件;int i,h,j; char name8,name18; printf("1.修改文件名称n2.修改文件属性n"); scanf("%d",&a
30、mp;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(strcmp(name,fah.f_name)=0) printf("请输入新的文件名:"); scanf("%s",name1); strcpy(f
31、ah.f_name,name1); printf("修改成功!"); sleep(1000); break; else printf("没找到相应的文件!"); 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); i
32、f(j=1) fah.att=0; else fah.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) printf("请输入要修改的文件名称:"); scanf("%s",name); for(h=0;h<k;h+) if(strcmp(name,fgh.f_na
33、me)=0) printf("请输入新的文件名:"); scanf("%s",name1); strcpy(fgh.f_name,name1); printf("修改成功!"); sleep(1000); break; else printf("没找到相应的文件!"); if(i=2) printf("请输入要修改的文件名称:"); scanf("%s",name); for(h=0;h<k;h+) if(strcmp(name,fgh.f_name)=0) print
34、f("请选择: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 name8;int j;if(x=1) for(h=0;h<k;h+) printf("文件名为:%sn",fah.f_name); prin
35、tf("文件属性:%dn",fah.att); printf("文件内容:%sn",fah.f_c); printf("*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(&q
36、uot;%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+) printf("文件名为:%sn",fah.f_name); printf("文件属性:%dn",fah.att); printf("文件内容:%sn",fah.f_c)
37、; 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",fgh.att); printf("文件内容:%sn",fgh.f_c); printf("*n"); printf("请输入需要复制的文件名:"); scanf("%s&
38、quot;,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); if(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");
39、 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) /*目录管理操作*/ pr
40、intf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *n"); printf(" * 目录管理 *n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf(" 1.显示目录 2.退出目录n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("请选择:");scanf("%d",&x);while(x<1|x>2)printf("n错误! 请重新输入:");scanf("%d",&x);switch(x) case 1: /*显示目录操作*/ system("cls");printf("n文件目录为:n"); for(h=0;h<k;h+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025研学旅行目的地资源合作开发合同书3篇
- 二零二五年度文化创意产业募集资金监管与服务合同4篇
- 二零二五版农机出口贸易代理合同4篇
- 二零二五年度文化产业发展人才派遣合同4篇
- 二零二五年度个人房产抵押贷款合同编写指南
- 2025年度智能存单质押贷款担保合同协议范本
- 二零二五年度城乡居民个人房产交易合同(智能家居配置)4篇
- 2025年度健身房租赁合同最长期限及健身设备维护责任
- 2025年度二零二五年度解聘劳动关系协议书-半导体行业员工离职合同
- 2025年度经理级管理人员保密与竞业禁止合同
- 《装配式蒸压加气混凝土外墙板保温系统构造》中
- T-CSTM 01124-2024 油气管道工程用工厂预制袖管三通
- 2019版新人教版高中英语必修+选择性必修共7册词汇表汇总(带音标)
- 新译林版高中英语必修二全册短语汇总
- 基于自适应神经网络模糊推理系统的游客规模预测研究
- 河道保洁服务投标方案(完整技术标)
- 品管圈(QCC)案例-缩短接台手术送手术时间
- 精神科病程记录
- 阅读理解特训卷-英语四年级上册译林版三起含答案
- 清华大学考博英语历年真题详解
- 人教版三年级上册口算题(全册完整20份 )
评论
0/150
提交评论