北航计软实验报告一
- 格式:doc
- 大小:239.00 KB
- 文档页数:7
北航计软实验报告一————————————————————————————————作者: ————————————————————————————————日期:计算机软件基础上机实验报告(一)XXXXXX班XXX1.实验目的掌握线性表在顺序分配下的插入与删除运算;掌握线性表的链式存储结构;掌握插入排序的方法;并掌握一种产生随机数的方法。
2.实验内容1.产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件中。
2.编制一个程序,依次实现以下功能:(1)ﻩ定义一个有序(非递减)线性表,其最大容量为1000,初始时为空。
(2)ﻩ从由1产生的数据文件中依次取前N个随机整数,陆续插入到此线性表中,并要求在每次插入后保持线性表的有序性。
最后将此有序线性表打印输出。
(3)ﻩ在由(2)产生的线性表中,依在1中产生的次序逐个将元素删除,直至表空为止。
3. 以N=100及N=400分别运行2的程序,并比较它们的运行时间。
4. 编写一个程序,用插入排序依次将1中产生的1000个随机整数链接成有序链表(不改变原随机数在存储空间中的顺序)。
3.源代码与运行结果#include<stdio.h>#include<stdlib.h>#include<time.h>/**1_1产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件(1_1.txt)中。
**/main(){FILE *fo=fopen("1_1.txt","w");int i,j;srand((unsigned)time(0));for(i=0;i<=999;i++)fprintf(fo,"%d\n",rand()%1000);fclose(fo);printf("1000个随机数已输出至目录下1_1.txt文件\n");system("pause");}输出文件1_1.txt如下:(因输出文本长度缘故,此处只截了一幅图)#include<stdio.h>#include<stdlib.h>#include<time.h>/**1_2从数据文件(1_1.txt)中读取数据,进行插入排序,然后屏幕输出。
北京航空航天大学航空学院微机原理与应用专业班级:140511 学号:14051004 姓名:张佳奇实验一Debug程序的使用一实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二实验内容1、启动DOS操作系统2、运行程序(若当前盘为C)C:>DEBUG↙– ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令)3、用“A”命令编辑和汇编源程序–A ↙2A7D: 0100 MOV AX,02012A7D: 0103 MOV BX,02002A7D: 0106 MOV CX,00012A7D: 0109 MOV DX,00002A7D: 010C INT 132A7D:010E INT 32A7D:010F4、用“U”命令反汇编验证源程序–U 100↙5、程序未执行前,用“R”命令观察,相关寄存器的内容。
–R↙如:(AX)= 0000,(BX)= 0000,(SI)= 0000 ,(DI)= 0000 ,(CS)= 13B0 ,(IP)= 0100。
6、用“G”命令运行源程序7、再用“D”命令观察DS:0100H~DS:010BH字节单元中的内容–D 100 10B8、用“T”单步操作命令对源程序单步执行,观察AX、BX、CS、IP寄存器内容的变化,并与预计的结果相比较。
注意:●D命令显示内存数据,注意观察多字节数据在内存中的存放方式。
●指令执行的时候,IP寄存器随着变化,注意观察。
三实验结果(截屏)实验结果表明,AX、BX、CS、IP寄存器内容与预计的结果一致。
实验二汇编语言程序设计A 1、显示hello world!实验结果(包括必要截图)实验截图B 1、找出从无符号字节数据存储变量V AR开始存放的6个数_2_,_4_,_1_,_1_,_3_,_9_中最大数放在BH中。
(2,4,1,1,3,9)2、用文字编辑工具edit或记事本将程序输入,扩展名为.asm,使用masm type link 产生exe 并使用debug检查3、写出实验程序A. 显示hello world!DATAS SEGMENTSTRING DB 13,10,'Hello World!',13,10,'$'DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DA TASMOV DS,AXLEA DX,STRINGMOV AH,9INT 21HMOV AH,4CHINT 21HCODES ENDSEND STARTB.找出从无符号字节数据存储变量V AR开始存放的N个数中最大数放在BH中DSEG SEGMENTV AR DB 2,4,1,1,3,9N EQU $-V ARANSWER DB 2 DUP(?)DSEG ENDSSTACKS SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACKS ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:STACKSBG: MOV AX,DSEGMOV DS,AXMOV CX,N-1MOV SI,0MOV BH,V AR[SI]JCXZ LASTAGIN: INC SICMP BH,V AR[SI]JAE NEXTMOV BH,V AR[SI]NEXT: LOOP AGINLAST: MOV AH,BHMOV DI,OFFSET ANSWERADD AH,48MOV [DI],AHPUSH AXMOV DL,[DI]MOV AH,02H;MOV SI,0INT 21HPOP AXMOV AH,4CHINT 21HCSEG ENDSEND BG4、实验结果(包括必要截图)实验截图。
实验报告实验名称冒泡排序和快速排序班级学号姓名成绩#include<stdio.h>#include<stdlib.h>#define N 20//定义用于比较和交换计数的全局变量static int compare, move;int main(){int data1[N], data2[N];int i;void bubbleSort(int[20]);void quickSort(int[20], int, int);//创建两个相同的数组用于两种排序方法for (i = 0; i<N; i++){data1[i] = rand() % 100 + 1;data2[i] = data1[i];}printf("The original array:\n");for (i = 0; i<N; i++)printf("%d ", data1[i]);//调用冒泡排序法bubbleSort(data1);//计数器置零compare = 0;move = 0;//调用快速排序法quickSort(data2, 0, N - 1);printf("Quicksort completed!The results are as follows:\n");for (i = 0; i<N; i++)printf("%d ", data2[i]);printf("\nCompare times:%d\n", compare);printf("Move times:%d", move);return 0;}//冒泡排序法void bubbleSort(int a[N]){int i, j, temp;compare = 0;move = 0;//总共循环N-2轮for (i = 0; i<N - 1; i++){//每轮循环从头开始,到有序序列前结束for (j = 0; j<N - i - 1; j++){//比较交换,将较大的数放到后面if (a[j + 1]<a[j]){temp = a[j + 1];a[j + 1] = a[j];a[j] = temp;move++;}compare++;}}printf("\n\nBubblesort completed!The results are as follows:\n");for (i = 0; i<N; i++)printf("%d ", a[i]);printf("\nCompare times:%d\n", compare);printf("Move times:%d\n\n", move);}//快速排序法void quickSort(int a[N], int left, int right){//将数组一分为二的键值int pivotkey;if (left < right){//第一次排序将数组一分为二pivotkey = partition(a, left, right);//递归调用,对数据比键值小的数组排序quickSort(a, left, pivotkey - 1);//递归调用,对数据比键值大的数组排序quickSort(a, pivotkey + 1, right);}}//进行一次快速排序int partition(int a[N], int left, int right){int key, i, low = left, high = right;//设置基准key = a[low];while (low<high){//high中数据比基准大,则向前依次查找while ((low < high) && (a[high] > key)){high--;compare++;}//如果不是两指针相遇,说明存在需要交换到low的值if (low < high){a[low] = a[high];move++;}//low中数据比基准小,则向后依次查找while ((low < high) && (a[low] <= key)){low++;compare++;}//如果不是两指针相遇,说明存在需要交换到high的值if (low<high){a[high] = a[low];move++;}}//首尾指针相遇后,将基准放入空位a[low] = key;//返回此时的键值return low;}运行结果:【结论】(结果)1.由实验结果知,编写的冒泡排序法和快速排序法都成功的将一个无序的数组排成了一个有序数组并打印输出,说明这两种算法是可行的。
北航计算机控制系统实验报告
计算机控制系统
实验报告
实验一模拟式小功率随动系统的实验调试
实验二A/D、D/A接口的使用和数据采集
实验三中断及采样周期的调试
实验四计算机控制系统的实验调试
姓名:陈启航
学号:13031144
同组人:吴振环陈秋鹏李恺
指导教师:袁少强
日期:6月16日
实验一二阶系统的电子模拟及时域响应的动态测试
一、实验目的
1.熟悉反馈控制系统的结构和工作原理,进一步了解位置随动
系统的特点。
2.掌握判别闭环系统的反馈极性的方法。
3.了解开环放大倍数对稳定性的影响及对系统动态特性的影
响,对静态误差的影响。
二、实验内容
1.连接元件构成位置随动系统;
2.利用计算机内的采样及显示程序,显示并分析输出的响应结
果;
3.重复调试达到设计要求三、实验设备
XSJ-3小功率直流随动系统学习机一台、DH1718双路直流稳压
电源一台、4 1/2数字多用表一台四、实验原理
模拟式小功率随动系统如下图所示:
1.实验前需进行零位调整,反馈极性判断,反馈极性判断又包括速度反馈极性判断和位置反馈极性判断,须使反馈为负反馈。
2.动态闭环实验系统调试。
按下面电路图连线,经过改变变阻
器大小来改变闭环系统放大倍数,经过一路A/D把输出相应采入
计算机进行绘图,同时测量输入电压和反馈电位计输入电压,算出稳态误差
五、实验结果
1. K=1时的过渡过程曲线。
微计算机原理及运用实验报告目录实验一:I/O地址译码实验 (4)一、实验目的 (4)二、实验原理和内容 (4)三、实验程序 (4)四.实验总结 (5)实验二:8255并行接口实验 (6)一、实验目的 (6)二、实验原理和内容 (6)三、程序框图 (7)四.实验程序 (7)五.实验总结 (8)实验三:键盘显示控制实验 (9)一、实验目的 (9)二、实验内容及原理 (9)三、流程图 (10)四.程序 (10)五.实验总结 (13)实验四:8254定时器/计数器实验 (14)一、实验目的 (14)二、实验原理和内容 (14)三、实验程序 (14)四.实验总结 (15)实验五:继电器控制实验 (16)一、实验目的 (16)二、实验原理和内容 (16)三、实验中使用的程序 (16)四.实验总结 (18)实验六:DMA传送 (18)一、实验目的 (18)二、实验原理和内容 (18)三、程序 (19)四.实验总结 (20)实验七:8259 中断控制实验 (20)一、实验目的 (20)二、实验原理和内容 (21)三、流程图 (21)四.程序 (21)五.实验总结 (25)实验八:8255中断实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三.实验程序 (26)四.实验总结 (27)实验一:I/O地址译码实验一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容实验电路如附图1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
附图1 I/O地址译码电路利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
实验名称:网络安全综合实验实验时间: 2023年11月15日实验地点:北京航空航天大学计算机学院实验室实验人员: [姓名]一、实验目的1. 深入理解网络安全的基本概念和原理。
2. 掌握网络安全设备的配置与调试方法。
3. 熟悉网络安全攻防技术,提高安全意识。
4. 培养动手实践能力和团队合作精神。
二、实验内容本次实验主要包括以下内容:1. 路由器配置实验:学习路由器的基本配置,包括IP地址、子网掩码、默认网关等,并实现网络的互连互通。
2. APP欺骗攻击与防御实验:学习APP欺骗攻击的原理,并尝试防御此类攻击。
3. 源IP地址欺骗攻击防御实验:学习源IP地址欺骗攻击的原理,并尝试防御此类攻击。
4. DHCP欺骗攻击与防御实验:学习DHCP欺骗攻击的原理,并尝试防御此类攻击。
5. 密码实验:学习密码学的基本原理,并尝试破解简单的密码。
6. MD5编程实验:学习MD5算法的原理,并实现MD5加密程序。
7. 数字签名综合实验:学习数字签名的原理,并尝试实现数字签名程序。
8. RIP路由项欺骗攻击实验:学习RIP路由项欺骗攻击的原理,并尝试防御此类攻击。
9. 流量管制实验:学习流量管制的原理,并尝试实现流量控制。
10. 网络地址转换实验:学习网络地址转换的原理,并尝试实现NAT功能。
11. 防火墙实验:学习防火墙的配置与调试方法,并尝试设置防火墙规则。
12. 入侵检测实验:学习入侵检测的原理,并尝试实现入侵检测系统。
13. WEP配置实验:学习WEP加密协议的配置方法,并尝试破解WEP加密。
14. 点对点IP隧道实验:学习点对点IP隧道的配置方法,并尝试实现VPN功能。
三、实验步骤1. 路由器配置实验:- 搭建实验环境,连接路由器。
- 配置路由器的IP地址、子网掩码、默认网关等。
- 通过ping命令测试网络连通性。
2. APP欺骗攻击与防御实验:- 利用欺骗软件模拟APP欺骗攻击。
- 分析欺骗攻击的原理,并尝试防御此类攻击。
北航实验报告封面(共8篇)北航惯性导航综合实验一实验报告实验一陀螺仪关键参数测试与分析实验加速度计关键参数测试与分析实验二零一三年五月十二日实验一陀螺仪关键参数测试与分析实验一、实验目的通过在速率转台上的测试实验,增强动手能力和对惯性测试设备的感性认识;通过对陀螺仪测试数据的分析,对陀螺漂移等参数的物理意义有清晰的认识,同时为在实际工程中应用陀螺仪和对陀螺仪进行误差建模与补偿奠定基础。
二、实验内容利用单轴速率转台,进行陀螺仪标度因数测试、零偏测试、零偏重复性测试、零漂测试实验和陀螺仪标度因数与零偏建模、误差补偿实验。
三、实验系统组成单轴速率转台、MEMS 陀螺仪(或光纤陀螺仪)、稳压电源、数据采集系统与分析系统。
四、实验原理1. 陀螺仪原理陀螺仪是角速率传感器,用来测量载体相对惯性空间的角速度,通常输出与角速率对应的电压信号。
也有的陀螺输出频率信号(如激光陀螺)和数字信号(把模拟电压数字化)。
以电压表示的陀螺输出信号可表示为:UGUG?0??kG??kGfG(a)?kG?G(1-1)式中fG(a)是与比力有关的陀螺输出误差项,反映了陀螺输出受比力的影响,本实验不考虑此项误差。
因此,式(1-1)简化为 UGUG?0??kG??kG?G(1-2)由(1-2)式得陀螺输出值所对应的角速度测量值:测量?UG?UG(0)(1-3) ??GkG对于数字输出的陀螺仪,传感器内部已经利用标度因数对陀螺仪模拟输出进行了量化,直接输出角速度值,即:测量??0??真值??G(1-4)?0是是陀螺仪的零偏,物理意义是输入角速度为零时,陀螺仪输出值所对应的角速度。
且UG(0)?kG?0 (1-5)?测量精度受陀螺仪标度因数kG、随机漂移?G、陀螺输出信号UG的检测精度和UG(0)的影响。
通常kG和UG(0)表现为有规律性,可通过建模与补偿方法消除,?G表现为随机特性,可通过信号滤波方法抵制。
因此,准确标定kG和UG(0)是实现角速度准确测量的基础。
北航os实验报告北航OS实验报告一、引言操作系统(Operating System,简称OS)是计算机系统中最基础的软件之一,它负责管理和控制计算机硬件资源,为用户和应用程序提供一个可靠、高效的工作环境。
本文将对北航OS实验进行详细的报告和分析。
二、实验目的本次北航OS实验的目的是让学生深入理解和掌握操作系统的基本原理和实现方式。
通过实践,学生将学会设计和实现一个简单的操作系统,了解操作系统的核心功能和运行机制。
三、实验内容1. 系统引导实验开始时,我们需要编写引导程序,将操作系统加载到计算机的内存中,并跳转到操作系统的入口地址开始执行。
这一步骤是整个实验的起点,也是操作系统正常运行的基础。
2. 中断处理操作系统需要能够处理各种中断事件,如时钟中断、键盘中断等。
学生需要实现中断处理程序,使操作系统能够响应和处理这些中断事件,并根据具体情况进行相应的操作。
3. 进程管理操作系统需要能够管理多个进程的创建、调度和终止。
学生需要设计并实现进程管理模块,包括进程控制块(PCB)的数据结构和进程调度算法。
通过合理的调度策略,提高系统的并发性和响应速度。
4. 内存管理操作系统需要管理计算机的内存资源,包括内存的分配和释放。
学生需要设计并实现内存管理模块,使用合适的算法来管理内存的分配和回收,避免内存泄漏和碎片化问题。
5. 文件系统操作系统需要提供文件系统来管理计算机中的文件和数据。
学生需要设计并实现一个简单的文件系统,包括文件的创建、读写和删除等操作。
通过文件系统,用户可以方便地存储和管理自己的数据。
四、实验过程在实验过程中,我们遇到了许多挑战和问题,但通过不断的尝试和调试,我们最终成功实现了一个简单的操作系统。
以下是我们在实验过程中遇到的一些关键问题和解决方案:1. 内存管理在实验过程中,我们发现内存管理是一个非常关键的问题。
如果内存管理不当,容易导致内存泄漏或者内存碎片化,从而影响系统的性能和稳定性。
我们通过设计一个位图来管理内存的分配和释放,使用首次适应算法来分配内存,并通过合理地回收内存来避免内存泄漏问题。
成绩《计算机测控系统》实验报告院(系)名称自动化科学与电气工程学院专业名称自动化学生学号学生姓名指导教师董韶鹏2018年06月同组同学实验编号03组一、实验目的1.了解计算机控制系统的基本构成和具体实现方法。
2.学会使用IAR软件的基本功能,掌握K60单片机的开发和应用过程。
3.学会智能小车实验系统上各个模块的使用,掌握其工作原理。
二、实验内容1、了解各模块工作原理,通过在IAR环境编程,实现和演示各个模块的功能。
2、编写程序组合各个模块的功能,让小车能够沿着赛道自行行使。
三、实验原理小车的主板如下图所示:主板上包括Freescale MK60DN512ZVLQ10核心板,J-Link下载调试接口,编码器接口,电机驱动接口,舵机接口,CCD结构等主要功能模块接口,无线模块接口,蓝牙模块接口,OLED接口等主要功能模块和相应的辅助按键和电路。
在本次实验中我们主要使用的接口为编码器接口,CCD接口,舵机接口,电机驱动接口,OLED接口来控制小车运行,采用7.2V电池为系统供电。
我们采用512线mini 编码器来构成速度闭环控制,采用OV7725来进行赛道扫描,将得到的图像二值化,提取赛道信息,并以此控制舵机来进行转向。
四、实验步骤4.1车架及各模块安装4.1.1小车整体车架结构车模的整体结构如上图所示,包含地盘,电机等,为单电机驱动四轮车。
车模为但电机驱动,电机安装位置如下:4.1.2摄像头的固定和安装摄像头作为最重要的传感器,它的固定和安装对小车的影响是十分巨大的,摄像头的布局和安装取决于系统方案,反过来又会影响系统的稳定性与可靠性以及软件的编写。
我们的车模为四轮车,所以摄像头架在车子的中间部分,介于电池和舵机之间,这样节省空间而且也不会让重心偏移太大,而摄像头的角度也很有讲究,角度低的时候能看到很远的赛道信息,但是图像较为模糊,不适合图像处理的编写,角度较高是,能看到的图像信息较少,但是分辨率明显更好,在程序的编写中,我们发现摄像头视野的宽广往往直接影响赛道信息提取的精准度。
实验三UC-OS移植实验一、实验目的在内核移植了uCOS-II 的处理器上创建任务。
二、实验内容1.运行实验十,在超级终端上观察四个任务的切换。
2. 任务1~3,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加OSTimeDly()的时间,且优先级高的任务延时时间加长,以便看清三种颜色。
3.引入一个全局变量 BOOLEAN ac_key,解决完整刷屏问题。
4. #define rUTRSTAT0 (*(volatile unsigned *)0x)#define RdURXH0()(*(volatile unsigned char *)0x)当键盘有输入时在超级终端上显示相应的字符。
三、实验设备硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上。
软件:PC机操作系统Win2000或WinXP、ARM 集成开发环境、仿真器驱动程序、超级终端通讯程序。
四、实验原理所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。
虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。
比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。
因为uCOS-II在设计的时候就己经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。
要使uCOS一工工可以正常工作,处理器必须满足以下要求:1)处理器的C编译器能产生可重入代码。
2)在程序中可以打开或者关闭中断。
3)处理器支持中断,并A能产生定时中断(通常在10Hz}1000Hz之间)。
4)处理器支持能够容纳一定量数据的硬件堆栈。
5)处理器有将堆栈指针和其它CPU寄存器存储和读出到堆栈(或者内存)的指令。
uCOS-II进行任务调度的时候,会把当前任务的CPU寄存器存放到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。
北航计网实验报告一、实验目的本次北航计网实验旨在深入理解计算机网络的基本原理和关键技术,通过实际操作和实验观察,提高对网络协议、数据传输、网络拓扑结构等方面的认识和应用能力。
二、实验环境本次实验在北航的计算机实验室进行,使用的操作系统为 Windows 10,实验软件包括 Wireshark 网络抓包工具、Cisco Packet Tracer 网络模拟软件等。
网络设备包括交换机、路由器等。
三、实验内容(一)网络拓扑结构的搭建使用Cisco Packet Tracer 软件搭建了一个简单的星型网络拓扑结构,包括一台服务器、若干台客户端计算机和一台交换机。
通过配置 IP 地址、子网掩码和网关等参数,实现了客户端与服务器之间的通信。
(二)网络协议分析利用 Wireshark 工具抓取网络数据包,对常见的网络协议如 TCP、UDP、IP 等进行分析。
观察数据包的格式、字段含义以及协议的工作流程,例如 TCP 的三次握手建立连接过程和四次挥手断开连接过程。
(三)数据传输实验进行了文件传输和实时数据传输的实验。
在文件传输实验中,比较了不同传输协议(如 FTP 和 HTTP)的传输效率和可靠性。
在实时数据传输实验中,观察了音频和视频数据在网络中的传输情况,分析了网络延迟和丢包对传输质量的影响。
(四)网络故障诊断与排除模拟了网络中的常见故障,如线路中断、IP 地址冲突等,并通过网络工具和技术手段进行故障诊断和排除。
学习了如何使用 Ping 命令、Tracert 命令等工具来检测网络连通性和确定故障位置。
四、实验步骤(一)网络拓扑结构搭建1、打开 Cisco Packet Tracer 软件,从设备库中选择服务器、客户端计算机和交换机等设备,并将它们拖放到工作区。
2、用网线将客户端计算机和交换机连接起来,形成星型拓扑结构。
3、为服务器和客户端计算机配置 IP 地址、子网掩码和网关等参数,确保它们在同一网段内能够相互通信。
北航计算机网络实验报告一、实验目的计算机网络是一门涉及通信、计算机科学和工程的交叉学科,其理论知识较为抽象。
通过本次实验,旨在深入理解计算机网络的基本原理和技术,培养实际动手能力和解决问题的能力,具体目的包括:1、熟悉网络拓扑结构的设计与搭建,理解不同拓扑结构的特点和应用场景。
2、掌握网络设备的配置和管理方法,如交换机、路由器等。
3、学习网络协议的工作原理,通过实际操作观察和分析协议的运行过程。
4、培养网络故障排查和解决的能力,提高应对实际网络问题的经验。
5、加深对网络性能优化和安全防护的认识,了解相关技术和策略。
二、实验环境本次实验在北航计算机网络实验室进行,实验室配备了以下设备和软件:1、计算机若干台,安装了 Windows 和 Linux 操作系统。
2、交换机和路由器,型号分别为_____和_____。
3、网络线缆、网线钳、测线仪等布线工具。
4、网络模拟软件,如 Packet Tracer。
三、实验内容(一)网络拓扑结构设计与搭建首先,根据实验要求设计了一个简单的网络拓扑结构,包括一个核心交换机连接多个接入层交换机,以及一个路由器连接外网。
使用网线和交换机、路由器等设备,按照设计的拓扑结构进行物理连接。
在连接过程中,注意线缆的类型和连接方式,确保连接的稳定性和正确性。
(二)网络设备配置1、交换机配置登录交换机的管理界面,设置交换机的名称、管理 IP 地址等基本信息。
划分 VLAN(虚拟局域网),将不同的端口划分到不同的 VLAN 中,实现网络的逻辑隔离。
配置端口的速率、双工模式等参数,优化网络性能。
2、路由器配置配置路由器的接口 IP 地址,使其能够与内网和外网进行通信。
设置路由表,实现不同网段之间的路由转发。
启用NAT(网络地址转换)功能,使内网中的主机能够访问外网。
(三)网络协议分析使用 Wireshark 网络抓包工具,抓取网络中的数据包,对常见的网络协议如 TCP、IP、HTTP 等进行分析。
计算机测控系统实验报告院(系)名称学号学生姓名指导教师PLC的开环控制系统实验一、实验目的以Omron PLC (CP1E)为例,熟悉PLC的硬件结构和编程语言,掌握逻辑运算、定时器等基本指令,编写气液两相流实验装置的控制程序,得到不同的流量、流型。
二、实验设备气液两相流装置,Omron PLC (CP1E)三、实验内容1、Omron PLC简介Omron SYSMAC CP1E可编程控制器(Programmable Logic Controller, simplified as PLC)是一种由欧姆龙公司设计制造的用于简单测量、控制应用的集成式PLC,具有20点(数字量)I/O单元,使用USB端口连接编程设备(上位PC机)。
基本指令系统包含子逻辑运算、定时器、比较等,也支持连接到可编程终端、变频器和伺服驱动器。
外形如图1.1所示。
图1.1Omron SYSMAC CP1E PLC外形为了通过USB将PLC连接到计算机,需让计算机自动识别设备并安装驱2、编程软件CX-Programmer简介CP1E可编程控制器采用CX-Programmer软件进行编程和监控。
软件安装完成后,打开CX-Programmer for CP1E。
界面如图1.2所示。
点击文件->新建,再设备类型中选择实验中PLC的CPU类型——N20。
点击确定后就创建了一个新工程。
图1.2 CX-Programmer界面可以在新工程中建立梯形图程序(梯形图程序见说明书),待编程完成后,点击编程->编辑所有的PLC程序,在屏幕下边的窗口中检查并修改错误。
所有错误修改完成后,点击PLC->在线工作,与设备进行连接。
PLC编程语言PLC采用梯形图作为编程语言,简单直观。
以下对逻辑运算和计时器等基本指令做简单的介绍。
(1)常开和常闭触点(LD,LDNOT和OUT)功能:Q:100.00=(I:0.00)and(I:0.01);Q:100.01=((I:0.02)or(Q:100.01))and(I:0.03);功能:Q:100.02=(not(I:0.00))and(I:0.01);(2)定时器指令(TIM:0.1s计时器)功能:I:0.00闭合1s后Q:100.01接通;功能:Q:100.00接通2s,断开3s。
北航计算机网络实验报告一、实验目的本次计算机网络实验旨在深入了解计算机网络的基本原理和技术,通过实际操作和观察,掌握网络协议的工作机制、网络拓扑结构的搭建、网络性能的评估以及网络安全的相关知识。
二、实验环境本次实验在北航的计算机网络实验室进行,使用的设备包括计算机、交换机、路由器、网线等。
实验操作系统为 Windows 10,使用的网络模拟软件为 Packet Tracer。
三、实验内容1、网络拓扑结构的搭建使用 Packet Tracer 软件搭建了一个简单的星型网络拓扑结构,包括一台服务器、若干台客户端计算机以及一台交换机。
通过配置IP 地址、子网掩码和网关等参数,实现了客户端计算机与服务器之间的通信。
2、网络协议的分析通过 Wireshark 抓包工具,捕获了客户端计算机与服务器之间的通信数据包,并对数据包进行了详细的分析。
重点分析了 TCP 协议和 IP协议的头部字段,了解了协议的工作流程和数据封装格式。
3、网络性能的评估使用 Ping 命令和 Tracert 命令,对搭建的网络进行了性能评估。
通过测量网络的延迟、丢包率等指标,分析了网络的性能状况,并针对发现的问题进行了优化。
4、网络安全的实验设置了简单的网络防火墙,对网络中的访问进行了控制。
通过配置访问规则,实现了允许特定 IP 地址访问服务器的功能,同时禁止了其他非法访问。
四、实验步骤1、网络拓扑结构搭建(1)打开 Packet Tracer 软件,从设备库中选择服务器、客户端计算机和交换机等设备。
(2)按照星型拓扑结构的要求,将设备进行连接,并使用网线将设备连接到交换机上。
(3)为客户端计算机和服务器配置 IP 地址、子网掩码和网关等参数,确保网络的连通性。
2、网络协议分析(1)在客户端计算机上打开 Wireshark 抓包工具,并开始捕获数据包。
(2)在客户端计算机上访问服务器上的资源,如网页、文件等。
(3)停止捕获数据包,并对捕获到的数据包进行分析,查看 TCP 协议和 IP 协议的头部字段,了解数据的封装和传输过程。
北京航空航天大学《数值分析》计算实习报告第一大题学 院:自动化科学与电气工程学院 专 业: 控制科学与工程 学 生 姓 名: 学 号: 教 师: 电 话: 完 成 日 期: 2015年11月6日北京航空航天大学Beijing University of Aeronautics and Astronautics实习题目:第一题 设有501501⨯的实对称矩阵A ,其中,064.0,16.0),501,,2,1(64.0)2.0sin()024.064.1(1.0-==⋅⋅⋅=--=c b i e i i a ii 。
矩阵A 的特征值为)501,,2,1(⋅⋅⋅=i i λ,并且有1.求1λ,501λ和s λ的值。
2.求A 的与数4015011λλλμ-+=kk 最接近的特征值)39,,2,1(⋅⋅⋅=k k i λ。
3.求A 的(谱范数)条件数2)A (cond 和行列式detA 。
说明:1.在所用的算法中,凡是要给出精度水平ε的,都取12-10=ε。
2.选择算法时,应使矩阵A 的所有零元素都不储存。
3.打印以下内容:(1)全部源程序;(2)特征值),,39,...,2,1(,s 5011=k k i λλλλ以及A det ,)A (cond 2的值。
4.采用e 型输出实型数,并且至少显示12位有效数字。
一、算法设计方案 1、求1λ,501λ和s λ的值。
由于||min ||,501150121i i s λλλλλ≤≤=≤⋅⋅⋅≤≤,可知绝对值最大特征值必为1λ和501λ其中之一,故可用幂法求出绝对值最大的特征值λ,如果λ=0,则1λ=λ,否则501λ=λ。
将矩阵A 进行一下平移:I -A A'λ= (1)对'A 用幂法求出其绝对值最大的特征值'λ,则A 的另一端点特征值1λ或501λ为'λ+λ。
s λ为按模最小特征值,||min ||5011i i s λλ≤≤=,可对A 使用反幂法求得。
计算机软件基础上机实验报告(一)
XXXXXX班XXX 10021189
1.实验目的
掌握线性表在顺序分配下的插入与删除运算;掌握线性表的链式存储结构;掌握插入排序的方法;并掌握一种产生随机数的方法。
2.实验容
1.产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件中。
2.编制一个程序,依次实现以下功能:
(1) 定义一个有序(非递减)线性表,其最大容量为1000,初始时为空。
(2) 从由1产生的数据文件中依次取前N个随机整数,陆续插入到此线性表中,并要求在每次插入后保持线性表的有序性。
最后将此有序线性表打印输出。
(3) 在由(2)产生的线性表中,依在1中产生的次序逐个将元素删除,直至表空为止。
3.以N=100及N=400分别运行2的程序,并比较它们的运行时间。
4.编写一个程序,用插入排序依次将1中产生的1000个随机整数成有序链表(不改变原随机数在存储空间中的顺序)。
3.源代码与运行结果
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/**
1_1
产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件(1_1.txt)中。
**/
main()
{
FILE *fo=fopen("1_1.txt","w");
int i,j;
srand((unsigned)time(0));
for (i=0;i<=999;i++) fprintf(fo,"%d\n",rand()%1000);
fclose(fo);
printf("1000个随机数已输出至目录下1_1.txt文件\n");
system("pause");
}
输出文件1_1.txt如下:(因输出文本长度缘故,此处只截了一幅图)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/**
1_2
从数据文件(1_1.txt)中读取数据,进行插入排序,然后屏幕输出。
再依序删除。
1_3
以N=100及N=400分别运行2的程序,并比较它们的运行时间。
**/
#define N 1000
main()
{
int a[N]={0};
int i,j,m,w,num=0;
FILE *fi=fopen("1_1.txt","r");
clock_t start,finish;
double duration;
//Part 1 :
start=clock();
m=0;
fscanf(fi,"%d",&num);
a[0]=num;
w=m;
for (j=1;j<=N-1;j++)
{
w=m;
fscanf(fi,"%d",&num);
while ((a[w]>num)&&(w>=0)) w--;
w++;
for(i=m;i>=w;i--) a[i+1]=a[i];
a[w]=num;
m++;
}
finish=clock();
duration=(double)(finish - start)/CLOCKS_PER_SEC;
printf("执行%d 个数据插入操作完成!用时:%f 秒,得到线性表如下:\n",m+1,duration);
for (i=0;i<N;i++) printf("%d ",a[i]);
fclose(fi);
//Part 2 :
start=clock();
for (j=0;j<=N-1;j++)
{
w=0;
fscanf(fi,"%d",&num);
while (a[w]<num) w++;
for(i=m;i<m;i++) a[i]=a[i+1];
a[m]=0;
m--;
}
finish=clock();
duration=(double)(finish - start)/CLOCKS_PER_SEC;
printf("\n\n删除操作完成!用时:%f 秒,得到线性表如下:\n",duration);
for (i=0;i<N;i++) printf("%d ",a[i]);
printf("\n");
fclose(fi);
system("pause");
}
程序运行输出结果如下:(因输出文本长度缘故,此处只截了两幅图)
#include<stdio.h>
#include<stdlib.h>
/**
1_4
编写一个程序,用插入排序依次将1_1.txt中的1000个随机整数成有序链表
(不改变原随机数在存储空间中的顺序)
**/
#define N 1000
main()
{
struct data
{
int num;
struct data *next;
};
struct data *n, *head, *temp;
FILE *fi=fopen("1_1.txt","rt");
int i,a=0;
n=(struct data*)malloc(sizeof(struct data));
n->next=NULL;
fscanf(fi,"%d",&a);
n->num=a;
head=n;
for (i=1;i<=N-1;i++)
{
n=(struct data*)malloc(sizeof(struct data));n->next=NULL;
fscanf(fi,"%d",&a);
n->num=a;
temp=head;
if ((n->num)<=(temp->num)) // n为目前最小值
{
n->next=temp;
head=n;
}
else
{
while ( ((temp->next)!=NULL) && ((n->num) > ((temp->next)->num)) ) temp=temp->next;
if (temp->next==NULL) temp->next=n; // n为目前最大值
else // n插入链表
{
n->next=temp->next;
temp->next=n;
}
}
}
printf("插入排序完成\n");
printf("数据最小元素:%d\n",head->num);
printf("完整数据输出:\n");
temp=head;
while (temp->next!=NULL) {printf("%d ",temp->num); temp=temp->next;}
fclose(fi);
system("pause");
}
程序运行输出结果如下:(因输出文本长度缘故,此处只截了一幅图)
4.实验总结
通过本次试验,我熟练掌握了线性表在顺序分配下的插入与删除运算,还有链表的存储结构、插入排序的方法,并且学习了产生随机数、文件数据输入输出、取得当前系统时间的方法。
➢srand函数用来将系统随机种子设定为当前时间(强制转化为unsigned),否则得到的伪随机数每次都相同,而rand()%1000则用来产生1-999的伪随机数。
➢在添加time.h库函数后,可以使用clock_t类型变量和clock()函数获取当前时间,从而进行程序运行时间计算(但精度貌似较低)。
到每过千分之一秒,clock()函数的返回值就会增加1,而常量CLOCKS_PER_SEC,它用来表示一秒钟有多少个时钟计时单元,故duration=(double)(finish - start)/CLOCKS_PER_SEC即可得到程序运行的时间(秒)。
➢文件读取输出可以通过以下语句简单完成:FILE *fi=fopen("fi.txt","r");
FILE *fo=fopen("fo.txt","w");
fscanf(fi,"%d",int);
fprintf(fo,"文件输出\n");
fclose(fi);
fclose(fo);。