实验报告四

实验报告四
实验报告四

淮海工学院计算机工程学院实验报告书

课程名:《软件工程》

题目:面向对象综合实验

学号:511021014

姓名:蒋洁敏

一、实验目的与要求

实验目的:

1)熟悉Visio软件或Power Designer软件或Rational Rose软件的UML建模工具;

2)按照OOA、OOD方法建立实验项目的对象模型(类图)、动态模型(状态图)、功能模型(用例图)。3)通过实验巩固所学的理论知识,增强学生解决实际问题的能力。

实验要求:

1)请认真完成实验内容,课内如不能及时完成,请课后两日内及时提交。

2)本次实验报告中所用图形请自行绘制,插入WORD文档中,不支持截图。

二、实验内容或题目

1)分析并绘制自动售货系统的用例图。

2电话系统

3)自行设计与分析学生成绩管理系统中对象、类、实例、联系,简要画出实体-联系图以及它们的类图。

三、实验步骤与源程序

打开Visio软件,根据相关的实验内容,画自动售货系统的用例图、电话系统的顺序图和协作图以及学生成绩管理系统的实体-联系图和类图。

四、测试数据与实验结果

自动售货系统的用例图

电话系统的顺序图

转换为协作图

学生成绩管理系统实体-联系图

学生成绩管理系统类图

学生选课类图学生成绩管理类图

五、结果分析与实验体会

通过这次实验,熟悉了Visio软件的UML建模工具,能够熟练地运用VISIO进行画图;能够按照OOA、OOD方法建立实验项目的对象模型(类图)、动态模型(状态图)、功能模型(用例图);并且通过实验巩固了所学的理论知识,增强我解决实际问题的能力。

在这次实验中,我学到了很多,知道不同的图的不同的画法,并且能够运用VISIO这个软件把图画出来。最后,通过这次的面向对象综合实验,我不但对理论知识有了更加深的理解,对于实际的操作和也有了质的飞跃。经过这次的实验,我们整体对各个方面都得到了不少的提高

操作系统实验报告

操作系统实验报告 ' 学号: 姓名: 指导老师: 完成日期: ~

目录 实验一 (1) 实验二 (2) 实验三 (7) 实验四 (10) 实验五 (15) 实验六 (18) 实验七 (22) \

实验一 UNIX/LINUX入门 一、实验目的 了解 UNIX/LINUX 运行环境,熟悉UNIX/LINUX 的常用基本命令,熟悉和掌握UNIX/LINUX 下c 语言程序的编写、编译、调试和运行方法。 二、实验内容 熟悉 UNIX/LINUX 的常用基本命令如ls、who、pwd、ps 等。 练习 UNIX/LINUX的文本行编辑器vi 的使用方法 熟悉 UNIX/LINUX 下c 语言编译器cc/gcc 的使用方法。用vi 编写一个简单的显示“Hello,World!”c 语言程序,用gcc 编译并观察编译后的结果,然后运行它。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验程序 #include <> #include <> int main() { printf ("Hello World!\n"); return 0; } 五、实验感想 通过第一次室验,我了解 UNIX/LINUX 运行环境,熟悉了UNIX/LINUX 的常用基本命令,熟悉和掌握了UNIX/LINUX 下c 语言程序的编写、编译、调试和运行方法。

实验二进程管理 一、实验目的 加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质。 二、实验内容 (1)进程创建 编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 (2)进程控制 修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 (3)进程的管道通信 编写程序实现进程的管道通信。使用系统调用pipe()建立一个管道,二个子进程P1 和P2 分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。 三、实验要求 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 四、实验设计 1、功能设计 (1)进程创建 使用fork()创建两个子进程,父进程等待两个子进程执行完再运行。 (2)进程控制 使用fork()创建两个子进程,父进程等待两个子进程分别输出一句话再运行。 (3)进程的管道通信 先创建子进程1,向管道写入一句话,子进程1结束后创建子进程2,向管道写入一句话,最后父进程从管道中读出。 2、数据结构 子进程和管道。 3、程序框图

四年级实验报告单

