计算机专业课程设计OPENGL旋转立方体

计算机专业课程设计OPENGL旋转立方体
计算机专业课程设计OPENGL旋转立方体

西安文理学院

计算机科学系

课程设计报告

设计名称:软件课程设计

设计题目:旋转立方体的设计

学生学号:

专业班级:

学生姓名:

学生成绩:

指导教师(职称):

课题工作时间:2010.5.31至2010.6.11

说明:

1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个

学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。

2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。

3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计

完成情况、报告的质量及答辩情况,给出客观、全面的评价。

4、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律

按不及格处理。答辩小组成员应由2人及以上教师组成。

5、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设

计的情况另行规定。

6、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按

不及格处理。

计算机科学系课程设计任务书

1.谭浩强C程序设计(M)(第三版)清华大学出版社2010

2.严蔚敏.吴伟民数据结构[M] 高等教育2004

3.钱能C++程序设计教程(M)(第二版)清华大学出版社2009

4.郑丽Visual Basic程序设计清华大学出版社2009-10-29

指导教师:系主任:

日期:2010 年 5 月 28 日

计算机科学系课程设计进度安排表

指导教师签名:

2010年5 月 28 日

指导教师评语

答辩记录表

成绩评定表

学生姓名:学号:班级:

摘要

软件工程专业经过两年的课程学习,已经积累了相关高级语言程序设计的基本知识。画出正方体并使之旋转,这一题目考察了程序设计自顶而下、逐步细化的相关基本思想。题目难点在于实现可视化界面的交互、以及图像的旋转过程。分析题目可以得出程序可以大致分为两个方面的内容:

1.画出一个正方体。

2.使正方体旋转起来。

经过查找相关资料,本程序采用功能强大的图形库OPENGL并调用一系列WINDOWS API采用C/C++语言在Microsoft Visual C++6.0环境下编写。很好的解决了用C/C++编写图形界面的难点问题。通过Win32平台的OPENGL API实现了逼真的三维旋转效果

关键词:正方体;旋转;可视化;OPENGL

Abstract

Software Engineering after two years course of study, has accumulated a relevant high-level language programming basics. Draw the cube and make it spin, this subject examines the design top-down process, gradually refining the basic idea related.

Subject difficulty is to achieve interactive visual interface, and image rotation

process.Analysis procedures can be drawn subject can be broadly divided into two aspects:

1.Draw a cube.

2. 2. To make a cube spin.

After find relevant information, this program features a powerful graphics library OPENGL and call a WINDOWS API using C / C + + language in Microsoft Visual C + +6.0 environment preparation.

Good solution using C / C + + graphical interface written and difficult problems. OPENGL API through the Win32 platform to achieve a realistic three-dimensional rotation effect Keywords:cube;spin;visual;OpenGL

目录

目录 ....................................................................................................................................................................... I 第一章课题背景. (2)

1.1引言 (2)

1.1.1背景及目的 (2)

1.2题目概述 (2)

1.2.1问题及技术要求 (2)

1.2.2理论依据及工作内容 (2)

第二章设计简介及设计方案论述 (3)

2.1设计简介 (3)

2.2OPENGL图形库简介 (3)

2.2.1 OPENGL历史简介 (3)

2.2.2 OPENGL特点 (3)

2.2.3 OPENGL工作顺序 (4)

2.3OPENGL简单编程方法 (4)

2.3.1 OPENGL基本语法 (4)

2.3.2 OPENGL状态机制 (4)

2.3.3 OPENGL基本结构 (5)

2.4程序所使用的OPENGL库函数 (5)

2.5OPENGL及WINDOWS坐标系 (6)

2.6WINDOWS下配置OPENGL环境 (7)

2.7WINDOWS消息机制 (7)

2.8大体设计方案 (8)

第三章详细设计 (10)

3.1OPENGL的绘制工作 (10)

3.1.1 OPENGL的初始化工作 (10)

3.1.2 OPENGL的主体绘制工作 (10)

3.2鼠标控制正方体的旋转 (11)

3.3重置OPENGL窗口 (12)

3.4WINDOWS中OPENGL窗体设置及创建 (12)

3.5完成WINDOWS主程序 (13)

第四章设计结果及分析 (14)

4.1设计结果分析 (14)

4.2进一步美化程序 (14)

总结 (15)

致谢 (16)

参考文献 (17)

附录 (18)

第一章课题背景

1.1引言

随着专业课程学习的深入,相关高级语言程序设计的知识已经有所积累,如何更好的掌握并应用已经成为当务之急。通过软件工程课程设计的过程能够学习程序设计的基本思想以及整体流程。

1.1.1背景及目的

基本高级语言程序设计以及相关专业基础课程已经学习完毕,在学习过程中遇到的一些难点问题,为了综合以前学过的课程知识并融会贯通。可以通过课程设计的独立完成来通过相关途径解决,从而能够更好的掌握程序设计的思想,提升编程能力。

1.2题目概述

1.2.1问题及技术要求

本题:画出一个正方体,并将它旋转起来。主要应实现以下4点基本要求:1.用C/C++或VB实现;

2.友好性:界面要友好;

3.可读性:源程序代码清晰、有层次;

4.当鼠标离屏幕中心的位置远近可以决定立方体旋转速度的快慢。

1.2.2理论依据及工作内容

题目难点在于实现可视化界面的交互、以及图像的旋转过程。分析题目可以得出程序可以大致分为两个方面的工作内容:1.画出一个正方体。2.使正方体旋转起来。通过在互联网上查找资料,我决定使用OPENGL图形库来解决C/C++编写图形界面困难的问题。

第二章设计简介及设计方案论述

2.1设计简介

为了实现本程序的两大功能,计划采用OPENGL图形库并调用一系列WINDOWS API采用C/C++语言编写。

首先,应熟悉OPENGL在WIN32平台下的相关API,以及其余WINDOWS窗口交互的相关接口方法,来构建窗口的内容。

其次,熟悉了解OPENGL库函数在窗体中实现绘图(既绘制正方体),实现正方体旋转功能的相关函数。

