1、文件模块: struct Flie int ed; /判断是否正存放文件char f_name8; /文件名char f_c8; /存放文件内容int att ; /文件属性0为只读1为只写/用于指向文件内容模块 fa8,fg8; 各核心模块设计及实现 主函数 通过 switch(i), 当 case 1: /*创建文件*/ case 2: /*删除文件*/ case 3: /打开文件case 4: /修改文件case 5: /复制、粘贴文件case 6: /*文件目录管理*/ 三、所用仪器、材料(设备名称、型号、规格等)。所用仪器:计算中心201;操作系统:Microsoft Visual
2、C+;软件平台:Microsoft Visual C+四、实验方法、步骤#include stdlib.h /*不容易归类的标准函数库 */string.htime.h#includestruct Flie /文件名 /文件内容模块 / 文件属性 0 为只读 1 为只写 /用于指向文件内容模块int x,k=0; /全局钥匙 void check() /密码认证 int check,a=1; char pin1=wangji; /此处设定用户口令 char pin20; while(a) printf(* * * * * * * * * * * * * * * * * * * * * * *
3、* * * * *n); printf( * 文件管理系统用户登录 *n请选择用户: n 1.Administrator 2.Guest 3.退出系统n scanf(%d,&x); getchar(); if(x=3) system(cls break; 密 码: scanf (%s,pin); check=strcmp(pin,pin1); if (check!=0) printf(n 密码错误! 请重新输入:n else a=0; int handle=1,a,check,i,j,h; char name8,pin8; while(1) 不能超过 个文件!* * * * * * * * *
4、 * * * * * * * * * * * * * * * * * * * *n * 创建文件 *n请输入所要创建的文件名称: scanf(,name); if(x=1) for( i=0;i8;i+) for(h=0;h=8) printf(已经超过8个文件! if(handle=1) h+) if(fah.ed=0) strcpy(fah.f_name,name); while(1) printf(n 请选择文件属性(0.只读 - 1. 只写): scanf(a); getchar(); if(a=0|a=1) fah.att=a;n 创建文件成功! fah.ed=1; k=k+1;K=
5、%dn,k); break; else 错误! printf(请输入文件内容:,fah.f_c); printf( 输入内容成功! break; if(x=2) for(j=0;jj+) pinj=fgi.f_namej; elsen 创建错误!文件已经存在! break; if(fah.ed=0) strcpy(fgh.f_name,name); while(1) scanf( getchar(); if(a=0|a=1) fgh.att=a; printf(n 创建文件成功.n fgh.ed=1; k=k+1; break; else,fgh.f_c); void deletefile()
6、 /删除文件; char name8,same8; int i,check,h; 请输入要删的文件名: scanf( sameh=fai.f_nameh; check=strcmp(same,name); printf(文件不存在! strcpy(fai.f_name, strcpy(fai.f_c, fai.ed=0; printf(删除成功! getchar(); sameh=fgi.f_nameh; strcpy(fgi.f_name, strcpy(fgi.f_c, fgi.ed=0; break;void openfile() /打开文件 int i; if(x=1) 请输入 K 的
7、值:i); if(i=k) 文件%s:%sn,fai.f_name,fai.f_c);请重新输入 I if(x=2)请输入 i 的值:,fgi.f_name,fgi.f_c);void modifyfile() /修改文件; int i,h,j; char name8,name18;1.修改文件名称n2.修改文件属性n for(h=0;k;文件名为:,fah.f_name);文件属性:%dn,fah.att); if(i=1) 请输入要修改的文件名称: for(h=0; if(strcmp(name,fah.f_name)=0) 请输入新的文件名: scanf(,name1); strcpy(
8、fah.f_name,name1);修改成功! Sleep(1000); else 没找到相应的文件! if(i=2) if(strcmp(name,fah.f_name)=0) Sleep(1000);请选择:1.只读/2.只写nj); if(j=1) fah.att=0; fah.att =1; Sleep(1000); if(x=2) 文件名为:,fgh.f_name);,fgh.att); if(i=1) if(strcmp(name,fgh.f_name)=0) printf( strcpy(fgh.f_name,name1); if(i=2) if(j=1) fgh.att=0;
9、fgh.att =1; elsevoid copyfile() /复制/粘贴文件; int h,j; char name8; if(x=1)文件内容:*n请输入需要复制的文件名: if(strcmp(name,fah.f_name)=0) 复制文件成功! if(k8) printf(进行粘贴吗?请选择:1.YES 2.N0Tn 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);粘贴成功: k=k+1;文件状态:,fah.ed);-n Sleep(2000)
10、;*n if(strcmp(name,fgh.f_name)=0) fgk.att=fgh.att; fgk.ed=fgh.ed; strcpy(fgk.f_c,fgh.f_c); strcpy(fgk.f_name,fgh.f_name);,fgh.ed);-n Sleep(3000);void catalogue() /*目录管理子程序*/ int x,a=1,h; while(a) /*目录管理操作*/- - - - - - - - - - - - - - - - - - - - - - - - - - - - -n * 目录管理 *n 1.显示目录 2.退出n while(x2) n 错误! switch(x) case 1: /*显示目录操作*/ system(n 文件目录为: if(x=1) 文件Administrator/%sn. if(x=2) n Guest/%