科学实验 四年级(上) 4课.小吊车 活动1:做小吊车(分组实验) 制作目的:做小吊车并研究小吊车原理 制作材料及工具:小纸盒吊车臂吊臂支架线绳两个铁丝钩一个剪刀锥子胶水钩码 制作过程: 1.小组分工合作 2.观察小吊车模型组装各部分 ①四个点要对称,固定牢固; ②绳子要从前往后穿,不要穿反了; 3.调试小吊车分别拉动两根线,看看小吊车的臂能否灵活运动. 实验现象:小吊车能提起或放下钩码 实验结论: 放松上牵引绳,拉紧下牵引绳,吊臂向下运动; 拉紧上牵引绳,放松下牵引绳,吊臂向上运动。 活动2:收与放 实验目的:推断动物与人的肢体运动原理(分组实验) 实验过程: 1. 弯曲手臂,感受上臂上下肌肉的长短松紧变化。 2.伸直手臂,感受上臂上下肌肉的长短松紧变化。

3.反复几次体会与小吊车的原理的联系。 实验现象:手臂骨骼就像小吊车的吊臂,肌肉就像绳子,手臂运动时,当肱二头肌收缩,肱三头肌舒张时,肱二头肌牵动前臂向内收缩;当肱三头肌收缩,肱二头肌舒张时,肱三头肌牵动前臂向外伸展. 实验结论:前臂收缩类似小吊车抬起重物。 前臂伸展类似小吊车放下重物。 6课.做沙盘(分组实验) 制作目的:通过制作校园沙盘模型培养学生的设计制作能力。 制作材料:硬纸板学校平面图橡皮泥潮湿的沙土废旧泡沫包装纸小木棍颜料盒剪刀 制作步骤: 对校园建筑的布局进行观测 2.用大的硬纸板做底座。在纸板上画好学校平面图。(明确建筑物.树木等的位置) 3.用橡皮泥旧泡沫等材料做出立体的楼房等校园建筑物,根据平面图摆放好位置。(可以用长方体或正方体的泡沫做楼房,硬纸板做围墙,小木棍做旗杆等)。 4.要注意建筑物的比例。(四年级的学生还不能很精确地计算出比例尺,教师适当指导。) 8课.快与慢 实验目的:研究小车运动的快慢(分组实验)

实验四-排序-实验报告

数据结构实验报告 实验名称:实验四排序 学生姓名: 班级: 班内序号: 学号: 日期:2012年12月21日 1、实验要求 题目2 使用链表实现下面各种排序算法,并进行比较。 排序算法: 1、插入排序 2、冒泡排序 3、快速排序 4、简单选择排序 5、其他 要求: 1、测试数据分成三类:正序、逆序、随机数据。 2、对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关键字交换计为3次移动)。 3、对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微秒(选作)。

4、对2和3的结果进行分析,验证上述各种算法的时间复杂度。编写测试main()函数测试线性表的正确性。 2、程序分析 存储结构 说明:本程序排序序列的存储由链表来完成。 其存储结构如下图所示。 (1)单链表存储结构: (2)结点结构 struct Node { int data;

Node * next; }; 示意图: 关键算法分析 一:关键算法 (一)直接插入排序 void LinkSort::InsertSort() 直接插入排序是插入排序中最简单的排序方法,其基本思想是:依次将待排序序列中的每一个记录插入到一个已排好的序列中,直到全部记录都排好序。 (1)算法自然语言 1.将整个待排序的记录序列划分成有序区和无序区,初始时有序区为待排序记录序列中的第一个记录,无序区包括所有剩余待排序的记录; 2.将无须去的第一个记录插入到有序区的合适位置中,从而使无序区减少一个记录,有序区增加一个记录; 3.重复执行2,直到无序区中没有记录为止。 (2)源代码 void 2. 3. 4.重复执行2和3 直接插入排序过程

四年级上册科学实验报告

1.实验名称:室内外温度的测量与比较 实验目的:测量室内外温度 实验器材:温度计、线、笔 实验步骤: 1、取一支温度计用线拴好。 2、将温度计悬挂3、读数。 4、比较。 实验结果:室内外温度存在差距,通过对大气温度的测量,可以了解当地的气温。 2.实验名称:气温的测量 实验目的:测量温度的变化 实验器材:温度计 实验步骤: 1、阳光下和背阴处测量温度; 2、测量一天中,清晨、商务、中午、下午、傍晚的气温。 实验结果:1、阳光下的温度高,背阴处的温度低2、一天中,中午的时候气温最高,清晨的时候气温最低; 3.实验名称:用简易雨量器测量降水量 实验目的: 实验器材:雨量器 实验步骤:1、用喷水壶模拟降水,记录好时间。2、把雨量器改在水平桌面,读出刻度。3、换算成24小时,核对雨量等级。 实验结果:根据24小时内测的降水量,对照等级表,确定了下雨的等级。 4.实验名称:观察食盐、沙在水中的状态 实验目的:食盐、沙能否在水中溶解 实验器材:烧杯2个、搅拌棒2根、沙、食盐、水。 实验步骤: 1、取一小匙食盐,放入盛水的烧杯内,用搅拌棒轻轻搅拌。你有什么发现? 2、取一小匙淘洗干净的沙,放入盛水的烧杯内,用搅拌棒轻轻搅拌。你有什么发现? 3、比较食盐和沙在水中的状态。 实验结果:食盐在水中溶解了,沙在水中没有溶解。 5.实验名称:面粉在水中溶解了吗 实验目的:面粉能否在水中溶解 实验器材:烧杯1个、搅拌棒1根、面粉、水。

