操作系统实验报告java
java实训报告(通用7篇)

java实训报告(通用7篇)在当下这个社会中,报告有着举足轻重的地位,写报告的时候要注意内容的完整。
我们应当如何写报告呢?下面是小编整理的java实训报告,供大家参考借鉴,希望可以帮助到有需要的朋友。
java实训报告1一、课程设计名称及主要内容:1、课程设计名称:时钟动画2、课程设计的主要内容:以下题目任选一个:(1)图形界面类,如科学计算器、绘图板、日历、游戏程序等。
(2)动画类,编制功能较复杂、效果较好的Applet动画程序。
(3)数据处理类,如学生学籍、课程成绩、图书编目、仓库货物等数据录入查询程序。
(4)其他类型,自选题目,须经指导老师同意。
我所选的题目是动画类的Applet动画程序,主要任务是用Java 程序设计一个时钟动画。
二、程序的设计思想和流程图:1、设计思想:现在的各种时钟花样百出,千奇百怪,功能亦是越来越先进了。
我很喜欢这些各式各样的时钟,所以希望自己也能设计出一个来。
于是,我希望自己能够用自己所学的Java知识设计出一个自己的时钟动画,即使是最简单的,但我相信这是暂时的。
只要我能够努力学好Java知识,将来一定能够设计出更好更完美的时钟动画。
2、流程图:三、程序介绍:1、设计方法及步骤:题目分析:根据《课程设计任务书》要求,分析题目,构造出程序的基本思路(算法设计)。
画出程序设计结构框图。
构造数据结构:根据程序结构框图和题目分析结果(采用算法),构造程序所用各项数据,各种窗体及他们之间的联系。
构造程序框架:在窗体确定之后,根据算法设计出所用各个窗体之间的调用关系。
程序设计:①画出程序功能框图和结构框图;②根据框图设计程序;③编译程序调试程序,使程序可以使用;④完备程序功能。
程序打包:所设计程序汇总,将程序分类归入相应子目录,完成程序所有设计要求。
2、完成情况:经过一系列的Java程序代码的设计,虽然过程中遇到了许多的问题,但是最终解决了所有的问题,准确的设计出了时钟动画,运行情况正常。
java实训报告(通用9篇)

java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。
那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。
该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。
供应商管理:主要包括供应商的添加、删除和修改。
产品管理:主要包括产品的添加、删除和进货、出货。
产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。
2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。
是组织、管理和控制信息系统开发过程的一种基本框架。
其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。
操作系统实验报告java

操作系统实验报告java操作系统实验报告实验名称:java操作系统一、实验目的本次实验的目的是通过使用Java编程语言,实现一个简单的操作系统,包括进程管理、内存管理和文件系统管理。
二、实验环境操作系统:Windows 10开发工具:Eclipse IDE编程语言:Java三、实验过程及结果1、进程管理1.1 进程的创建编写一个Process类,模拟进程的创建过程,包括进程ID、状态等属性,并实现创建进程的方法。
1.2 进程的调度设计一个Scheduler类,实现进程的调度算法,如FCFS(先来先服务)、SJF(短作业优先)、RR(时间片轮转)等。
1.3 进程间通信实现进程间的通信机制,如共享内存、管道等。
2、内存管理2.1 内存分配算法设计一个MemoryAllocator类,实现内存分配的算法,如首次适应、最佳适应、最坏适应等。
2.2 内存回收实现一个MemoryReclmer类,用于回收已经释放的内存空间,并将其标记为可再分配的状态。
3、文件系统管理3.1 文件的创建与删除设计一个类,实现文件的创建和删除功能,包括文件名、大小等属性。
3.2 文件的读取与写入实现一个类和一个类,分别用于文件的读取和写入操作。
3.3 文件权限管理设计一个AccessControl类,用于控制文件的访问权限,包括读、写和执行等操作。
四、实验结果分析根据实验过程的描述,我们成功实现了一个简单的操作系统,包括进程管理、内存管理和文件系统管理。
在进程管理方面,我们实现了进程的创建、调度和通信机制,能够有效管理多个进程的执行。
在内存管理方面,我们实现了不同的内存分配算法,能够根据实际情况分配和回收内存空间。
在文件系统管理方面,我们实现了文件的创建、删除、读取和写入操作,并能够灵活控制文件的访问权限。
五、附件无六、法律名词及注释1、版权:根据著作权法,著作权人享有其作品的署名权、发表权、修改权和保护权等权利。
2、许可证:指授权他人使用某个著作权作品的合法许可证。
java系统社会实践报告5篇

