2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  操作系統(tǒng)課程設(shè)計(jì)報(bào)告</p><p>  題目: 為L(zhǎng)inux系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)</p><p><b>  指導(dǎo)老師:</b></p><p>  時(shí)間:2012.8.30</p><p><b>  一 課程設(shè)計(jì)的目的</b></p><p&

2、gt;  課程設(shè)計(jì)目的使學(xué)生熟悉文件管理系統(tǒng)的設(shè)計(jì)方法;加深對(duì)所學(xué)各種文件操作的了解及其操作方法的特點(diǎn)。通過(guò)模擬文件系統(tǒng)的實(shí)現(xiàn),深入理解操作系統(tǒng)中文件系統(tǒng)的理論知識(shí), 加深對(duì)教材中的重要算法的理解。同時(shí)通過(guò)編程實(shí)現(xiàn)這些算法,更好地掌握操作系統(tǒng)的原理及實(shí)現(xiàn)方法,提高綜合運(yùn)用各專業(yè)課知識(shí)的能力。</p><p><b>  二 課程設(shè)計(jì)的要求</b></p><p>  

3、1.可以實(shí)現(xiàn)下列幾條命令:</p><p>  login 用戶登錄</p><p>  dir 列目錄</p><p>  create 創(chuàng)建文件</p><p>  delete 刪除文件</p><p>  open 打開(kāi)文件</p&g

4、t;<p>  close 關(guān)閉文件</p><p>  read 讀文件</p><p>  write 寫(xiě)文件</p><p>  2.列目錄時(shí)要列出文件名,物理地址,保護(hù)碼和文件長(zhǎng)度</p><p>  3.源文件可以進(jìn)行讀寫(xiě)保護(hù)</p><p><

5、b>  三 算法設(shè)計(jì)</b></p><p>  本次二級(jí)文件系統(tǒng)主要分為五大模塊,分別是用戶登錄模塊、新建目錄模塊、新建文件模塊、刪除文件模塊和讀取文件模塊。用戶登錄成功后才可以進(jìn)行其他模塊的操作。</p><p><b>  1 用戶登錄模塊</b></p><p>  用戶登錄模塊要求用戶輸入用戶,當(dāng)輸入正確后才能進(jìn)行其

6、他模塊操作,否則提示用戶名不存在并詢問(wèn)用戶是否用此名進(jìn)行注冊(cè)。若用戶名未滿,則提示注冊(cè)成功,否則提示用現(xiàn)有注冊(cè)用戶,進(jìn)行登錄,并返回到登錄界面。用戶登錄模塊流程圖如圖1所示。</p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b><

7、/p><p><b>  是</b></p><p>  圖1 用戶登錄模塊流程圖</p><p><b>  2新建文件模塊</b></p><p>  新建文件模塊是在用戶出入create指令后進(jìn)行的,進(jìn)入后會(huì)要求用戶輸入文件名,并判斷文件名是否存在,若沒(méi)有則在要求用戶輸入文件讀寫(xiě)權(quán)限,否則重新輸入

8、新的文件名。新建文件模塊流程圖如圖2所示。</p><p><b>  是</b></p><p><b>  否</b></p><p>  圖2 新建文件流程圖</p><p><b>  3 刪除文件模塊</b></p><p>  刪除文件模塊是

9、根據(jù)用戶鼠標(biāo)右擊時(shí)選擇到的節(jié)點(diǎn)來(lái)確定要?jiǎng)h除節(jié)點(diǎn)的名字與路徑,然后判斷該節(jié)點(diǎn)是目錄還是文件。若是文件則直接刪除文件,若是目錄則進(jìn)入該目錄再刪除其全部文件。刪除文件模塊流程圖如圖4所示。</p><p><b>  否</b></p><p><b>  是</b></p><p>  圖4 刪除文件模塊流程圖</p&g

10、t;<p><b>  4讀取文件模塊</b></p><p>  讀取文件模塊,要求用戶要在文件打開(kāi)的前提下,將磁盤(pán)中的內(nèi)容讀取到內(nèi)存中。讀取文件流程圖如圖5所示。</p><p>  是 </p><p><b>  否</b></p><p>  圖5 讀取文件模

11、塊流程圖</p><p><b>  5 寫(xiě)入文件模塊</b></p><p>  寫(xiě)入文件模塊,思路與讀取文件模塊將本相同,只是添加了對(duì)讀寫(xiě)權(quán)限的判斷。</p><p><b>  6 遍歷文件</b></p><p>  遍歷文件,根據(jù)在用戶登陸時(shí),記錄的值,在二維數(shù)組中,找到用戶的所有文件對(duì)象

12、,將相應(yīng)的必須屬性全部打印出來(lái)。</p><p><b>  四 程序源代碼</b></p><p>  1. 文件對(duì)象相關(guān)代碼</p><p>  package com.file;</p><p>  import java.io.Serializable;</p><p>  public