实验步骤: 1、取一小匙面粉,放入盛水的烧杯内,用搅拌棒搅拌。2、你发现了什么? 实验结果:面粉在水中没有溶解 6.实验名称:高锰酸钾的溶解 实验目的:高锰酸钾在水中溶解吗 实验器材:烧杯、高锰酸钾、钥匙、搅拌棒、水。 实验步骤: 1、水里放入几粒高锰酸钾,观察并描述高锰酸钾和水的变化。 2、用搅拌棒搅拌,再观察、描述高锰酸钾和水的变化。 实验结果:高锰酸钾在水中溶解了 7.实验名称:观察不同物质在水中的溶解 实验目的:观察不同物质在水中的溶解 实验器材:面粉、沙、食盐、高锰酸钾各一份,烧杯4个、钥匙、水。 实验步骤: 1、将四种物质分别放入盛有相同水的烧杯内,观察物质在水中的状态。 2、根据实验现象完成教材26页记录表。 实验结果:食盐、高锰酸钾在水中溶解了,面粉、沙在水中没有溶解。 8.实验名称:观察胶水和洗发液是怎样溶解的 实验目的:观察胶水和洗发液是怎样溶解的 实验器材:烧杯2个、钥匙、搅拌棒2根、水。 实验步骤: 1、取一小匙胶水或洗发液,倒入盛水的玻璃杯中。 2、先轻轻搅拌,观察有什么现象,再充分搅拌,继续观察。 实验结果:胶水或洗发液在水中溶解了 9.实验名称:观察醋、酒精和食用油是怎样溶解的 实验目的:观察醋、酒精和食用油是怎样溶解的 实验器材:试管3个、醋、酒精、食用油、三支滴管、水。 实验步骤: 1、在三个试管中,各盛约15毫升的水。分别用滴管往试管中加入2毫升醋、酒精和食用油。充分震荡后,静置一会儿。 2、观察实验结果:醋和酒精在水中溶解了,食用油不能溶解于水。 10,实验名称:观察气体在水中的溶解能力 实验目的:观察气体在水中的溶解能力 实验器材:汽水、注射器、橡皮塞。 实验步骤: 1、打开汽水用注射器吸出约1/3管汽水,再用橡皮塞封住管口。 2、观察汽水析出的气泡。慢慢地往外拉活塞,再慢慢地往回推,反复3 次.

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

实验报告4

实验报告 课程名称软件开发技术 实验题目列表控件和树控件实验仪器计算机 系别机电工程学院 专业控制工程(专) 学号2014309030111 姓名惠振东 日期2014年10月29日

一、实验目的和要求 (1)创建一个对话框应用程序Ex_List,其主界面如图4.1所示。 (2)设计一个如图4.2所示的“学生课程成绩”对话框,创建并完善该对话框类CScoreDlg。 图4.1 Ex_List界面图4.2 “学生课程成绩”对话框 (3)实现功能:单击图4.1中的“学生课程成绩”按钮,弹出“学生课程成绩”对话框,单击“添加”按钮,学生课程成绩添加到列表控件。若选中列表项,“修改”按钮由原来的禁用变成可用,单击“修改”按钮,则弹出的“学生课程成绩”对话框中的“添加”按钮标题变成“修改”,单击“学生课程成绩”对话框中的“修改”按钮,该列表项的内容被修改。 (4)按照教材“树控件”中的示例进行实验。 二、实验准备和说明 (1)具备知识:图像列表、列表控件和树控件。 (2)创建本次实验工作文件夹“…\Visual C++程序\实验\实验4”。 三、实验内容和实验步骤 1.启动Visual C++ 6.0 打开计算机,启动Visual C++ 6.0系统。 2.创建对话框应用程序Ex_List,并设计其界面 ①选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入Ex_List,并将工程文件夹定位到“…\Visual C++程序\实验\实验4”。 ②单击“确定”按钮,在出现的Step 1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。 ③在对话框编辑器中,单击对话框工具栏上的切换网格按钮,显示对话框网格,将对话框标题改为“列表控件”。 ④调整对话框的大小,删除对话框中间的“TODO: 在这里设置对话控制。”静态文本控件和“确定”按钮控件,将“取消”按钮标题改为“退出”,并移至对话框的下方。 ⑤添加两个按钮,一个是“学生课程成绩]按钮,ID为IDC_BUTTON_SCORE,另一个是“修改”按钮,ID为IDC_BUTTON_CHANGE。