java系统社会实践报告5篇java是一种可以撰写跨平台应用软件的面对对象的程序设计语言。
而学习Java的同学java实习实训是必经的过程。
下面就是我给大家带来的java系统社会实践报告5篇,盼望大家喜爱!java系统社会实践报告一面临毕业与就业的压力,不久将来就要从一个同学到一个社会人的转变:技术在不断的提高,思路在不断的开阔,思想在不断的升华,更重要的是自己的抱负和理想更加的坚决。
对于一个投身于IT的新人,阅历谈不上,一些学习的心得倒是可以拿出来探讨一下,我们该如何面临这个似曾相识的社会,突然一天如此接近。
面对“全球经济不景气”带来的就业压力,我们正在渐渐走向成熟,我们意志更加顽强,我们深知不经一番寒彻骨,哪来梅花扑鼻香。
深深地体会到找一份好工作多么不简单的,尤其是力量匮乏的我们。
一切都要付出行动,不能空想,要实现目标,就得不懈的努力。
的确,软件仍旧是一个朝阳行业,对于人才的需求量也很大,这也是为什么许多人努力走上这座独木桥的缘由。
但是当你面临人生的一个选择时,当你打算要踏上软件开发之路时,你应当问一下自己:我为什么要选择它?其实许多人在这条道路上摸爬滚打了多年也没弄清晰这个问题的答案。
假如你想在这条道路上有所成就的话,一是爱好使然,二是做好自己的职业规划。
软件开发其实是一条特别艰苦的路,不停的学习,不断的熬夜,没有鲜花更没有掌声,陪伴你的是那漫长而孤独的夜。
想一想我们预备好迎接这一切了吗?假如没有爱好我劝你还是放弃这条路,没有爱好你就在这条路上走不长,等待你的只有转行。
假如你真的把它作为你职业生涯的跳板,那么请你做好自己的人生规划,有步骤的实现它。
话题略微远了一点,现在我就谈谈自己在Java学习方面的心得和教训。
古人云:活到老,学到老。
读书学习实乃艰苦之事,花费时间,消耗精力。
然苦之外亦见其乐:得到了学问,提高了熟悉,完善了自己。
学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进步。
java实验实验报告

java实验实验报告Java 实验实验报告一、实验目的本次 Java 实验的主要目的是通过实际操作和编程实践,深入理解和掌握 Java 编程语言的基本概念、语法结构、面向对象编程的思想以及常用类库的使用。
同时,培养我们解决实际问题的能力和编程思维,提高代码的质量和可读性。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容(一)基本语法练习1、数据类型与变量在 Java 中,我们学习了不同的数据类型,如整数类型(`int`、`long`)、浮点数类型(`float`、`double`)、字符类型(`char`)和布尔类型(`boolean`)。
通过定义和使用这些变量,我们能够存储和操作各种类型的数据。
```javaint age = 25;double salary = 500050;char grade ='A';boolean isStudent = true;```2、控制结构包括条件语句(`ifelse`、`switch`)和循环语句(`for`、`while`、`dowhile`)。
这些控制结构使我们能够根据不同的条件执行不同的代码块,或者重复执行一段代码。
```javaint num = 10;if (num > 5) {Systemoutprintln("Number is greater than 5");} else {Systemoutprintln("Number is less than or equal to 5");}switch (num) {Systemoutprintln("One");break;case 10:Systemoutprintln("Ten");break;default:Systemoutprintln("Unknown");}for (int i = 0; i < 5; i++){Systemoutprintln(i);}int count = 0;while (count < 3) {Systemoutprintln("Count: "+ count);count++;}count = 0;Systemoutprintln("Count: "+ count);count++;} while (count < 3);```(二)面向对象编程1、类与对象创建了自定义的类来表示现实世界中的实体。
java实验报告

