当前位置:文档之家› 指导书《操作系统课程设计》

指导书《操作系统课程设计》

指导书《操作系统课程设计》
指导书《操作系统课程设计》

附件5:

课程设计指导书

一、课程设计目的

《操作系统》是计算机专业的一门专业基础课,主要内容是介绍操作系统的原理和策略;《操作系统课程设计》是在学生学习完该课程以后(或学习过程中)进行的设计性实验课程,目的是使学生加深理解操作系统中的策略与思想,并能编程实现。

课程设计的项目中,包含了若干子项目,分别设计实现这些子项目和算法策略,并用程序模拟运行。这种训练把知识获取和项目实践二者有机结合,增强对课程内容的理解和掌握,并获得有关项目管理和团队合作等方面的训练和经验。

二、课程设计主要内容及要求

任务一:线程同步与互斥

该任务依据对“生产者-消费者问题”示例演示代码(清单1-1)的分析,编写程序实现男女共用浴室的情况下的同步与互斥(要求见《现代操作系统》习题51(P98)),男女到达浴室的时间数据放在文本文件。对于给定的输入文件,观察测试输出结果的正确性。

课时4个学时。

任务二:程序模拟存储管理之“伙伴系统”算法

设计与编写程序实现动态内存管理之“伙伴系统”算法。初始内存的大小(必须是2的幂)、申请内存的进程大小及次序等数据放在文本文件中。对于给定的输入文件,输出进程申请与退出每步的内存分配状态。

课时4个学时。

任务三:老化算法模拟分页系统

设计与编写程序使用老化算法模拟一个分页系统。页面访问序列从文件(文本文件)中读取。对于一个给定的输入文件,列出每1000个内存访问中发生缺页中断的数

目。

课时4个学时。

任务四:使用工具分析Windows之NTFS文件系统

使用WinHex工具分析当前操作系统(通常是Windows XP)的NTFS或FAT32文件系统组织方式。(具体要求随后提供。)

课时2-4个课时。

三、课程设计基本步骤及进度安排

1.学生分组(建议1-2人一组)、了解课程要求及熟悉任务一。(第9周)

2.完成任务一的程序设计、编写与测试工作。(第10周)

3.开始任务二的程序设计工作。(第11周)

4.完成任务二的程序设计、编写与测试工作。(第12周)

5.开始任务三的程序设计工作。(第13周)

6.完成任务三的程序设计、编写与测试工作。(第14周)

7.熟悉任务四所使用的工具WinHex,并分析当前电脑的操作系统,以任一

文件为实例分析文件系统的管理组织机制。(第16周)

8.编写课程设计报告并进行答辩。(第17周)

详情见“实践教学日历”

四、考核方法:

按学院要求进行考核,打分:

1、平时成绩。包括课堂出勤情况、文档提交情况等内容。占总成绩的20%。

2、项目答辩成绩。每个题目均需要进行项目答辩,答辩时采取单人答辩

的方式,根据所做题目评委出题进行答辩。占总成绩的30%。

3、课程设计报告成绩。占总成绩的50%。

4、优秀率不超过15%。

附录

任务一:线程同步与互斥

设计内容:

1.分析并执行“生产者-消费者问题”示例演示程序(源代码清单:1-1)。

演示程序执行步骤:

1)以“记事本”程序创建pc.txt文件,文件内容为:

其中,第1列为线程序号,第2列为线程类型(生产者还是消费者线程),第3列为等待时间,第4列为运行时间。

2)将文件pc.txt放在C盘根目录下

3)运行生产程序,结果如下:

2.编程设计:(教材P98页51题)

假设一个大学为了卖弄其政治上的正确性,准备把美国最高法院的信条“平

等但隔离其本身就是不平等”既运用在种族上也运用在性别上,从而结束校园内长期使用的浴室按性别隔离的做法。但是,为了迁就传统习惯,学校颁布法令:当有一个女生在浴室里,那么其他女生可以进入,但是男生不行,反之亦然。在每个浴室的门上有一个滑动指示符号,表示当前处于以下三种可能状态之一:

●空

●有女生

●有男生

用你偏好的程序设计语言编写下面过程(可以随意采用所希望的计数器和同步技术):

●woman_wants_to_enter

●man_wants_to_enter

●woman_leaves

●man_leaves

设计要点与关键技术:

1.线程的同步与互斥

2.信号量上的P、V操作算法

3.使用Visual Studio2008开发平台

任务二:程序模拟存储管理之“伙伴系统”

