


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、工業(yè)學(xué)院計(jì)算機(jī)工程系實(shí) 驗(yàn) 目 的操作系統(tǒng)實(shí)驗(yàn)報(bào)告()實(shí) 驗(yàn) 名 稱動(dòng)態(tài)分區(qū)分配方 式的模擬實(shí)驗(yàn)日期2016/12/3成績(jī)姓名班級(jí)學(xué)號(hào)了解動(dòng)態(tài)分區(qū)分配方式中使用的數(shù)據(jù)結(jié)構(gòu)和分配算法,進(jìn)一步加深對(duì)動(dòng)態(tài)分區(qū)存儲(chǔ)管理方式及其實(shí)現(xiàn)過(guò)程的理解Eclipse, SQL Server實(shí) 驗(yàn) 環(huán) 境1.在數(shù)據(jù)庫(kù)中創(chuàng)建分區(qū)表;2.實(shí) 驗(yàn) 步 驟Name'Type|y numbervarJ'jnWAX)mvarcharjWAX)addrHSvarchir(MAX)農(nóng)tu弓vfifchwi.WAX)vrarkvarchjn MAX)實(shí)驗(yàn)代碼:連庫(kù)類:package com mon;import ja
2、va.sql.C onnection;數(shù)據(jù)庫(kù)的創(chuàng)建:import java.sql.DriverMa nager;Length ScabAllow NullJAVA實(shí)現(xiàn)采用首次適應(yīng)算法和最佳適應(yīng)算法的動(dòng)態(tài)分區(qū)分配過(guò)程和回收過(guò)程。3.設(shè)置初始狀態(tài),每次分配和回收后顯示出空閑存分區(qū)表的情況。public class ConnectionF actory / Create a variable for the conn ecti on stri ng.privatestaticfinalStringconnectionUrl"jdbc:sqlserver:/localhost:1433;&
3、quot; +"DatabaseName=czxt;"/ Declare the JDBC objects. user=sa;password=wz951107private static Connection conn = n ull;static try / Establish the conn ecti on.DriverMa nager.getCo nn ectio n(co nn ectio nU rl,"sa","wz951107");/* if(co nn!=n ull)(”連接成功");*/ Han dle
4、any errors that may have occurred.catch (Excepti on e) e.pri ntStackTrace();/關(guān)閉連接pstmt,C onn ecti onpublic static void close(ResultSetrs,PreparedStatementconn) throws Excepti on/釋放資源if(rs!=null)rs.close();if(pstmt!=null)pstmt.close();if(conn!=nu ll)conn .close();/獲取連接public static Connection getC on
5、nection() retur n conn;public static void main(String args)if(c onn!=nu II)(” 連接成功");實(shí)體類:package bean;public class Zone privateStri ngn umberprivateStri ngsize ;privateStri ngaddressprivateStri ngstatusprivateStri ngwork ;publicStri ng getWork() return work ;public void setWork(Stringwork ) thi
6、s . work = work ;publicZon e() super ();statuspublicZone(Stringnumber, Stringsize , String address , StringStringwork ) super ();this . number = number ;this . size = size ;this . address = address ;this . status = status ;this . work = work ;publicStri ng getNumber() return number ;public void setN
7、umber(String number) this . number = number ;public Stri ng getSize() return size ;public void setSize(Stringsize ) this . size = size ;public String getAddress() return address ;public void setAddress(Stringaddress ) this . address = address ;public String getStatus() return status ;public void set
8、Status(Str ingstatus ) this . status = status ;OverridepublicStri ng toStri ng() return"Zone n umber="+ n umber + ", size="address + ", status="+ status+ ", work="+ work + ""+ size + ", address="Dao層類(對(duì)數(shù)據(jù)庫(kù)的操作):package dao;import bea n.Zone;
9、import com mon.ConnectionF actory;public class Zon eDao II插入public void save(Z one zon e)try Connection conn = n ull;PreparedStateme nt pstmt = nu II;try /連接conn = ConnectionF actory.getC onnection();/預(yù)處理sqlStri ng sql = " in sert into zone values(?,?,?,?,?)" pstmt = conn. prepareStateme n
10、t(sql);pstmt.setStri ng(1,z on e.getNumber(); pstmt.setStri ng(2, zon e.getSize();pstmt.setStri ng(3, zon e.getAddress(); pstmt.setStri ng(4, zon e.getStatus();pstmt.setStri ng(5, zon e.getWork();II執(zhí)行sqlint num = pstmt.executeUpdate();System.out.println("Zone插入一條數(shù)據(jù)”); fin ally /*ConnectionF act
11、ory.close (n ull, pstmt, conn );*/ catch (Excepti on e) e.pri ntStackTrace();II刪除public void deleteByWork(Stri ng work)try Connection conn = n ull;PreparedStateme nt pstmt = nu II;try conn = ConnectionF actory.getC onnection();String sql = " delete from zone where work = ?"pstmt = conn. pr
12、epareStateme nt(sql);pstmt.setStri ng(1, work);int num = pstmt.executeUpdate();System.out.println("刪除"+num+"條數(shù)據(jù)"); fin ally /*ConnectionF actory.close (n ull, pstmt, conn );*/ catch (Excepti on e) e.pri ntStackTrace();/刪除public void deleteByNumber(Stri ng nu mber)try Connection c
13、onn = n ull;PreparedStateme nt pstmt = n ull;try conn = ConnectionF actory.getC onn ecti on();String sql = " delete from zone where number = ?" pstmt = conn .prepareStateme nt(sql);pstmt.setStri ng(1, nu mber);int num = pstmt.executeUpdate();System.out.println(”刪除"+num+"條數(shù)據(jù)"
14、); fin ally /*Conn ecti onF actory.close( nu II, pstmt, conn );*/ catch (Excepti on e) e.pri ntStackTrace();/查詢public List<Zone> FindAII()List<Z one> list = new ArrayList<Z on e>();try Connection conn = n ull;PreparedStateme nt pstmt = nu II;ResultSet rs = null;try /連接conn = Connec
15、tionF actory.getC onnection();/預(yù)處理sqlString sql = " select * from zone ORDER BY number"pstmt = conn. prepareStateme nt(sql);II執(zhí)行sqlrs = pstmt.executeQuery();while(rs. next()String nu mber = rs.getStri ng(” nu mber");String size = rs.getStri ng("size");String address = rs.get
16、Stri ng("address");String status = rs.getStri ng("status");Stri ng work = rs.getStri ng("work");Zone zone = new Zone(nu mber, size, address, status,work); list.add(z on e); fin ally /*ConnectionF actory.close(rs, pstmt, conn );*/ catch (Excepti on e) e.pri ntStackTrace(
17、);return list;/單個(gè)查詢public Zone queryByNumber(Stri ng nu mber,Stri ng size,Stri ng address,Stri ng status,Stri ng work)Zone zone = new Zon e();try Connection conn = n ull;PreparedStateme nt pstmt = nu II;ResultSet rs = null;try conn = ConnectionF actory.getC onnection();Stri ng sql = " select *f
18、rom zone Where1 = 1"if(nu mber != nu ll)sql += " and nu mber = '"+number+""'if(size != n ull)sql += " and size = '"+size+""'if(address != nu ll)sql += " and address = '"+address+""'if(status != n ull)sql += &quo
19、t; and status = '"+status+""'if(work != n ull)sql += " and work = '"+work+""'pstmt = conn. prepareStateme nt(sql);rs = pstmt.executeQuery();while(rs. next()zon e.setNumber(rs.getStri ng(” nu mber");zon e.setAddress(rs.getStri ng("address&q
20、uot;);zon e.setSize(rs.getStri ng("size");zon e.setStatus(rs.getStri ng("status");zo ne.setWork(rs.getStri ng("work"); fin ally /*ConnectionF actory.close(rs, pstmt, conn );*/ catch (Excepti on e) e.pri ntStackTrace();retur n zone;/修改public void update(Z one zon e)try C
21、onnection conn = n ull;PreparedStateme nt pstmt = nu II;try conn = ConnectionF actory.getC onnection();String sql = " update zone set"+" nu mber = ?,size = ?,address = ?,status = ?,work = ?"+" where nu mber = ?"pstmt = conn. prepareStateme nt(sql);pstmt.setStri ng(1,z o
22、n e.getNumber();pstmt.setStri ng(2, zon e.getSize();pstmt.setStri ng(3, zon e.getAddress();pstmt.setStri ng(4, zon e.getStatus();pstmt.setStri ng(5, zon e.getWork();pstmt.setStri ng(6,z on e.getNumber();int num = pstmt.executeUpdate();System.out.println(”修改了 "+num+"條數(shù)據(jù)"); fin ally /*C
23、onnectionF actory.close (n ull, pstmt, conn );*/ catch (Excepti on e) e.pri ntStackTrace();/排序public List<Z one> asc()List<Z one> list = new ArrayList<>();try Connection conn = n ull;PreparedStateme nt pstmt = nu II;ResultSet rs = null;try conn = ConnectionF actory.getC onnection()
24、;String sql =" select * from zone ORDER BY address ASC"pstmt = conn. prepareStateme nt(sql);rs = pstmt.executeQuery();while(rs. next()String nu mber = rs.getStri ng(” nu mber");String size = rs.getStri ng("size");String address = rs.getStri ng("address");String sta
25、tus = rs.getStri ng("status");Stri ng work = rs.getStri ng("work");Zone zone = new Zone(nu mber, size, address, status,work); list.add(z on e); fin ally catch (Excepti on e) e.pri ntStackTrace();return list;視圖層:package view;import java.util.List;import java.util.Sca nner;import b
26、ea n.Zone;import dao.Z on eDao;public class Zon eview public static void main(String args) System.out.pri ntln(”歡迎進(jìn)入動(dòng)態(tài)分區(qū):”);System.out.println("1.首次適應(yīng)算法");System.out.println("2.最佳適應(yīng)算法");Scanner in = new Sca nn er(System.i n);Stri ng one = in.n extLi ne();if(o ne.equals("1&qu
27、ot;)Zon eDao dao = new Zon eDao();List<Z on e> list = dao.Fi ndAII();for(Z one zone : list)System.out.pri ntln(zon e);System.out.println("1.分配");System.out.println("2.回收”);String two = in.nextLine();if(two.equals("1")System.out.println(”請(qǐng)輸入作業(yè)號(hào):");Stri ng work = in
28、.n extLi ne();boolea n flag = false;for(i nt j = O;j<list.size();j+)Zone fzone = list.get(j);if(fzon e.getWork().equals(work)flag = true;if(flag)System.out.pri ntln(”該作業(yè)號(hào)已經(jīng)存在”);elseSystem.out.println(”請(qǐng)輸入作業(yè)大?。骸?;String size = in.n extL in e();String address = nu II;String status = n ull;String nu
29、 mber = work;Stri ng size2 = n ull;/修改分配的表Zone zone1 = new Zon e();boolea n f = false;for(i nt i = 0;i<list.size();i+)Zone zone = list.get(1);zone1 = zone;if(zone.getStatus().equals(”空閑")if(l nteger.valueOf(z on e.getSize()>=I nteger.valueOf(size)address = zon e.getAddress(); status =&quo
30、t; 占用"size2=Stri ng.valueOf(l nteger.valueOf(z on e.getSize().i ntValue()-l nteger.valueOf(size).i ntValue();zon e1.setSize(Stri ng.valueOf(size2);address,zon e1.setAddress(Stri ng.valueOf(I nteger.valueOf(z on e1.getAddress().i ntVa lue()+I nteger.valueOf(size).i ntValue();Zone zone2 = new Zon
31、e(number, size, status,work);dao.save(z on e2);dao.update(z on e1);f = true;break; if(!f)Zone mzone = list.get(0);zone1 = mzone;if(mzo ne.getStatus().equals(”空閑")if(I nteger.valueOf(mz on e.getSize()>=l nteger.valueOf(size)address = mzon e.getAddress();status =" 占用"size2=Stri ng.va
32、lueOf(l nteger.valueOf(mz on e.getSize().i ntValue()-l nteger.valueOf(size).i ntValue();zon e1.setSize(Stri ng.valueOf(size2);zon e1.setAddress(Stri ng.valueOf(I nteger.valueOf(z on e1.getAddress().i ntValue()+I nteger.valueOf(size).i ntValue();Zone zone2 = new Zone(number,size,address, status,work)
33、;dao.save(z on e2);dao.update(z on e1);f = true;break;elseSystem.out.pri ntl n("請(qǐng)輸入回收的作業(yè)號(hào):”);Stri ng work = in.n extLi ne();int i = 0;for(Z one zone : list)if(zon e.getWork().equals(work)zo ne.setStatus(”空閑");zone.setWork(”空間");for(;i<list.size();)if(i!=0)空閑")空閑")if(list.
34、get(i-1).getStatus().equals(”zon e.setSize(Stri ng.valueOf(l nteger.valueOf(z on e.getSize()+l nteger.value Of(list.get(i-1).getSize();dao.deleteByNumber(list.get(i-1).getNumber();i=i-1;if(i+1<list.size() if(list.get(i+1).getStatus().equals("zon e.setSize(Stri ng.valueOf(I nteger.valueOf(z o
35、n e.getSize()+I nteger.value Of(list.get(i+1).getSize();elsebreak;dao.update(z on e);break;i+;else分配");回收");String two = in.nextLine();Zon eDao dao = new Zon eDao();List<Z on e> list = dao.Fi ndAII();if(two.equals("1")System.out.println(”請(qǐng)輸入作業(yè)號(hào):");Stri ng work = in.n e
36、xtLi ne();boolea n flag = false;for(i nt j = O;j<list.size();j+)Zone fzone = list.get(j);if(fzon e.getWork().equals(work)flag = true;if(flag)System.out.pri ntln(”該作業(yè)號(hào)已經(jīng)存在”);elseSystem.out.println(”請(qǐng)輸入作業(yè)大?。骸?;String size = in.n extL in e();String address = nu II;String status = n ull;String nu mbe
37、r = work;Stri ng size2 = n ull;/修改分配的表int temp; /記錄臨時(shí)中間值int listsize = list.size(); /數(shù)組大小/*for (int a = 0; a < listsize - 1; a+) for (int b = a + 1; b < listsize; b+) if (list.ge ti < numbersj) /交換兩數(shù)的位置temp = nu mbersi;nu mbersi = nu mbersj;nu mbersj = temp; */Zone zonel = new Zon e();for(i nt i = O;i<list.size();i+)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民參與土地流轉(zhuǎn)的農(nóng)業(yè)項(xiàng)目合作協(xié)議
- 月季花的美麗寫(xiě)物并抒情作文13篇范文
- 博弈經(jīng)典案例解析
- 建筑裝飾設(shè)計(jì)標(biāo)準(zhǔn)案例分析題
- 2025年綠化噴灑車(chē)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 大型超市數(shù)字化進(jìn)銷(xiāo)存系統(tǒng)建設(shè)協(xié)議
- 2025年采購(gòu)師(高級(jí))考試試卷:采購(gòu)與成本控制
- 2025年法律職業(yè)資格考試客觀題試卷一案例分析:法律適用與解題技巧
- 2025年聚氨酯樹(shù)脂項(xiàng)目提案報(bào)告
- 2025年北斗衛(wèi)星項(xiàng)目提案報(bào)告
- 輸液發(fā)熱反應(yīng)的護(hù)理流程圖
- 人教版八年級(jí)英語(yǔ)下冊(cè)各單元寫(xiě)作話題及期末綜合滿分作文
- 農(nóng)民工工資保障措施★
- 2023-2024學(xué)年四川省阿壩州小學(xué)語(yǔ)文四年級(jí)期末深度自測(cè)試卷詳細(xì)參考答案解析
- 8D報(bào)告樣板(設(shè)備故障的8D報(bào)告)
- 物業(yè)交接表格全模板
- (完整word版)省級(jí)溫室氣體清單編制指南
- 2023年《不動(dòng)產(chǎn)登記法律制度政策》考點(diǎn)速記速練300題(詳細(xì)解析)
- 當(dāng)代世界政治經(jīng)濟(jì)與國(guó)際關(guān)系 鄧澤宏課件第一章國(guó)際政治與世界格局
- MT 285-1992縫管錨桿
- JJG 1038-2008科里奧利質(zhì)量流量計(jì)
評(píng)論
0/150
提交評(píng)論