java实验报告Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念和方法,以及常用类库的使用。
同时,培养我们的问题解决能力、逻辑思维能力和代码规范意识,为今后的软件开发工作打下坚实的基础。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers3、 JDK 版本:JDK 18三、实验内容本次实验共包括以下三个部分:1、 Java 基本语法练习变量与数据类型运算符与表达式控制流语句(ifelse、for、while、dowhile)数组2、面向对象编程实践类与对象的定义和使用构造函数与方法重载封装、继承与多态抽象类与接口3、 Java 常用类库应用String 类与字符串操作集合框架(ArrayList、HashMap)文件输入输出(File、FileReader、FileWriter)四、实验步骤及代码实现1、 Java 基本语法练习变量与数据类型:```javapublic class VariableDataType {public static void main(String args) {int age = 20;double salary = 50005;String name ="张三";boolean isStudent = true;Systemoutprintln("年龄:"+ age);Systemoutprintln("工资:"+ salary);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否是学生:"+ isStudent);}}```运算符与表达式:```javapublic class OperatorExpression {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;int quotient = num1 / num2;int remainder = num1 % num2; Systemoutprintln("和:"+ sum);Systemoutprintln("差:"+ difference);Systemoutprintln("积:"+ product);Systemoutprintln("商:"+ quotient);Systemoutprintln("余数:"+ remainder);}}```控制流语句:```javapublic class ControlFlowStatement {public static void main(String args) {// ifelse 语句int score = 80;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}// for 循环for (int i = 1; i <= 5; i++){Systemoutprintln("第" + i +"次循环");}// while 循环int j = 1;while (j <= 5) {Systemoutprintln("第" + j +"次 while 循环");j++;}// dowhile 循环int k = 1;do {Systemoutprintln("第" + k +"次 dowhile 循环");k++;} while (k <= 5);}}```数组:```javapublic class ArrayExample {public static void main(String args) {//一维数组int numbers ={1, 2, 3, 4, 5};for (int num : numbers) {Systemoutprintln(num);}//二维数组int matrix ={{1, 2, 3},{4, 5, 6},{7, 8, 9}};for (int row : matrix) {for (int num : row) {Systemoutprint(num +"");}Systemoutprintln();}}}```2、面向对象编程实践类与对象的定义和使用:```javapublic class Person {private String name;private int age;public Person(String name, int age) {thisname = name;thisage = age;}public void showInfo(){Systemoutprintln("姓名:"+ name +",年龄:"+ age);}public static void main(String args) {Person person1 = new Person("张三", 20);person1showInfo();}}```构造函数与方法重载:```javapublic class ConstructorOverloading {private String name;private int age;public ConstructorOverloading(String name) {thisname = name;}public ConstructorOverloading(String name, int age) {thisname = name;thisage = age;}public void showInfo(){if (age == 0) {Systemoutprintln("姓名:"+ name);} else {Systemoutprintln("姓名:"+ name +",年龄:"+ age);}}public static void main(String args) {ConstructorOverloading person1 = new ConstructorOverloading("张三");person1showInfo();ConstructorOverloading person2 = new ConstructorOverloading("李四", 25);person2showInfo();}}```封装、继承与多态:```java//父类class Animal {private String name;public Animal(String name) {thisname = name;}public void eat(){Systemoutprintln(name +"正在吃东西");}}//子类继承父类class Dog extends Animal {public Dog(String name) {super(name);}public void bark(){Systemoutprintln(name +"在叫");}}public class InheritancePolymorphism {public static void main(String args) {Animal animal = new Dog("小黑");animaleat();//向下转型为 Dog 类型调用 bark 方法if (animal instanceof Dog) {Dog dog =(Dog) animal;dogbark();}}}```抽象类与接口:```java//抽象类abstract class Shape {abstract void draw();}//实现抽象类的子类class Circle extends Shape {@Overridevoid draw(){Systemoutprintln("画一个圆");}}//接口interface Moveable {void move();}//实现接口的类class Car implements Moveable {@Overridepublic void move(){Systemoutprintln("汽车在移动");}}public class AbstractInterfaceExample {public static void main(String args) {Shape shape = new Circle();shapedraw();Moveable car = new Car();carmove();}}```3、 Java 常用类库应用String 类与字符串操作:```javapublic class StringOperation {public static void main(String args) {String str1 ="Hello, ";String str2 ="World!";String str3 = str1 + str2;Systemoutprintln(str3);int length = str3length();Systemoutprintln("字符串长度:"+ length);char charAt = str3charAt(5);Systemoutprintln("第 5 个字符:"+ charAt);boolean contains = str3contains("World");Systemoutprintln("是否包含 World:"+ contains);}}```集合框架(ArrayList、HashMap):```javaimport javautilArrayList;import javautilHashMap;import javautilMap;public class CollectionFramework {public static void main(String args) {// ArrayListArrayList<String> names = new ArrayList<>();namesadd("张三");namesadd("李四");namesadd("王五");for (String name : names) {Systemoutprintln(name);}// HashMapHashMap<String, Integer> ages = new HashMap<>();agesput("张三", 20);agesput("李四", 25);agesput("王五", 30);for (MapEntry<String, Integer> entry : agesentrySet()){Systemoutprintln(entrygetKey()+"的年龄是" +entrygetValue());}}}```文件输入输出(File、FileReader、FileWriter):```javaimport javaioFile;import javaioFileReader;import javaioFileWriter;import javaioIOException;public class FileIOExample {public static void main(String args) {//写入文件try (FileWriter writer = new FileWriter("outputtxt")){writerwrite("这是写入文件的内容");} catch (IOException e) {eprintStackTrace();}//读取文件try (FileReader reader = new FileReader("outputtxt")){int character;while ((character = readerread())!=-1) {Systemoutprint((char) character);}} catch (IOException e) {eprintStackTrace();}}}```五、实验结果与分析1、 Java 基本语法练习变量与数据类型:能够正确定义和使用各种数据类型的变量,并进行基本的运算和输出。
大学生java实训总结报告6篇

