您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统课程设计-二级文档管理系统
青岛科技大学操作系统课程设计学生班级__________________________学生学号__________________________学生姓名________________________________年___月___日0908010209Angelo2012626计算机092操操作作系系统统课课程程设设计计(二级文件管理系统)一一、、课课程程设设计计要要求求从所给题目中选择一个,分析设计要求,给出解决方案,建立必要的数据结构,设计总体流程(包括界面),详细设计必要的算法,测试结果。基于Windows或Linux操作系统都可以,编程语言不限。二二、、设设计计目目的的深入了解文件管理系统,初步掌握文件管理系统的实现方法。三三、、选选择择题题目目设计一个简单的二级文件系统设计内容:编写程序模拟实现一个简单的文件管理系统,设计一个较实用的用户界面,方便用户使用。设计要求:提供以下相关文件操作:(1)具有login(用户登录)(2)系统初始化(建文件卷、提供登录模块)(3)文件的创建:create(4)文件的打开:open(5)文件的读:read(6)文件的写:write(7)文件关闭:close(8)删除文件:delete(9)创建目录(建立子目录):mkdir(10)列出文件目录:dir(11)退出:loyout四四、、程程序序设设计计(1)开发环境Ubuntu11.10GCC(GNUCompilerCollection,GNU编译器套装)C语言编程(2)设计思想文件管理仅针对相应用户,用户注册时,自动分配对应的文件空间,该用户所有的文件保存在该用户空间下。用户只有对自己空间中的目录或文件具有权限。文件管理系统,模拟Linux文件管理指令格式,模拟实现ls、cat、rm、cd、mkdir等基础文件管理指令,并具有较明朗的操作界面。(3)流程设计1、系统执行流程图开始界面开始注册登陆选择操作创建文件删除文件读文件写文件创建文件夹删除文件夹目录跳转查看所有文件查看帮助查看所有目录退出结束2、创建文件(夹)3、删除文件(夹)(4)主要模块设计#defineMaxUser20//最大用户数开始创建文件(夹)文件(夹)是否存在结束输入文件(夹)名文件已存在,无法创建开始文件(夹)不存在文件(夹)是否存在结束输入文件(夹)名删除文件(夹)#definecommandAmount9//指令数char_user[20];//当前用户名charcurrentDir[255];//当前所在目录typedefstructUserMess//所有用户信息{char_UserName[20];char_UserPwd[20];structUserMess*nextUser;}_UserMess;_UserMess*firstUser;ttyyppeeddeeffssttrruuccttFFoollddeerrDDiirr////目目录录路路径径信信息息{{cchhaarr__DDiirr[[225555]];;ssttrruuccttFFoollddeerrDDiirr**ffaatthheerrDDiirr;;}}__RRoooottDDiirr;;__RRoooottDDiirr**rroooottFFoollddeerr;;typedefstructFolder//当前目录子目录信息{char_FolderName[100];structFolder*nextFolder;}_Folder;_Folder*firstFolder;typedefstructFile//当前目录下文件信息{char_FileName[100];structFile*nextFile;}_File;_File*firstFile;(5)功能函数设计voidinit();//初始化部分内容intReadUserMess();//读取已有用户信息intuserCreate(intsumUsers);//用户注册intlogin();//登录voidcreateRootFolder(charusername[]);//为新用户分配空间voidTraverseFolder(charpath[]);//遍历文件及文件夹voidListFileAndFolder();//显示当前文件夹下所有文件voidChangeDir(charfolderName[]);//目录跟换voidDelete(charfName[]);//删除文件或文件夹voidCatFile(charfName[]);//打开文件,查看文件内容voidAddContent(charfName[]);//向文件写入内容voidCreateFile(charfName[]);//创建文件voidCreateFolder(charfolderName[]);//创建文件夹voidHelpFile();//帮助文件(6)运行部分截图图1模拟的指令预览,以及系统支持指令格式图2用户登录,并查看根目录下所有文件及文件夹图3查看文件内容,并写入信息图4目录跳转功能图5删除文件、删除目录五五、、程程序序代代码码#includestdio.h#includestdlib.h#includestdio.h#includestring.h#includesys/types.h#includedirent.h#defineMaxUser20#definecommandAmount9char_user[20];charcurrentDir[255];typedefstructUserMess{char_UserName[20];char_UserPwd[20];structUserMess*nextUser;}_UserMess;_UserMess*firstUser;typedefstructFolderDir{char_Dir[255];structFolderDir*fatherDir;}_RootDir;_RootDir*rootFolder;typedefstructFolder{char_FolderName[100];structFolder*nextFolder;}_Folder;_Folder*firstFolder;typedefstructFile{char_FileName[100];structFile*nextFile;}_File;_File*firstFile;voidinit();//初始化部分内容intReadUserMess();//读取已有用户信息intuserCreate(intsumUsers);//用户注册intlogin();//登录voidcreateRootFolder(charusername[]);//为新用户分配空间voidTraverseFolder(charpath[]);//遍历文件及文件夹voidListFileAndFolder();//显示当前文件夹下所有文件voidChangeDir(charfolderName[]);//目录跟换voidDelete(charfName[]);//删除文件或文件夹voidCatFile(charfName[]);//打开文件,查看文件内容voidAddContent(charfName[]);//向文件写入内容voidCreateFile(charfName[]);//创建文件voidCreateFolder(charfolderName[]);//创建文件夹voidHelpFile();//帮助文件intmain(){intlogined=0;intselect;charch;charorder[commandAmount][9];strcpy(order[0],create);strcpy(order[1],rm);strcpy(order[2],cat);strcpy(order[3],write);strcpy(order[4],ls);strcpy(order[5],cd);strcpy(order[6],exit);strcpy(order[7],mkdir);strcpy(order[8],help);charcommand[15],command_str1[255];inti,j;init();intuserNum=ReadUserMess();//printf(Usercount:%d\n,userNum);intisright=1;while(isright==1){printf(********************************************\n);printf(1、Creatuser\n);printf(2、login\n);printf(********************************************\n);printf(Pleasechoocethefunctionkey:);intchoice;setbuf(stdin,NULL);scanf(%d,&choice);if(choice==1){logined=userCreate(userNum);isright=0;}elseif(choice==2){logined=login(userNum);isright=0;}}TraverseFolder(currentDir);if(logined==1){while(logined){//command[0]=0;for(i=0;i15;i++){command[i]=0;}for(i=0;i255;i++){command_str1[i]=0;}//command_str1[0]=0;setbuf(stdin,NULL);printf(\n%s:~$,_user);for(i=0,j=0;ch=getchar();i++){if(j==1){if(ch==''||ch=='\n'){command_str1[i]=0;break;}else{command_str1[i]=ch;}}if(j==0){if(ch==''){i=-1;j++;}elseif(ch=='\n'){command[i]=0;break;}else{command[i]=ch;}}}printf(\n);for(i=0;icommandAmount;i++){if(!strcmp(command,order[i])){select=i;break;}}if(i==commandAmount){printf(Undefinedcommand!\n);continue;}switch(select){case0:if(command_str1!=NULL){CreateFile(command_str1);}else{printf(Donothasnormalfilename,createfailed!\n);}break;case1:if(command_str1!=NULL){Delete(command_str1);}else{printf(Donothasnormalfileordirname,createfailed!\n);}break;case2:if(command_str1!=NULL){CatFile(command_str1);}else{printf(Donothasnormalfilename,createfailed!\n);}break;case3:if(command_str1!=NULL){AddContent(command_str1);}else{printf(Donothasnormalfilename,createfailed!\n);}break;case4:TraverseFolder(currentDir);ListFileAndFolder();break;case5:
本文标题:操作系统课程设计-二级文档管理系统
链接地址:https://www.777doc.com/doc-4221739 .html