Linux系统资源管理器.docx
《Linux系统资源管理器.docx》由会员分享,可在线阅读,更多相关《Linux系统资源管理器.docx(21页珍藏版)》请在冰豆网上搜索。
Linux系统资源管理器
重庆大学课程设计报告
课程设计题目:
Linux系统资源管理器
学院:
计算机学院
专业班级:
年级:
姓名:
学号:
完成时间:
年月日
成绩:
指导教师:
重庆大学教务处制
课程设计指导教师评定成绩表姓名:
学号:
项目
分值
优秀
(100>x≥90)
良好
(90>x≥80)
中等
(80>x≥70)
及格
(70>x≥60)
不及格(x<60)
评分
参考标准
参考标准
参考标准
参考标准
参考标准
学习态度
15
学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作
学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务
学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作
学习态度尚可,能遵守组织纪律,能按期完成任务
学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度
技术水平与实际能力
25
设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信
设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信
设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信
设计基本合理,理论分析与计算无大错,实验数据无大错
设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题
创新
10
有重大改进或独特见解,有一定实用价值
有较大改进或新颖的见解,实用性尚可
有一定改进或新的见解
有一定见解
观念陈旧
论文(计算书、图纸)撰写质量
50
结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰
结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰
结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰
结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整
内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰
指导教师评定成绩:
指导教师签名:
年月日
课程设计指导教师评定成绩表姓名:
学号:
项目
分值
优秀
(100>x≥90)
良好
(90>x≥80)
中等
(80>x≥70)
及格
(70>x≥60)
不及格(x<60)
评分
参考标准
参考标准
参考标准
参考标准
参考标准
学习态度
15
学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作
学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务
学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作
学习态度尚可,能遵守组织纪律,能按期完成任务
学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度
技术水平与实际能力
25
设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信
设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信
设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信
设计基本合理,理论分析与计算无大错,实验数据无大错
设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题
创新
10
有重大改进或独特见解,有一定实用价值
有较大改进或新颖的见解,实用性尚可
有一定改进或新的见解
有一定见解
观念陈旧
论文(计算书、图纸)撰写质量
50
结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰
结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰
结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰
结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整
内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰
指导教师评定成绩:
指导教师签名:
年月日
课程设计指导教师评定成绩表姓名:
学号:
项目
分值
优秀
(100>x≥90)
良好
(90>x≥80)
中等
(80>x≥70)
及格
(70>x≥60)
不及格(x<60)
评分
参考标准
参考标准
参考标准
参考标准
参考标准
学习态度
15
学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作
学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务
学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作
学习态度尚可,能遵守组织纪律,能按期完成任务
学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度
技术水平与实际能力
25
设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信
设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信
设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信
设计基本合理,理论分析与计算无大错,实验数据无大错
设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题
创新
10
有重大改进或独特见解,有一定实用价值
有较大改进或新颖的见解,实用性尚可
有一定改进或新的见解
有一定见解
观念陈旧
论文(计算书、图纸)撰写质量
50
结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰
结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰
结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰
结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整
内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰
指导教师评定成绩:
指导教师签名:
年月日
重庆大学本科学生课程设计任务书
课程设计题目
Linux系统资源管理器与任务管理器
学院
计算机学院
专业
计算机科学与技术
年级
2012
已知参数和设计要求:
(1)了解/proc文件的特点和使用方法,监控系统状态。
(2)了解top等命令的使用方法,获取系统信息。
(3)显示系统中若干部件的使用情况,用图形界面显示系统监控状态。
(4)设计实现Linux操作系统资源管理器的功能:
菜单显示、图标显示、右键菜单,实现软件资源和数据资源的管理。
学生应完成的工作:
(1)设计并实现Linux操作系统资源管理器的全部功能(包括:
菜单、图标、右键菜单),实现软件资源和数据资源的管理。
(2)设计并实现Linux操作系统任务管理器的全部功能(包括:
菜单、右键菜单、进程管理、性能显示和用户信息)。
目前资料收集情况(含指定参考资料):
(1)在互联网上收集相关资料
(2)WilliamStallings,OperatingSystemsInternalsandDesignPrinciples,6thEdition,电子工业出版社,2010年
课程设计的工作计划:
2014-2015学年第一学期第17周
任务下达日期2014年12月22日
完成日期2014年12月31日
说明:
学院、专业、年级均填全称,如:
计算机学院、计算机科学与技术、2010。
目录
封面1
评定成绩表2
课程设计任务书5
目录6
课程设计正文7
一、功能分析7
二、程序设计思想及过程7
1、整体框架设计及思想7
2、程序设计过程7
三、运行结果及分析7
四、问题分析与心得体会12
1、问题分析12
2、心得体会13
五、小组成员及分工13
1、小组成员13
2、成员分工13
参考文献13
课程设计总结14
课程设计正文
1、功能分析
通过小组讨论和分析,及老师的任务指导书,我们最后分析得到资源管理器应实现以下要求:
(1)能在界面上显示资源管理器树形结构的显示。
(2)能有右键菜单、菜单栏的显示和操作。
(3)能对文件夹进行操作,包括新建、删除、拷贝、移动等。
(4)能对文件进行操作,包括新建、删除、拷贝、移动等。
2、程序设计思想及过程
1、整体框架设计及思想
我们小组在选定课题后,先是对课题进行需求分析,然后针对各个需求进行框架构建。
经过我们分析可以把整个项目分成三个包:
·dao包。
用来实现一些自定义的数据类型。
如:
可以在此设计我们自己的文件夹类,继承自JButton,用以在主界面上显示文件夹。
·fileperation包。
用来进行后台操作。
在此实现对文件和文件夹等的操作,如:
FileOperation类等,用来新建、删除、拷贝、移动等,同时还要包括能罗列当前文件夹下所有目录的功能,并将其返回于一个List容器中。
·window包。
用来做前台图形化界面。
如我们在此包中实现了MainWindow类,用来显示主界面,其中主界面便包括资源管理器树形结构、右键菜单、菜单栏等。
同时还有FileInformationDialog类用来实现文件及文件夹属性对话框。
并将此类在MainWidow实例化于MainWindow类中。
同时,项目中还有一些其他文件夹,如:
images——用来存放项目中所用到的图片。
由此,我们把整个项目分成了三层,便于小组分工合作,同时,利于修改。
2、程序设计过程
I.先进行整体功能与需求分析,针对性写出总体框架。
一个好的架构是整个项目的基础。
II.再进行后台程序的编写与测试。
完成fileoperation包,并编写测试代码对其进行测试。
面向对象设计,保证每个部分不会出问题。
III.接着完成dao包的设计,完成所要用到的数据类。
IV.最后实现window包,实现总体的界面。
包括实现资源管理器树状结构、罗列文件夹下内容等。
3、运行结果及分析
此次课程设计我们设计并实现了Linux操作系统资源管理器,程序实现了菜单显示、图标显示、右键菜单、软件资源和数据资源的管理等功能,我们的资源管理器界面如图1所示:
图1资源管理器界面
在菜单栏有文件、编辑、查看三个按钮,当点击文件按钮时,会显示下拉菜单,如图2所示:
图2文件下拉菜单
下拉菜单中有新建文件夹、新建文档、属性和关闭四个选项,新建文件夹和新建文档如图3所示:
图3新建文件夹和文档
当点击属性时,会显示文件夹的基本属性,如位置、大小等,如图4所示:
图4属性对话框
我们的右键菜单有打开、新建文件夹、新建文档、复制、粘贴、删除和属性六个选项,选择复制选项时,文件就已经被复制了,如图5所示:
图5复制功能
然后在新的文件夹中就可以点击右键粘贴了,注意在没有复制时,粘贴是不能点击的,如图6所示:
图6粘贴功能
粘贴后结果显示如图7所示:
图7粘贴结果
打开选项可以打开文件夹和文档,选择打开文档则会使用gedit软件打开此文档,如图8所示:
图8打开文档功能
除此之外,右键菜单的新建文件夹、新建文档和属性选项与菜单栏的功能相同,在此不再展示。
4、问题分析与心得体会
1、问题分析
在一开始需求分析,及之后实际开发中,我们都遇到了不少问题,但我们没有气馁,通过小组组员的通力合作,查阅相关资料,及互相讨论、映证,最后终于克服困难,完成任务。
其中我们遇到的主要问题有:
(1)在控制层即设计fileoperation包中的FileOperation类时,不知道怎么把当前文件夹下的文件及文件夹罗列出来?
解:
通过网上查阅资料,我们发现Java的File类自带一个方法,叫做listFiles(),其可以列出指定文件夹下的内容。
于是,我们就先判断一个File类是不是文件夹,若是,则调用其listFiles()方法。
(2)在实现界面层即设计window包中的MainWindow类时,不知道怎么显示资源管理器树形结构?
同时怎么保证显示出的树形结构不会过大,即怎么使之可以动态显示,而不用一开始就加载整个硬盘的所有目录?
解:
通过分析查阅资料。
方法为:
使用JAVASWING自带控件JTree来实现树形结构。
为了方便这次树的编写,我重载了DefaultTreeModel,DefaultMutableTreeNode。
使实际上的树节点不光包含显示所需的信息,还添加文件路径和文件名属性来方便我们展开树。
此外还需重载DefaultTreeModel的isLeaf()方法,让文件夹为内部节点文件为叶节点。
最后就是为JTree加上TreeWillExpandListener监听器,让每次展开内部节点是时动态加载其子节点(这也是为什么我需要重载DefaultTreeModel,DefaultMutableTreeNode的原因)。
因为我们总是在展开节点时才加载其子节点,故不用一开始就扫描整个磁盘,只需扫描展开节点的下一层目录即可。
(3)在实现界面层即设计window包中的MainWindow类时,不知道怎么把当前文件夹下的内容以图标的形式一一罗列出来,就是Linux的资源管理器一样,显示良好的人机界面?
解:
通过分析所需,及与组员讨论,最终实现。
方法为:
将每个文件夹及文件图标看成一个Button,自己继承了JButton类,设计了自己的图标类——MyIcon类,用来显示。
同时在主界面调用fileoperation包中FileOperation类的getListInfromation方法,获得当前文件夹的内容,然后在界面上显示。
(4)在做图形化界面时,怎么使界面可以实时更新,即可以使画面保持最新的内容?
解:
通过分析及查阅资料所得,需先将该Panel上的所有内容都删除,然后调用罗列方法,罗列出新的文件夹内容,再调用Panel的validate()方法,接着对Panel进行repaint和updateUI。
(5)在做图形化界面时,怎么打开文件,使之可以关联到相关的编辑器或播放器等来打开?
解:
通过分析及查阅资料所得,需要通过判断用户选择了树的哪个节点来获得需要打开文件的路径(文件夹不用打开,单击即可切换当前目录),之后调用JAVA封装接口Desktop.getDesktop().open即可。
2、心得体会
本次实验,通过Java编写一个资源管理器,并在Linux下运行。
我们熟悉了Linux下文件管理的方式,同时明白了文件存储的方式,掌握了文件等如何通过相应的应用程序打开。
于此同时,我们还复习了Java的GUI编程,明白了怎么样有益于开发一个健壮的软件,明白了设计模式的重要性。
虽然一开始拿到课题的时候,完全毫无头绪,但通过查找资料和小组组员的通力合作,最终完成了任务。
本次课程设计不仅加深了我们对专业知识的掌握程度,同时还教会了我们怎么进行团队合作及团队合作的重要性。
5、小组成员及分工
1、小组成员
组长:
组员:
2、成员分工
参考文献
[1]
[2]
[3]WilliamStallings,OperatingSystemsInternalsandDesignPrinciples,6thEdition,电子工业出版社,2010年
课程设计总结
完成此次课程设计,获益颇丰。
通过这次课程设计,我深刻地体会到一个道理:
课程设计是学习掌握一门课程必不可少的组成部分。
本次课程设计通过完成一个资源管理系统,让我对《操作系统》这门课程有了更深一步的理解,以前在课堂上有许多不能理解的地方,通过这次实验,许多问题迎刃而解,当然,此次实验也遇到了许多难题。
一开始,拿到这个课题的时候,当真是一头雾水,什么都搞不懂。
经过老师的引导,和我们小组的讨论,我们开始小组分工,我做的是界面的部分,一开始以为界面部分没那么困难,结果发现没我想象的那么容易,首先是界面布局问题,最初,我们准备采用边界布局,但是采用边界布局无法设置内部控件的大小,所以我们最后采用了grouplayout布局,既可以设置相对位置,又可以设置内部控件的大小,其次是文件显示部分的布局,最初我们采用线性布局,但是由于窗口大小不固定,文件图标无法换行,于是我们尝试了网格布局、绝对布局等,结果都会出现问题,最后,经过讨论之后,最终决定把窗口大小设为固定的,解决了这个问题。
除此之外,此次课程设计中还出现了其他许多问题,如界面按钮、图标等和后台程序的连接、界面颜色搭配等,最终经过我们的共同努力,解决了这些问题。
通过这次课程设计,我不仅收获到了丰富的专业知识,还明白了团队合作的重要性。
在此,我要感谢我的两位队友,我们的课程设计是我们共同努力的结果,我会珍惜我们的劳动成果。
2014年12月31日
本次操作系统的选题为资源管理器。
在进行编写时,我们模仿liunx的资源管理器,将整个软件分为两部分,一部分是资源管理器右侧的树形图部分,一个是左边的图标显示部分(当然还包括菜单等)。
而我就是负责了树形图部分,下面我会简略谈谈我在这次课程设计中的收获。
首先的是技术层面的部分。
本次开发使用的是我们这学期所新学的语言-JAVA,碰巧的是由于这学期JAVA课程涉及面太广的,我对GUI的掌握还不如以前的Qt.。
而这次的编写更是用上JTree这种高级部件,正好弥补我在界面编程上的不足。
对于JTree的使用,在经历这次实验之后我有了更深的理解。
值得一提的是使用JTree的第一个难题---树的节点太多,如果一次生成需要的时间太长并且不适宜改动。
为了解决这个问题,我查阅了许多资料,最后分发现只要动态生成节点即可。
简单来说,这个做法就是当展开树节点我们才动态加载这个节点的字节点,当然为了实现这个功能还需要其他改动,由于在报告相应算法中已经有所提及,在此就不再赘述。
经过这次的课程设计,我更加理解到了个专业课之间的联系,也通过了项目让我掌握了更多这两门课的知识。
其次是团队合作方面的部分。
在此之前,我的许多项目都是个人独立完成的,这次的项目算是团队合作完成且规模较大的项目了。
在合作当中,我发现了自己在开发时不足,首先就是文档与注释的撰写,在此之前我总觉自己写的函数都能看得懂所以并没有写文档和注释的习惯,而当和队友合作时才发现这会造成许多不便之处,首先一点便是队友在理解上的困难。
其次,如果没有文档,哪怕是自己在需要修改代码时也会遇到许多不便之处。
在写了注释和文档之后,再次修改时,便可以清晰地看到类的结构与功能,方便自己修改也方便他人阅读。
最后是对操作系统课程的理解方面,在经历过模拟资源管理器的可视化编程之后,我对操作系统的文件管理系统的理解更深了。
尤其是树形结构和目录部分,较之以前有了更省的体悟。
然而,由于JAVA封装的缘故,我对一些函数接口的实现还是不能很好的理解,希望以后能接触到一些更底层的内容。
2014年12月31日
本次实验是在Linux系统下实现一个资源管理器。
由于本学期我们正在学习Java语言,故我们选择了Java语言进行编写。
一开始,我以为自己Java语言已经基本掌握清楚了,但通过这次课程设计,暴露了我在Java知识上的许多缺点,其中最突出的便是对于GUI知识的掌握不够全面,本身Java的GUI类和方法都比较多,如果不能把握其本质,就更容易搞糊涂。
而本次课设,我负责的便是资源管理器右边各项文件的罗列及菜单栏的创建。
虽然过程很痛苦,如当进入子文件夹时,页面应当进行更新,但是由于对GUI有的知识点有所遗漏,一直出现Bug,页面一更新,便会丢失。
这个问题足足困扰了我一天,曾经也想过放弃,随便混过关,但在队友的鼓励和自己的坚持下,最后终于发现更新页面需要进行validate、repaint、updateUI这几个步骤,终于解决了问题,让我明白了程序员应有的基本素质:
坚持!
同时,通过本次课程设计使我能更好的掌握好GUI编程。
同时,本次编写资源管理器让我更好的认识到了操作系统的资源管理器是如何工作的。
资源管理器是操作系统中的重要组成部分,没有资源管理器,用户在面对庞大的硬盘存储内容时,就会老鼠拉龟——无从下手。
资源管理器能很好的帮助用户组织各类文件及文件夹,形成一个树形结构。
而通过本次课程设计,我对资源管理器有了一个较深的理解,能明白资源管理器是怎么进行目录转移、文件及文件夹的增加、删除、修改、移动及硬盘中的东西在资源管理器中是怎么被组织的。
由此,进而加深了我对操作系统整体的理解,意义甚大!
接着,本次课程设计不仅教会了我专业知识,同时还培养了我的团队合作意识。
在短短的几天内,要完成一个资源管理器还是很有难度的,期间必须进行后台的设计,GUI的设计,界面的美工等。
一个人是无法完成这么大的工作量的,但通过我们小组的互相合作,在短短几天内,我们完成了2000多行代码,最后基本完成了一个资源管理器,这让我意识到了团队力量的强大!
最后,本次课程设计收获良多,其他便不一一叙述,同时在此还要感谢老师的和助教的细心指导,让我们少走了很多弯路!
2014年12月31日