大学生java实训总结报告6篇篇1一、实训背景与目标本次Java实训旨在通过实践操作,加深大学生对Java编程语言的理解与掌握,提高实际项目开发能力。
在为期一个月的实训期间,我们小组围绕Java SE基础、Java Web开发、数据库操作等内容进行了系统学习和实践。
通过本次实训,我们期望达到以下目标:1. 深入理解Java核心技术与编程思想。
2. 掌握Java Web开发的基本流程和关键技术。
3. 学会使用至少一种数据库进行Java程序与数据库的交互。
4. 具备一定的项目开发和团队协作能力。
二、实训内容与过程1. Java SE基础实训在实训初期,我们重点复习和巩固了Java SE基础知识,包括数据类型、运算符、流程控制、面向对象编程等。
通过编写简单的控制台程序,我们实践了异常处理、集合类、泛型以及多线程编程。
2. Java Web开发实训随后,我们转向Java Web开发的学习。
通过学习和实践,掌握了基于Servlet和JSP的Web开发技术。
同时,学习了HTML、CSS和JavaScript等前端技术,并练习了前后端数据的交互。
此外,还了解了MVC设计模式在Web开发中的应用。
3. 数据库操作实训在数据库操作方面,我们主要学习了SQL语言以及JDBC操作数据库的技术。
通过实践操作,我们能够在Java程序中实现数据的增删改查,并学会了使用ORM框架进行对象与数据库表的映射。
4. 项目开发实践在实训的最后阶段,我们以小组形式进行了一个小型项目——在线图书管理系统。
通过项目的开发,我们综合运用了前面学到的知识,包括Web开发技术、数据库操作等。
在项目开发过程中,我们学会了如何分工合作,如何进行有效的项目管理。
三、实训收获与体会1. 提升了编程能力。
通过实训,我们对Java编程语言有了更深入的了解,编程能力得到了显著提高。
2. 增强了项目开发经验。
项目开发的实践让我们体验到了软件开发的流程,学会了如何在项目中运用所学知识。
JAVA实验报告一