13、class FilePro implements Serializable{</p><p>  String filename;</p><p>  String content;</p><p>  String username;</p><p><b>  int flag;</b></p><

14、;p>  int protect;</p><p>  public FilePro(String filename,String username,String content,int flag,int protect){</p><p>  this.filename = filename;</p><p>  this.username = userna

15、me;</p><p>  this.content = content;</p><p>  this.flag = flag;</p><p>  this.protect = protect;</p><p><b>  }</b></p><p><b>  }</b>

16、;</p><p><b>  2. 文件讀寫(xiě)操作</b></p><p>  package com.file;</p><p>  import java.io.*;</p><p>  import java.util.*;</p><p>  public class FileCon {&

17、lt;/p><p>  Object [][] data = new Object[7][100];</p><p>  ObjectInputStream in = null;</p><p>  ObjectOutputStream out = null;</p><p>  String path = "D:\\file"

18、;;</p><p>  public FileCon(){</p><p>  for(int i = 0;i<7;i++)</p><p>  for(int j = 0;j<100;j++){</p><p>  data[i][j] = new FilePro("",null,"",

19、1,0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  public Object[][] readData(){</p><p><b>  try {</b></p><p>  in = ne

20、w ObjectInputStream(new BufferedInputStream(new FileInputStream(path)));</p><p>  data = (Object[][]) in.readObject();</p><p>  } catch(EOFException e){</p><p>  } catch (Exception

21、e) {</p><p><b>  }</b></p><p>  return data;</p><p><b>  }</b></p><p>  public void writeData(Object[][] data){</p><p><b>  t

22、ry {</b></p><p>  out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path)));</p><p>  out.writeObject(data);</p><p>  out.flush();</p><p>

23、;  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>

24、<b>  3.用戶名操作</b></p><p>  public class UserCon {</p><p>  List<String> list = new ArrayList<String>();</p><p>  ObjectInputStream in = null;</p><p

25、>  ObjectOutputStream out = null;</p><p>  String path = "D:\\user";</p><p>  public List<String> readUser(){</p><p><b>  try {</b></p><p&g

26、t;  in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(path)));</p><p>  list = (List<String>) in.readObject();</p><p>  } catch(EOFException e){</p><p>  

27、} catch (Exception e) {</p><p><b>  }</b></p><p>  return list;</p><p><b>  }</b></p><p>  public void writeUser(List<String> list){</p

28、><p><b>  try {</b></p><p>  out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path)));</p><p>  out.writeObject(list);</p><p>  out.f

29、lush();</p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }<