最后,实现OPENGL与WINDOWS的交互的过程,完成程序及注释。

2.2 OPENGL图形库简介

2.2.1 OPENGL历史简介

OpenGL是SGI(Silicon Graphics Inc.)公司对IRIS GL进行改进,扩展可移植性,形成的一个跨平台开放式图形编程接口,利用它可以很方便地开发出有多种

特殊视觉效果(如光照、纹理、透明、阴影)的三维图形。由于OpenGL采用类似C语言的语法,所以对于学过C语言的人来说使用起来特别方便。

2.2.2 OPENGL特点

从程序开发人员的角度来看,OpenGL 是一组绘图命令的API 集合。利

用这些API 能够方便地描述二维和三维几何物体,并控制这些物体按某种

方式绘制到显示缓冲区中。OpenGL 的API 集合提供了物体描述、平移、旋转、缩放、光照、纹理、材质、象素、位图、文字、交互以及提高显示性能

等方面的功能,基本涵盖了开发二、三维图形程序所需的各个方面。与一般

的图形开发工具相比,OpenGL 具有以下几个突出特点:

(1)应用广泛

(2)跨平台性

(3)高质量和高性能

(4)出色的编程特性

(5)网络透明性

2.2.3 OPENGL工作顺序

OpenGL 的工作顺序就是一个从定义几何要素到把象素段写入帧缓冲

区的过程。在屏幕上显示图象的主要步骤是以下3 步:

1)构造几何要素(点、线、多边形、图像、位图),创建对象的数学描

述。在三维空间放置对象,选择有利的观察点。

2)计算对象的颜色,这些颜色可能直接定义,或由光照条件及纹理间

接给出。

3)光栅化,把对象的数学描述和颜色信息转换到屏幕的象素。

2.3 OPENGL简单编程方法

2.3.1 OPENGL基本语法

OpenGL 基本函数均使用gl 作为函数名的前缀,如glClearColor();实

用函数则使用glu 作为函数名的前缀,如gluSphere()。OpenGL 基本常量的名字以GL_开头,如GL_LINE_LOOP;实用常量的名字以GLU_开头,如GLU_FILL。一些函数如glColor*()(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式。如glColor3b(…)、glColor3d(…)、glColor3f(…)和glColor3bv(…)等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3 表示该函数带有三个参数,b、d、f 分别表示参数的类型是字节型、双精度浮点型和单精度浮点型,v 则表示这些参数是以向量(数组)形式出现的。

OpenGL 还定义了一些特殊的类型名,如GLfloat,GLvoid。它们其实

就是C 中的float 和void。在gl.h 文件中可以看到以下定义:

typedef float GLfloat;

typedef void GLvoid;

……

一些基本的数据类型都有类似的定义。

2.3.2 OPENGL状态机制

OpenGL 的工作方式是一种状态机制,它可以进行各种状态或模式设

置,这些状态或模式在重新改变它们之前一直有效。例如,当前颜色就是一

个状态变量,在这个状态改变之前,绘制的每个象素都将使用该颜色,直到

当前颜色被设置为其它颜色为止。OpenGL 中大量地使用了这种状态机制,

如颜色模式、投影模式、单双显示缓存区的设置、背景色的设置、光源的位

置和特性等等。

2.3.3 OPENGL基本结构

OpenGL 程序的基本结构可分为三个部分:

第一部分是初始化部分,主要是设置一些OpenGL 的状态开关,如颜

色模式(RGBA 或ALPHA 等)的选择,是否作光照处理(若有的话,还需设置

光源的特性),深度检验,裁剪等等。这些状态一般都用函数glEnable(),glDisable()来设置,()中为相应的状态。

第二部分设置观察坐标系下的取景模式和取景框位置及大小。主要利用了三

个函数:

1.函数void glViewport(left, top, right, bottom):设置在屏幕上的窗口大小,

四个参数描述屏幕窗口四个边界坐标(以象素表示);

2.函数void glOrtho(left, right, bottom, top, near, far):设置投影方式为正交

投影(平行投影),其取景体积(观察体)是一个各面均为矩形的六面体;

3.函数void gluPerspective(fovy, aspect, zNear, zFar):设置投影方式为透视

投影,其取景体积(观察体)是一个截头锥体(棱台),在这个体积内

的物体投影到锥体的顶点。

第三部分是OpenGL 的主要部分,使用OpenGL 的库函数构造几何物

体对象的数学描述,包括点线面的位置和拓扑关系,几何变换,光照处理等等。

2.4 程序所使用的OPENGL库函数

1.OpenGL函数库分为以下几类:

(1)OpenGL核心库:gl 115个函数

(2)OpenGL编程辅助库:aux 31个函数

(3)OpenGL实用程序工具包(OpenGL utility toolkit,GLUT):glut

30多个函数

(4)Windows专用库:wgl 6个函数

(5)OpenGL 实用库(GLU)

利用较低层OpenGL 命令编写一些执行特殊任务的例程,如纹理映射、

坐标变换、NURBS 曲线曲面等。GLU 库函数前缀都用glu。

(6)OpenGL 的X Window 系统扩充(GLX)

在使用X Window 系统的机器上,提供一种建立OpenGL 现场(context),

并把它与可绘(draw able)窗口关联起来的方法。GLX 作为OpenGL 的附件提

供。GLX 库函数前缀为glx。

(7)OpenGL Programming Guide 辅助库(Auxiliary Library)

这个库建立了一系列简单而又较完整的编程例子,例如初始化窗口、

监控输入,以及绘制一些三维几何体等函数。辅助库函数用前缀aux。

在Windows95/98 中,相关的库以动态链接库的形式存在,opengl32.lib、glu32.lib、glaux.lib 分别表示OpenGL 库,实用库和辅助库,和它们相应的头文件是gl.h、glu.h 及glaux.h。

2.基本常用函数

初始化(glutInit )

创建窗口(glutCreateWindow)

设定窗口的显示模式(glutInitDisplayMode)

指定窗口的位置和大小(glutInitWindowPosition和glutInitWindowSize )指定窗口的显示内容函数(glutDisplayFunc)

运行框架(glutMainLoop)

刷新窗口的缓冲区

glClear(GL_COLOR_BUFFER_BIT);

设定投影参数(将三维图形投影到显示窗口)

glMatrixMode(GL_PROJECTION);

2.5 OPENGL及WINDOWS 坐标系

OPENGL的三维坐标系如图2-1所示:

XOY平面为屏幕所在

图2-1 OPENGL三维坐标系

WINDOWS 的窗体坐标如图2-2所示:

图2-2WINDOWS

窗体二维坐标系

2.6 WINDOWS 下配置OPENGL 环境

第一步:选择一个编译环境

现在Windows 系统的主流编译环境有Visual Studio ,Broland C++ Builder ,Dev-C++等,它们都是支持OpenGL 的。但这里我选择VC++ 6.0作为OpenGL 的环境。

第二步:安装GLUT 工具包 GLUT 不是OpenGL 所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows 环境下的GLUT 下载地址:(大小约为150k ) https://www.360docs.net/doc/9718229666.html,/resources/libraries/glut/glutdlls37beta.zip Windows 环境下安装GLUT 的步骤: 1、将下载的压缩包解开,将得到5个文件 2、以我的安装目录为例: (1)“d:\Program Files\Microsoft Visual Studio\VC98\include\GL 文件夹”。把解压得到的glut.h 放到这个GL 文件夹里。没有GL 文件夹可以自己建一个,一般都有的。 (2)“d:\Program Files\Microsoft Visual Studio\VC98\lib 文件夹”。把解压得到的glut.lib 和glut32.lib 放到静态函数库所在文件夹,即lib 文件夹。

(3)把解压得到的glut.dll 和glut32.dll 放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)这是非常重要的动态链接库设置!