设计内容:

1.依据下图所示的算法或严蔚敏《数据结构(C语言版)》P203的内容编写

程序。

2.测试数据依据下图并将其放在一个文本文件中。

设计要点与关键技术:

1.动态内存管理之伙伴系统算法

2.递归算法

3.使用Visual Studio2008开发平台

任务三:老化算法模拟分页系统

设计内容:

1.编写一个程序,它使用老化算法模拟一个分页系统。页帧的数量是参数。

页面的访问序列从文件中读取。对于一个给定的输入文件。列出每1000

个内存访问中发生缺页中断的数目,它是可用页帧数的函数。(教材P141,41题)

2.一个简单的典型测试数据:

分配的内存帧数:3

进程页访问序列:0、1、2、3、4、1、2、0、1、2、3、4、0、1、2、3

3.按要求设计测试比较更大数据量的页面访问

设计要点与关键技术:

1.老化算法的理解

2.使用Visual Studio2008开发平台

任务四:使用工具分析Windows之NTFS文件系统

设计内容:

1.学习WinHex工具软件的使用;

2.利用WinHex工具对根目录下的文件进行删除、隐蔽、恢复、属性修改

及寻找其数据的存储位置;

3.对非根目录下的文件进行上述(2)项的操作;

4.利用工具移动某个文件的数据块。

●也可在FAT32文件系统中进行上述操作

设计要点与关键技术:

1.对NTFS或FAT32的组织结构的认识

●NTFS格式可参见《现代操作系统》(第3版)P509“11.8 Windows NT

文件系统”

2.工具的使用熟练度

【源代码清单1-1】

#include

#include

#include

#include

#include

#include

#include

#include

#define PRODUCER 'P'

#define CONSUMER 'C'

#define MAX_BUFFER_NUM 10

#define MAX_THREAD_NUM 32

struct ThreadInfo{

int id;

char type;

double waitt;

double workt;

};

HANDLE g_hMutex;

HANDLE g_hFullSemaphore;

HANDLE g_hEmptySemaphore;

HANDLE h_Thread[MAX_THREAD_NUM];

ThreadInfo thread_info[MAX_THREAD_NUM];

using namespace std; //***********

void Producer(void *p){

DWORD m_waitt;

DWORD m_workt;

int m_id;

m_id=((ThreadInfo *)(p))->id;

m_waitt=(DWORD)(((ThreadInfo *)(p))->waitt *1000);

m_workt=(DWORD)(((ThreadInfo *)(p))->workt *1000);

Sleep(m_waitt);

cout<<"生产者线程"<

WaitForSingleObject(g_hEmptySemaphore,INFINITE);

WaitForSingleObject(g_hMutex,INFINITE);

cout<<"生产者线程"<

Sleep(m_waitt);

ReleaseMutex(g_hMutex);

ReleaseSemaphore(g_hFullSemaphore,1,NULL);

}

void Consumer(void *p){

DWORD m_waitt;

DWORD m_workt;

int m_id;

m_id=((ThreadInfo *)(p))->id ;

m_waitt=(DWORD)(((ThreadInfo *)(p))->waitt*1000);

m_workt=(DWORD)(((ThreadInfo *)(p))->workt*1000);

Sleep(m_waitt);

WaitForSingleObject(g_hFullSemaphore,INFINITE);

WaitForSingleObject(g_hMutex,INFINITE);

cout<<"消费者线程"<

Sleep(m_workt);

ReleaseMutex(g_hMutex);

ReleaseSemaphore(g_hEmptySemaphore,1,NULL);

cout<<"消费者线程"<

}

void READFILE(char *file){

int n=0;

DWORD thread_ID;

DWORD wait_for_all;

g_hMutex=CreateMutex(NULL,FALSE,(LPCWSTR)"mutex");

g_hFullSemaphore=CreateSemaphore(NULL,0,10,(LPCWSTR)"full");

g_hEmptySemaphore=CreateSemaphore(NULL,10,10,(LPCWSTR)"empty");

ifstream inFile;

inFile.open(file);

while(inFile){

inFile>>thread_info[n].id;

inFile>>thread_info[n].type;

inFile>>thread_info[n].waitt;

inFile>>thread_info[n].workt;

n++;

inFile.get();

}

for(int i=0;i

if(thread_info[i].type==PRODUCER || thread_info[i].type=='P')

h_Thread[i]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Producer),&thread_info[i],0,&thread_ID);

else

