页面调度算法OPT的模拟实现.doc_第1页
页面调度算法OPT的模拟实现.doc_第2页
页面调度算法OPT的模拟实现.doc_第3页
页面调度算法OPT的模拟实现.doc_第4页
页面调度算法OPT的模拟实现.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计(1)报告( 2009 / 2010 学年 第 二 学期)题目(1): 文本文件编辑程序 题目(2): 页面调度算法OPT的模拟实现 专 业 计算机科学与技术 学 生 姓 名 陈炳阳 班 级 学 号 B07030523 指 导 教 师 张 琳 指 导 单 位 计算机学院 计算机科学与技术系 日 期 2010.05.242010.06.04指导教师成绩评定表学生姓名陈炳阳班级学号B07030531专业计算机科学与技术评分内容评分标准优秀良好中等差平时成绩认真对待课程设计,遵守实验室规定,上机不迟到早退,不做和设计无关的事设计成果设计的科学、合理性功能丰富、符合题目要求 界面友好、外观漂亮、大方程序功能执行的正确性程序算法执行的效能设计报告设计报告正确合理、反映系统设计流程文档内容详实程度文档格式规范、排版美观验收答辩简练、准确阐述设计内容,能准确有条理回答各种问题,系统演示顺利。评分等级指导教师简短评语指导教师签名日期2010.06.11备注评分等级有五种:优秀、良好、中等、及格、不及格题目一:文本文档编辑器一、 课题内容和要求采用JAVA SWING,设计可用于文本文件编辑的程序,要求能正确打开和保存文本文件,能进行文本的修改等功能。二、需求分析本次试验,,本人使用了MyEclipse程序,熟悉了许多头文件的作用。三、概要设计 1、由于要有文本输入和保存,因此要新建一个文本文档private JFrame frame; private JTextArea textarea; private String filename; public void createEditor() JMenuBar menubar = new JMenuBar(); JMenu menufile = new JMenu(文件); JMenuItem menunew = new JMenuItem(新建); menunew.addActionListener(this); menufile.add(menunew);建立菜单,实现打开,输入,保存,JMenuItem menunew = new JMenuItem(新建); menunew.addActionListener(this); menufile.add(menunew); JMenuItem menuopen = new JMenuItem(打开); menuopen.addActionListener(this); menufile.add(menuopen); JMenuItem menusave = new JMenuItem(保存); menusave.addActionListener(this); menufile.add(menusave);主函数public static void main(String args) JTextEditor te = new JTextEditor(); te.createEditor(); ;四、详细设计 实验源代码package com.demo;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.PrintWriter;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JTextArea;public class JTextEditor extends WindowAdapter implements ActionListener private JFrame frame;/ 主窗体 private JTextArea textarea;/ 文本输入区域 private String filename;/ 打开的文件名 public void createEditor() / 建立文件菜单 JMenuBar menubar = new JMenuBar(); JMenu menufile = new JMenu(文件); / 新建菜单 JMenuItem menunew = new JMenuItem(新建); menunew.addActionListener(this); menufile.add(menunew); / 打开菜单 JMenuItem menuopen = new JMenuItem(打开); menuopen.addActionListener(this); menufile.add(menuopen); / 保存菜单 JMenuItem menusave = new JMenuItem(保存); menusave.addActionListener(this); menufile.add(menusave); / 另存为菜单 JMenuItem menusave2 = new JMenuItem(另存为.); menusave2.addActionListener(this); menufile.add(menusave2); / 退出菜单 menufile.addSeparator(); JMenuItem menuexit = new JMenuItem(退出); menuexit.addActionListener(this); menufile.add(menuexit); menubar.add(menufile); / 建立帮助菜单 JMenu menuhelp = new JMenu(帮助); JMenuItem menuabout = new JMenuItem(关于); menuabout.addActionListener(this); menuhelp.add(menuabout); menubar.add(menuhelp); / 主窗口 frame = new JFrame(Java文本编辑器); frame.setJMenuBar(menubar); textarea = new JTextArea(); frame.add(Center, textarea); frame.addWindowListener(this);/ 注册窗口关闭监听器 frame.setSize(600, 400); frame.setVisible(true); / 菜单选择事件 public void actionPerformed(ActionEvent e) try if (e.getActionCommand() = 新建) textarea.setText(); else if (e.getActionCommand() = 打开) / 选择文件 JFileChooser dlg = new JFileChooser(); int result = dlg.showOpenDialog(frame); if (result = JFileChooser.APPROVE_OPTION) File file = dlg.getSelectedFile(); filename = file.getAbsolutePath(); / 读取文件 FileReader fr = new FileReader(filename); BufferedReader br = new BufferedReader(fr); String str = ; while (br.ready() int c = br.read(); str += (char) c; textarea.setText(str); br.close(); fr.close(); frame.setTitle(Java文本编辑器 - + filename); else if (e.getActionCommand() = 保存) / 写入文件 File file = new File(filename); FileWriter fos = new FileWriter(file, true); BufferedWriter bos = new BufferedWriter(fos); PrintWriter pos = new PrintWriter(bos); / 写入对象数据 pos.print(textarea.getText(); / 关闭输出流 bos.close(); pos.close(); fos.close(); else if (e.getActionCommand() = 另存为.) / 选择文件 JFileChooser dlg = new JFileChooser(); int result = dlg.showOpenDialog(frame); if (result = JFileChooser.APPROVE_OPTION) File file = dlg.getSelectedFile(); / 写入文件 FileWriter fos = new FileWriter(file, true); BufferedWriter bos = new BufferedWriter(fos); PrintWriter pos = new PrintWriter(bos); / 写入对象数据 pos.print(textarea.getText(); / 关闭输出流 bos.close(); pos.close(); fos.close(); else if (e.getActionCommand() = 退出) System.exit(0); else if (e.getActionCommand() = 关于) / 显示关于对话框 final JDialog dialog = new JDialog(frame, 关于, true); dialog.setSize(267, 117); dialog.setLayout(new GridLayout(2, 1); / 窗口关闭事件 dialog.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dialog.dispose(); ); / 显示消息 JPanel topPanel = new JPanel(); JLabel label = new JLabel(Java文本编辑器); topPanel.add(label, BorderLayout.NORTH); dialog.add(topPanel); dialog.setVisible(true); catch (Exception ex) ex.printStackTrace(); / 关闭窗体事件 public void windowClosing(WindowEvent e) System.exit(0); / 主函数 public static void main(String args) JTextEditor te = new JTextEditor(); te.createEditor(); 五、测试数据及其结果分析测试结果(如下图所示):文本编辑器界面输入存储功能结果分析:能基本实现输入保存功能,由于余下时间仓促,未能调试实现字体,复制,粘贴等功能1、 算法分析: 首先新建一个文件菜单,在次基础上继续建新建,打开,保存,另存为,退出菜单.建立菜单选择时间以便选择文件,读取文件.陆续建立写入文件,写入对象数据,关闭输出最后关闭对象窗体六、调试过程中的问题FileReader fr = new FileReader(filename); BufferedReader br = new BufferedReader(fr); String str = ; while (br.ready() int c = br.read(); str += (char) c; textarea.setText(str); br.close(); fr.close(); frame.setTitle(Java文本编辑器 - + filename); else if (e.getActionCommand()=保存) 发现最后一句有问题 改成 else if (e.getActionCommand()=保存) 七、课程设计总结由于未使用过JAVA进行程序的编写,因此,本次试验开始时无从下手。但通过此次课程设计,我了解了许多JAVA软件的应用,包括:MyEclipse、Eclipse等等软件的简单基本的操作。通过实际问题的测试,使我进一步了解了java的运用.也发现了不少问题了解了JAVA中的头文件,类的相关定义,特别是string类等相关程序的应用。本次实验,也借助了网络,通过上网查阅了不少资料,也问了网友很多问题,一起探讨解决.题目二:页面调度算法OPT的模拟实现一、课题内容和要求 内容 虚拟存储中页面调度算法OPT的模拟实现。 要求 学习虚拟存储机制中页面调度算法,通过编程模拟实现页面调度的OPT算法。2、 需求分析利用c+或者java等语言模拟实现页面调度的opt算法,本人由于对java不是很熟悉,所以用了c+实现3、 概要设计首先实现文本文档的建立, 建立分配的内存空间,并初始化,返回头结点,利用指针进行数字的调度调度成功,结束实验四、详细设计 详细代码如下:#include #include #include #define null 0 #define len sizeof(struct page) struct page int num; int tag; struct page *next; ; struct page *create(int n) /*建立分配的内存空间,并初始化,返回头结点*/ int count=1; struct page *p1,*p2,*head; head=p2=p1=(struct page *)malloc(len); p1-tag=-1;p1-num=-1; while(counttag=-1;p1-num=-1; p2-next=p1; p2=p1; p2-next=null; return(head); OPT(array,n) int array,n; int *p,*q,count=0,i; struct page *head,*cp,*dp,*new; p=array; head=create(n); while(*p!=-1) cp=head; for(;cp-num!=*p&cp-next!=null;) cp=cp-next; if(cp-num!=*p) count+; cp=head; for(;cp-tag!=-1&cp-next!=null;) cp=cp-next; if(cp-tag=-1) printf( * ); cp-num=*p; cp-tag=0; else i=1;q=p;q+;cp=head; while(*q!=-1&inum&cp-next!=null;) cp=cp-next; if(*q=cp-num) cp-tag=1; i+; q+;cp=head; if(i=n) for(;cp-tag!=0;) cp=cp-next; printf( %d ,cp-num); cp-num=*p; else cp=head; for(;cp-tag!=0;) cp=cp-next; if(cp=head) for(;cp-next!=null;) cp=cp-next; new=(struct page *)malloc(len); new-num=*p; new-tag=0; new-next=null; cp-next=new; dp=head; head=head-next; printf( %d ,dp-num); free(dp); else printf( %d ,cp-num); cp-num=*p; cp=head; for(;cp-next!=null;) cp-tag=0;cp=cp-next; cp-tag=0; else printf( ! ); p+; printf(nQueye Zongshu : %d n,count); main() FILE *fp; char pt; char str10; int i,j=0; int page50,space=0; f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论