2.7 WINDOWS 消息机制

消息机制是Windows 应用程序的核心,在Windows 中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows 应用程序都是消息驱动的,除了WM_COMMAND 消息,所有以WM_为前缀的消息都是标准的Windows 消息,如窗口、鼠

标移动、窗口大小改变等,程序启动或退出甚至每一段固定的时间都会产生标准Windows 消息。

Windows消息控制中心一般是三层结构,其顶端就是Windows内核。Windows内核维护着一个消息队列,第二级控制中心从这个消息队列中获取属于自己管辖的消息,后做出处理,有些消息直接处理掉,有些还要发送给下一级窗体(Window)或控件(Control)。第二级控制中心一般是各Windows应用程序的Application对象。第三级控制中心就是Windows窗体对象,每一个窗体都有一个默认的窗体过程,这个过程负责处理各种接收到的消息。

1、消息的组成:

一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。例如当菜单转中之后会有WM_COMMAND消息发送,WPARAM的高字中(HIWORD(wParam))是命令的ID 号,对菜单来讲就是菜单ID。当然用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。

2、谁将收到消息:

一个消息必须由一个窗口接收。在窗口的过程(WNDPROC)中可以对消息进行分析,对自己感兴趣的消息进行处理。例如你希望对菜单选择进行处理那么你可以定义对WM_COMMAND进行处理的代码,如果希望在窗口中进行图形输出就必须对WM_PAINT 进行处理。

3、未处理的消息到那里去了:

M$为窗口编写了默认的窗口过程,这个窗口过程将负责处理那些你不处理消息。正因为有了这个默认窗口过程我们才可以利用Windows的窗口进行开发而不必过多关注窗口各种消息的处理。例如窗口在被拖动时会有很多消息发送,而我们都可以不予理睬让系统自己去处理。

4、窗口句柄:

说到消息就不能不说窗口句柄,系统通过窗口句柄来在整个系统中唯一标识一个窗口,发送一个消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口过程,所以用户的输入就会被正确的处理。例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。一个消息从产生到被一个窗口响应,其中有5个步骤:

1) 系统中发生了某个事件。

2) Windows把这个事件翻译为消息,然后把它放到消息队列中。

3) 应用程序从消息队列中接收到这个消息,把它存放在TMsg记录中。

4) 应用程序把消息传递给一个适当的窗口的窗口过程。

5) 窗口过程响应这个消息并进行处理。

步骤3和4构成了应用程序的消息循环。消息循环往往是Windows应用程序的核心,因为消息循环使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。如果消息队列中没有消息,Windows就允许其他应用程序处理它们的消息。Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的

2.8 大体设计方案

综上所述,在本程序中。首先使用相关的WINDOWS API创建窗口,其次实现程序的相应功能:

1.使用OPENGL相应库函数画出正方体。

2.使之旋转起来。

3.在窗体中响应鼠标事件,控制正方体的旋转。

程序流程图如图2-3所示:

图2-3 程序流程图

程序的大体内容以及机构已经构造成型,功能部分还需要进一步的细化。显然在消息循环中的内容还远不止这些,还需加入响应以下事件:

1.当窗口大小发生变化时,重置窗口。

2.响应鼠标事件,并改变相对应的参数值,来改变旋转速度。

3.响应窗口中断事件,如关闭事件、屏保事件。

第三章详细设计

3.1 OPENGL的绘制工作

上一章我们提到完成OPENGL的绘制工作主有两个主要方面的工作需要完成:1.OPENGL的初始化。

2.OPENGL的绘制工作,其中包括了是正方体旋转。

以下我们分别来完成。

3.1.1 OPENGL的初始化工作

通过查找资料OPENGL的初始化工作由如下库函数过程来完成

glShadeModel(GL_SMOOTH); // 启用阴影平滑启用smooth shading(阴影平滑)。阴影平滑通过多边形精细的混合色彩,并对外部光进行平滑。

glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // 黑色背景色彩值的范围从0.0f到1.0f。0.0f代表最黑的情况,1.0f就是最亮的情况。glClearColor 后的第一个参数是Red Intensity(红色分量),第二个是绿色,第三个是蓝色。最大值也是1.0f,代表特定颜色分量的最亮情况。

