太原工业学院计算机工程系优质文档.docx

上传人:b****2 文档编号:24095517 上传时间:2023-05-24 格式:DOCX 页数:23 大小:132.52KB
下载 相关 举报
太原工业学院计算机工程系优质文档.docx_第1页
第1页 / 共23页
太原工业学院计算机工程系优质文档.docx_第2页
第2页 / 共23页
太原工业学院计算机工程系优质文档.docx_第3页
第3页 / 共23页
太原工业学院计算机工程系优质文档.docx_第4页
第4页 / 共23页
太原工业学院计算机工程系优质文档.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

太原工业学院计算机工程系优质文档.docx

《太原工业学院计算机工程系优质文档.docx》由会员分享,可在线阅读,更多相关《太原工业学院计算机工程系优质文档.docx(23页珍藏版)》请在冰豆网上搜索。

太原工业学院计算机工程系优质文档.docx

太原工业学院计算机工程系优质文档

太原工业学院计算机工程系

操作系统实验报告()

实验名称

动态分区分配方式的模拟

实验日期

2016/12/3

成绩

姓名

班级学号

了解动态分区分配方式中使用的数据结构和分配算法,进一步加深对动态分区存储管理方式及其实现过程的理解

Eclipse,SQLServer

1.在数据库中创建分区表;

2.JAVA实现采用首次适应算法和最佳适应算法的动态分区分配过程和回收过程。

3.设置初始状态,每次分配和回收后显示出空闲内存分区表的情况。

数据库的创建:

 

实验代码:

连库类:

packagecommon;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

publicclassConnectionFactory{

//Createavariablefortheconnectionstring.

privatestaticfinalStringconnectionUrl="jdbc:

sqlserver:

//localhost:

1433;"+

"DatabaseName=czxt;";

//DeclaretheJDBCobjects.user=sa;password=wz951107

privatestaticConnectionconn=null;

static{

try{

//Establishtheconnection.

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn=DriverManager.getConnection(connectionUrl,"sa","wz951107");

/*if(conn!

=null)

{

System.out.println("连接成功");

}*/

}

//Handleanyerrorsthatmayhaveoccurred.

catch(Exceptione){

e.printStackTrace();

}

}

//关闭连接

publicstaticvoidclose(ResultSetrs,PreparedStatementpstmt,Connectionconn)throwsException{

//释放资源

if(rs!

=null){

rs.close();

}

if(pstmt!

=null){

pstmt.close();

}

if(conn!

=null){

conn.close();

}

}

//获取连接

publicstaticConnectiongetConnection(){

returnconn;

}

publicstaticvoidmain(String[]args)

{

if(conn!

=null)

{

System.out.println("连接成功");

}

}

}

实体类:

packagebean;

publicclassZone{

privateStringnumber;

privateStringsize;

privateStringaddress;

privateStringstatus;

privateStringwork;

publicStringgetWork(){

returnwork;

}

publicvoidsetWork(Stringwork){

this.work=work;

}

publicZone(){

super();

}

publicZone(Stringnumber,Stringsize,Stringaddress,Stringstatus,Stringwork){

super();

this.number=number;

this.size=size;

this.address=address;

this.status=status;

this.work=work;

}

publicStringgetNumber(){

returnnumber;

}

publicvoidsetNumber(Stringnumber){

this.number=number;

}

publicStringgetSize(){

returnsize;

}

publicvoidsetSize(Stringsize){

this.size=size;

}

publicStringgetAddress(){

returnaddress;

}

publicvoidsetAddress(Stringaddress){

this.address=address;

}

publicStringgetStatus(){

returnstatus;

}

publicvoidsetStatus(Stringstatus){

this.status=status;

}

@Override

publicStringtoString(){

return"Zone[number="+number+",size="+size+",address="+address+",status="+status+",work="

+work+"]";

}

}

Dao层类(对数据库的操作):

packagedao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.util.ArrayList;

importjava.util.List;

importbean.Zone;

importcommon.ConnectionFactory;

publicclassZoneDao{

//插入

publicvoidsave(Zonezone){

try{

Connectionconn=null;

PreparedStatementpstmt=null;

try{

//连接

conn=ConnectionFactory.getConnection();

//预处理sql

Stringsql="insertintozonevalues(?

?

?

?

?

)";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,zone.getNumber());

pstmt.setString(2,zone.getSize());

pstmt.setString(3,zone.getAddress());

pstmt.setString(4,zone.getStatus());

pstmt.setString(5,zone.getWork());

//执行sql

intnum=pstmt.executeUpdate();

System.out.println("Zone插入一条数据");

}finally{

/*ConnectionFactory.close(null,pstmt,conn);*/

}

}catch(Exceptione){

e.printStackTrace();

}

}

//删除

publicvoiddeleteByWork(Stringwork){

try{

Connectionconn=null;

PreparedStatementpstmt=null;

try{

conn=ConnectionFactory.getConnection();

Stringsql="deletefromzonewherework=?

";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,work);

intnum=pstmt.executeUpdate();

System.out.println("删除"+num+"条数据");

}finally{

/*ConnectionFactory.close(null,pstmt,conn);*/

}

}catch(Exceptione){

e.printStackTrace();

}

}