30、/b></p><p><b>  4.主程序</b></p><p>  package com.file;</p><p>  import java.util.*;</p><p>  public class FileSystem {</p><p>  Object[][] dat

31、a = new Object[7][100];</p><p>  FileCon fc = new FileCon();</p><p>  List<String> user = new ArrayList<String>();</p><p>  UserCon uc = new UserCon();</p><p&

32、gt;  String[] cmd = new String[2];</p><p>  int currentuser = 0;</p><p>  public FileSystem() {</p><p>  data = fc.readData();</p><p>  user = uc.readUser();</p>

33、<p><b>  }</b></p><p>  public static void main(String[] args) {</p><p>  FileSystem fs = new FileSystem();</p><p>  fs.help();</p><p><b>  }<

34、;/b></p><p>  public void help() {</p><p>  System.out.println("歡迎使用該文件系統(tǒng)");</p><p>  System.out.print("create ");</p><p>  System.out.println(&q

35、uot;創(chuàng)建文件");</p><p>  System.out.print("dir ");</p><p>  System.out.println("列目錄文件");</p><p>  System.out.println("exit 退出系統(tǒng)");</p>&l

36、t;p>  System.out.println("以下命令需加文件名");</p><p>  System.out.println("eg:open ***");</p><p>  System.out.print("open ");</p><p>  System.out.println

37、("打開(kāi)文件");</p><p>  System.out.print("close ");</p><p>  System.out.println("關(guān)閉文件");</p><p>  System.out.print("read ");</p><p&g

38、t;  System.out.println("讀文件");</p><p>  System.out.print("write ");</p><p>  System.out.println("寫(xiě)文件");</p><p>  System.out.print("delete ")

39、;</p><p>  System.out.println("刪除文件");</p><p>  command();</p><p><b>  }</b></p><p>  public void command() {</p><p>  System.out.pri

40、nt("root:>");</p><p>  String comd = null;</p><p>  Scanner input = input = new Scanner(System.in);</p><p>  comd = input.nextLine();</p><p>  String[] cmd

41、 = new String[2];</p><p>  cmd = comd.split(" ");</p><p>  if (cmd[0].equals("login"))</p><p><b>  login();</b></p><p>  else if (cmd[0]

42、.equals("create"))</p><p><b>  create();</b></p><p>  else if (cmd[0].equals("dir"))</p><p><b>  dir();</b></p><p>  else if

43、 (cmd[0].equals("delete"))</p><p>  delete(cmd[1]);</p><p>  else if (cmd[0].equals("open"))</p><p>  open(cmd[1]);</p><p>  else if (cmd[0].equals(

44、"close"))</p><p>  close(cmd[1]);</p><p>  else if (cmd[0].equals("read"))</p><p>  read(cmd[1]);</p><p>  else if (cmd[0].equals("write")

45、)</p><p>  write(cmd[1]);</p><p>  else if (cmd[0].equals("exit")){</p><p>  System.out.println("退出系統(tǒng)!");</p><p>  System.exit(0);}</p><p

46、>  else System.out.println("指令錯(cuò)誤??!");</p><p>  command();</p><p><b>  }</b></p><p>  public void login() {</p><p>  boolean f = false;</p>

47、;<p>  System.out.println("請(qǐng)輸入用戶名:");</p><p>  Scanner input = input = new Scanner(System.in);</p><p>  String username = input.next();</p><p>  for (int i = 0; i &

48、lt; user.size(); i++) {</p><p>  if (user.get(i).equals(username)) {</p><p>  System.out.println("登陸成功!!");</p><p>  currentuser = i;</p><p><b>  f = tr

49、ue;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if (!f) {</b></p><p> 

50、 System.out.println("該用戶不存在,是否以此用戶名注冊(cè)?y注冊(cè),其他返回");</p><p>  String cho = input.next();</p><p>  if (cho.equals("y")) {</p><p>  if (user.size() == 7)</p>&

51、lt;p>  System.out.println("對(duì)不起用戶已滿,請(qǐng)利用其他已注冊(cè)賬戶登錄");</p><p><b>  else {</b></p><p>  user.add(username);</p><p>  uc.writeUser(user);</p><p>  Sy

52、stem.out.println("注冊(cè)成功!請(qǐng)重新登錄");</p><p><b>  }</b></p><p><b>  login();</b></p><p><b>  }</b></p><p><b>  }</b>

53、</p><p>  command();</p><p><b>  }</b></p><p><b>  // 目錄</b></p><p>  public void dir() {</p><p>  System.out.println("文件名\t&q

54、uot; + "用戶名\t" + "物理地址\t" + "保護(hù)碼\t" + "文件長(zhǎng)度");</p><p>  for (int i = 0; i < 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p>

55、;<p>  if (!fp1.filename.equals(""))</p><p>  System.out.println(fp1.filename + "\t" + fp1.username + "\t"</p><p>  + currentuser + i + "\t" + fp1.

56、protect + "\t"</p><p>  + fp1.content.length());</p><p><b>  }</b></p><p>  command();</p><p><b>  }</b></p><p><b>

57、  // 創(chuàng)建文件</b></p><p>  public void create() {</p><p>  Scanner input = input = new Scanner(System.in);</p><p>  boolean f = true;</p><p>  boolean fl = false;<

58、/p><p>  String filename = null;</p><p><b>  do{</b></p><p>  fl = false;</p><p>  System.out.print("請(qǐng)輸入文加名:");</p><p>  filename = inpu

59、t.next();</p><p>  for (int i = 0; i < 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p><p>  if (fp1.filename.equals(filename)) {</p><p>  Syst

60、em.out.println("文件已存在!!");</p><p>  fl = true;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p

61、>  }while(fl);</p><p>  System.out.print("請(qǐng)輸入權(quán)限:");</p><p>  int protect = input.nextInt();</p><p>  FilePro fp = new FilePro(filename, user.get(currentuser), "&qu

62、ot;, 1,</p><p><b>  protect);</b></p><p>  for (int i = 0; i < 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p><p>  if (fp1.filena

63、me.equals("")) {</p><p>  data[currentuser][i] = fp;</p><p>  fc.writeData(data);</p><p>  System.out.println("創(chuàng)建成功?。?quot;);</p><p>  f = false;</p&g

64、t;<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if (f) {</b></p><p>  System.out.println(&q

65、uot;磁盤(pán)已滿");</p><p><b>  }</b></p><p>  command();</p><p><b>  }</b></p><p><b>  // 刪除文件</b></p><p>  public void d

66、elete(String file) {</p><p>  boolean f = true;</p><p>  for (int i = 0; i < 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p><p>  if (fp1.file

67、name.equals(file)) {</p><p>  fp1.filename = "";</p><p>  fp1.content = null;</p><p>  fp1.flag = 1;</p><p>  fp1.username = null;</p><p>  fc.wr

68、iteData(data);</p><p>  System.out.println("刪除成功??!");</p><p>  f = false;</p><p><b>  break;</b></p><p><b>  }</b></p><p>

69、;<b>  }</b></p><p><b>  if (f) {</b></p><p>  System.out.println("無(wú)此文件");</p><p><b>  }</b></p><p>  command();</p>

70、<p><b>  }</b></p><p><b>  // 打開(kāi)文件</b></p><p>  public void open(String file) {</p><p>  boolean f = true;</p><p>  for (int i = 0; i <

71、 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p><p>  if (fp1.filename.equals(file)) {</p><p>  if (fp1.flag == 0)</p><p>  System.out.println(&q

72、uot;文件已打開(kāi)!");</p><p><b>  else {</b></p><p>  fp1.flag = 0;</p><p>  System.out.println("文件打開(kāi)成功??!");</p><p><b>  }</b></p>

73、<p>  f = false;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if (f) {</b></p>&l

74、t;p>  System.out.println("無(wú)此文件");</p><p><b>  }</b></p><p>  command();</p><p><b>  }</b></p><p><b>  // 關(guān)閉文件</b></p

75、><p>  public void close(String file) {</p><p>  boolean f = true;</p><p>  for (int i = 0; i < 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p

76、><p>  if (fp1.filename.equals(file)) {</p><p>  if (fp1.flag == 1)</p><p>  System.out.println("文件未打開(kāi)!");</p><p><b>  else {</b></p><p>

77、;  fp1.flag = 1;</p><p>  System.out.println("文件關(guān)閉成功?。?quot;);</p><p><b>  }</b></p><p>  f = false;</p><p><b>  break;</b></p><

78、p><b>  }</b></p><p><b>  }</b></p><p><b>  if (f) {</b></p><p>  System.out.println("無(wú)此文件");</p><p><b>  }</b&

79、gt;</p><p>  command();</p><p><b>  }</b></p><p><b>  // 讀文件</b></p><p>  public void read(String file) {</p><p>  boolean f = true

80、;</p><p>  for (int i = 0; i < 100; i++) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p><p>  if (fp1.filename.equals(file)) {</p><p>  if (fp1.flag ==

81、1)</p><p>  System.out.println("文件未打開(kāi)!請(qǐng)先將文件打開(kāi)!");</p><p><b>  else {</b></p><p>  System.out.println(fp1.content);</p><p><b>  }</b>&l

82、t;/p><p>  f = false;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if (f) {</b></

83、p><p>  System.out.println("無(wú)此文件");</p><p><b>  }</b></p><p>  command();</p><p><b>  }</b></p><p><b>  // 寫(xiě)文件</b&g

84、t;</p><p>  public void write(String file) {</p><p>  Scanner input = input = new Scanner(System.in);</p><p>  boolean f = true;</p><p>  for (int i = 0; i < 100; i+

85、+) {</p><p>  FilePro fp1 = (FilePro) data[currentuser][i];</p><p>  if (fp1.filename.equals(file)) {</p><p>  if (fp1.flag == 1)</p><p>  System.out.println("文件未打

86、開(kāi)!請(qǐng)先將文件打開(kāi)!");</p><p><b>  else {</b></p><p>  if (fp1.protect != 0)</p><p>  System.out.println("對(duì)不起,您沒(méi)有寫(xiě)入的權(quán)限!");</p><p><b>  else {<

87、;/b></p><p>  System.out.println("請(qǐng)輸入要寫(xiě)入的內(nèi)容:");</p><p>  String ss = input.next();</p><p>  fp1.content = fp1.content + ss;</p><p>  fc.writeData(data);<

88、;/p><p>  System.out.println("寫(xiě)入成功");</p><p><b>  }</b></p><p><b>  }</b></p><p>  f = false;</p><p><b>  break;</b

89、></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if (f) {</b></p><p>  System.out.println("無(wú)此文件");</p><p>

90、;<b>  }</b></p><p>  command();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  五 程序運(yùn)行截圖</b></p><p><b&g

91、t;  六 心得體會(huì)</b></p><p>  對(duì)于本次操作系統(tǒng)課程設(shè),由于對(duì)二級(jí)文件的內(nèi)容比較陌生,剛起步階段花了很大時(shí)間去思考,但是仍然還是比較模糊。當(dāng)完成設(shè)計(jì)時(shí),感覺(jué)還是不是太了解,總感覺(jué)得到的和要求的有些差別,不過(guò)對(duì)二級(jí)文件系統(tǒng)也有了進(jìn)一步的了解,并且還對(duì)操作系統(tǒng)應(yīng)用有了更深入的認(rèn)識(shí)??傮w來(lái)說(shuō),這次課程下來(lái),發(fā)現(xiàn)自己的,語(yǔ)言基礎(chǔ)掌握的一點(diǎn)也不好,讓我遇到了許多的問(wèn)題。</p>

溫馨提示

  • 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論