接下来的三个函数必须做的是关于depth buffer(深度缓存)的。将深度缓存设想为屏幕后面的层。深度缓存不断的对物体进入屏幕内部有多深进行跟踪。我们本节的程序其实没有真正使用深度缓存,但几乎所有在屏幕上显示3D场景OpenGL程序都使用深度缓存。它的排序决定那个物体先画。这样您就不会将一个圆形后面的正方形画到圆形上来。深度缓存是OpenGL十分重要的部分。glClearDepth(1.0f); // 设置深度缓存glEnable(GL_DEPTH_TEST); // 启用深度测试glDepthFunc(GL_LEQUAL); // 所作深度测试的类型接下来是透视图修饰使透视图好看些:

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 真正精细的透视修正

3.1.2 OPENGL的主体绘制工作

首先使用glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 清除屏幕和深度缓存

然后使用glLoadIdentity();重置当前的模型观察矩阵,确定绘制好图形的位置glTranslatef(0.0f,0.0f,z); 移入屏幕 z 个单位。函数glTranslatef(x, y, z)作用为沿着 X, Y 和 Z 轴移动;

现在是本程序中最重要的语句:glRotatef(angle,0.0f,0.0f,0.0f),其中angle 为每次旋转的角度,之后分别是XYZ三个轴的旋转分量,这三个旋转分量构成了三维坐标轴中的旋转法向量。

glBegin(GL_QUADS);开始绘制四边形(使用每4个连续的顶点定义一个四边形的"填充图元-GL_QUANS")

开始绘制顶点:

前面

glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); // 纹理和四边形的左下

glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f); // 纹理和四边形的右下

glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); // 纹理和四边形的右上

glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); // 纹理和四边形的左上

纹理的相关的内容在后面再介绍,先在正方体的前面已经绘制好了,接下来依次绘制:后面,顶面,底面,右面,左面并以glEnd();结束

3.2 鼠标控制正方体的旋转

上面我们介绍到旋转函数的作用,来解决程序是要使正方体旋转起来的问题,程序还有一个要求就是,当鼠标离屏幕中心越来越远时,正方体旋转速度加快。我们可以在WINDOWS消息响应中加入鼠标事件,获取当前鼠标位置。

case WM_MOUSEMOVE:

{

int mousex=LOWORD(lParam); //得到鼠标的x方向分量

int mousey=HIWORD(lParam); //得到鼠标的y方向分量

m_mousex=mousey-m_height/2; //控制增加正方体绕y轴的旋转分量

m_mousey=mousex-m_width/2; //控制增加正方体绕x轴的旋转分量

return 0;

}

m_mousex,m_mousey为控制旋转的全局变量。

旋转型灌装机课程设计说明书.doc

机械原理课程设计 目录 1. 题目 2. 设计题目及任务………………………………………………………………… 2.1 设计题目……………………………………………………………………… 2.2 设计任务……………………………………………………………………… 设计方案 3.方案一…………………………………………………………………………… 3.1功能逻辑图和功能原理解图………………………………………………… 3.2工艺分解……………………………………………………………………… 3.3机械系统运动转换功能图…………………………………………………… 3.4方案总图……………………………………………………………………… 3.5运动循环图…………………………………………………………………… 4.尺寸设计………………………………………………………………………… 4.1 凸轮设计……………………………………………………………………… 4.2 槽轮设计……………………………………………………………………… 4.3 齿轮设计……………………………………………………………………… 4.4 其它机构尺寸设计………………………………………………………… 5. 方案二………………………………………………………………………… 5.1功能逻辑图和功能原理解图………………………………………………… 5.2工艺分解……………………………………………………………………… 6.机构的选择与比较……………………………………………………………… 6.1传动机构的选择与比较………………………………………………………… 6.2执行机构的选择与比较………………………………………………………… 7.小结………………………………………………………………………………

操作系统课程设计

课程设计报告 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.创建(插入、调整、改组) 2.输出 开发工具:windows XP操作系统,Microsoft visual c++ 6.0 编译系统; 关键词:C++ ; 二、设计主要目的及意义 目的: 1.熟悉掌握二叉树的基本操作 2.熟悉二叉树的创建(插入、调整、改组),输出以及把二叉排序树转换为二 叉平衡排序树 3.更进一步掌握有关二叉排序树的操作 意义: 软件课程设计是计算机科学与技术专业软件方向的一个重要环节,是语言类课程学习的总结。通过课程设计使我们加深对程序设计的理解,掌握程序开发的基本方法,深化学生面向对象的编程设计思想和新一代程序设计的逻辑思维方式,把课堂上所学到的多个单元串到一起,提高我们在软件设计过程中分析问题和解决问题的实际动手能力,使我们的理论知识和实践技能得到共同发展,最终提高我们解决问题和分析问题的能力。为我们踏上工作岗位之前提供了一次专业研究和项目开发的宝贵实践机会,为今后的工作积累经验。

