




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件管理系统学院名称: 京 江 学 院 专业班级: J计算机1401 学号: 学生姓名: 指导教师: 2017年1月目 录一、课设目的1二、课设题目1三、系统功能结构2四、主要数据结构3五、系统使用说明4六、课程设计中遇到的问题及解决方法8七、带注释的代码913操作系统课程设计一、课设目的操作系统是计算机专业的一门专业课,也是计算机专业考研课程,但操作系统比较抽象,有的同学一学期完了都还很难理解进程、内存管理等一些概念和原理,操作系统课程设计的目的就是通过设计的实验,让同学们真正理解进程的实现,内存管理的机制,达到理解概念,了解实现原理。同时也进一步巩固程序设计与数据结构的实践技能,实现整个大学阶段实践技能不断线的目的。二、课设题目实现一个简单的文件管理系统(1)具有文件目录(一级或者多级)(2)对指定大小的磁盘(设共1GB,每个块为1MB),建立位示图进行管理(3)文件操作,包括新建、查看属性、删除新建文件:给出文件名、大小、建立时间等信息,系统为其分配硬盘空间,并记录在文件目录中查看属性:给出文件名,可以输出该文件的所有属性,以及该文件所占用的物理块号。删除文件:给出文件名,实现文件的删除(4)文件系统操作:显示文件列表、显示磁盘空间剩余大小、输出位示图。三、系统功能结构(使用语言或者图形方式表示所实现的所有功能)进入Java简单的文件管理系统界面。输入1,调用CiPan()函数,设置磁盘大小,指定大小的磁盘(设共1GB,每个块为1MB),建立位示图进行管理。分块 n = disksize*1024/blocksize;输入2,调用ChuangJian()函数,创建新文件,输入文件名和大小,剩余内存等于原有内存减去创建的文件的大小,并在位示图中把占用的块置为1,标记插入的开头和结尾。输入3,调用Delelte()函数,删除文件,输入要删除的文件名,在已经创建的文件中查找是否存在此文件,如果有则释放对应的文件及所占有的内存,剩余内存等于原有内存加上删除的文件的大小,并把位示图中对应的块置为0。输入4,输出目录信息。输入5,输出文件属性。输入6,输出剩余的内存大小。输入7,输出位示图。四、主要数据结构(说明各种管理中所采用的方法,设计的数据结构的含义)设置磁盘大小和盘块大小时,需要对初始的变量进行赋值,对文件字符数组赋初值为空,创建的文件有数量限制。创建文件时,需要对文件的名字进行标记,标记插入的位置和大小,剩余内存等于原有内存减去此文件的大小,中间的插入需要在位示图中寻找是否有空的盘块,如果有的话,则把对应的盘块置为1。删除文件时,需要先去寻找要删除的文件所对应的块的位置和文件名所对应的数组。如果找到了,显示删除成功,删除对应的块、名字,释放对应的内存空间,把对应的位示图所使用的盘块置为0;若果没找到,则显示此文件不存在。 目录,直接把name字符串数组里面的东西按顺序输出。 文件属性,把对应的name和arr输出。剩余磁盘大小,在创建文件时,需要减去对应的文件的大小,在删除文件时,需要加上所删除的文件的大小。 输出位示图,在创建文件时,把对应的大小的数量在位示图上标记出来,使用了就标记为1,没有就是0;在删除文件时,把对应的文件的所使用的内存所对应的位示图的位置置为0,这样就在位示图上弄好了。五、系统使用说明(通过文字和主要功能截图的方式,大致说明系统的使用方法)1、初始化,建立环境,输入磁盘大小和盘块大小(此处使用磁盘大小1GB和盘块大小1MB,用户可以随意改变参数)2、新建文件,输入文件名,大小。(建立多个文件)3、输出目录4、输出属性5、 输出剩余磁盘大小6、输出位示图7、删除文件六、课程设计中遇到的问题及解决方法 刚开始我拿到这个操作系统课程设计的题目时是很迷茫的,感觉什么都不会,开始花了大量的时间用在做Java图形界面上,试了很多次,发现用Java做图形界面时,输入的文字保存有问题,但是单个模块测试却是没有问题的,点击确认按钮时,创建文件是跳不出来主界面的,试了3天后我已经放弃用图形界面,转换为控制台里输入和显示,这样就避免了跨类调用等的问题。虽然是这样,但也是在之前的程序上把图形界面的程序删除了,然后精简到一个类中。在这之中也遇到了一些小问题,输入的问题,我跟老师、同学交流了一下,那个同学用C语言做的,给了我很大的启发。我就对着程序添添补补,把那些不要的程序删除了,加上一些好的程序。就这样花了几个小时就完成了,虽然功能不是很完善,但是我已经尽力了!这次课程设计对我的影响很大,我第一次凭借自己的努力用Java写出来一个规模较小程序,累是累但是收获很大。对我的人生产生了前进的动力。在此感谢老师,感谢那位同学的意见!七、带注释的代码package a;import java.util.Scanner;public class M static int disksize; /磁盘容量static int blocksize; /块的大小static int row; /初始要插入位示图的行static int column; /初始要插入位示图的列static int n; /块的数目static int r; /剩余大小static int k = 0; /目录级static int d = 10;static int kk = -1;/做删除找到的标记static int a = 0; /创建的数目存放,最大10个static int b = 0; /删除的数目存放static int c = new intd;/标记1为有文件,0为空的static int arr = new intd1;/标记插入的大小static int wst = new int2048;/位示图static String name = new Stringd;/文件名字存放的位置static String name1 = new Stringd;/文件名字删除存放的位置static int k1 = new intd; /记录文件开始存放的位置static int k2 = new intd; /记录文件结束的位置static int k3 = new int1;static int k4 = new int1;static int k5 = new int1;static int k6 = new int1;static int p1 = new intd; /记录目录下文件夹子目录是否为空public void CiPan()/设置磁盘大小的模块System.out.println(设置磁盘大小);System.out.print(磁盘容量(G):);Scanner rea1 = new Scanner(System.in);disksize = rea1.nextInt();System.out.print(块的大小(M):);Scanner rea2 = new Scanner(System.in);blocksize = rea2.nextInt();System.out.print(请输入您所需要的系统多少位:);Scanner rea3 = new Scanner(System.in);column = rea3.nextInt(); n = disksize*1024/blocksize;r = n;row = disksize*1024/column;for(int i = 0; i d; i+)namei = ;for(int j = 0; j disksize*1024/blocksize; j+)wstj = 0;public void MuLu() /显示目录的模块System.out.println( 目录 );for(int i = 0; i 10; i+)if(p1i = 1)System.out.println( +namei);public void ChuangJian() /创建文件的模块System.out.println(请输入要创建的文件名称:);Scanner rsda = new Scanner(System.in);/ 获得新文件的名称namea = rsda.nextLine();if(k 10)if (namea != null) / 创建新文件p1k = 1;System.out.println(请输入要插入的其大小(M);Scanner re3 = new Scanner(System.in);arra0 = re3.nextInt(); System.out.println(文件: +namea+序列是:+a+;大小:+arra0+M);ca = 1;k30 = 1;k60 = 1;for(int j = 0; j n; j+)if(wstj = 0)if(k60 0)k40 = j;k60 = 0;k60 = 1;r = r-arra0;for(int i = k40; i = (k40+arra0-1) ; i+ )if(k30 = 1)wsti = 1;k1a=i;k30-;else if(k30 = 0)wsti= 1;k50-;k2a=i;k30=1;k+;a+;public void Delete()/删除文件的模块System.out.println(请输入要删除的文件名称:);Scanner rcds = new Scanner(System.in);/ 获得新文件的名称name1b = rcds.nextLine();if (name1b != null) / 删除文件for (int i = 0; i 10; i+) / 查看删除的文件是否存在if(name1b.equals(namei)kk = i;r = r+arrkk0;if(kk!=-1p1kk=1)p1kk = 0;ckk = 0;namekk = ;for(int j = k1kk; j = k2kk; j+)wstj = 0;System.out.println(删除成功!);kk = -1;else if(kk = -1)System.out.println(此文件不存在!);public void Show() /查看属性System.out.println(文件名+ +大小(M);for(int i = 0 ; i d ; i+) if(ci = 1)System.out.println( +namei+ +arri0);public void Remained()/剩余大小System.out.println(剩余大小为: +r);public void Bitmap() /输出位示图System.out.println(位示图);for(int i = 0 ; i n ; i+) if(i+1) % column != 0 )System.out.print(wsti+ );else if(i+1) % column = 0)System.out.println(wsti);public static void main(String args) /主函数模块int k;while(true) System.out.println( Java简单的文件管理系统 );System.out.println( 1.设置磁盘大小);System.out.println( 2.创建文件);System.out.println( 3.删除文件);System.out.println( 4.文件目录);System.out.println( 5.查看属性);System.out.println( 6.显示磁盘剩余大小);System.out.println( 7.输出位示图);System.out.println();System.out.print(请输入上面的编号:);Scanner sc = new Scanner(System.in);k = sc.nextInt();switch(k)case 1: M m1 = new M();m1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亳州学院考试试题及答案
- 南京中考体育试卷及答案
- 人伤条线人体损伤致残程度分级考试题及答案
- 周口市公路工程试验检测师资格考试(公共基础)综合能力测试题及答案(2025年)
- 2025年淮北医师资格考试(实践技能)复习题库及答案
- 驳筑、集拆坨盐工职业考核试卷及答案
- 电器附件装配工技能操作考核试卷及答案
- 玻璃灯工质量管控考核试卷及答案
- 防爆电工知识考试题(附带答案)
- 数控车工(中级)资格鉴定理论试题库及答案
- 沈阳停车收费管理办法
- 2025版小学语文新课程标准
- 2025年 无锡市工会社会工作者招聘考试笔试试题附答案
- 小学保护洱海教学课件
- 地铁车站装修安全文明施工专项方案及措施
- 金属冶炼安全培训课件
- 3D打印车间粉尘防爆管理体系
- 剪映入门培训课件
- 新能源汽车充电桩工程物资供应措施
- 基于大数据的国际广播媒体发展模式比较分析-洞察阐释
- DB32-T 5108-2025 科技服务机构星级评定规范
评论
0/150
提交评论