h_Thread[i]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Consumer),&thread_info[i],0,&thread_ID);

}

wait_for_all=WaitForMultipleObjects(n,h_Thread,TRUE,-1);

cout<<"所有线程执行完毕!";

}

int main(){

char ch;

while(TRUE){

cout<<"********************************"<

cout<<"1.生产者消费者问题演示"<

cout<<"2.退出"<

cout<<"请输入[1-2]:"<

cout<<"********************************"<

ch=(char)_getch();

system("cls");

if(ch=='2') return 0;

else

READFILE("c:\\pc.txt");

cout<<"输入选择:";

_getch();

system("cls");

}

return 0;

}

操作系统课程设计

课程设计报告 2015~2016学年第一学期 操作系统综合实践课程设计 实习类别课程设计 学生姓名李旋 专业软件工程 学号130521105 指导教师崔广才、祝勇 学院计算机科学技术学院 二〇一六年一月

- 1 -

- 2 -

一、概述 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: 本次课程设计是要实现一个简单的模拟Linux文件系统。我们在内存中开辟一个虚拟磁盘空间(20MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 二、设计的基本概念和原理 2.1 设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 - 3 -

read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树 format 格式化文件系统 Exit 退出文件系统 2.2设计要求 1) 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2) 多级目录:可有多级子目录; 3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块) 5) 文件的创建:create (用命令行来实现)6) 文件的打开:open 7) 文件的读:read8) 文件的写:write 9) 文件关闭:close10) 删除文件:delete 11) 创建目录(建立子目录):mkdir12) 改变当前目录:cd 13) 列出文件目录:dir14) 退出:logout 新增加的功能: 15) 删除目录树:rd 16) 格式化文件系统:format 2.3算法的总体思想 - 4 -

操作系统课程设计报告书

题目1 连续动态内存管理模拟实现 1.1 题目的主要研究内容及预期达到的目标 (1)针对操作系统中内存管理相关理论进行设计,编写程序并进行测试,该程序管理一块虚拟内存。重点分析三种连续动态内存分配算法,即首次适应算法、循环首次适应算法和最佳适应算法。 (2)实现内存分配和回收功能。 1.2 题目研究的工作基础或实验条件 (1)硬件环境:PC机 (2)软件环境:Windows XP,Visual C++ 6.0 1.3 设计思想 首次适应算法的实现:从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。为适应这种算法,空闲分区表中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高址空间保留大的空闲区。 循环首次适应算法的实现:在分配内存空间时,不再每次从表头开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。 最佳适应算法的实现:从全部空闲区中找到能满足作业要求的、且最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表中的空闲分区要按从小到大进行排序,从表头开始查找第一个满足要求的自由分配。 1.4 流程图 内存分配流程图,如图1-1所示。

图1-1 内存分配流程图内存回收流程图,如1-2所示。