三、课程设计的过程 主要算法说明: 1.主要数据结构定义 typedef struct node node ; Struct node { Node*parent; Node*left; Node*right; Int balance;//左右子树高度之差 Int key; } 2.主要函数说明 Int scarchNode(int key, node* root, node*parent):按key查找结点 Node* minNode(node* root):树root的最小结点 Node* maxNode(node* root):树root的最大结点 Node* preNode(node* target):求前驱结点 Node* nextNode(node* targer):求后继结点 node* adjustAVL(node* root, node* parent, node* child);调整,保证二叉树的平衡性 Node* insertNode(int key, node* root):插入 Node* deletevode(int key, node* root):删除 Node*createAVL(int* data, int size):创建新的二叉树 Void interordertraverse (node*root):中序遍历 Void preordertraverse(node* root):先序遍历 3.二叉排序树的插入和删除 a.二叉排序树的插入 在二叉排序树插入新结点,要保证插入后的二叉树仍符合二叉排序树的定义 插入过程:若二叉排序树正存在,则返回根结点;

计算机科学与编程导论课程设计参考题目及要求

计算机科学与编程导论》课程设计参考设计题目 1、学生信息管理 (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能——输出 查询、排序功能——算法 1、按学号查询 2、按姓名查询学生信息的删除与修改(可选项) (2)功能要求 界面简单明了; 有一定的容错能力,比如输入的成绩不在0?100之间,就提示不合法,要求重新 输入; 最好用链表的方式实现。 (3)算法分析 首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。 对于菜单的实现,其实也比较简单,首先我们用printf 语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。 2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。 A 、学生信息处理 (1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。 提示:学生信息可先输入到数组中,排序后可写到文件中。 (2)插入(修改)同学信息: 提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的 信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容, (3)删除同学信息:提示:输入将删除同学号,读出该同学信息, 要求对此进行确认,以决定是否删除将删 除后的信息写到文件中。 (4) 浏览学生信息:提示:打开文件,显示该文件的学生信息。 B、学生数据处理: (1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考 试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。 (2) 学生测评数据输入并计算综合测评总分及名次。 提示:综合测评总分=(考试成绩) *0.6+ (同学互评分)*0.1+品德成绩*0.1+任课老师

旋转型灌装机课程设计

目录 1工作原理 (1) 1.1设计条件 (1) 1.2设计任务 (1) 1.3设计提示 (2) 2. 方案比较 (3) 2.1选择方案 (3) 2.3方案优缺点 (5) 3. 细化设计 (6) 3.1减速器设计 (6) 3.2第二次减速装置设计 (8) 3.3第三次减速装置设计 (9) 3.4齿轮设计 (10) 3.5连杆机构设计 (11) 3.6凸轮机构设计 (12) 3.7间歇机构设计 (13) 4.总结 (14) 参考文献 (15)

1工作原理 旋转型灌装机,旋转型灌装机用于对容器连续灌装液体。转台有多工位停歇,以实现灌装、封口等程序。该机在工作过程中包括四个工位如图1;工位1,输入空瓶;工位2,灌装;工位3,封口;工位4,输出包装好的容器。该机采用灌装泵灌装流体,泵固定在某工件的上方;采用软木塞或者金属冠盖封口,他们由气泵吸附在压盖机构上,由压盖机构压入瓶口。 图1 旋转型灌装机工位示意图 1.1设计条件 该机采用电机驱动,传动采用机械传动。技术参数见表1。 表1 旋转型灌装机技术参数 方案号转台直径(mm)电动机转速(r/min)灌装速度(r/min)Ⅱ550 1440 12 1.2设计任务 1.旋转型灌装机应包括连杆机构、凸轮机构和齿轮机构这三种常用机构。 2.设计传动系统并确定其传动比分配。

3.画出旋转型灌装机的运动方案简图,并用运动循环图分配各机构运动节拍。 4.设计平面连杆机构:确定连杆机构各构件尺寸,对连杆机构进行位移、速度和加速度分析,绘制运动线图。 5.设计凸轮机构:按凸轮机构的工作要求选择从动件的运动规律,确定基圆半径,设计凸轮理论轮廓线和实际轮廓线,画出从动件运动规律线图及凸轮廓线图。 6.设计齿轮机构:根据传动比确定齿轮的齿数、模数,选择变位系数,计算齿轮传动的各部分尺寸,绘制齿轮传动啮合图。 7.编写设计计算说明书。 1.3设计提示 1.压盖机构做直线往复运动,可采用移动导杆机构等平面连杆机构或凸轮机构。 2.需要设计间歇传动机构,以实现工作台间歇传动。间歇运动可采用槽轮机构、不完全齿轮等。 3.为保证间歇停靠,还要考虑锁紧机构。锁紧机构可采用凸轮机构等。

操作系统课程设计

湖南科技大学计算机科学与工程学院 操作系统课程设计报告 ******** *** 目录 实验一 Windows 进程管理 实验二 Linux 进程管理 实验三 互斥与同步 实验四 银行家算法的模拟与实现 实验五 内存管理 指导老师: *** 完成时间: **** ** **

实验六磁盘调度 实验七进程间通信 实验一 Windows进程管理 一、实验目的 1 )学会使用VC编写基本的Win3 2 Consol Application (控制台应用程序)。 2)2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟 悉操作系统的进程概念,理解Windows进程的"一生”。 3)3)通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步 的基本程序设计方法。 二、实验内容和步骤 (1)编写基本的 Win32 Consol Application 步骤1:登录进入 Windows系统,启动VC++ 6.0。 步骤2:在“ FILE”菜单中单击“ NEW”子菜单,在“ projects ”选项卡中选择 “Win32 ConsolApplication ”,然后在“ Project name 处输入工程名,在“Location ”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“ FILE”菜单中单击“ NEW”子菜单,在“ Files ”选项卡中选择“ C++ Source File ” ,然后在“ File ”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5 :在“开始”菜单中单击“程序” -“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的 debug子目录,执行编译好的可执行程序,列出运行结果(如果运行不成功,则可能的原因是什么?) 如果运行不成功可能是路径有问题或者没有通过编译。

计算机控制技术课程设计报告

《计算机控制技术》课程设计单闭环直流电机调速系统

1 设计目的 计算机控制技术课程是集微机原理、计算机技术、控制理论、电子电路、自动控制系统、工业控制过程等课程基础知识一体的应用性课程,具有很强的实践性,通过这次课程设计进一步加深对计算机控制技术课程的理解,掌握计算机控制系统硬件和软件的设计思路,以及对相关课程理论知识的理解和融会贯通,提高运用已有的专业理论知识分析实际应用问题的能力和解决实际问题的技能,培养独立自主、综合分析与创新性应用的能力。 2 设计任务 2.1 设计题目 单闭环直流电机调速系统 实现一个单闭环直流电机调压调速控制,用键盘实现对直流电机的起/停、正/反转控制,速度调节要求既可用键盘数字量设定也可用电位器连续调节,需要有速度显示电路。扩展要求能够利用串口通信方式在PC上设置和显示速度曲线并且进行数据保存和查看。 2.2 设计要求 2.2.1 基本设计要求 (1)根据系统控制要求设计控制整体方案;包括微处理芯片选用,系统构成框图,确定参数测围等; (2)选用参数检测元件及变送器;系统硬件电路设计,包括输入接口电路、逻辑电路、操作键盘、输出电路、显示电路; (3)建立数学模型,确定控制算法; (4)设计功率驱动电路; (5)制作电路板,搭建系统,调试。 2.2.2 扩展设计要求 (1)在已能正常运行的微计算机控制系统的基础上,通过串口与PC连接; (2)编写人机界面控制和显示程序;编写微机通信程序;实现人机实时交互。

3方案比较 方案一:采用继电器对电动机的开或关进行控制。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。 方案二:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。 方案三:采用由电力电子器件组成的H 型PWM 电路。用单片机控制电力电子器件使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在电力电子器件的饱和截止模式下,效率非常高;H 型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM 调速技术。 兼于方案三调速特性优良、调整平滑、调整围广、过载能力大,因此本设计采用方案三。 4单闭环直流电机调速系统设计 4.1单闭环调速原理 4.1.1 闭环系统框图 4.1.2 调速原理 直流电机转速有: 常数Ke Ka 不变,Ra 比较小。 所以调节Ua 就能调节n 。 n n I K R K U K R I U n d d a e e d ?-=Φ -Φ=-=0φa a a U I U ≈-

JAVA聊天室课程设计报告(含源代码压缩文件)

南京晓庄学院 《JAVA程序设计》 课程设计报告 Java聊天室的设计与实现题 目 姓名:戴佳伟 学号:14552019 班级:14软件工程3班 指导教 王峥 师: 完成时间2016.10.7 成绩: 信息工程学院 2016年6月

目录 1引言.............................. . (3) 1.1 java 聊天室开发背景.................................... (3) 1.1java 聊天室开发的目的和意义........ (3) 1.2完成的主要工作.................... (4) 2 需求分析和总体设计................ (5) 2.1 需求分析与设计思路................ (5) 2.1.1 关键技术说明 .................................... . (5) 2.1.2 需求分析..................... ....................... 6 2.1.3 java 聊天室设计方案与思路 (6) 2.1.4 java 聊天室目录结构说明....... (7) 2.2 java 聊天室功能结构 .................................... (8) 3 详细设计.......................... (10) 3.1 java 聊天室模块实现 .................................... (10) 3.1.1 XX 模块实现.................. ..................... 10 4 java 聊天室运行结果.................................... (13) 5课程设计总结...................... .. (15)

旋转型灌装机——机械原理课程设计

JIANGXI AGRICULTURAL UNIVERSITY 机械原理课程设计 题目:旋转型灌装机 学院: 姓名: 学号: 专业: 班级: 指导教师: 二0 一三年八月

目录 1设计题目 2旋转型灌装机的工作功能原理 3旋转型灌装机机构运动总体方案4旋转型灌装机各运动构件的设计5旋转型灌装机运动循环图 6原动机的选择 7传动机构的选择 8灌装机构的设计 9旋转工作台间隙运动机构的设计10传送轮的设计 11传动齿轮,带轮,链轮的设计12封口压盖机构的设计 13 参考文献

1.设计题目 1.1设计旋转型灌装机。在转动工作台上对包装容器(如玻璃瓶)连续灌装流体(如饮料、酒、冷霜等),转台有多工位停歇,以实现灌装、封口等工序。为保证在这些工位上 中,工位 4:输出 图4 旋转型灌装机该机采用电动机驱动,传动方式为机械传动。技术参数见表7。 表7 旋转型灌装机技术参数

1.2 1.旋转型灌装机应包括连杆机构、凸轮机构、齿轮机构等三种常用机构。 2.设计传动系统并确定其传动比分配。 3.图纸上画出旋转型灌装机的运动方案简图,并用运动循环图分配各机构运动节拍。 4.电算法对连杆机构进行速度、加速度分析,绘出运动线图。图解法或解析法设计平面连杆机构。 5.凸轮机构的设计计算。按凸轮机构的工作要求选择从动件的运动规律,确定基圆半径,校核最大压力角与最小曲率半径。对盘状凸轮要用电算法计算出理论廓线、实际廓线值。画出从动件运动规律线图及凸轮廓线图。 6.齿轮机构的设计计算。 7.编写设计计算说明书。 8.学生可进一步完成:平面连杆机构(或灌装机)的计算机动态演示等。 1.3设计提示 1.采用灌瓶泵灌装流体,泵固定在某工位的上方。

产品系统设计课程设计大纲(完稿)

《产品系统设计课程设计》教学大纲 课程名称:产品系统设计 课程代码: 适用专业:工业设计 修读方式:必修 课程类别:实践性教学环节 学时:2周 学分:1 先修或同修课程:产品设计程序与方法、图形创意、人机工程学、透视学等 后续课程:产品概念设计、产品创新设计等 执笔人:郭淑颖 一、制定课程设计大纲的依据 根据吉林工程技术师范学院《产品系统设计》课程教学大纲制定。 二、课程设计在专业人才能力培养中的作用及教学目的 本课程设计是工业设计专业学生必修的课程,是实践性教学环节,对培养学生的综合设计能力起到很大的作用。本实践环节强调学生综合运用工业设计专业已经学习过的专业知识,进行新产品的系统化设计。 本课程设计的教学目的: 1. 能熟练运用计算机辅助设计课程及其他相关课程中的中的基本理论以及专业课知识,实践一个产品从市场调研、确定设计方案到设计展开的设计过程,能够对产品的各大设计要素进行展开设计。。 2. 能根据被表达的产品的形态、功能、结构等要求,运用软件的基本原理和方法,完成设计,完成产品系统设计。 3. 培养学生熟悉并运用有关资料、教程、网络等技术资料的能力。 4. 进一步培养学生通过市场调研,挖掘市场需求,确定设计方向和概念,并独立成该概念的系统设计。 三、教学基本要求 1. 课程设计的选题

选择难度一般的设计题目,建议给定5个或者以上设计题目,学生自选并组成设计小组,一个小组一起完成市场调研及分析,每个人根据自己的设计概念进行设计展开。 2. 指导教师 由担任本课程的教师(中级职称以上)担任指导教师,每个指导教师指导的学生人数原则上不超过一个班。指导教师负责课程设计的任务布置、指导及成绩评定等工作。 3. 学生 课程设计是在教师指导下由学生独立完成。每个学生都应该明确设计任务和要求,掌握设计进度。设计分阶段进行,每一阶段的设计都要认真检查,没有原则错误时才能继续进行下一段设计,以保证设计质量,循序完成设计任务。设计过程中要独立思考、深入钻研,主动地、创造性地进行设计,反对照抄照搬、敷衍塞责,容忍错误存在或依赖教师。要求设计态度严肃认真,有错必改。在设计思想、设计方法和设计技能等方面得到良好的训练。 四、课程设计内容、设计工作量及相关要求 1. 课程设计内容 设计题目参考:家具设计、家电设计、玩具设计、交通工具设计、办公用品设计等。具体设计内容包括: 1) 市场调研及调研分析,确定设计方向; 2) 方案设计,设计草图; 3) 设计展开,按设计要素进行展开设计; 4) 设计展示-草图、三视图、效果图; 5) 编写设计制作说明报告并进行设计答辩。 2. 课程设计的工作量 1) 最终设计效果图3张(A3图幅,产品效果图、产品场景图、展示效果图) 2) 设计报告说明书1份 说明书内容应包括:市场调研及分析;方案设计;设计展开;设计展示;整理造型表现完成的说明报告书。 3. 课程设计说明书 课程设计说明书是学生证明自己设计正确合理并供有关人员参考的文件,它是课程设计的重要组成部分。编写说明书也是科技工作者必须掌握的基本技能之一。因此,学生在校期间就应加强这方面的训练。课程设计说明书应在课程设计过程中逐步形成,课程设计结束时,