排序操作实验报告

数据结构与算法设计 实验报告 (2016 — 2017 学年第1 学期) 实验名称: 年级: 专业: 班级: 学号: 姓名: 指导教师: 成都信息工程大学通信工程学院

一、实验目的 验证各种简单的排序算法。在调试中体会排序过程。 二、实验要求 (1)从键盘读入一组无序数据,按输入顺序先创建一个线性表。 (2)用带菜单的主函数任意选择一种排序算法将该表进行递增排序,并显示出每一趟排序过程。 三、实验步骤 1、创建工程(附带截图说明) 2、根据算法编写程序(参见第六部分源代码) 3、编译 4、调试 四、实验结果图 图1-直接输入排序

图2-冒泡排序 图3-直接选择排序 五、心得体会 与哈希表的操作实验相比,本次实验遇到的问题较大。由于此次实验中设计了三种排序方法导致我在设计算法时混淆了一些概念,设计思路特别混乱。虽然在理清思路后成功解决了直接输入和直接选择两种算法,但冒泡

排序的算法仍未设计成功。虽然在老师和同学的帮助下完成了冒泡排序的算法,但还需要多练习这方面的习题,平时也应多思考这方面的问题。而且,在直接输入和直接选择的算法设计上也有较为复杂的地方,对照书本做了精简纠正。 本次实验让我发现自己在算法设计上存在一些思虑不周的地方,思考问题过于片面,逻辑思维能力太过单薄,还需要继续练习。 六、源代码 要求:粘贴个人代码,以便检查。 #include #define MAXSIZE 100 typedef int KeyType; typedef int DataType; typedef struct{ KeyType key; DataType data; }SortItem,SqList[MAXSIZE]; /*******直接插入顺序表*******/ void InsertSort(SqList L,int n) { int i,j,x; SortItem p; for(i=1;i

小学科学四年级上册实验报告

小学科学四年级上册实验报告 一、食物营养成分的检验实验 实验目的:学会检验食物中的淀粉、脂肪、和蛋白质的方法。 实验材料:碘酒、米饭、滴管、白纸、酒精灯、碟子、花生、瘦肉等。 实验过程: 1、把少量米饭放在碟子上,用滴管向米饭上滴2—3滴碘酒,观察发生的现象。 2、把花生放在白纸上用力挤压,观察白纸上留有的痕迹。 3、将切成细条的瘦肉放在酒精灯火焰上烧,注意闻一闻,有什么气味? 实验现象及结论: 1、加入碘酒后,米饭变成蓝黑色,这说明大米中含有淀粉。 2、在白纸挤压花生后,会在纸上留下油迹。说明花生内含有脂肪。 3、将瘦肉在火上烧后,会闻到一股难闻的、烧焦羽毛的气味.说明瘦肉中含有蛋白质。 二、物体在水中的溶解实验 实验目的:认识溶解的特点,理解溶解的定义。 实验材料:三个烧杯、玻璃棒、药匙、食盐、高锰酸钾、沙子。 实验过程: 1、先在三个烧杯中倒入约三分之二的清水。 2、用药匙取适量的食盐,高锰酸钾,沙子分别放入三个烧杯中,用玻璃棒搅拌,仔细观察三个烧杯中有什么现象发生。 实验现象:食盐,高锰酸钾在水中不见了,并且均匀的分散在水中,沙子在水中没有变化。 实验结论:溶解的定义,不溶解的定义 注意事项:1,搅拌方法 2,通过颜色观察高锰酸钾在水中均匀分布情况 3,通过尝的方法了解食盐在水中均匀分布情况 三、不同材料的溶解实验 实验目的:通过实验判断不同材料在水中是否溶解。(进一步理解溶解现象)实验材料:烧杯,玻璃棒,小苏打,面粉,粉笔末,洗衣粉,木屑等。 实验过程:同上