JAVA实验报告一一、实验目的本次实验的主要目的是通过实际操作,熟悉和掌握 Java 编程语言的基本语法、数据类型、控制结构以及面向对象编程的基本概念和方法。
培养我们运用 Java 解决实际问题的能力,为今后深入学习和应用 Java打下坚实的基础。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse3、 JDK 版本:18三、实验内容(一)Java 基础语法1、变量与数据类型在 Java 中,我们学习了不同的数据类型,如整数类型(int、long)、浮点数类型(float、double)、字符类型(char)和字符串类型(String)等。
通过定义和使用这些变量,我们能够存储和处理各种类型的数据。
例如:```javaint age = 20;double salary = 50005;char gender ='M';String name ="张三";```2、运算符与表达式掌握了各种运算符,如算术运算符(+、、、/、%)、关系运算符(==、!=、>、<、>=、<=)、逻辑运算符(&&、||、!)等。
能够运用这些运算符构建表达式来进行计算和逻辑判断。
比如:```javaint num1 = 10;int num2 = 5;int result = num1 + num2;boolean isGreater = num1 > num2;```3、控制结构(1)顺序结构程序按照语句的先后顺序依次执行。
(2)选择结构包括 ifelse 语句和 switch 语句,用于根据不同的条件执行不同的代码块。
```javaint score = 80;if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}int day = 3;switch (day) {case 1:Systemoutprintln("星期一");break;case 2:Systemoutprintln("星期二");break;//其他 case 情况default:Systemoutprintln("未知");}```(3)循环结构包括 for 循环、while 循环和 dowhile 循环,用于重复执行一段代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统实验报告院系:专业:班级:学号::指导老师:进程调度的模拟与存管理一、实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。
当就续进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。
实验模拟实现处理机调度,以加深了解处理机调度的工作,并体会优先级和时间片轮转调度算法的具体实施方法。
帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。
二、实验要求1、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权-1/要求运行时间-1要求运行时间=0时,撤销该进程3、重新排序,进行下轮调度。
4、可随时增加进程;5、规定道数,设置后备队列和挂起状态。
若存中进程少于规定道数,可自动从后备队列调度一作业进入。
被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。
6、每次调度后,显示各进程状态。
7、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目容:起址、长度、状态(未分/空表目)8、结合以上实验,PCB增加为:{PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针}9、采用最先适应算法分配主存空间;10、进程完成后,回收主存,并与相邻空闲分区合并。
11、采用图形界面;三、实验容选择一个调度算法,实现处理机调度。
1、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。
3、主存储器空间的分配和回收。
在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。
四、实验原理该模拟系统采用java语言实现,要实现的功能有新建进程、进程调度、挂起进程、解挂进程、删除进程,道数和时间片大小可以由用户自己调整,有两种调度策略:按优先权调度和按时间片轮转调度。
每个进程可能有5种状态:新建(new)、就绪(ready)、运行(running)、阻塞(waiting)、挂起(suspend)。
每个状态都有一个队列用来存放处于该状态的进程,不同的调度策略采用不同的队列实现。
当创建进程时,如果存中的进程数还没达到规定道数,则将新建进程插入就绪队列,如果存中进程数已经达到规定道数,则插到后备队列,后备队列中的进程的状态为new。
CPU每次调度时都从就绪队列中取进程,在进程执行过程中如果下一个操作时IO操作,则将进程插入到waiting队列。
在系统运行过程中可以执行进程挂起操作,但执行的挂起操作时系统自动暂停运行,在弹出窗口选择要挂起的进程后,将选中的进程从原来的队列中删除并插入到挂起队列。
进行解挂操作时将选中的进程从挂起队列中删除并插入该进程原来所处的队列。
➢按优先级调度:当选择按优先权调度时,所有队列都采用优先队列,优先队列采用一个有序链表实现,进程的优先权值越大代表优先级越高,优先队列中的进程按优先权从大到小排列,当新进程插入时根据该进程的优先权插入到队列中的合适位置,插入后保持队列按优先权从大到小排列,如果新进程与队列中某个进程优先权值相等,则该新进程插到那个进程后面,以遵循先来先服务的规则。
当要从队列中取出进程时总是取队列中第一个进程,因为该进程的优先级最高。
➢按时间片轮转调度:当选择按时间片轮转调度时,所有队列都采用先进先出队列,先进先出队列采用一个普通单向链表实现,当新进程插入时插入到队列的末尾,当要取进程时取队首进程,这样就实现了先进先出。
➢存管理该实验基于实验一完成,核心是存的分配和回收,在实验一的基础上增加存管理部分,在新建进程的时候增加一个输入存大小的输入框,在进程进入存时要分配存,在进程销毁时要回收存,如果进入存时存不足,则将进程插入到后备队列等待下次调度。
系统维护一个存表,每个表项代表一个空间,每个空间保存了该空间的起始地址和空间大小以及空间使用状态。
初始时只有一个空间,当CPU 启动时要分配存,存分配采用最先适应算法。
回收存时如果有相邻空闲空间,则要进行空闲空间合并。
五、部分源程序public class data {private String name; //进程的名字private int time; //要求的时间总和private int priority; //进程的优先权,值越大优先级越高private String state; //进程的状态private int start;private int length; //进程所占的存空间private int isIn; //进程所需存大小➢进程各项变量的初始化public void setName(String name) { = name;}public void setPriority(int priority) {this.priority = priority;}public void setState(String state) {this.state = state;}public String getName() {return ();}public int getPriority() {return (this.priority);}public String getState() {return (this.state);}public void setTime(int time) {this.time = time;}public int getTime() {return (this.time);}public void setLength(int length) {this.length = length;}public int getLength() {return (this.length);}public void setStart(int start) {this.start = start;}public int getStart() {return (this.start);}public void setIsIn(int isIn) {this.isIn = isIn;}public int getIsIn() {return (this.isIn);}➢删除列表中第几个数据public void update(ArrayList<Data> list, int num) {sList.clear();for(int i = 0; i < list.size(); i++){if(i != num){sList.add(list.get(i));}}list.clear();for(int i = 0; i < sList.size();i++){list.add(sList.get(i));}public void update1(ArrayList<Data_Memory> list, int num){sList1.clear();for(int i = 0; i < list.size(); i++){if(i != num){sList1.add(list.get(i));}}list.clear();for(int i = 0; i < sList1.size();i++){list.add(sList1.get(i));}}➢放入存public void putInMemory(){if(runningList.size()>0){if(runningList.get(0).getIsIn()==0){for(int i = 0; i < unAssignList.size(); i++){if(unAssignList.get(i).getLimit() >= runningList.get(0).getLength()){runningList.get(0).setStart(unAssignList.get(i).getBase());runningList.get(0).setIsIn(1);if(unAssignList.get(i).getLimit() ==runningList.get(0).getLength()){update1(unAssignList,i);}else{unAssignList.get(i).setBase(unAssignList.get(i).getBase()+runningList.get(0).getLength() );unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()-runningList.get(0).getLength( ));}break;}}}}if(readyList.size()>0){for(int j = 0; j < readyList.size(); j++){if(readyList.get(j).getIsIn()==0){for(int i = 0; i < unAssignList.size(); i++){if(unAssignList.get(i).getLimit() >= readyList.get(j).getLength()){readyList.get(j).setStart(unAssignList.get(i).getBase());readyList.get(j).setIsIn(1);if(unAssignList.get(i).getLimit() ==readyList.get(j).getLength()){update1(unAssignList,i);}else{unAssignList.get(i).setBase(unAssignList.get(i).getBase()+readyList.get(j).getLength());unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()-readyList.get(j).getLength()) ;}break;}}}}}}➢移除存public void putOutMemory(ArrayList<Data> list, int num){list.get(num).setIsIn(0);boolean flag1 = false;boolean flag2 = false;for(int i = 0; i < unAssignList.size(); i++){if(unAssignList.get(i).getBase() ==(list.get(num).getLength()+list.get(num).getStart())){unAssignList.get(i).setBase(list.get(num).getStart());unAssignList.get(i).setLimit(list.get(num).getLength()+unAssignList.get(i).getLimit());flag1 = true;break;}}for(int i = 0; i < unAssignList.size(); i++){if((unAssignList.get(i).getBase()+unAssignList.get(i).getLimit()) ==list.get(num).getStart()){if(!flag1){unAssignList.get(i).setLimit(list.get(num).getLength()+unAssignList.get(i).getLimit());flag2 = true;break;}else{unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()+unAssignList.get(i+1).getLimi t());update1(unAssignList,i+1);}}}if(flag1 || flag2){}else{int i = 0;while(unAssignList.get(i).getBase()<list.get(num).getStart()){i++;}Data_Memory data = new Data_Memory();data.setBase(list.get(num).getStart());data.setLimit(list.get(num).getLength());sList1.clear();for(int j = 0; j < i; j++){sList1.add(unAssignList.get(j));}sList1.add(data);for(int j = i; j < unAssignList.size(); j++){sList1.add(unAssignList.get(j));}unAssignList.clear();for(int j = 0; j < sList1.size(); j++){unAssignList.add(sList1.get(j));}}}➢对存管理调度的操作private class MyRenderer extends DefaultListCellRenderer{public Component getListCellRendererComponent(JList list, Object value,int index, boolean isSelected, boolean cellHasFocus){super.getListCellRendererComponent(list, value, index,isSelected,cellHasFocus);setBackground(Color.gray);for(int i = 0; i < unAssignList.size(); i++){for(int j = unAssignList.get(i).getBase()+6 ; j <unAssignList.get(i).getLimit()+unAssignList.get(i).getBase()+6; j++){if(index == j){setBackground(Color.white);//当没有容变为白色}}}return this;}public void timeManager(){//去掉time==0的,从waiting队列加入新的进程,排序,调整waitingList加入runningLIst//去掉time==0的if(runningList.size()>0)if(runningList.get(0).getTime()==0)runningList.clear();sList.clear();for(int i = 0; i < readyList.size(); i++){if(readyList.get(i).getTime()>0){sList.add(readyList.get(i));}}readyList.clear();for(int i =0; i < sList.size();i++){readyList.add(sList.get(i));readyList.get(i).setState("ready");}//从waiting队列加入新的进程int j = 0;int m = readyList.size();for(; m < 6 && j < waitingList.size(); m++,j++){readyList.add(waitingList.get(j));readyList.get(m).setState("ready");}// sort(readyList);//调整waitingListsList.clear();for(int i = j; i < waitingList.size(); i++){sList.add(waitingList.get(i));}waitingList.clear();for(int i =0; i < sList.size();i++)waitingList.add(sList.get(i));}//加入runningLIstif(runningList.size()==0){if(readyList.size()>0){runningList.add(readyList.get(0));runningList.get(0).setState("running");update(readyList,0);if(waitingList.size()>0){readyList.add(waitingList.get(0));readyList.get(5).setState("ready");}update(waitingList,0);}}else//if(runningList.size()>0){if(readyList.size()>0){readyList.add(runningList.get(0));runningList.clear();readyList.get(0).setState("running");readyList.get(readyList.size()-1).setState("ready");runningList.add(readyList.get(0));update(readyList,0);}}putInMemory();sub();display();jtf1.grabFocus();}public void PManager(){if(runningList.size()>0)if(runningList.get(0).getTime()==0)runningList.clear();s List.clear();f or(int i = 0; i < readyList.size(); i++){if(readyList.get(i).getTime()>0){sList.add(readyList.get(i));}}r eadyList.clear();f or(int i =0; i < sList.size();i++){readyList.add(sList.get(i));readyList.get(i).setState("ready");}i nt j = 0;i nt m = readyList.size();f or(; m < 6 && j < waitingList.size(); m++,j++){readyList.add(waitingList.get(getFirstW(waitingList)-1));readyList.get(m).setState("ready");update(waitingList,getFirstW(waitingList)-1);}//调整waitingList//加入runningLIsti f(runningList.size()==0){if(readyList.size()>0){runningList.add(readyList.get(getFirstW(readyList)-1));runningList.get(0).setState("running");update(readyList,getFirstW(readyList)-1);if(waitingList.size()>0){readyList.add(waitingList.get(getFirstW(waitingList)-1));readyList.get(readyList.size()-1).setState("ready");}update(waitingList,getFirstW(waitingList)-1);}}e lse{if(readyList.size()>0){boolean flag = false;int a = runningList.get(0).getPriority();int b = readyList.get(getFirstW(readyList)-1).getPriority();if(a > b){sList.clear();sList.add(readyList.get(getFirstW(readyList)-1));flag = true;}if(flag){runningList.get(0).setState("ready");readyList.add(runningList.get(0));runningList.clear();runningList.add(sList.get(0));runningList.get(0).setState("running");update(readyList,getFirstW(readyList)-1);}}}p utInMemory();s ub1();d isplay();j tf1.grabFocus();}}六、程序运行图图1 进程界面图2 新建进程图3 进程的挂起与解挂图4. 进程的删除图5 进程运行中七、实验总结为了完成这个程序,我参考了课本,互联网以及相关资料。