图1-2 内存回收流程图 1.5 主要程序代码 (1)分配内存 void allocate(char z,float l) { int i,k; float ad; k=-1; for(i=0;i= l && free_table[i].flag == 1) if(k==-1 || free_table[i].length

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

【3】微机原理与汇编语言程序设计课程设计实验指导书_图文_百.

《微机原理与汇编语言程序设计课程设计》 实验指导书 本课程设计包含软件部分和硬件部分两个环节。 软件部分完成在有限的课内实验环节无法涉及到的具有综合设计性的软件实验,如中断程序设计、I/O程序设计、宏设计等。硬件部分利用伟福试验系统设计一个电子钟电路,并编制一个程序使电子钟能正常运行。通过软硬件环节的设计和调试,巩固所学知识,增强动手能力,提高综合性工程素质。 总实验学时:共计2周 实验一:电话号码本设计完善 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验二:显示器I/O程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验三:中断程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业

实验四:发声系统设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验五:键盘程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验六:电子钟设计 实验类型:综合性、设计性实验 学时:5天 适用对象:信息安全专业 一、实验目的和要求 软件实验部分要求进一步熟悉汇编语言开发环境,掌握汇编语言程序设计的方法和步骤,并根据教师意见和讨论,完善改进课内环节所进行的实验及进行其他综合性、设计性较强的实验内容,具体如下: 1. 熟练掌握汇编语言程序设计环境,根据前期掌握程度,可选择Masm for windows集 成实验环境(实验室配备,或自行安装masm5.0、masm6.0、Emu8086,Tasm等,软件开发环境可由学生根据使用爱好自选。

2.根据课内实验验收时指导教师提出的意见,以及和同学讨论的结果,设计实现一个功能比较完善的电话号码本,并在设计中体现自己的工作特色,即具备和其他设计不同之处。 3. 显示器I/O程序设计,完成屏幕窗口控制程序。 要求在屏幕上开出三个窗口,它们的左上角和右下角的坐标分别是(5,10,(15,30和(5,50,(15,70和(18,15,(22,65,如从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下←键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。如果再按下→键,输入字符就会接在先前输入的字符之后显示出来。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示与最低一行,窗口最高一行向上卷动后消失。 4. 中断程序设计,完成内部中断服务程序和外部中断服务程序设计。具体要求为: (1.编写一个内部中断服务程序,使其能够显示以“0”结尾的字符串(利用显示器功能调用INT 10H。字符串缓冲区首地址为入口参数,利用DS:DX传递此参数。 (2.编写一个可屏蔽的外部中断服务程序,中断请求来自8259A的IRQ0,在新的外部中断服务程序(新08H中断中,使得每55ms的中断在屏幕上显示一串信息“A 8259A Interrupt!”,显示10次后,恢复原中断服务程序,返回DOS。 5.发声系统设计,参考教材中的例9.1,利用扬声器控制原理,编写一个简易乐器程序。 要求当按下1~8数字键时,分别发出连续的中音1~7和高音i(对应频率依次为524Hz、588Hz、660Hz、698Hz、784Hz、880Hz、988Hz和1048Hz;当按下其他键时,暂停发声。如果时间允许,可在此基础上自行发挥,如增加按键功能、编辑歌曲等。

操作系统课程设计报告

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级: 13软件工程1班 提交时间: 2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。

二、环境条件 系统: WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。

(4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

vf课程设计实验报告模板

vf 课程设计实验报告模板 经济管理学院 学生信息管理系统的设计与实现 09年12 月28 日 、课程设计的目的和意义 当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们通过对学生信息管理系统的设计,来提高学生的操作能力,及对理论知识的实践能力,从而提高学生的基本素质,使其能更好的满足社会需求。 学生信息管理系统是一个简单实用的系统,它是学校进行学生管理的好帮手。 此软件功能齐全,设计合理,使用方便,适合各种学校对繁杂的学生信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。它可以融入学校的信息管理系统中,不仅方便了学生信息各方面的管理,同时也为教师的管理带来了极大地便利。 我们进行本次课程设计的主要目的是通过上机实践操作,熟练掌握数据库的设 计、表单的设计、表单与数据库的连接、SQL语言的使用和了解它的功能:数据定 义、数据操纵、数据控制,以及简单VF程序的编写。基本实现学生信息的管理, 包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除,并对Visual FoxPro6.0 的各种功能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势。 - 1 -

、系统功能设计 通过该系统可以基本实现学生信息的管理,包括系统的登录、学生信息的录 入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。系统 功能模块如下图所示。 学生信息管理系统主界面 登录 管理 学学学学学 生生生生生 信信信信信 息息息息息 录查浏修删 入询览改除 三、系统设计内容及步骤 3.1创建项目管理文件 1.启动foxpro 系统,建一个项目管理器,命名为“学生管理”。 哑 目f ■ 也 电 岂同左 矣 氏H. 0 存 JI 蛋誤曾

数据结构课程设计实验指导书

《数据结构课程设计》实验指导书 1.1 实验报告撰写的基本要求 1.1.1 问题描述 这一部分需要简单介绍题目内容,即该实验到底要做什么。 1.1.2 算法说明 这一部分需要详细描述解决问题需要用到算法和重要的数据结构,即该实验到底应该怎么做。 基本要求:处理问题中所用到的关键算法都要描述清楚,而不是仅描述主函数。算法和数据结构可用伪码和图示描述,不要只写源代码和注释。 1.1.3 测试结果 这一部分内容需要紧扣实习的题目类型和要求,涉及提供相应的测试方法和结果。 对于需要利用某算法解决某问题的题目,应设计并填写一张测试用例表。每个测试用例一般包括下列内容: (1)测试输入:设计一组输入数据; (2)测试目的:设计该输入的目的在于测试程序在哪方面可能存在漏洞; (3)正确输出:对应该输入,若程序正确,应该输出的内容; (4)实际输出:该数据输入后,实际测试得到的输出内容; (5)错误原因:如果实际输出与正确输出不符,需分析产生错误的可能原因; (6)当前状态:分为“通过”(实际输出与正确相符)、“已改正”(实际输出与正确输出不符,但现在已修改正确)、“待修改”(实际输出与正确输出不符,且尚未改正)三种状态; (7)测试结果分析:需要详细解释测试策略,对得到的数据进行分析,总结出算法的时空复杂度,得出自己对算法性能等方面分析的结论。 附录:源代码 源代码列在附录中,要求程序风格清晰易理解,有充分的注释,有意义的注释行少于代码的30%将不能得分。

1.2 实习作业的提交要求 每个实习项目结束后,学生按照实验报告格式和内容要求提交实验报告(打印稿)1份,与此同时提交压缩后的电子资料1份,电子资料要求按照如下方式打包: 文档夹:包括电子版的实验报告 学号姓名.rar 源代码文件 代码夹:源代码文件对应的可执行文件 readme.txt文件,告知如何编译源代码,生 成可执行文件

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

《面向对象程序设计》课程设计实验指导书2013

《面向对象程序设计》课程设计 实验指导书 武汉理工大学理学院 物理科学与技术系 2013年2月1日

目录 设计一简单计算器 (1) 设计二模拟时钟程序 (4) 设计三 24点游戏 (8) 设计四多媒体视频播放器 (11) 设计五幸运52 (14) 设计六简单画图程序 (17) 课程设计说明书要求 (20)

设计一简单计算器 一、概述 在运算过程中,通过使用计算器能减少运算量。既可以用“计算器”的标准视图执行简单的计算,也可以用其科学型视图执行高级的科学计算。用户使用“计算器”执行所有通常用手持计算器完成的标准操作。 简单计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。简单计算器可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算,同时包含清除,退格,退出功能。简单计算器出现错误会给出相应错误提示。而且可以操作与运算按钮相对应的菜单项。 通过对简单计算器的设计,可以熟悉MFC编程,包括Visual C++在数学计算方面的知识、算法设计、对话框和控件的使用及应用程序的调试,同时对面向对象与可视化程序设计有一定的认识,并提高动手编程的能力。 二、设计任务 1、提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。具体如下: 执行简单计算: (1) 键入计算的第一个数字。 (2) 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。 (3) 键入计算的下一个数字。 (4) 输入所有剩余的运算符和数字。 (5)单击“=”。 执行科学计算:能够执行阶乘、正弦、余弦和指数运算。 2、添加相关控件,制作与用户交互性较好的应用程序界面。

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件 系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景

计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。 2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下: 钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<

【实验报告】大学物理实验课程设计实验报告

大学物理实验课程设计实验报告北方民族大学 大学物理实验(设计性实验) 实验报告 指导老师:王建明 姓名:张国生 学号:XX0233 学院:信息与计算科学学院 班级:05信计2班 重力加速度的测定 一、实验任务 精确测定银川地区的重力加速度 二、实验要求 测量结果的相对不确定度不超过5% 三、物理模型的建立及比较 初步确定有以下六种模型方案: 方法一、用打点计时器测量

所用仪器为:打点计时器、直尺、带钱夹的铁架台、纸带、夹子、重物、学生电源等. 利用自由落体原理使重物做自由落体运动.选择理想纸带,找出起始点0,数出时间为t的p点,用米尺测出op的距离为h,其中t=0.02秒×两点间隔数.由公式h=gt2/2得g=2h/t2,将所测代入即可求得g. 方法二、用滴水法测重力加速度 调节水龙头阀门,使水滴按相等时间滴下,用秒表测出n个(n取 50―100)水滴所用时间t,则每两水滴相隔时间为t′=t/n,用米尺测出水滴下落距离h,由公式h=gt′2/2可得g=2hn2/t2. 方法三、取半径为r的玻璃杯,内装适当的液体,固定在旋转台上.旋转台绕其对称轴以角速度ω匀速旋转,这时液体相对于玻璃杯的形状为旋转抛物面重力加速度的计算公式推导如下: 取液面上任一液元a,它距转轴为x,质量为m,受重力mg、弹力n.由动力学知: ncosα-mg=0(1) nsinα=mω2x(2) 两式相比得tgα=ω2x/g,又tgα=dy/dx,∴dy=ω2xdx/g, ∴y/x=ω2x/2g.∴g=ω2x2/2y. .将某点对于对称轴和垂直于对称轴最低点的直角坐标系的坐标x、y测出,将转台转速ω代入即可求得g.

软件工程课程设计指导书

软件工程课程设计指导书 作者:周兵 软件工程课程设计是为了加强和巩固软件工程这门学科知识及技能的学习而开设的,它是一门实践性的课程,上机实验是其主要的环节。本实验指导书是帮助同学们进行上机实验而制订的。 一、实验目的: 1.能按照软件工程的思想,采用面向对象的方法开发出一个小型软件系统。 2.在此过程中,能综合利用以前所学习的专业知识。 3.加深对软件工程这门学科知识的理解,并掌握其基本的技能及方法,培养良好的软件开发素养。 二、面向专业:计算机科学与技术 三、先修课程:一门计算机高级语言、C++语言、数据库系统概论 四、上机学时数:10学时 五、实验环境 1.单机模式 操作系统:Windows 开发工具:C++ Builder 6.0、Access 2000 六、课程设计的基本要求 1. 基本了解和掌握面向对象的开发的过程与方法。 2. 基本能够完成所要求的系统。 3. 报告文档符合具体要求。 七、设计内容 题目:选课系统 1.说明:本设计选择广大学生最熟悉的选课系统最为设计任务,便于同学联系实际,学以至用。但限于具体条件和时间的限制,宜采用C++ Builder 6.0、Access 2000。 2.具体要求: 1)数据要求 所存储和查询的数据要符合本学校的具体情况,所涉及的字段至少应包括(名称可 以不同):学生姓名、学号、登陆密码、性别、出生年月、籍贯、地址、学生电话、家庭地址、教师号、教师姓名、教研室、职称、性别、教师电话、课名、课号、学 分、先行课号、课时、开课教室、人数限制、选课人数、考试成绩、平时成绩、总 评成绩。 2)功能要求 功能至少应有:等录、查询开课情况、查询选课情况、查询成绩、选课、退课等。 3)设计要求 整个系统的开发过程及方法应符合软件工程的要求,软件能够正常运行。 八、报告

操作系统课程设计报告

东莞理工学院 操作系统课程设计报告 学院:计算机学院 专业班级:13软件工程1班 提交时间:2015/9/14 指导教师评阅意见: . 项目名称:进程与线程管理功能 一、设计目的 用语言来模拟进程和线程管理系统,加深对进程和线程的理解,掌握对进程和线程各种状态和管理的算法原理。 二、环境条件

系统:WindowsXP、VMWare、Ubuntu Linux 语言:C/C++ 开发工具:gcc/g++、Visual C++ 6.0 三、设计内容 1. 项目背景 计算机的硬件资源有限,为了提高内存的利用率和系统的吞吐量,就要根据某种算法来管理进程和线程的状态从而达到目的。 进程与线程管理功能完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 进程与线程管理功能 基本要求:完成基于优先级的抢占式线程调度功能,完成进程虚拟内存管理功能。 提高要求:(增加1项就予以加分) (1) 实现多种线程调度算法; (2)通过“公共信箱”进行通信的机制,规定每一封信的大小为128字节,实现两个用户进程之间通过这个“公共信箱”进行通信。 (3) 实现多用户进程并发的虚拟内存管理功能。 (4) 实现用户进程间通信功能,并用生产者/消费者问题测试进程间通信功能的正确性。 (5) 实现改进型Clock页面置换算法。 (6) 实现Cache功能,采用FIFO替换算法。

2. 扩展内容 实现多种线程调度算法:时间片轮转调度算法 四、人员分工 优先级调度算法:钟德新,莫友芝 时间片轮转调度算法:张德华,袁马龙 设计报告由小组队员共同完成。小组成员设计的代码分工如下:钟德新编写的代码:void Prinft(){ PCB *p; system("cls");//清屏 p=run; //运行队列 if(p!=NULL) { p->next=NULL; } cout<<"当前正在运行的进程:"<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<next; } cout<procname<<"\t\t"<pri<<"\t"<needOftime<<"\t\t"<runtime<<"\t\t"<state<

南邮课程设计实验报告

课程设计I报告 题目:课程设计 班级:44 姓名:范海霞 指导教师:黄双颖 职称: 成绩: 通达学院 2015 年 1 月 4 日

一:SPSS的安装和使用 在PC机上安装SPSS软件,打开软件: 基本统计分析功能包括描述统计和行列计算,还包括在基本分析中最受欢迎的常见统计功能,如汇总、计数、交叉分析、分类比较、描述性统计、因子分析、回归分析及聚类分析等等。具体如下: 1.数据访问、数据准备、数据管理与输出管理; 2.描述统计和探索分析:频数、描述、集中趋势和离散趋势分析、分布分析与查看、正态性检验与正态转换、均值的置信区间估计; 3.交叉表:计数;行、列和总计百分比;独立性检验;定类变量和定序变量的相关性测度; 4.二元统计:均值比较、T检验、单因素方差分析; 5.相关分析:双变量相关分析、偏相关分析、距离分析; 6.线性回归分析:自动线性建模、线性回归、Ordinal回归—PLUM、曲线估计; 7.非参数检验:单一样本检验、双重相关样本检验、K重相关样本检验、双重独立样本检验、K重独立样本检验; 8.多重响应分析:交叉表、频数表; 9.预测数值结果和区分群体:K-means聚类分析、分级聚类分析、两步聚类分析、快速聚类分析、因子分析、主成分分析、最近邻元素分析; 10. 判别分析; 11.尺度分析; 12. 报告:各种报告、记录摘要、图表功能(分类图表、条型图、线型图、面积图、高低图、箱线图、散点图、质量控制图、诊断和探测图等); 13.数据管理、数据转换与文件管理; 二.数据文件的处理 SPSS数据文件是一种结构性数据文件,由数据的结构和数据的内容两部分构成,也可以说由变量和观测两部分构成。定义一个变量至少要定义它的两个属性,即变量名和变量类型其他属性可以暂时采用系统默认值,待以后分析过程中如果有需要再对其进行设置。在spss数据编辑窗口中单击“变量视窗”标签,进入变量视窗界面,即可对变量的各个属性进行设置。 1.创建一个数据文件数据 (1)选择菜单【文件】→【新建】→【数据】新建一个数据文件,进入数据编辑窗口。窗口顶部标题为“PASW Statistics数据编辑器”。 (2)单击左下角【变量视窗】标签进入变量视图界面,根据试验的设计定义每个变量类型。

数据结构课程设计实验指导书

数据结构课程设计 指 导 书 东华大学计算机科学与技术学院 2017年1月

目录 1.前言 (1) 1.1指导思想 (1) 1.2设计任务 (1) 1.3参考进度 (2) 1.4成绩评定 (2) 1.5注意事项 (3) 1.6参考书目 (3) 2.个人任务 (4) 2.1 排序算法设计 (4) 2.2 应用算法设计 (4) 3 小组任务 (6) 3.1 有向图问题 (6) 3.2 最小生成树问题 (6) 3.3 关键路径问题 (6)

1.前言 《数据结构》是计算机科学与技术专业的一门核心专业基础课程,其主要任务是培养学生的算法设计能力及良好的程序设计习惯。通过学习,要求学生掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案、设计出简洁、高效、实用的算法,并为后续课程的学习及软件开发打下良好的基础。 1.1指导思想 本次课程设计的指导思想是: 1、学习获取知识的方法; 2、提高发现问题、分析问题和解决实际问题的能力; 3、加强创新意识和创新精神; 4、加强团队的分工与合作; 5、掌握面向实际背景思考问题的方法。 1.2设计任务 本次课程设计任务主要分为个人任务和小组任务两种。 个人基本任务: 在DHU-OJ平台上按要求完成“个人任务”部分的设计任务,其中选做题不是必须完成的任务。 小组任务: 完成“小组任务”部分的设计任务,其中选做题不是必须完成的任务。1.1要求 1、每项目小组人员为3~5名。 2、每项目小组提交一份课程设计报告,内容包括:课题名称,课题参加人 员名单和分工,课题的目的,课题内容,需求分析、概要设计、主要代码 分析、测试结果、课题特色和创新之处、收获与体会、使用说明。 3、每人必须在完成个人任务的基础上提交个人任务的设计报告,内容包括:

操作系统(一个小型操作系统的设计与实现)课程设计

南通大学计算机科学与技术学院操作系统课程设计报告 专业: 学生姓名: 学号: 时间:

操作系统模拟算法课程设计报告 设计要求 将本学期三次的实验集成实现: A.处理机管理; B.存储器管理; C.虚拟存储器的缺页调度。 设计流程图 主流程图 开始的图形界面 处理机管理存储器管理缺页调度 先来先服务时 间 片 轮 转 首 次 适 应 法 最 佳 适 应 法 先 进 先 出 L R U 算 法

A.处理机调度 1)先来先服务FCFS N Y 先来先服务算法流程 开始 初始化进程控制块,让进程控制块按进程到达先后顺序让进程排队 调度数组中首个进程,并让数组中的下一位移到首位 计算并打印进程的完成时刻、周转时间、带权周转时间 其中:周转时间 = 完成时间 - 到达时间 带权周转时间=周转时间/服务时间 更改计时器的当前时间,即下一刻进程的开始时间 当前时间=前一进程的完成时间+其服务时间 数组为空 结束

2)时间片轮转法 开始 输入进程总数 指针所指的进程是 否结束 输入各进程信息 输出为就绪状态的进程的信息 更改正在运行的进程的已运行时间 跳过已结束的程序 结束 N 指向下一个进程 Y 如果存在下一个进程的话 Y N 输出此时为就绪状态的进程的信息 时间片轮转算法流程图

B.存储器管理(可变式分区管理) 1)首次适应法 分配流程图 申请xkb内存 由链头找到第一个空闲区 分区大小≥xkb? 大于 分区大小=分区大小-xkb,修改下一个空闲区的后向指针内容为(后向指针)+xkb;修改上一个空闲区的前向指针为(前向指针)+xkb 将该空闲区从链中摘除:修改下一个空闲区的后向地址=该空闲区后向地址,修改上一个空闲区的前向指针为该空闲区的前向指针 等于 小于延链查找下 一个空闲区 到链尾 了? 作业等待 返回是 否 登记已分配表 返回分配给进程的内存首地址 开始

操作系统课程设计报告

操作系统课程设计实验报告 实验名称:进程控制 姓名/学号: 一、实验目的 学习、理解和掌握Linux与windows的进行控制系统调用的功能,熟悉主要的几个系统调用命令的格式和如何利用系统调用命令进行编程。通过学习,理解如何创建一个进程、改变进程执行的程序、进程和线程终止以及父子进程的同步等,从而提高对进程和线程控制系统调用的编程能力。 二、实验内容 设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。 三、实验环境 CPU: Inter ×2 2.10GHz RAM: 3.00GB Windows 7 旗舰版 Linux Ubuntu 10.04 编译: VS2010 四、程序设计与实现 4.1进程控制系统的调用 4.1.1 windows进程控制调用程序中使用的数据结构及主要符号说明 SYSTEMTIME starttime,endtime; //进程开始时间和结束时间 PROCESS_INFORMATION pi //该结构返回有关新进程及 //其主线程的信息 STARTUPINFO si //该结构用于指定新进程的主窗口特性4.1.2 linux进程控制调用程序中使用的数据结构及主要符号说明 struct timeval starttime,endtime //进程开始时间和结束时间 pid_t pid //进程标志符

4.2 程序流程图 图1 windows进程控制调用图2 linux进程控制调用程序运行流程图程序运行流程图 五、实验结果和分析 5.1 windows实验结果和分析

c课程设计实验报告

c课程设计实验报 告

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目时钟控件 学生姓名 指导教师 学院交通运输工程学院 专业班级 学生学号 计算机基础教学实验中心 9月7日 《C++程序设计基础》课程设计任务书

对象:粉冶、信息、能源、交通工程实验2101学生时间: .6 2周(18~19周) 指导教师:王小玲 1.课程设计的任务、性质与目的 本课程设计是在学完《C++程序设计基础》课程后,进行的一项综合程序设计。在设计当中学生综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。经过此设计进一步提高学生的动手能力。并能使学生清楚的知道开发一个管理应用程序的思想、方法和流程。 2.课程设计的配套教材及参考书 ●《C++程序设计》,铁道出版社,主编杨长兴刘卫国。 ●《C++程序设计实践教程》,铁道出版社,主编刘卫国杨长兴。 ●《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3.课程设计的内容及要求 (1)自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2)也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理 等);

设计所需数据库及数据库中的数据表,建立表之间的关系。 设计所选课题的系统主封面(系统开发题目、作者、指导教师、日期)。 设计进入系统的各级口令(如系统管理员口令,用户级口令)。 设计系统的主菜单。要求具备下列基本功能: ●数据的浏览和查询 ●数据的统计 ●数据的各种报表 ●打印输出 ●帮助系统 多种形式的窗体设计(至少有查询窗体、输入窗体) 注意:开发的应用程序工作量应保证在2周时间完成,工作量不能太少或太多。能够2人合作,但必须将各自的分工明确。 4.写出设计论文 论文基本内容及撰写顺序要求: ●内容摘要 ●系统开发设计思想 ●系统功能及系统设计介绍 ●系统开发的体会

算法设计与分析课程设计-实验指导书

算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系

一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。

相关主题
文本预览
相关文档 最新文档