实验结论:有的物体在水中能溶解,有的物体在水中不能溶解. 四、物体溶解快慢与哪些因素有关的实验 实验目的:了解加快物体在水中溶解的方法。 实验材料:烧杯、玻璃棒、药匙、高锰酸钾或(食盐、冰糖)、小锤、热水、冷水等。 实验过程:实验一: 1、在两个烧杯中分别倒入等量的温度相同的冷水。 2、把颗粒大小相同的高锰酸钾分别放入两个烧杯中。 3、用玻璃棒搅拌其中一个烧杯中的水,观察高锰钾溶解的快慢情况。 实验现象:搅拌的烧杯中的高锰酸钾溶解得快,不搅拌的烧杯中高锰酸钾溶解得慢。 实验结论:搅拌可以加快溶解。 实验二: 1、在两个烧杯中分别倒入等量的热水和冷水 2、把颗粒大小相同的高锰酸钾放入两个烧杯中,过一会钟,观察两个烧杯中高锰酸钾溶解情况 实验现象:热水中高锰酸钾溶解的快,冷水中高锰酸钾溶解的慢。 实验结论:用热水可以加快溶解。 实验三 1、在两个烧杯中分别倒入等量的温度相同的冷水。 2、取两块大小相同的高锰酸钾颗粒,将其中一块研成粉末,然后分别同时放入两个烧杯中,观察比较高锰酸钾溶解的快慢。 实验现象:研成粉末的高锰酸钾溶解的快,未研成粉末的高锰酸钾溶解的慢。实验结论:把物体研成粉末可以加快理解。 注意:此实验是典型的对比实验,实验中只有一个条件不同,其他条件应相同。 五、沉淀实验 实验目的:通过实验使学生知道沉淀是净化水的一种方法,能除掉水中一部分不溶解的杂质。 实验材料:烧杯2个、玻璃棒2根、明矾、混浊水。 实验过程:

操作系统实验报告

操作系统实验报告 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

实验二进程调度1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有n个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过t个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言 4设计思想: (1)程序中进程可用PCB表示,其类型描述如下:

