课程设计—文件管理系统设计
简单的文件管理系统-C课程设计
课程设计报告(本科)课程:高级语言程序设计学号:姓名:班级:2011级计算机软件1班教师:时间:2011.12计算机科学与技术系C语言程序代码附录:#include "stdio.h"#include "stdlib.h"#define N 40 /* 宏定义*/int main() /* 主函数*/{void dir();void rename();void del();void move();void copy(); /* 函数声明*/int a;for(;a!=0;) /*死循环,如果用户输入的不是0执行循环*/{printf("\n\n\n");printf("\t\t********************************************\n"); /*屏幕上显示主界面*/printf("\t\t** 欢迎使用文件管理系统 **\n");printf("\t\t********************************************\n");printf("\t\t**\t1.查看文件(只适用文本文件) **\n");printf("\t\t**\t2.重命名文件 **\n");printf("\t\t**\t3.删除文件 **\n");printf("\t\t**\t4.移动文件 **\n");printf("\t\t**\t5.复制文件 **\n");printf("\t\t**\t0.退出系统 **\n");printf("\t\t********************************************\n");printf("\t\t请选择要进行的操作(按enter键执行!):"); /*提示用户输入*/scanf("%d",&a); /*接受用户输入*/switch(a){case 1: dir(); break; /*如果用户输入1调用dir()函数查看文件*/case 2: rename(); break; /*如果用户输入2调用rename()函数-文件*/case 3: del(); break; /*如果用户输入3调用del()函数-删除文件*/case 4: move(); break; /*如果用户输入4调用move()函数-移动文件*/case 5: copy(); break; /*如果用户输入5调用copy()函数-复制文件*/case 0: printf("\t\t谢谢使用!!\n");break; /*如果用户输入0 ,结束循环!退出程序*/default: {printf("输入有误,自动结束!\n");a=0;} /*如果用户输入有误,将0赋给a结束循环*/}}return 0;}void dir() /*dir()函数*/{int a; /*定义变量a,接收用户的操作选择*/for(;a!=0;) /*死循环*/{FILE *fp; /*定义文件指针*/char ch,filename[N];printf("请输入要查看的文本文件(如d:\\1.txt):");/*提示用户输入*/scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL) printf("无法找到该文件!\n");/*打开文件操作*/else{ch=fgetc(fp); /*将fp文件的字符赋给ch*/while(ch!=EOF) /*循环直到遇到文件结束标识符结束*/{putchar(ch); /*将字符ch输出到屏幕上*/ch=fgetc(fp); /*将fp文件的下一个字符赋给ch*/}}fclose(fp); /*关闭文件*/printf("\n\n\t1.继续。
文档管理系统课程设计
文档管理系统课程设计一、教学目标本课程旨在让学生了解文档管理系统的概念、原理和应用,掌握文档管理系统的基本操作和技巧,培养学生高效管理和信息的能力。
1.理解文档管理系统的定义、功能和分类。
2.掌握文档管理系统的基本操作,如创建、编辑、删除和保存文档。
3.了解文档管理系统的应用场景和优势。
4.能够独立安装和使用文档管理系统软件。
5.能够运用文档管理系统进行高效的信息和检索。
6.能够运用文档管理系统进行协同工作和文档共享。
情感态度价值观目标:1.培养学生对信息技术的兴趣和好奇心,提高学生运用信息技术解决实际问题的能力。
2.培养学生团队合作精神和共享意识,提高学生与他人协同工作的能力。
二、教学内容本课程的教学内容主要包括文档管理系统的概念、原理、应用和操作技巧。
1.文档管理系统的定义、功能和分类:介绍文档管理系统的概念,讲解不同类型的文档管理系统及其特点。
2.文档管理系统的基本操作:讲解文档管理系统的基本操作,如创建、编辑、删除和保存文档,以及文档格式的设置和调整。
3.文档管理系统的应用场景和优势:分析文档管理系统在日常生活和工作中的应用场景,阐述其相比传统文档管理方式的优势。
4.文档管理系统的协同工作和文档共享:讲解如何运用文档管理系统进行协同工作和文档共享,以及相关的权限设置和安全管理。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解文档管理系统的概念、原理和操作方法,让学生掌握基本知识。
2.讨论法:学生进行小组讨论,分享对文档管理系统的理解和应用经验。
3.案例分析法:分析实际案例,让学生了解文档管理系统在实际工作中的应用和优势。
4.实验法:安排实验室实践环节,让学生亲自动手操作,巩固所学知识和技能。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的教材,为学生提供系统、全面的知识体系。
文件系统设计课程设计
文件系统设计课程设计一、教学目标本课程的教学目标是使学生掌握文件系统设计的基本原理和方法,培养学生分析和解决文件系统相关问题的能力。
具体分为以下三个部分:1.知识目标:学生需要掌握文件系统的概念、组成、基本操作和存储分配策略等基本知识;了解不同类型的文件系统结构及其优缺点;熟悉文件系统的性能评价指标和优化方法。
2.技能目标:学生能够运用所学知识分析和设计简单的文件系统;具备使用文件系统相关工具软件进行维护和优化的能力;能够阅读和理解文件系统相关的技术文档。
3.情感态度价值观目标:培养学生对文件系统的兴趣,使其认识到文件系统在计算机系统中的重要性;培养学生严谨的科学态度和良好的团队合作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.文件系统概述:介绍文件系统的基本概念、作用、发展历程和分类。
2.文件系统的组成:讲解文件系统的结构、组件及其功能,包括文件、目录、存储器等。
3.文件系统的实现:深入剖析文件系统的核心实现技术,如文件分配策略、目录结构、文件访问控制等。
4.文件系统的性能评价:介绍文件系统的性能评价指标,如读写速度、空间利用率等,并讲解优化方法。
5.常见文件系统分析:对比分析不同类型的文件系统结构及其适用场景,如FAT32、NTFS、ext4等。
6.文件系统的维护与优化:讲解如何使用文件系统工具软件进行维护和优化,以提高系统性能。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师通过讲解、演示等方式,向学生传授文件系统的基本概念、原理和实现方法。
2.案例分析法:教师通过分析实际案例,引导学生运用所学知识解决实际问题。
3.实验法:学生通过动手实验,加深对文件系统结构、操作和维护的理解。
4.讨论法:学生在课堂上相互交流、讨论,分享学习心得和经验,提高团队合作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用国内外优秀教材,如《计算机操作系统》、《文件系统设计与实现》等。
文件管理系统课程设计
课程名称:操作系统实验题目:文件管理系统1、课程设计选题 (3)1.1主要设计内容 31.2主要设计思路 32、课程设计需求分析 33、概要设计 (4)3.1整体设计框架 43.2各模块的基本功能 44、系统实现 5 4.1原理 6 4.2各模块算法思想 6 4.3流程图描述 94.4代码描述 105、系统测试 115.1系统主界面 115.2子系统功能测试 116、总结 197、参考文献样式 191、课程设计选题1.1主要设计内容本课程设计主要是用C语言编写,设计的是一个模拟的多用户多级目录的文件管理系统。
通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。
1.2主要设计思路首先系统要完成初始化的任务,建立起整个系统,等待用户注册,注册成功后,用户登录模块,对用户的用户名进行验证,如果用户登录成功,则系统进入等待用户输入的状态,用户选择相应指令后,系统按照即定方式处理用户请求,用户退出后,系统转入登录模块,等待下一位用户的登录。
2、课程设计需求分析本系统为多用户多级目录的文件管理系统,用户可以根据所注册的用户名登陆来对文件或是文件进行操作。
多用户功能可以满足不同用户不同的需求,同时也起到了很好的保密作用。
文件系统为用户提供了按名存取的功能,以使得用户能透明地存储访问文件。
为了实现按名存取,文件需要对文件存储设备进行合理的组织,分配;对存储在文件存储设备上的文件进行保护,保密和提供共享的手段。
另外,文件系统还要提供检索文件或文件中记录的手段,文件系统就是完成上述功能的一组软件和数据结构的集合。
模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。
系统建立了文件目录树,存储文件系统中的所有文件。
对于用户名下的文件,用文件目录树的分枝来存贮。
采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。
操作系统课程设计文件管理系统
操作系统课程设计文件管理系统1. 引言文件管理是操作系统中的一个重要模块,负责对计算机中的文件进行管理和组织。
在操作系统课程设计中,设计一个文件管理系统是一个很有挑战性的任务,需要考虑到文件的创建、打开、读取、写入、删除等功能,并且要确保文件的安全性和可靠性。
本文将详细介绍文件管理系统的设计与实现。
2. 需求分析为了满足用户对文件管理的需要,我们需要对文件管理系统的需求进行分析。
在这个文件管理系统中,用户应该能够执行以下操作:•文件的创建和命名•文件的打开和关闭•文件的读取和写入•文件的删除和修改•文件的搜索和查找除此之外,还要考虑到对文件权限的管理,可以设置不同用户对文件的不同访问权限,以保障文件的安全性。
3. 概要设计概要设计是对文件管理系统的整体架构和功能进行规划和设计。
文件管理系统可以采用层次结构的设计方式,分为用户界面、文件管理模块和存储管理模块。
3.1 用户界面用户界面是用户与文件管理系统进行交互的接口,可以通过命令行或者图形界面来实现。
在用户界面中,用户可以输入相关指令来执行对文件的操作,如创建文件、打开文件、读取文件等。
3.2 文件管理模块文件管理模块是文件管理系统的核心模块,负责对文件进行创建、打开、读取、写入、删除等操作。
在文件管理模块中,需要维护一个文件目录表来记录文件的基本信息,如文件名、文件大小、文件权限等。
还需要考虑到文件的分配和回收,可以使用位示图等方式进行实现。
3.3 存储管理模块存储管理模块负责对文件进行存储和管理,包括磁盘空间的分配和回收。
在存储管理模块中,可以采用文件分配表或者索引节点进行存储方式的选择。
4. 详细设计在详细设计阶段,需要对概要设计中的每个模块进行详细设计,并确定各个模块之间的接口和数据结构。
4.1 用户界面设计用户界面设计可以采用命令行方式进行实现。
用户可以通过命令输入来执行相应的文件管理操作。
可以设计一系列命令,如create用于创建文件,open用于打开文件,read用于读取文件等。
操作系统课程设计-模拟一个简单二级文件管理系统
模拟一个简单二级文件管理系统设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。
设计内容:模拟一个简单二级文件管理系统一、实验内容描述1 实验目标本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现.2 实验要求为DOS系统设计一个简单的二级文件系统.要求做到以下几点:①可以实现下列命令:login 用户登录dir 列文件目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件②列目录时要列出文件名、物理地址、保护码和文件长度.③源文件可以进行读写保护.二、程序主要内容1设计思路程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式.其他操作包括新建用户、帮助、用户登入、用户登出、退出系统.在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“file.p”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容.2 数据结构file结构体系统文件数据结构:fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式0.只读;1.可写;2.可读写;3.保护、fname[]char,文件名;filemode结构体文件状态数据结构:isopenint,文件当前状态,0.关闭;1.打开、modeint,文件模式0.只读;1.可写;2.可读写;3.初始化;user结构体用户信息数据结构:uname[]char,用户名、upassword[]char,用户密码;userfile结构体用户文件数据结构:uname[]char,用户名、ufile[]file,用户拥有的文件数组.代码:#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <time.h>#include <string.h>#define MaxUser 100 //定义最大MDF主目录文件#define MaxDisk 512*1024 //模拟最大磁盘空间#define commandAmount 12 //对文件操作的指令数//存储空间管理有关结构体和变量char disk[MaxDisk]; //模拟512K的磁盘存储空间typedef struct distTable //磁盘块结构体{int maxlength;int start;int useFlag;distTable *next;}diskNode;diskNode *diskHead;struct fileTable //文件块结构体{char fileName[10];int strat; //文件在磁盘存储空间的起始地址int length; //文件内容长度int maxlength; //文件的最大长度char fileKind[3]; //文件的属性——读写方式struct tm *timeinfo;bool openFlag; //判断是否有进程打开了该文件//fileTable *next;};//两级目录结构体typedef struct user_file_directory //用户文件目录文件UFD {//char fileName[10];fileTable *file;user_file_directory *next;}UFD;//UFD *headFile;typedef struct master_file_directory //主文件目录MFD{char userName[10];char password[10];UFD *user;}MFD;MFD userTable[MaxUser];int used=0; //定义MFD目录中用已有的用户数//文件管理void fileCreate(char fileName[],int length,char fileKind[]); //创建文件void fileWrite(char fileName[]); //写文件void fileCat(char fileName[]); //读文件void fileRen(char fileName[],char rename[]); //重命名文件void fileFine(char fileName[]); //查询文件void fileDir(char UserName[]); //显示某一用户的所有文件void fileClose(char fileName[]); //关闭已打开的文件void fileDel(char fileName[]); //删除文件void chmod(char fileName[],char kind[]); //修改文件的读写方式int requestDist(int &startPostion,int maxLength); //磁盘分配查询void initDisk(); //初始化磁盘void freeDisk(int startPostion); //磁盘空间释放void diskShow(); //显示磁盘使用情况//用户管理void userCreate();int login();int userID=-1; //用户登录的ID号,值为-1时表示没有用户登录int main(){char order[commandAmount][10];strcpy(order[0],"create");strcpy(order[1],"rm");strcpy(order[2],"cat");strcpy(order[3],"write");strcpy(order[4],"fine");strcpy(order[5],"chmod");strcpy(order[6],"ren");strcpy(order[7],"dir");strcpy(order[8],"close");strcpy(order[9],"return");strcpy(order[10],"exit");strcpy(order[11],"df");char command[50],command_str1[10],command_str2[10],command_str3[5],command_str4[3];int i,k,j;int length;initDisk(); //初始化磁盘for(i=0;i<MaxUser;i++) //初始化用户UFD目录文件的头指针{userTable[i].user=(UFD *)malloc(sizeof(UFD));userTable[i].user->next=NULL;}while(1){printf("********************************************\n");printf(" 1、Creat user\n");printf(" 2、login\n");printf("********************************************\n");printf("Please chooce the function key:>");int choice;scanf("%d",&choice);if(choice==1) userCreate();else if(choice==2) userID=login();else printf("您的输入有误,请重新选择\n");while(userID!=-1){fflush(stdin);printf("———————————————————————————————————————\n ");printf(" create-创建格式:create a1 1000 rw,将创建名为a1,长度为1000字节可读可写的文件\n");printf(" rm-删除格式:rm a1,将删除名为a1的文件\n");printf(" cat-查看文件内容格式:cat a1,显示a1的内容\n");printf(" write-写入格式:write a1\n");printf(" fine-查询格式:fine a1 ,将显示文件a1的属性\n");printf(" chmod-修改格式:chmod a1 r,将文件a1的权限改为只读方式\n");printf(" ren-重命名格式:ren a1 b1 ,将a1改名为b1\n");printf(" dir-显示文件格式:dir aaa,将显示aaa用户的所有文件\n");printf(" df-显示磁盘空间使用情况格式:df\n");printf(" close-关闭文件格式:close a1,将关闭文件a1\n");printf(" return-退出用户,返回登录界面\n");printf(" exit-退出程序\n");printf("————————————————————————————————————————\n");printf("please imput your command:>");gets(command);int select;for(i=0;command[i]!=' '&&command[i]!='\0';i++) //command_str1字符串存储命令的操作类型command_str1[i]=command[i];k=i;command_str1[k]='\0';for(i=0;i<commandAmount;i++){if(!strcmp(command_str1,order[i])){select=i;break;}}if(i==commandAmount){printf("您输入的命令有误,请重新输入\n");continue;}for(i=k+1,k=0;command[i]!=' '&&command[i]!='\0';i++,k++) //commmand_str2字符串存储文件名或用户名command_str2[k]=command[i];command_str2[k]='\0';k=i;switch(select){case 0:for(i=k+1,k=0;command[i]!=' ';i++,k++)command_str3[k]=command[i];command_str3[k]='\0';k=i;j=1;length=0; //初始化文件长度for(i=strlen(command_str3)-1;i>=0;i--) //把字符串转换为十进制{length+=(command_str3[i]-48)*j;j*=10;}for(i=k+1,k=0;command[i]!=' '&&command[i]!='\0';i++,k++)command_str4[k]=command[i];command_str4[k]='\0';fileCreate(command_str2,length,command_str4);break;case 1:fileDel(command_str2);break;case 2:fileCat(command_str2);break;case 3:fileWrite(command_str2);break;case 4:fileFine(command_str2);break;case 5:for(i=k+1,k=0;command[i]!=' '&&command[i]!='\0';i++,k++)command_str3[k]=command[i];command_str3[k]='\0';chmod(command_str2,command_str3);break;case 6:for(i=k+1,k=0;command[i]!='\0';i++,k++)command_str3[k]=command[i];command_str3[k]='\0';fileRen(command_str2,command_str3);break;case 7:fileDir(command_str2);break;case 8:fileClose(command_str2);break;case 9:UFD *p;for(p=userTable[userID].user->next;p!=NULL;p=p->next) //退出用户之前关闭所有打的文件if(p->file->openFlag)p->file->openFlag=false;system("cls");userID=-1;break;case 10:exit(0);break;case 11:diskShow();break;}}}return 0;}void userCreate(){char c;char userName[10];int i;if(used<MaxUser){printf("请输入用户名:");for(i=0;c=getch();i++){if(c==13) break;elseuserName[i]=c;printf("%c",c);}userName[i]='\0';for(i=0;i<used;i++){if(!strcmp(userTable[i].userName,userName)){printf("\n");printf("该用户名已存在,创建用户失败\n");system("pause");return;}}strcpy(userTable[used].userName,userName);printf("\n");printf("请输入密码:");for(i=0;c=getch();i++){if(c==13) break;elseuserTable[used].password[i]=c;printf("*");}userTable[userID].password[i]='\0';printf("\n");printf("创建用户成功\n");used++;system("pause");}else{printf("创建用户失败,用户已达到上限\n");system("pause");}fflush(stdin);}int login(){char name[10],psw[10];char c;int i,times;printf("请输入用户名:");for(i=0;c=getch();i++){if(c==13) break;elsename[i]=c;printf("%c",c);}name[i]='\0';for(i=0;i<used;i++){if(!strcmp(userTable[i].userName,name))break;}if(i==used){printf("\n您输入的用户名不存在\n");system("pause");return -1;}for(times=0;times<3;times++){memset(psw,'\0',sizeof(psw));printf("\n请输入密码:");for(i=0;c=getch();i++){if(c==13) break;elsepsw[i]=c;printf("*");}printf("\n");for(i=0;i<used;i++){if(!strcmp(psw,userTable[i].password)){printf("用户登录成功\n");system("pause");break;}}if(i==used){printf("您输入的密码错误,您还有%d次输入机会\n",2-times);if(times==2) exit(0);}else break;}fflush(stdin);return i;}void initDisk(){diskHead=(diskNode *)malloc(sizeof(diskNode));diskHead->maxlength=MaxDisk;diskHead->useFlag=0;diskHead->start=0;diskHead->next=NULL;}int requestDist(int &startPostion,int maxLength){int flag=0; //标记是否分配成功diskNode *p,*q,*temp;p=diskHead;while(p){if(p->useFlag==0&&p->maxlength>maxLength){startPostion=p->start;q=(diskNode *)malloc(sizeof(diskNode));q->start=p->start;q->maxlength=maxLength;q->useFlag=1;q->next=NULL;diskHead->start=p->start+maxLength;diskHead->maxlength=p->maxlength-maxLength;flag=1;temp=p;if(diskHead->next==NULL) diskHead->next=q;else{while(temp->next) temp=temp->next;temp->next=q;}break;}p=p->next;}return flag;}void fileCreate(char fileName[],int length,char fileKind[]){//int i,j;time_t rawtime;int startPos;UFD *fileNode,*p;for(p=userTable[userID].user->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName)){printf("文件重名,创建文件失败\n");system("pause");return;}}if(requestDist(startPos,length)){fileNode=(UFD *)malloc(sizeof(UFD));fileNode->file=(fileTable *)malloc(sizeof(fileTable)); //这一步必不可少,因为fileNode里面的指针也需要申请地址,否则fileNode->file指向会出错strcpy(fileNode->file->fileName,fileName);strcpy(fileNode->file->fileKind,fileKind);fileNode->file->maxlength=length;fileNode->file->strat=startPos;fileNode->file->openFlag=false;time(&rawtime);fileNode->file->timeinfo=localtime(&rawtime);fileNode->next=NULL;if(userTable[userID].user->next==NULL)userTable[userID].user->next=fileNode;else{p=userTable[userID].user->next;while(p->next) p=p->next;p->next=fileNode;}printf("创建文件成功\n");system("pause");}else{printf("磁盘空间已满或所创建文件超出磁盘空闲容量,磁盘空间分配失败\n");system("pause");}}void freeDisk(int startPostion){diskNode *p;for(p=diskHead;p!=NULL;p=p->next){if(p->start==startPostion)break;}p->useFlag=false;}void fileDel(char fileName[]){UFD *p,*q,*temp;q=userTable[userID].user;p=q->next;while(p){if(!strcmp(p->file->fileName,fileName)) break;else{p=p->next;q=q->next;}}if(p){if(p->file->openFlag!=true) //先判断是否有进程打开该文件{temp=p;q->next=p->next;freeDisk(temp->file->strat); //磁盘空间回收free(temp);printf("文件删除成功\n");system("pause");}else{printf("该文件已被进程打开,删除失败\n");system("pause");}}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}void fileCat(char fileName[]){int startPos,length;int k=0;UFD *p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){startPos=p->file->strat;length=p->file->length;p->file->openFlag=true; //文件打开标记printf("*****************************************************\n");for(int i=startPos;k<length;i++,k++){if(i%50==0) printf("\n"); //一行大于50个字符换行printf("%c",disk[i]);}printf("\n\n*****************************************************\n");printf("%s已被read进程打开,请用close命令将其关闭\n",p->file->fileName);system("pause");}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}void fileWrite(char fileName[]){UFD *p,*q;q=userTable[userID].user;int i,k,startPos;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){if(!strcmp(p->file->fileKind,"r")) //判断文件类型{printf("该文件是只读文件,写入失败\n");system("pause");return;}char str[500];printf("please input content:\n");gets(str);startPos=p->file->strat;p->file->openFlag=true; //文件打开标记p->file->length=strlen(str);if(p->file->length>p->file->maxlength){printf("写入字符串长度大于该文件的总长度,写入失败\n");system("pause");return;}for(i=startPos,k=0;k<(int)strlen(str);i++,k++)disk[i]=str[k];printf("文件写入成功,请用close命令将该文件关闭\n");system("pause");}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}void fileFine(char fileName[]){UFD *p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){printf("********************************************\n");printf("文件名:%s\n",p->file->fileName);printf("文件长度:%d\n",p->file->maxlength);printf("文件在存储空间的起始地址:%d\n",p->file->strat);printf("文件类型:%s\n",p->file->fileKind);printf("创建时间:%s\n",asctime(p->file->timeinfo));printf("********************************************\n");system("pause");}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}void chmod(char fileName[],char kind[]){UFD *p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){strcpy(p->file->fileKind,kind);printf("修改文件类型成功\n");system("pause");}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}void fileRen(char fileName[],char name[]){UFD *p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){while(q->next){if(!strcmp(q->next->file->fileName,name)){printf("您输入的文件名已存在,重命名失败\n");system("pause");return;}q=q->next;}strcpy(p->file->fileName,name);printf("重命名成功\n");system("pause");}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}void fileDir(char userName[]){UFD *p;int i,k;for(i=0;i<MaxUser;i++){if(!strcmp(userTable[i].userName,userName)){k=i;break;}}if(i==MaxUser){printf("没有找到该用户,请检查输入用户名是否正确\n");system("pause");return;}else{p=userTable[k].user->next;printf("******************************************************************************* *\n");printf("文件名文件长度文件在磁盘的起始地址文件类型创建时间\n");for(;p!=NULL;p=p->next)printf("%s %d %d %s %s",p->file->fileName,p->file->maxlength,p->file->strat,p->file->fileKind,asctime(p->file->timeinfo));printf("******************************************************************************* *\n");system("pause");}}void diskShow(){diskNode *p;int i=0,unusedDisk=0;printf("***************************************************************************\n");printf(" 盘块号起始地址容量(bit) 是否已被使用\n");for(p=diskHead;p!=NULL;p=p->next,i++){if(p->useFlag==false) unusedDisk+=p->maxlength;printf(" %d %d %d %d \n",i,p->start,p->maxlength,p->useFlag);}printf("***************************************************************************\n");printf("磁盘空间总容量:512*1024bit 已使用:%dbit 末使用:%dbit\n\n",MaxDisk-unusedDisk,unusedDisk);system("pause");}void fileClose(char fileName[]){UFD *p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){p->file->openFlag=false;printf("%s文件已关闭\n",p->file->fileName);system("pause");}else{printf("没有找到该文件,请检查输入的文件名是否正确\n");system("pause");}}运行结果视图:(略)。
java课程设计-文件管理系统
课程设计课程设计名称:java课程设计专业班级: XXX班级学生姓名: XXXX学号: XXXXX指导教师: XXXXX课程设计时间:目录目录 ------------------------ 1 课程设计任务书 ------------------------- 2一、需求分析 ------------------------- 3二、概要设计 ------------------------- 4三、开发语言 ------------------------- 4四、详细设计 ------------------------ 4五、调试与分析 ------------------------- 13六、功能测试 ------------------------- 14七、结论与心得 -------------------------- 15八、参考资料 -------------------------- 16九、成绩评价表 -------------------------- 17计算机科学技术(卓越计划)专业课程设计任务书文件管理系统一、需求分析题目要求对文件进行复制,压缩,解压等操作,相当于一个简单的文管理系统。
对此我新加了剪切,删除,和重命名等功能。
程序的整体输入控制是采用图形用户界面,同时为了减少用户输入时不必要的错误,程序还支持文件选择器功能,用户可以直接点击相应的按钮选择相应的文件或文件夹。
(1)复制功能实现了将文件复制到指定的文件夹中(包括文件夹的复制和单个文件的复制),同时允许用户选择不同类型的文件复制。
其中有全文件复制(文件夹里所有文件全部复制)、无空文件夹的文件复制(即复制的文件夹不含空文件夹)、指定参数的文件复制(即文件夹复制时可以指定相应的类型参数doc、txt等选择要被复制的文件类型)。
(2)压缩功能实现将文件压缩到指定路径(包括单个文件的压缩和文件夹的压缩)。
(3)解压功能实现将指定的压缩文件解压到指定的路径(4)剪切功能实现将制订文件夹下的文件剪切到制订的文件夹下,与复制不同的,剪切后该文件只存在于剪切后的文件夹。
文件系统设计课程设计
文件系统设计课程设计一、课程目标知识目标:1. 理解文件系统的基本概念、组成和功能;2. 掌握文件系统的设计原理和实现方法;3. 了解不同类型的文件系统及其特点;4. 学习文件系统的性能评价和优化方法。
技能目标:1. 能够分析实际需求,设计适合的文件系统方案;2. 学会使用相关工具和技术进行文件系统的实现和调试;3. 能够评估文件系统的性能,并提出优化措施;4. 培养解决文件系统设计过程中遇到问题的能力。
情感态度价值观目标:1. 培养学生对计算机科学和文件系统领域的兴趣和热情;2. 增强学生的团队合作意识和责任感,培养良好的工程素养;3. 引导学生关注文件系统在实际应用中的价值,提高社会责任感;4. 培养学生勇于探索、不断创新的精神。
课程性质分析:本课程为计算机科学与技术专业的高年级课程,旨在帮助学生掌握文件系统设计的基本原理和方法,提高解决实际问题的能力。
学生特点分析:学生已具备一定的编程基础和操作系统知识,具有较强的逻辑思维能力和动手能力,但对文件系统的设计与应用尚缺乏深入了解。
教学要求:结合学生特点,课程注重理论与实践相结合,强调动手实践和创新能力培养。
通过本课程的学习,使学生能够独立完成文件系统的设计与实现,并具备一定的优化能力。
二、教学内容1. 文件系统基本概念:文件、目录、磁盘空间分配、文件系统结构等;教材章节:第1章 文件系统概述2. 文件系统设计原理:文件存储结构、文件存取控制、文件系统一致性等;教材章节:第2章 文件系统设计原理3. 常见文件系统类型:FAT、NTFS、EXT2/3/4等;教材章节:第3章 常见文件系统类型4. 文件系统实现技术:文件存储布局、目录实现、磁盘空间管理、文件系统恢复等;教材章节:第4章 文件系统实现技术5. 文件系统性能评价与优化:性能指标、性能评价方法、文件系统优化策略等;教材章节:第5章 文件系统性能评价与优化6. 文件系统应用案例:Linux文件系统、Windows文件系统等;教材章节:第6章 文件系统应用案例教学内容安排与进度:第1周:文件系统概述,基本概念第2周:文件系统设计原理第3周:常见文件系统类型第4周:文件系统实现技术第5周:文件系统性能评价与优化第6周:文件系统应用案例分析与讨论三、教学方法本课程采用以下教学方法,旨在激发学生的学习兴趣,提高教学效果:1. 讲授法:通过系统的讲解,使学生掌握文件系统的基本概念、原理和关键技术。
c文件管理系统课程设计
c 文件管理系统课程设计。
一、课程目标知识目标:1. 让学生掌握文件管理系统的基本概念,如文件、文件夹、路径等。
2. 使学生了解文件系统的组织结构,如树状结构、目录层级等。
3. 帮助学生理解文件存储的基本原理,如磁盘空间分配、文件存取速度等。
技能目标:1. 培养学生能够熟练使用文件管理器进行文件创建、复制、移动、删除等操作。
2. 让学生学会利用文件系统进行文件分类、整理、备份和恢复。
3. 培养学生具备简单的文件系统故障排查和处理能力。
情感态度价值观目标:1. 培养学生对计算机文件管理的兴趣,提高学习积极性。
2. 培养学生养成良好的文件管理习惯,如分类存放、定期备份等。
3. 培养学生的团队合作意识,学会在小组讨论中分享观点、倾听他人意见。
课程性质:本课程为信息技术课程,旨在让学生掌握文件管理的基本知识和技能,提高信息素养。
学生特点:本课程针对的是初中年级学生,他们对计算机有一定的基础,好奇心强,但注意力容易分散。
教学要求:结合学生特点,教师应采用生动有趣的教学方法,注重实践操作,引导学生主动探究,确保课程目标的实现。
在教学过程中,关注学生的个体差异,及时给予指导和鼓励,使学生在完成具体学习成果的过程中,不断提高自身能力。
二、教学内容1. 文件管理基础- 文件与文件夹概念- 文件系统组织结构- 文件存储原理2. 文件管理操作- 文件创建、复制、移动、删除- 文件夹创建、重命名、属性修改- 文件搜索与排序3. 文件管理技巧- 文件分类与整理- 文件备份与恢复- 文件系统优化4. 文件管理故障处理- 磁盘空间不足- 文件丢失与误删- 文件权限与共享问题教学内容安排与进度:第一课时:文件管理基础第二课时:文件管理操作第三课时:文件管理技巧第四课时:文件管理故障处理教材章节关联:本教学内容与教材中“文件与文件夹管理”章节相关,涵盖了该章节的核心知识点和操作技能。
通过本课程的学习,学生可以系统地掌握文件管理的相关知识,提高实际操作能力。
文件管理系统课程设计
文件管理系统课程设计文件管理系统是现代科技发展必备的应用程序之一,它能够极大地提高我们的工作效率和准确性,实现文档管理的自动化和规范化。
本文将结合管理学、计算机科学和信息系统等多学科知识,设计一款简单易用的文件管理系统。
其主要功能包括:文档管理、权限控制、版本控制、搜索、共享与协作等。
首先,我们来看文档管理。
文件管理系统的核心功能即是将各种文档进行分类、命名、保存、修改、备份等操作,同时通过多种方式查找、浏览、打印文档。
基本需求包括:文件名、文件类型、文件大小、文件修改时间等基本信息的收集、分类、存储和检索。
系统应该能够支持多种文档类型,如Office文档、PDF、图片、音视频等,同时能够对这些文件进行分类管理。
这些文件应该可以进行删、查、改、增操作。
此外,为了保障文件的安全性,可以设计一个回收站,并提供自动备份和恢复功能,以免意外丢失文件。
其次,权限控制也是一个非常关键的功能。
在企业、学校等组织中,文件的管理需要严格进行权限控制。
系统可以设置用户权限,确保每个用户仅能访问与其工作相关的文件,同时防止部分用户恶意删除、修改他人的文件。
系统还应允许管理员根据管理需求设置不同的角色,并允许管理员对角色进行一定范围的权限调整。
版本控制也是文档管理系统不可或缺的功能。
在多人对同一文档进行编辑时,系统应能够自动对文件进行版本管理。
比如每次编辑保存时,系统将自动保存上一次备份,以避免因编辑过程中,被人破坏、删除等操作,丢失重要的数据。
同时历史版本也可以通过文件恢复的选项进行恢复。
搜索功能也很重要。
当文件数量众多时,想要查找一个特定的文件就需要用到搜索功能。
系统应该提供多个关键词、文件类型、大小、日期等搜索条件,同时支持汉语拼音、英文单词等多种搜索方式,以尽可能地满足用户的搜索需求。
在使用搜索功能时,系统可以提供相关的关键字推荐,以便用户方便快捷地找到所需文件。
最后,共享与协作功能是文档管理系统的另一个亮点。
课程设计文件管理系统
课程设计文件管理系统一、教学目标本课程旨在让学生了解和掌握课程设计文件管理系统的基本概念、原理和方法,培养学生运用课程设计文件管理系统进行课程设计和管理的实践能力,提高学生的信息素养和团队协作能力。
1.了解课程设计文件管理系统的基本概念和作用。
2.掌握课程设计文件管理系统的基本操作方法和技巧。
3.理解课程设计文件管理系统在课程设计和项目管理中的应用。
4.能够独立使用课程设计文件管理系统进行课程设计和管理。
5.能够运用课程设计文件管理系统进行团队协作和沟通。
6.能够根据实际需求,选择合适的课程设计文件管理系统进行课程设计和项目管理。
情感态度价值观目标:1.培养学生对课程设计文件管理系统的兴趣和热情,提高学生对信息技术的接受度和运用能力。
2.培养学生团队协作意识和能力,使学生认识到团队协作在课程设计和项目管理中的重要性。
3.培养学生对课程设计和项目管理的认真态度和责任心,提高学生的职业素养。
二、教学内容本课程的教学内容主要包括课程设计文件管理系统的基本概念、基本操作和应用实践。
1.课程设计文件管理系统的基本概念:介绍课程设计文件管理系统的基本概念、特点和作用。
2.课程设计文件管理系统的基本操作:讲解课程设计文件管理系统的安装、使用和维护方法,以及如何进行课程设计和项目管理。
3.课程设计文件管理系统在课程设计和项目管理中的应用实践:通过实际案例分析,使学生掌握课程设计文件管理系统在课程设计和项目管理中的具体应用。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
1.讲授法:通过教师的讲解,使学生了解课程设计文件管理系统的基本概念和原理。
2.案例分析法:通过分析实际案例,使学生掌握课程设计文件管理系统在课程设计和项目管理中的应用。
3.实验法:通过实际操作,使学生熟练掌握课程设计文件管理系统的基本操作方法。
4.小组讨论法:通过小组讨论,培养学生的团队协作能力和沟通能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用合适的课程设计文件管理系统教材,为学生提供系统的理论知识。
java课程设计-文件管理系统
j a v a课程设计-文件管理系统------------------------------------------作者------------------------------------------日期课程设计课程设计名称: ♋❖♋课程设计专 业 班 级 : 计科卓☞班级学 生 姓 名 : 陈张涛学 号 :指 导 教 师 : 郑丽萍课程设计时间:目录目录 课程设计任务书 一、需求分析 二、概要设计 三、开发语言 四、详细设计 五、调试与分析 六、功能测试 七、结论与心得 八、参考资料 九、成绩评价表 计算机科学技术(卓越计划) 专业课程设计任务书文件管理系统一、需求分析题目要求对文件进行复制,压缩,解压等操作,相当于一个简单的文管理系统。
对此我新加了剪切,删除,和重命名等功能。
程序的整体输入控制是采用图形用户界面,同时为了减少用户输入时不必要的错误,程序还支持文件选择器功能,用户可以直接点击相应的按钮选择相应的文件或文件夹。
( )复制功能实现了将文件复制到指定的文件夹中(包括文件夹的复制和单个文件的复制) 同时允许用户选择不同类型的文件复制。
其中有全文件复制(文件夹里所有文件全部复制)、无空文件夹的文件复制(即复制的文件夹不含空文件夹)、指定参数的文件复制(即文件夹复制时可以指定相应的类型参数♎☐♍、♦⌧♦等选择要被复制的文件类型)。
操作系统文件管理系统 课程设计
操作系统文件管理系统课程设计
操作系统文件管理系统课程设计一般包括以下内容:
1. 基本概念和原理:介绍文件管理系统的基本概念和原理,包括文件、目录、文件系统、文件操作等。
2. 设计需求分析:明确设计需求,包括基本功能、用户需求、性能要求等。
3. 文件存储结构的设计:设计文件存储结构,包括文件分配方式、文件存储结构、文件目录结构、文件保护等。
4. 文件操作的实现:实现文件的创建、打开、读写、删除等基本操作,以及文件的复制、移动、重命名等高级操作。
5. 目录管理的实现:实现目录的创建、删除、重命名等操作,以及目录的遍历和搜索等功能。
6. 文件系统的实现:实现文件系统的格式化、挂载、卸载等操作,以及文件系统的安全性和可靠性保障。
7. 用户界面的设计:设计用户界面,包括命令行界面和图形界面,以方便用户进行文件管理操作。
8. 系统测试和调试:对系统进行测试和调试,包括单元测试、集成测试、性能测试等,以确保系统的稳定性和可靠性。
9. 报告撰写和展示:根据课程设计的要求,编写设计报告和展示文稿,介绍系统的设计思路、实现方法和成果。
以上是一个基本的操作系统文件管理系统课程设计的内容,具体可以根据教师的要求和课程的安排进行适当调整和扩展。
简单的文件系统课程设计
简单的文件系统课程设计一、课程目标知识目标:1. 学生能够理解文件系统的基本概念,掌握文件、文件夹的创建、删除、复制、移动等基本操作。
2. 学生能够了解简单文件系统的结构,掌握文件的存储、读取、写入等过程。
3. 学生能够掌握文件权限和文件属性的概念,了解如何保护文件安全。
技能目标:1. 学生能够熟练使用文件管理器,对文件和文件夹进行有效管理。
2. 学生能够编写简单的程序,实现对文件的基本操作,如读写、复制等。
3. 学生能够运用所学知识,解决实际生活中遇到的文件管理问题。
情感态度价值观目标:1. 培养学生良好的文件管理习惯,提高信息素养,增强信息处理能力。
2. 培养学生的团队协作意识,学会在合作中分享和交流文件资源。
3. 增强学生的网络安全意识,尊重知识产权,遵循法律法规。
本课程针对五年级学生设计,结合学生好奇心强、动手能力强、善于合作等特点,注重理论与实践相结合,让学生在实际操作中掌握文件系统知识。
课程目标具体、可衡量,便于教学设计和评估,有助于提高学生的信息素养和实际操作能力。
二、教学内容1. 文件系统基本概念:文件、文件夹、路径、文件类型等。
2. 文件管理基本操作:创建、删除、复制、移动、重命名文件和文件夹。
3. 文件系统结构:磁盘分区、目录结构、文件存储方式。
4. 文件读写过程:文件的打开、读取、写入、关闭。
5. 文件权限与属性:设置文件权限,了解文件属性的作用。
6. 文件管理器的使用:熟悉文件管理器的界面和功能,提高文件管理效率。
7. 简单文件操作编程:使用编程语言实现文件的创建、读写、删除等操作。
8. 文件共享与安全:文件共享的方法,文件加密、解密,保护文件安全。
教学内容根据以下教材章节组织:第一章:计算机系统概述第二节:文件系统基本概念第三节:文件管理基本操作第二章:文件系统第一节:文件系统结构第二节:文件读写过程第三节:文件权限与属性第三章:文件管理与应用第一节:文件管理器的使用第二节:简单文件操作编程第三节:文件共享与安全教学进度安排:共8课时,每课时40分钟。
文件管理系统课程设计报告
摘要该论文的内容主要基于JA V A语言的字符界面的一个二级文件管理系统的程序的设计和分析,主要是模拟操作系统内的文件管理系统模块,但由于水平有限,只实现了文件管理系统的主要几个功能有:用户登陆功能,相当于DOS系统的dir查询子目录功能,创建新的文件夹功能,删除文件功能,复制文件功能,如果登陆错误,系统提示你输入有错误,你可以选择重新输入或者是退出系统,主要用到的知识点是JA V A语言的输入输出流当中的一些类库,关键字: JA V A BuffereReader ListFiles ArrayList File目录第一章需求分析 (3)1.1设计背景 ................................................... 错误!未定义书签。
第二章概要设计 (4)一套接字调用时序图.................................... 错误!未定义书签。
二程序流程图 ................................................. 错误!未定义书签。
第三章详细设计 (6)一数据字典 ................................................... 错误!未定义书签。
二功能模块设计............................................ 错误!未定义书签。
第四章设计测试 (9)一设计测试用例 (9)第五章设计体会 ...................... 错误!未定义书签。
第六章参考文献 ...................... 错误!未定义书签。
第一章需求分析1.1设计背景平时只是用操作系统,从来都不管理它是一个什么东西,具体包括了哪些知识,就是因为自己的系统出了问题,也不知道是为什么,自从这个学期学了操作系统这个必修课,自己真正开始去了解这个非常深渊的知识,学了一个学期的操作系统,才算是真正学了计算机这门科学,否则你的计算机水平必然是低级的水平,学习的过程中有做实验,都是为了巩固基础知识,在每一次实验都努力完成后,也想自己做个简单的系统,来模拟操作系统的实现,但是操作系统功能实在太大,又把操作系统细分成几个模块,有进程管理,处理机管理,存储管理,设备管理,文件管理这几个大的模块,每一个模块都完成相应的功能,根据自己的水平,决定做文件管理这一个模块,由于自己想学一下文件的输入输出流,这对于以后,你想做一个比较大的系统,基本上都关系到文件的操作,所以做这个文件管理系统,有利于自己后面的发展,由于有一个星期的时间,也足够了,首先我选择用JA V A作为开发语言,主要是我以后想往这方便发展,做这个可以为我打好基础知识,当然更好的是为了自己更好的理解操作系统的内核是怎么实现,根据文件系统的相关原理,设计并用编程实现一个类似Windows系统中“我的电脑”功能的文件管理系统,该文件系统可以对系统中所有文件进行基本的管理,实现了创建,查看,删除,复制,这几个基本的功能,1.2 开发环境Javasdk1.4.2的环境下设计这个程序第二章概要设计2.2 功能模块图第三章详细设计3.1主要设计思想因为这人程序主要是完成几个简单的文件管理功能,我选用JA V A做于开发语言,以操作系统的文件管理模块作为参考,整个程序完成是在字符界面下完的,首先是提示用户怎么登陆, 登陆成功后接着提示用户选择哪个项功能进行操作,如果登陆失败,则提示用户再一次,不过输入次数是有限的,用户选择了一项操作后,系统根据用户的输入,显示相应的结果给用户,最后用户退出系统.3.2 功能模块设计(1):用户登陆模块用户登陆模块是程序一运行首先执行的模块,主要是用来检测用户是否是管理员或者是本程序的作者,以实现基本上的人性化,在这个模块内,设置了两个字符串变量,分别是:user,password,值分别为用户名和密码,然后在接受到用户输入的参数后,采用下面的方法来验证是否正确,同时还设计了输入次数的限制.if((users.equals(user))&&(password.equals(pw))){System.out.println("登陆成功,本系统主要为你完成以下功能:");new FileSystem();break;}else{System.out.println("你输入的用户名或者是密码有错误!");System.out.println("按 y 重新输入,n 退出!,请小心输入,你只有三次机会!!");i++;BufferedReader brd=new BufferedReader(newInputStreamReader(System.in));String st=brd.readLine();if(st.charAt(0)=='y')continue;elseSystem.exit(0);}(2):查询功能模块此模块的功能主要是类似于DOS系统下的dir命令的功能,此设计方法主要是采用了递归的功能,因为查看的文件夹包含的子文件中有可能是文件夹而不是文件,由于这一点,你要正确的分别是文件还是文件夹,采用JA V A系统库的下列方法来实现:主要是用到了,isDirectory()j是用来检测是否是目录, 如果是目录,则递归调用,getAbsolutePath(),是获得路径和文件名,if (list[i].isDirectory()){System.out.println(list[i].toString()+"是个文件夹");new LookFile().listf(list[i].toString());}else{listFileStr+=list[i].getAbsolutePath()+"\r\n";System.out.println(list[i].getAbsolutePath());}(3):新建功能模块此模块的功能比较简单,就是模拟操作系统的新建一人文件夹,它要提示用户输入路径和新建的文件名,如是新建不成功,同用户显示信息,让用户知道新建是否成功,主要方法是Create(String filepath,String filename,String type) throws IOException{boolean b=false;File f=new File(filepath+filename);if (type.equals("file")){b=f.createNewFile();}else if(type.equals("folder")){b=f.mkdir();}两个参数分别是,文件名和路径,调用系统库的两个函数,createNewFile()和mkdir()分别用来创建文件和文件夹.(4):删除功能模块此模块的功能比较简单,就是模拟操作系统的删除一个文件夹, 它要提示用户输入路径和要删除的文件名,首先是检测用户输入的文件存不存在,不存在则显示信息给用户,存在则执行删除操作,主要用到了系统库的如下方法:a:listFiles();b:delete();listFiles()是获得文件夹的列表,delete是删除某个文件(5):复制功能模块此模块的功能是模拟操作系统的复制一个文件夹的操作,它要求用户输入三个参数,分别是:原文件名和路径,复制以后的文件名,保存的路径,用户输入后,模块检测原文件是否存在,存在则操作成功,否则显示错误信息,核心方法是:CopytoFile(String bf,String nfp,String nfn)throws IOException{ String tem;String str="";BufferedReader in=new BufferedReader(new FileReader(bf));PrintWriter out=new PrintWriter(new BufferedWriter(newFileWriter(nfp+"\\"+nfn)));while((tem=in.readLine())!=null){str+=tem+"\n";}in=new BufferedReader(new StringReader(str));while((tem=in.readLine())!=null){out.println(tem);}in.close();out.close();}此方法采用缓冲输入流“BufferedReader”利用它的 readLine()方法一行一行的卖起,保存到一个暂时变量中,直到读完,然后利用”PrintWriter”类库的println()方法写入指定的文件.第四章设计测试一设计测试用例1.1设置用户模块的用例:由于这个程序我在编写程序时只设定一个固定的用户名和密码,用户名是: ronxin密码是: 123所以输入的只能是这两个,否则就是不正确,登陆成功后会显示所有功能让用户选择,如果输入错误,则重新输入,两种情况的界面分别如下:输入错误运行界面1.2 查看文件模块的用例用户选择第一个功能,输入的文件名和路径为:h:\test,运行的界面如下:按到字典的顺序显示文件中所有文件1.3 复制模块测试用户输入的原文件为:e:\prx\login.java,复制后的文件路径和文件名分别为:e:\copy\copy_login.java,copy为用户用本系统新建的文件夹,copy_login.java为复制后的文件名,运行的结果如下:第五章设计体会一设计心得学了一个学期的操作系统,掌握了操作系统的基本知识,有了理论上的知识,也想利用自己学的知识,来证明一下,自己选择的这文件管理系统,首先是到图书馆找资料,决定用JA V A做这个程序,在做的过程中碰到好多的问题,现在总结如下:1:做这个文件管理程序,有很多的知识点都是关于文件的读和写的操作,所以首先你得了解JA VA的输入输出流的知识,用得最多的是缓存输入输出流:BufferedReader 和它的函数.readLine() 用来接收用户的输入,2:在设计程序时采用的时面向对象的方法,指每个功能模块设计成一个类,就一个主类,是运行的入口,提高了自己的面向对象的编程能力,3:能过做这个程序,也对操作系统的文件管理功能这个部分理解得更好,掌握了大概的一个实现过程,4:在输入文件和文件路径时要注意格式的正确,否则系统会显示你输入的文件不存在。
C++课程设计---文件管理系统
报告内容:1.管理系统的功能说明这是一个用来进行文件管理的系统,能够实现对文件信息(包括文件号、文件名、文件性质、创建日期、文件大小)的浏览、创建、修改、搜索等功能。
2.储存数据的描述储存的数据由Flies类完成,Flies类中设置了num,name,type,date,space 5个成员来分别记录数据的文件号、文件名、文件性质、创建日期、文件大小。
(便于测试事先录入了5个初始数据)3.概要设计说明源程序主要分为3个部分:1.用于储存数据的Flies类(其中包括修改数据的函数check以及显示数据内容display)。
2.实现系统功能的函数(包括主菜单显示函数menu、增加数据函数add、用于查询数据的函数search1,search2)。
3.主函数。
4.源程序#include <iostream>#include <string>using namespace std;class Flies{ //定义Flies类public:string num,name,type,date,space; //flies类的成员Flies(){}Flies(string n,string N,string T,string D,string S){num=n;name=N;type=T;date=D;space=S;}void check() //修改flies类成员的函数check {cout<<"输入新的文件号:";cin>>num;cout<<"输入新的文件名:";cin>>name;cout<<"输入新的文件类型:";cin>>type;cout<<"输入新的创建日期:";cin>>date;cout<<"输入新的文件大小:";cin>>space;}void display() //显示flies类成员内容的函数display {cout<<"文件号:"<<num<<endl;cout<<"文件名:"<<name<<endl;cout<<"文件类型:"<<type<<endl;cout<<"创建日期:"<<date<<endl;cout<<"文件大小:"<<space<<endl;cout<<endl;}};void menu() //显示主菜单的函数menu {cout<<"*--------------------------*"<<endl;cout<<"| Menu |"<<endl;cout<<"| 输入:T (浏览数据) |"<<endl;cout<<"| A (增加数据) |"<<endl;cout<<"| C (修改数据) |"<<endl;cout<<"| S (查询数据) |"<<endl;cout<<"| Q (退出程序) |"<<endl;cout<<"| |"<<endl;cout<<"*--------------------------*"<<endl;};Flies add() //添加新文件的函数add {string num,name,type,date,space;cout<<"输入文件号:";cin>>num;cout<<"输入文件名:";cin>>name;cout<<"输入文件类型:";cin>>type;cout<<"输入创建日期:";cin>>date;cout<<"输入文件大小:";cin>>space;Flies b(num,name,type,date,space);return b;}void search1(Flies a[],int Num) //按文件名查找对象的函数search1 { int count,i;string V;cout<<"输入要查找的文件名:";cin>>V;cout<<"查找结果为:"<<endl;for(i=0,count=0;i<Num;i++){if (a[i].name==V)a[i].display();elsecount++;}if(count==Num)cout<<"空"<<endl;cout<<endl;}void search2(Flies a[],int Num) //按文件类型查找对象的函数search2 { int count,i;string V;cout<<"输入要查找的文件类型:";cin>>V;cout<<"查找结果为:"<<endl;for(i=0,count=0;i<Num;i++){if (a[i].type==V)a[i].display();elsecount++;}if(count==Num)cout<<"空"<<endl;cout<<endl;}int main() //主函数{static int Num=5;char n,x;int i;Flies A("01","windows","dll","2012/2/3","20k"), //设置初始文件B("02","office word","doc","2012/4/12","500k"),C("03","Warcarft III","exe","2012/6/1","1.2G"),D("04","homework","txt","2012/12/7","128k"),E("05","Mylove","mp3","2013/6/13","4M");Flies a[]={A,B,C,D,E};while(1) {cout<<"****************************************************"<<endl;cout<<endl;menu();cout<<endl;cout<<"****************************************************"<<endl;cout<<"选择功能:"; //程序功能选择的实现cin>>n;if(n=='Q')break;switch (n){case 'T':for(i=0;i<Num;i++){a[i].display();}break;case 'A':a[Num]=add();Num++;break;case 'C':cout<<"需要修改第几个文件:";cin>>i;if(0<i&&i<=Num){a[i-1].check();break;}elsecout<<"该文件不存在,请确认"<<endl;break;case 'S':cout<<"(1)按文件名查找(2)按文件类型查找选择你需要的方式:";cin>>x;switch(x){case '1':search1(a,Num);break;case '2':search2(a,Num);break;default:cout<<"输入错误,请正确输入"<<endl;cout<<endl;break;}break;default:cout<<"输入错误,请正确输入"<<endl;cout<<endl;break;}}cout<<"谢谢使用,再见"<<endl;return 0;}5.测试分析主界面浏览初始数据(T)增加数据(A)修改数据(C)查新数据(S)退出程序(Q)6.总结报告总体来说这次设计还是比较顺利的,整个程序的内容设计基本上都在平时作业中出现过,也都是基础内容,由此可见平时的学习是十分重要的。
操作系统课程设计---文件管理系统设计
课程设计任务书计算机科学与技术专业年级班一、设计题目文件管理系统设计二、主要内容设计一个简单的文件管理系统来模拟文件操作命令的执行三、具体要求设计和调试一个简单的文件管理系统来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。
具体要求如下:⑴设计一个支持n个用户的文件系统,每个用户可拥有多个文件;⑵采用二级或二级以上的多级文件目录管理;⑶对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;⑷系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。
⑸通过键盘(或鼠标)使用该文件系统,系统应显示操作命令的执行结果。
四、进度安排2012-9-3-----2012-9-6 确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;2012-9-6-----2012-9-12 编写程序代码并调试,再将调试通过的各个子模块进行集成调试;2012-2-12----2012-9-16 归纳文档资料,完成课程设计说明书,参加课程设计答辩五、完成后应上交的材料在课程设计完成后需要提交的成果和有关文档资料包括:1、课程设计的说明书。
2、课程设计有关源程序及可运行程序(光盘或电子邮件)。
六、总评成绩:指导教师签名日期年月日系主任审核日期年月日一、本设计目的及基本思想本课程设计目的是实现树型目录结构文件系统,在实现过程中利用了二叉树,其中每个节点都有父指针,子指针和兄弟指针,其中子指针指向该目录下的第一个子节点,而该子节点的父指针则指向它的上级目录。
目录下各子节点用兄弟指针连接起来。
文件夹打开是则把文件夹名称及其地址压入打开文件夹栈,文件关闭则把文件夹名称及其地址从打开文件夹栈中抛出。
文件打开则把文件的名称及其父指针写到文件列表同时置文件打开标志为1,文件关闭则把文件从打开列表中删除,同时置文件打开指针为0,文件读取和写入都要检查文件是否在文件打开列表中,未打开文件不能读写,只读文件不能写,只写文件不能读。
1.课程设计报告-文件管理系统_计算机操作系统
第一部分概述1.1 系统开发背景1.1.1 文件系统的意义在现代计算机系统中,要用到大量的程序和数据,由于内存容量有限,且不能长期保存,故而平时总是把他们以文件的形式存放在外存中,需要时可随时将它们调入内存。
如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,还必须能保持数据的安全性和一直性。
显然,这是用户所不能胜任的工作。
取而代之的,便是在操作系统中增加了文件管理功能,即构成一个文件系统,负责管理在外存上的文件,并把对文件的存取,共享和保护等手段提供给用户。
这不仅方便了用户,保证了文件的安全性,还有效的提高了系统资源利用率。
1.1.2 开发背景(1)所设计软件名称:文件管理系统(2)本软件的提出者:(3)本软件的设计者:1.1.3 软件开发工具(1)MICROSOFT WINDOWS 2000(2)BORLAND C++ BUILDER 6.01.1.4 软件开发技术(1)C++程序设计(2)软件工程开发过程各阶段分析(3)1.2 系统功能介绍及目标1.2.1 系统实现功能(1)多用户、多级目录(注:本设计最多10个用户,实现3级目录)。
设置目录MFD和用户文件目录UFD,另外还为打开文件设置了运行文件目录AFD。
(2)至少有10个实用的文件操作命令(注:本设计可实现创建和删除目录,创建和删除文件,以及打开和关闭文件等功能)。
(3)设计一个既简单又实用的用户界面。
第二部分需求分析2.1 项目概述及数据流图2.1.1 系统的一般概述使用高级语言编写简单的文件系统,模拟文件管理的工作过程。
实现多用户文件管理,允许创建和删除文件,对文件属性设置保护。
采用多级文件目录。
2.1.2 系统的功能数据流图层次框图系统顶层数据流图系统二层数据流图2.2 功能需求分析2.2.1 功能划分用户管理功能身份验证功能目录管理功能文件管理功能文件属性管理功能帮助功能2.2.2 功能描述(1)用户管理功能允许用户进行注册,管理不同用户。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
**大学计算机科学与技术学院课程设计报告(2006 ~2007 学年度第2 学期)课程名称操作系统课程设计项目名称文件管理系统设计姓名学号专业班级地点教师1.题目内容:文件管理系统设计:设计和调试一个简单的文件系统,通过模拟文件操作命令的执行,来模拟文件管理,对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法. 2.设计任务及主要技术:设计任务:1.设计一个支持n个用户的文件系统,每个用户可拥有多个文件.2.采用二级或二级以上的多级文件目录管理.主要技术:1.对文件应设置存取控制保护方式,如“允许读”、“允许写”等.2.系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、修改属性、删除文件、读文件、写文件、复制文件、查询目录.3.通过键盘使用该文件系统,系统应显示操作命令的执行结果.3.设计方案及论证结果设计方案:本系统一共建立了Administrator 和Guest两个用户,每个用户拥有一个结构体数组为struct Flie fa[8]和struct Flie fg[8]每个用户最多可一建立8个文件,每个文件对应一个文件模块;文件模块:struct Flie{int ed; //判断是否正存放文件char f_name[8]; //文件名char f_c[8]; //存放文件内容int att ; // 文件属性0为只读1为只写};文件模块示意图:函数设计和功能分析:Main()函数的流程图:4.系统的原理框图:5.设计程序:#include <stdio.h>#include <stdlib.h> /*不容易归类的标准函数库*/#include <string.h>struct Flie{int ed; //判断是否正存放文件char f_name[8]; //文件名char f_c[8]; //存放文件内容int att ; // 文件属性 0为只读 1为只写 //用于指向文件内容模块}fa[8],fg[8];int x; //全局钥匙void check() //密码认证{int check,a=1;char pin1[]="admin"; //此处设定用户口令char pin[20];while(a){printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 文件管理系统用户登录*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\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");}else{system("cls");a=0;}}}void createfile() /*创建文件操作*/{int handle=1,a,check,i,j,h;char name[8],pin[8];while(1){printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 创建文件*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf("请输入所要创建的文件名称:\n");scanf("%s",name);if(x==1){for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fa[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{printf("\n创建错误!文件已经存在!");handle=0;getchar();break;}}if(handle==1){for(h=0;h<8;h++)if(fa[h].ed==0){strcpy(fa[h].f_name,name);while(1){printf("\n请选择文件属性(0.只读- 1.只写):");scanf("%d",&a);getchar();if(a==0||a==1){fa[h].att=a;printf("\n创建文件成功.\n");fa[h].ed=1;break;}elseprintf("错误! 请重新输入:\n");}break;}}getchar();break;}if(x==2){for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fg[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{printf("\n创建错误!文件已经存在!");handle=0;break;}}if(handle==1){for(h=0;h<8;h++)if(fa[h].ed==0){strcpy(fg[h].f_name,name);while(1){printf("\n请选择文件属性(0.只读- 1.只写):");scanf("%d",&a);g etchar();if(a==0||a==1){fg[h].att=a;printf("\n创建文件成功.\n");fg[h].ed=1;getchar();break;}elseprintf("错误! 请重新输入:\n");}break;}}break;}}}void deletefile() /*删除文件的操作*/{int status=0,j=0,i,check,choice;char name[8],pin[8];while(1){system("cls");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 删除文件*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");if(x==1){printf("请输入所要删除的文件名称:\n");scanf("%s",name); /*输入要删除的文件名*/printf("\n请确认(0 - 1):");scanf("%d",&choice);getchar();if(choice==1){for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fa[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{status=1;if(fa[i].att==0) /*获取文件的状态,是否存在并且是否只读*/j=1;if(j==1){printf("\n删除错误! 文件为只读文件!"); //只读文件}else if(j!=0) //从目录中删除一个文件{strcpy(fa[i].f_name," ");strcpy(fa[i].f_c," ");fa[i].ed=0;printf("\n删除文件成功.");}getchar();break;}}if(status!=1){printf("\n删除错误! 所要删除的文件不存在!\n");/*文件不存在*/getchar();}}break;}if(x==2){printf("请输入所要删除的文件名称:\n");scanf("%s",name); /*输入要删除的文件名*/printf("\n请确认(0 - 1):");scanf("%d",&choice);getchar();if(choice==1){for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fg[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{status=1;if(fg[i].att==0) /*获取文件的状态,是否存在并且是否只读*/j=1;if(j==1){printf("\n删除错误! 文件为只读文件!"); //只读文件}else if(j!=0) //从目录中删除一个文件函数{strcpy(fg[i].f_name," ");strcpy(fg[i].f_c," ");fg[i].ed=0;printf("\n删除文件成功.");break;}getchar();break;}}if(status!=1){printf("\n删除错误! 所要删除的文件不存在!");/*文件不存在*/getchar();}}}break;}}void openfile() /*打开文件操作*/ {int i,a=0,j,check;char name[8],pin[8];printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 打开文件*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf("请输入您所要打开文件的名称: \n");scanf("%s",name);getchar();if(x==1){for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fa[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{printf("%s",fa[i].f_c);a=1;}}if(a!=1)printf("文件不存在!");getchar();}else if(x==2){for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fg[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{printf("%s",fg[i].f_c);a=1;}}if(a!=1)printf("文件不存在!");getchar();}}void writefile() /*书写文件*/{int i,j,check,b=1;char ch=0,a=0,name[8],c[8],pin[8];while(b){printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 书写文件*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf("请输入要书写的文件的名称:\n");scanf("%s",name);if(x==1){for( i=0;i<8;i++) /*获取文件的状态,是否存在*/{for(j=0;j<8;j++)pin[j]=fa[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{if(fa[i].att==0){printf("书写错误!只读文件!\n");a=1;getchar();getchar();break;}printf("请输入文件的内容: \n");scanf("%s",c);strcpy(fa[i].f_c,c);printf("书写文件成功.\n");a=1;b=0;getchar();getchar();break;}break;}if(a!=1){printf("文件不存在!");getchar();getchar();break;}break;}getchar();if(x==2){for( i=0;i<8;i++) /*获取文件的状态,是否存在*/{for(j=0;j<8;j++)pin[j]=fg[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{if(fa[i].att==0){printf("书写错误!只读文件!\n");a=1;getchar();break;}printf("请输入文件的内容: \n");scanf("%s",c);strcpy(fg[i].f_c,c);printf("书写文件成功.\n");a=1;getchar();getchar();break;}}if(a!=1){printf("文件不存在!");break;}}break;}}void copyfile() // 复制文件操作{int i,j,k,l,check,p;char name[8],name1[8],pin[8];printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 复制文件*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");if(x==1){printf("请输入要复制的文件的名称:\n");scanf("%s",name);g etchar();printf("请输入要复制到的文件的名称:\n");scanf("%s",name1);g etchar();for( i=0;i<8;i++) //获取文件的状态,是否存在{for(j=0;j<8;j++)pin[j]=fa[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{for( k=0;k<8;k++) //获取文件的状态,是否存在{for(l=0;l<8;l++)pin[l]=fa[k].f_name[l];check=strcmp(pin,name1);if (check!=0){}else{for(p=0;p<8;p++){fa[k].f_c[p]=fa[i].f_c[p];}printf("复制成功\n");}}}}}if(x==2){printf("请输入要复制的文件的名称:\n");scanf("%s",name);g etchar();printf("请输入要复制到的文件的名称:\n");scanf("%s",name1);g etchar();for( i=0;i<8;i++) //获取文件的状态,是否存在{for(j=0;j<8;j++)pin[j]=fg[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{for( k=0;k<8;k++) //获取文件的状态,是否存在{for(l=0;l<8;l++)pin[l]=fg[k].f_name[l];check=strcmp(pin,name1);if (check!=0){}else{for(p=0;p<8;p++){fa[k].f_c[p]=fa[i].f_c[p];}printf("复制成功\n");getchar();}}}}}getchar();}void modifyfile() /*修改属性操作*/{int status=0,a,i,j,check;char choice,name[8],pin[8];while(1){printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 修改属性*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");if(x==1){printf("请输入所要修改属性的文件的名称:\n");scanf("%s",name);getchar();for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fa[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{printf("<0.只读-- 1.只写>\n");printf("请选择文件属性:");while(1){scanf("%d",&a);getchar();if(x==1||x==2)b reak;elseprintf("错误! 请重新输入:\n");}fa[i].att=a;printf("修改属性成功.\n");status=1;break;}} /*获取文件的状态*/if(status!=1){printf("错误! 文件不存在!");getchar();printf("是否重新输入?(Y - N)\n");scanf("%c",&choice);getchar();if(choice=='N'||choice=='n')break;}getchar();break;}if(x==2){printf("请输入所要修改属性的文件的名称:\n");scanf("%s",name);getchar();for( i=0;i<8;i++){for(j=0;j<8;j++)pin[j]=fg[i].f_name[j];check=strcmp(pin,name);if (check!=0){}else{printf("<0.只读-- 1.只写>\n");printf("请选择文件属性:");while(1){scanf("%d",&a);getchar();if(x==1||x==2)b reak;elseprintf("错误! 请重新输入:\n");}fg[i].att=a;printf("修改属性成功.\n");break;}if(i==7){status=1;break;}} /*获取文件的状态*/ if(status=1){printf("错误! 文件不存在!");getchar();printf("是否重新输入?(Y - N)\n");scanf("%c",&choice);getchar();if(choice=='N'||choice=='n')break;}getchar();}}}void catalogue() /*目录管理子程序*/{int x,a=1;char name[8];while(a) /*目录管理操作*/{printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 目录管理*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" 1.显示目录 6.退出目录\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");scanf("%s",name);printf("\n%s的文件目录为:\n",name);if(x==1)printf("\n Administrator/%s 文件",name);if(x==2)printf("\n Guest/%s 文件",name);a=0;getchar();break;}case 2: /*退出目录管理操作*/{system("cls");getchar();a=0;break;}}getchar();break;}}int init() /*初始化操作界面函数*/{int i;printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" * 文件管理系统*\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf("1.创建文件 2.删除文件 3.打开文件 4.书写文件\n");printf("5.复制文件 6.修改属性7.目录管理8.消注\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf("请您选择:");scanf("%d",&i);return(i); /*选择相应的序号,执行相应的操作*/}void main(){int flag=1,i;check();while(flag) /*初始化系统界面*/{if(x==3){exit(0);i=init();getchar();switch(i){case 1: /*创建文件*/{system("cls");createfile();system("cls");break;}case 2: /*删除文件*/ {system("cls");deletefile();system("cls");break;}case 3: /*打开文件*/ {system("cls");openfile();system("cls");break;}case 4: /*写文件*/ {system("cls");writefile();system("cls");break;}case 5: //拷贝文件{system("cls");copyfile();system("cls");break;}case 6: //修改文件属性{system("cls");modifyfile();system("cls");break;}case 7: /*文件目录管理*/ {system("cls");catalogue();system("cls");b reak;}case 8:{system("cls");check();system("cls");break; /*退出文件管理系统程序*/}default:printf("\n\n 错误!请重新输入:\n");getchar();break;}}}6.实验结果7.实验中主要问题及故障现象的分析及设计结论:结构体的设计和运用很不熟练,结构体数组的运用,结构体的每个元素都是独立的一个模块,但都统一被结构体变量所调用,结构体数组是一个逻辑数组。