java课程设计报告(java聊天室)

Java聊天室课程设计 一、需求分析 1.1开发背景 在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。 1.2设计要求 本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。 1.3设计目的 通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。能将相关的只是运用到相关的实践中去。 1.4功能实现 聊天室共分为客户端和服务端两部分,服务器程序主要负责侦听客户端发来的消息,客户端需要登录到相应的服务器才可以实现正常的聊天功能。 服务器的主要功能有 1)在特定端口上进行侦听,等待客户连接 2)用户可以配置服务器的真挺端口

计算机网络课程设计题目

计算机网络课程设计 一. 中小型千兆网吧组建 内容及要求: 用BOSON软件实现小规模网络的模拟。熟悉对路由器和交换机的配置命令,调通网络,并通过实例深入理解网络基本工作原理及实现方法。学会网络构建、日常维护以及管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能,网吧包含100-200台上网的计算机。二.小型网络的组建 通过对网络的具体规划和组建,掌握网络互连设备的使用及工作原理;掌握IP地址的配置及数据传输过程和路由的选择。 具体要求如下: 1.使用模拟仿真软件,构建一个小型网络。要求使用路由器、交换机等网络互连设备。根据设计要求,选择网络类型。 2.分配和配置IP地址,要求配置内部网络地址。 3.对交换机、路由器等进行配置。 4.通过使用模拟仿真软件,模拟局域网间的数据通信过程。 5.分析通信过程中出现的问题,并加以解决。 6. 写出课程设计报告:设计目的、设计内容、设计方案、拓扑图、设备选型、方案报价、子网划分等内容。 (1)企业网络工程 (2)银行网络工程 (3)医院网络工程