//删除

publicvoiddeleteByNumber(Stringnumber){

try{

Connectionconn=null;

PreparedStatementpstmt=null;

try{

conn=ConnectionFactory.getConnection();

Stringsql="deletefromzonewherenumber=?

";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,number);

intnum=pstmt.executeUpdate();

System.out.println("删除"+num+"条数据");

}finally{

/*ConnectionFactory.close(null,pstmt,conn);*/

}

}catch(Exceptione){

e.printStackTrace();

}

}

//查询

publicListFindAll(){

Listlist=newArrayList();

try{

Connectionconn=null;

PreparedStatementpstmt=null;

ResultSetrs=null;

try{

//连接

conn=ConnectionFactory.getConnection();

//预处理sql

Stringsql="select*fromzoneORDERBYnumber";

pstmt=conn.prepareStatement(sql);

//执行sql

rs=pstmt.executeQuery();

while(rs.next())

{

Stringnumber=rs.getString("number");

Stringsize=rs.getString("size");

Stringaddress=rs.getString("address");

Stringstatus=rs.getString("status");

Stringwork=rs.getString("work");

Zonezone=newZone(number,size,address,status,work);

list.add(zone);

}

}finally{

/*ConnectionFactory.close(rs,pstmt,conn);*/

}

}catch(Exceptione){

e.printStackTrace();

}

returnlist;

}

//单个查询

publicZonequeryByNumber(Stringnumber,Stringsize,Stringaddress,Stringstatus,Stringwork){

Zonezone=newZone();

try{

Connectionconn=null;

PreparedStatementpstmt=null;

ResultSetrs=null;

try{

conn=ConnectionFactory.getConnection();

Stringsql="select*fromzoneWhere1=1";

if(number!

=null){

sql+="andnumber='"+number+"'";

}

if(size!

=null){

sql+="andsize='"+size+"'";

}

if(address!

=null){

sql+="andaddress='"+address+"'";

}

if(status!

=null){

sql+="andstatus='"+status+"'";

}if(work!

=null){

sql+="andwork='"+work+"'";

}

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next())

{

zone.setNumber(rs.getString("number"));

zone.setAddress(rs.getString("address"));

zone.setSize(rs.getString("size"));

zone.setStatus(rs.getString("status"));

zone.setWork(rs.getString("work"));

}

}finally{

/*ConnectionFactory.close(rs,pstmt,conn);*/

}

}catch(Exceptione){

e.printStackTrace();

}

returnzone;

}

//修改

publicvoidupdate(Zonezone){

try{

Connectionconn=null;

PreparedStatementpstmt=null;

try{

conn=ConnectionFactory.getConnection();

Stringsql="updatezoneset"

+"number=?

size=?

address=?

status=?

work=?

"

+"wherenumber=?

";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,zone.getNumber());

pstmt.setString(2,zone.getSize());

pstmt.setString(3,zone.getAddress());

pstmt.setString(4,zone.getStatus());

pstmt.setString(5,zone.getWork());

pstmt.setString(6,zone.getNumber());

intnum=pstmt.executeUpdate();

System.out.println("修改了"+num+"条数据");

}finally{

/*ConnectionFactory.close(null,pstmt,conn);*/

}

}catch(Exceptione){

e.printStackTrace();

}

}

//排序

publicListasc(){

Listlist=newArrayList<>();

try{

Connectionconn=null;

PreparedStatementpstmt=null;

ResultSetrs=null;

try{

conn=ConnectionFactory.getConnection();

Stringsql="select*fromzoneORDERBYaddressASC";

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next())

{

Stringnumber=rs.getString("number");

Stringsize=rs.getString("size");

Stringaddress=rs.getString("address");

Stringstatus=rs.getString("status");

Stringwork=rs.getString("work");

Zonezone=newZone(number,size,address,status,work);

list.add(zone);

}

}finally{

}

}catch(Exceptione){

e.printStackTrace();

}

returnlist;

}

}

视图层:

packageview;

importjava.util.List;

importjava.util.Scanner;

importbean.Zone;

importdao.ZoneDao;

publicclassZoneview{

publicstaticvoidmain(String[]args){

System.out.println("欢迎进入动态分区:

");

System.out.println("1.首次适应算法");

System.out.println("2.最佳适应算法");

Scannerin=newScanner(System.in);

Stringone=in.nextLine();

if(one.equals("1")){

ZoneDaodao=newZoneDao();

Listlist=dao.FindAll();

for(Zonezone:

list){

System.out.println(zone);

}

System.out.println("1.分配");

System.out.println("2.回收");

Stringtwo=in.nextLine();

if(two.equals("1")){

System.out.println("请输入作业号:

");

Stringwork=in.nextLine();

booleanflag=false;

for(intj=0;j

{

Zonefzone=list.get(j);

if(fzone.getWork().equals(work)){

flag=true;

}

}

if(flag)

{

System.out.println("该作业号已经存在");

}else

{

System.out.println("请输入作业大小:

");

Stringsize=in.nextLine();

Stringaddress=null;

Stringstatus=null;

Stringnumber=work;

Stringsize2=null;//修改分配的表

Zonezone1=newZone();

booleanf=false;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1