structPCB_type { intpid;//进程名 intstate;//进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 intcpu_time;//运行需要的CPU时间(需运行的时间片个数) } 用PCB来模拟进程; (2)设置两个队列,将处于“就绪”状态的进程PCB挂在队列ready中;将处于“阻塞”状态的进程PCB挂在队列blocked中。队列类型描述如下: structQueueNode{ structPCB_typePCB; StructQueueNode*next; } 并设全程量: structQueueNode*ready_head=NULL,//ready队列队首指针 *ready_tail=NULL,//ready队列队尾指 针

操作系统实验报告4

《操作系统》实验报告 实验序号: 4 实验项目名称:进程控制

Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜ 修改后: #include #include int main(VOID) { STARTUPINFO si; PROCESS_INFORMA TION pi; ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, "c:\\WINDOWS\\system32\\mspaint.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) { fprintf(stderr,"Creat Process Failed"); return -1; } WaitForSingleObject(pi.hProcess,INFINITE); printf("child Complete"); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } 在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe:C:\ >CL 4-1.cpp

实验任务:写出程序的运行结果。 4.正在运行的进程 (2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include #include

北京理工大学数据结构实验报告4

《数据结构与算法统计》 实验报告 ——实验四 学院: 班级: 学号: 姓名:

一、实验目的 1、熟悉VC 环境,学会使用C 语言利用顺序表解决实际问题。 2、通过上机、编程调试,加强对线性表的理解和运用的能力。 3、锻炼动手编程,独立思考的能力。 二、实验内容 从键盘输入10个数,编程实现分别用插入排序、交换排序、选择排序算法进行排序,输出排序后的序列。 三、程序设计 1、概要设计 为了实现排序的功能,需要将输入的数字放入线性表中,进行进一步的排序操作。 (1)抽象数据类型: ADT SqList{ 数据对象:D={|,1,2,,,0}i i a a Elem Set i n n ∈=≥ 数据关系:R1=11{,|,,1,2,,}i i i i a a a a D i n --<>∈= 基本操作: InPut(SqList &L) 操作结果:构造一个线性表L 。 OutPut(SqList L) 初始条件:线性表L 已存在。 操作结果:按顺序在屏幕上输出L 的数据元素。 InsertSort(SqList &L) 初始条件:线性表L 已存在。 操作结果:对L 的数据元素进行插入排序。 QuickSort(SqList &L) 初始条件:线性表L 已存在。 操作结果:对L 的数据元素进行快速排序。 SelectSort(SqList &L) 初始条件:线性表L 已存在。 操作结果:对L 的数据元素进行选择排序。 }ADT SqList ⑵主程序流程 由主程序首先调用InPut(L)函数创建顺序表,调用InsertSort(L)函数进行插入排序,调用OutPut(L)函数显示排序结果。 再由主程序首先调用InPut(L)函数创建顺序表,调用QuickSort(L)函数进行交换排序,调用OutPut(L)函数显示排序结果。 再由主程序首先调用InPut(L)函数创建顺序表,调用SelectSort(L)函数进行选择排序,调用OutPut(L)函数显示排序结果。 ⑶模块调用关系

(完整word版)查找、排序的应用 实验报告

实验七查找、排序的应用 一、实验目的 1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。 2、学会比较各种排序与查找算法的优劣。 3、学会针对所给问题选用最适合的算法。 4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。 二、实验内容 [问题描述] 对学生的基本信息进行管理。 [基本要求] 设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、性别、成绩1、成绩2、总成绩等信息。要求实现以下功能:1.总成绩要求自动计算; 2.查询:分别给定学生学号、姓名、性别,能够查找到学生的基本信息(要求至少用两种查找算法实现); 3.排序:分别按学生的学号、成绩1、成绩2、总成绩进行排序(要求至少用两种排序算法实现)。 [测试数据] 由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作 1、掌握哈希表的定义,哈希函数的构造方法。 2、掌握一些常用的查找方法。 1、掌握几种常用的排序方法。 2、掌握直接排序方法。

四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 2、实验上要写出多批测试数据的运行结果。 3、结合运行结果,对程序进行分析。 五、算法设计 a、折半查找 设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点,key为给定值。初始时,令low=1,high=n,mid=(low+high)/2,让key与mid指向的记录比较, 若key==r[mid].key,查找成功 若keyr[mid].key,则low=mid+1 重复上述操作,直至low>high时,查找失败 b、顺序查找 从表的一端开始逐个进行记录的关键字和给定值的比较。在这里从表尾开始并把下标为0的作为哨兵。 void chaxun(SqList &ST) //查询信息 { cout<<"\n************************"<=1;j--) if(ST.r[j].xuehao

教科版四年级上科学实验报告单

教科版四年级上科学实验报告单 武冈市新东中心小学四年级科学实验报告单年级四年级学生姓名班级实验名称温度与气温实验时间 9月4日 选择每天测量气温的环境,完成“天气日历”中温度的测量和记录。实验目的 仪器器材温度计、百叶箱 1、用温度计测量一天中不同时间的气温; 2、测量清晨、上午、中午、下午、傍晚的气温(选择同一地点); 实验过程 3、把测得的气温填在记录表中。 实验结果优良 教师批注实验有序实验成绩优 实验报告单 年级四年级学生姓名实验名称风向和风速实验时间 9月9日 用自制的风向标和小风旗测量风向和风速,并使用适当的方法纪录观察结果。实验目的 仪器器材风向标、小风旗 1、学生分组用风向标测试风向。 实验过程 2、学生分组用小风旗测试风速。 3、总结风力大小。 实验结果优良 教师批注实验有序,效果良好。实验成绩优 实验报告单 年级四年级学生人数实验名称水能溶解一些物质实验时间 9月18日

观察和描述食盐、沙、面粉在水中的容易溶解和不容易溶解的现象,能使用过滤装实验目的置分离几种固体与水的混合物。 仪器器材食盐、沙、面粉、烧杯、筷子、玻棒、水槽、漏斗、滤纸、铁架台 1、食盐+水沙+水 2、用筷子轻轻搅拌,观察,盐和沙分别又发生了什么变化,同时什么也实验过程可能发生什么变化,生:水。师:对,水会发生什么变化呢, 3、面粉+水 实验结果良好 教师批注实验准备充分实验成绩良 实验报告单 年级四年级学生人数实验名称液体之间的溶解现象实验时间 9月30日能借助实验进一步观察多种物质之间的溶解现象,根据溶解的主要特征区分一些实验目的常见的溶解现象。 仪器器材玻璃杯、滴管、酒精、食用油、注射器、试管、试管夹、酒精灯、火柴 1、学生第一次使用试管振荡的方法,在实验之前,教师先介绍和演示试 管振荡。 2、学生开始实验。在三个试管中,分别加入醋、酒精和食用油。实验过程(让学生仔细观察醋和酒精如何扩散,充分描述醋和酒精在水中的溶解过程。记录在记录表上。) 3、交流实验观察结果。 实验结果优良 教师批注实验有序实验成绩优 实验报告单

操作系统实验报告

《操作系统原理》实验报告 实验项目名称:模拟使用银行家算法判断系统的状态 一、实验目的 银行家算法是操作系统中避免死锁的算法,本实验通过对银行家算法的模拟,加强对操作系统中死锁的认识,以及如何寻找到一个安全序列解除死锁。 二、实验环境 1、硬件:笔记本。 2、软件:Windows 7 , Eclipse。 三、实验内容 1.把输入资源初始化,形成资源分配表; 2.设计银行家算法,输入一个进程的资源请求,按银行家算法步骤进行检查; 3.设计安全性算法,检查某时刻系统是否安全; 4.设计显示函数,显示资源分配表,安全分配序列。 四、数据处理与实验结果 1.资源分配表由进程数组,Max,Allocation,Need,Available 5个数组组成; 实验采用数据为下表: 2.系统总体结构,即菜单选项,如下图

实验的流程图。如下图 3.实验过程及结果如下图所示

1.首先输入进程数和资源类型及各进程的最大需求量 2.输入各进程的占有量及目前系统的可用资源数量 3.初始化后,系统资源的需求和分配表 4.判断线程是否安全

5.对线程进行死锁判断 五、实验过程分析 在实验过程中,遇到了不少问题,比如算法无法回滚操作,程序一旦执行,必须直接运行到单个任务结束为止,即使产生了错误,也必须等到该项任务结束才可以去选择别的操作。但总之,实验还是完满的完成了。 六、实验总结 通过实验使我对以前所学过的基础知识加以巩固,也对操作系统中抽象理论知识加以理解,例如使用Java语言来实现银行家算法,在这个过程中更进一步了解了银行家算法,通过清晰字符界面能进行操作。不过不足之处就是界面略显简洁,对于一个没有操作过计算机的人来说,用起来可能还是有些难懂。所以,以后会对界面以及功能进行完善,做到人人都可以看懂的算法。

实验报告四综述

成都信息工程大学遥感图像处理上机报告

1. 实验项目名称 遥感图像光谱增强处理 2. 实验目的 主成分分析:为了去除波段之间多余信息、将多波段的图像信息压缩到比原波段更有效的少数几个转换波段。 主成分逆变换:将主成分变换的图像重新恢复到RGB 彩色空间。缨帽变换:根据多光谱遥感中土壤、植被等信息在多维光谱空间中信息分布结构对图像 做的经验性线性正交变换。图像融合:将多源信道所采集到的关于同一目标的图像数据经过图像处理和计算机技术 等,最大限度的提取各自信道中的有利信息,最后综合成高质量的图像,以提高图像信息的利用率、改善计算机解译精度和可靠性、提升原始图像的空间分辨率和光谱分辨率,利于监测。 3. 实验原理 主成分分析法是一种降维的统计方法,它借助于一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机向量,这在代数上表现为将原随机向量的协方差阵变换成对角形阵,在几何上表现为将原坐标系变换成新的正交坐标系,使之指向样本点散布最开的p 个正交方向,然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统,再通过构造适当的价值函数,进一步把低维系统转化成一维系统。 缨帽变换又称KT 变换。是一种经验性的多波段图像的线性变换,是Kauth 和Thomas(1976) 在研究MSS 图像反映农作物和植被的生长过程时提出的。在研究过程中他们发现MSS 四个波段组成的四维空间中,植被的光谱数据点呈规律性分布,像缨帽状,因此将这种变换命名为缨帽变换。 图像融合就是通过一种特定算法将两幅或多幅图像合成为一幅新图像。该技术有基本的体系,主要包括的内容有:图像预处理,图像融合算法,图像融合评价,融合结果。图像融合系统的层次划分为:像素层融合、特征层融合、决策层融合,目前绝大多数融合算法研究都集中在这一层次上。 4. 数据来源

算法排序问题实验报告

《排序问题求解》实验报告 一、算法的基本思想 1、直接插入排序算法思想 直接插入排序的基本思想是将一个记录插入到已排好序的序列中,从而得到一个新的,记录数增1 的有序序列。 直接插入排序算法的伪代码称为InsertionSort,它的参数是一个数组A[1..n],包含了n 个待排序的数。用伪代码表示直接插入排序算法如下: InsertionSort (A) for i←2 to n do key←A[i] //key 表示待插入数 //Insert A[i] into the sorted sequence A[1..i-1] j←i-1 while j>0 and A[j]>key do A[j+1]←A[j] j←j-1 A[j+1]←key 2、快速排序算法思想 快速排序算法的基本思想是,通过一趟排序将待排序序列分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分记录继续进行排序,以达到整个序列有序。 假设待排序序列为数组A[1..n],首先选取第一个数A[0],作为枢轴(pivot),然后按照下述原则重新排列其余数:将所有比A[0]大的数都排在它的位置之前,将所有比A[0] 小的数都排在它的位置之后,由此以A[0]最后所在的位置i 作为分界线,将数组A[1..n]分成两个子数组A[1..i-1]和A[i+1..n]。这个过程称作一趟快速排序。通过递归调用快速排序,对子数组A[1..i-1]和A[i+1..n]排序。 一趟快速排序算法的伪代码称为Partition,它的参数是一个数组A[1..n]和两个指针low、high,设枢轴为pivotkey,则首先从high 所指位置起向前搜索,找到第一个小于pivotkey 的数,并将其移到低端,然后从low 所指位置起向后搜索,找到第一个大于pivotkey 的数,并将其移到高端,重复这两步直至low=high。最后,将枢轴移到正确的位置上。用伪代码表示一趟快速排序算法如下: Partition ( A, low, high) A[0]←A[low] //用数组的第一个记录做枢轴记录 privotkey←A[low] //枢轴记录关键字 while low=privotkey do high←high-1 A[low]←A[high] //将比枢轴记录小的记录移到低端 while low

四年级科学(上册)实验报告

实验目的: 认识空气有的性质。 实验材料: 透明玻璃杯、卫生纸、胶带、水槽、水、干抹布;空饮料瓶、气球 实验步骤:方法一 1、将一团卫生会紧塞在一个透明玻璃杯杯底; 2、将杯子倒立竖直压入水中,水面淹没杯底为止,尽量避免水槽里的水溢出来; 3、慢慢竖直提起杯子,并把杯口和外壁上的水用抹布擦干; 4、慢慢取出杯底的纸团,纸团会湿吗? 注意事项: 1、纸团应该塞紧在杯底,以免杯口朝下时落下,必要的话可以用胶带固定一下。 2、实验过程中杯子始终都是倒立杯口朝下,并保持竖直。 方法二: 1、将气球皮放进一个空饮料瓶中,用力吹,气球吹得大吗? 实验结果: 方法一:纸团。 方法二:气球。 实验结论: 空气有的性质。 年班

实验目的: 认识空气虽然很轻但是。 实验材料: 细木棍一根、空气充得同样多且颜色相同的气球两只、细线、胶带、针 实验过程: 1、将两只空气充的同样多的气球分别用细线绑在细木棍的两端; 2、调节细木棍中间的绳套使其左右平衡; 3、用针在其中一只气球口附近扎几个小眼,使气球慢慢漏气。 实验结果: 。 实验结论: 空气。 年班

教版小学科学4年级上册《我们周围的空气》单元实验报告3 实验目的: 认识空气具有。 实验材料: 1、气球 2、扇子(书) 实验过程: 1、让充满空气的气球口对着自己的脸,松开气球口,有什么感觉? 2、用扇子或书在自己的脸旁扇一扇,有什么感觉? 实验结果: 。 实验结论: 空气。 年班

教版小学科学4年级上册《我们周围的空气》单元实验报告4 实验目的: 认识到空气。 实验材料: 塑料袋、注射器、橡皮(手指) 实验步骤: 1、用手压一只装满空气的塑料袋,有什么感觉? 2、注射器吸满空气,用手堵住注射器的口,另一只手推活塞,有什么变化? 实验结果: 1、塑料袋; 2、注射器。 实验结论: 空气。 年班

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

操作系统实验报告16487

西安邮电大学 (计算机学院) 课实验报告 实验名称:进程管理 专业名称:计算机科学与技术 班级: 学生: 学号(8位): 指导教师: 实验日期:*****年**月**日

一. 实验目的及实验环境 目的:(1)加深对进程概念的理解,明确进程和程序的区别。 (2)进一步认识并发执行的实质。 (3)分析进程竞争资源现象,学习解决进程互斥的方法。 (4)了解Linux系统中进程通信的基本原理。 环境:Linux操作系统环境: 二. 实验容 (1)阅读Linux的sched.h源文件,加深对进程管理概念的理解。 (2)阅读Linux的fork.c源文件,分析进程的创建过程。 三.方案设计 (1)进程的创建 编写一段源程序,使系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察纪录屏幕上的显示结果,并分析原因。(2)进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕出现的现象,并分析原因。 如果在程序中使用调用lockf()来给每一个子进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 (3)①编写一段程序,使其现实进程的软中断通信。 要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Processll is Killed by Parent! Child Processl2 is Killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Parent Process is Killed! 程序流程图如下:

相关文档
最新文档