(4)校园网网络工程 (5)大型机场信息网络工程 (6)邮电综合管理信息网 (7)某航空公司网络系统建设 (8)某市宽带信息网络 (9)证券交易网络系统 (10)学校以太网网络建设 三.Ping程序的设计与实现 设计的目的是使学生掌握网络层协议的原理及实现方法。设计内容,在给定的Ping程序的基础上做如下功能扩充: ●-h 显示帮助信息 ●-b 允许ping一个广播地址,只用于IPv4 ●-t 设置ttl值,只用于IPv4 ●-q 安静模式。不显示每个收到的包的分析结果,只在结束时,显示汇总结果 Ping命令的基本描述 Ping的操作是向某些IP地址发送一个ICMP Echo消息,接着该节点返回一个ICMP Echo reply消息。 ICMP消息使用IP头作为基本控制。IP头的格式如下 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version=4 IHL Internet头长 Type of Service = 0 Total Length IP包的总长度 Identification, Flags, Fragment Offset 用于IP包分段 Time to Live IP包的存活时长 Protocol ICMP = 1 Addresses 发送Echo消息的源地址是发送Echo reply消息的目的地址,相反,发送Echo

机械原理课程设计——旋转型灌装机

目录 一、设计任务书.............................................. 错误!未定义书签。 二、功能分解................................................ 错误!未定义书签。 三、机构选型与组合.......................................... 错误!未定义书签。 四、机械运动循环图.......................................... 错误!未定义书签。 五、机械运动方案的拟定...................................... 错误!未定义书签。 a工作台旋转机构........................................ 错误!未定义书签。 b压盖机构.............................................. 错误!未定义书签。 c灌装机构.............................................. 错误!未定义书签。 六、原始数据................................................ 错误!未定义书签。 七、机械运动简图............................................ 错误!未定义书签。 八、各部分参数计算.......................................... 错误!未定义书签。 九、整体评价与总结.......................................... 错误!未定义书签。 十、参考资料................................................ 错误!未定义书签。附录:部分主要机构的三维模型图及构件三视图

操作系统课程设计

操作系统课程设计

(操作系统课程设计) 连续动态分区内存 管理模拟实现 学生姓名:韩慧 学生学号: 031140312 班级: 031140--3 0311401、02、03、04班制 二〇一三年十二月

目录 《操作系统》课程设计 (1) 引言 (3) 课程设计目的和内容 (3) 需求分析 (3) 概要设计 (3) 开发环境 (4) 系统分析设计..................................................................... 4 有关了解内存管理的相关理论 (4) 内存管理概念 (4) 内存管理的必要性 (4) 内存的物理组织 (4) 什么是虚拟内存 (5) 连续动态分区内存管理方式 (5) 单一连续分配(单个分区) (5) 固定分区存储管理 (5) 可变分区存储管理(动态分区) (5) 可重定位分区存储管理 (5) 问题描述和分析 (6) 程序流程图 (6) 数据结构体分析 (8) 主要程序代码分析 (9) 分析并实现四种内存分配算法 (11) 最先适应 算 (11) 下次适应分配算法 (13) 最优适应算法 (16) 最坏适应算法......................................................... (18) 回收内存算法 (20) 调试与操作说明 (22) 初始界 面 (22)

模拟内存分配 (23) 已分配分区说明表面 (24) 空闲区说明表界 面 (24) 回收内存界 面 (25) 重新申请内存界面..........................................................26.总结与体会. (28) 参考文献 (28) 引言 操作系统是最重要的系统软件,同时也是最活跃的学科之一。我们通过操作系统可以理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。 存储器是计算机系统的重要组成部分,近年来,存储器容量虽然一直在不断扩大,但仍不能满足现代软件发展的需要,因此,存储器仍然是一种宝贵而又紧俏的资源。如何对它加以有效的管理,不仅直接影响到存储器的利用率,而且还对系统性能有重大影响。而动态分区分配属于连续分配的一种方式,它至今仍在内存分配方式中占有一席之地。 课程设计目的和内容: 理解内存管理的相关理论,掌握连续动态分区内存管理的理论;通过对实际问题的编程实现,获得实际应用和编程能力。 编写程序实现连续动态分区内存管理方式,该程序管理一块虚拟内存,实现内存分配和回收功能。分析并实现四种内存分配算法,即最先适应算法,下次最先适应算法,最优适应算法,最坏适应算法。内存分配算法和回收算法的实现。 需求分析 动态分区分配是根据进程的实际需要,动态地为之分配内存空间。在实现动态分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分配和回收操作这样三个问题。常用的数据结构有动态分区表和动态分区链。在对数据结构有一定掌握程度的情况下设计合理的数据结构来描述存储空间,实现分区存储管理的内存分配功能,应该选择最合适的适应算法(首次适应算法,最佳适应算法,最后适应算法,最坏适应算法),在动态分区存储管理方式

计算机科学与技术专业课程设计

专业教育 ─我所认识的计算机专业 1.对专业的最初认识 1.1为什么选择计算机专业 计算机使当代社会的经济、政治、军事、科研、教育、服务等方面在概念和技术上发生了革命性的变化,对人类社会的进步已经并还将产生极为深刻的影响。目前,计算机是世界各发达国家激烈竞争的科学技术领域之一。 随着信息时代的到来,计算机逐渐成为技术及科学领域的核心。随着计算机的普及,其应用领域逐渐广泛,深刻影响着我们的学习,工作及生活。因而,计算机的学习与我们的生活息息相关。 1.2最初的认识 虽然对于这个专业刚开始的时候不了解它具体是干什么的,但是从小就对于计算机十分感兴趣,因此在高考完填报志愿时就报了这个专业。进入大学之后,看到培养计划发现这个专业应用还是挺多的,但是因此让自己更加的对以后的职业感到很迷茫,不知道究竟是该干什么了。但是既来之,则安之。相信在以后的学习过程中会慢慢地找到方向,并为之努力的。因此说对于计算机专业还是抱有很大的热情的。 2.学习的方法 2.1培养对专业的兴趣 俗话说兴趣是最好的老师,因此要想真正做好一件事情,学好自己的专业首先就要培养自己对本专业的兴趣。那么应该如何培养呢?可能阅读专业书籍对于刚刚步入大学的自己来说有点困难,也很枯燥,那么不妨先从科普书籍看起。科普书籍是了解理论、获得应用知识最好的途径。相信不少理工科的同学被量子物理和相对论搞得头昏脑胀过。究其原因,是我们的现实生活与抽象的数学模型之间存在思想意识上的鸿沟。然而要是读读斯蒂芬·霍金的《时间简史》,你就会被书中有趣的故事和例证所吸引,从而对抽象的理论有了感性的认识——即使仍然没有读懂,你也至少了解了这个学科研究的领域和目标是什么,也必然有所收获。 2.2认真学习专业课程,学好数学 大学计算机专业对数学的要求较高,其重要性不必多言。数学令不少同学头痛,除了其“繁”与“难”外,很大程度上是因为他们没有理解这些抽象理论的实际应用方向。与本科数学专业的课程设置相比,计算机专业的数

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

机械原理课程设计(旋转型灌装机设计)-

机械原理课程设计(旋转型灌装机设计)- -1- 机械与机械理论 贵州大学机械工程学院 机械原理课程设计手册 旋转式灌装机 第11题 学院:机械工程专业:256班+姓名学生编号。: 讲师: 日期: -2- 机械与机械原理 目录 机械原理课程设计任务书标题编号11..................................................................................-3-1,设计主题和原始数据....................................................................................-3-2,设计表明.................................................................................................-3-3、设计任务..............................................................................................................-4 -

2,设计背景.................................................................................................................. -4-3,方案选择..............................................................................................................-5 -3.1摘要.................................................................................................................. .................- 5 - 3.2选择设计方案 (5) 3.2.1,功能逻辑图和功能原始理解图....................................................................-5-3.2.2、功能原理的工艺过程分解.......................................................................-7-3.2.3,方案的确定.......................................................................-18-3.3机械系统运动转换功能图.................................................................................................................. ..18-4,原动机选择了.................................................................................................................-21-5,传动比分布.................................................................................................................-21-6、传动机构的设计. (21) 6.1减速器设

相关文档
最新文档