北航计软实验报告一

合集下载

北航计算机网络实验1组网实验

北航计算机网络实验1组网实验

BGP BGP BGP 路 由 策 略 路 由 性 、 路 由 聚 属 协 议 基 本 析 、 状 态 换 、 转 分
IPv6
IGMP
的 编 程 、
协 议 、
组 网 设 计
邻 居 建
网 络 布 线 测 试
网 络 协 议 测 试
网 络 故 障 诊 断

端 口 技 术 、
协 议 分 析 、 基
协 议
构 、 SPF 计 算 法 、 算
10.1.2.254
10.2.3.254
ls2 S3526
OSPF
10.1.3.3 10.0.0.245 10.1.2.4 10.1.3.4 10.0.0.241 10.1.2.5 10.1.3.5 10.0.0.237
10.1.2.3
总行 数据 中心
rt5 R2610
ls7 S5516-1
ls8 S5516-2
10
北航计算机网络实验
主要内容
课程介绍 规章制度 实验环境 常用操作 组网实验
11
北航计算机网络实验
课程实验环境(1/4) 课程实验环境(1/4)
与华为公司共同建设北航-华为网络实验室, 与华为公司共同建设北航-华为网络实验室, 北航方面近几年投资约600万元; 万元; 北航方面近几年投资约 万元 实验设备 高端设备:核心路由器、交换机10 10台 高端设备:核心路由器、交换机10台; 中低端路由器40 40台 三层交换机48 48台 中低端路由器40台,三层交换机48台; 自行研制了部分实验设备, 机柜; 自行研制了部分实验设备,如机柜; 实验室网络布线 4人一组,每组 台路由器和两台三层交换机, 人一组, 台路由器和两台三层交换机, 人一组 每组2台路由器和两台三层交换机 4台PC;可最多同时容纳 人进行实验 台 ;可最多同时容纳70人进行实验

北航大软报告

北航大软报告

北京航空航天大学航空学院微机原理与应用专业班级: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、实验结果(包括必要截图)实验截图。

北航计算机软件技术基础实验报告计软实验报告3——冒泡排序和快速排序

北航计算机软件技术基础实验报告计软实验报告3——冒泡排序和快速排序

实验报告实验名称冒泡排序和快速排序班级学号姓名成绩#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.由实验结果知,编写的冒泡排序法和快速排序法都成功的将一个无序的数组排成了一个有序数组并打印输出,说明这两种算法是可行的。

北航计算机控制系统实验报告

北航计算机控制系统实验报告

北航计算机控制系统实验报告一、实验目的通过本实验,旨在加深对计算机控制系统的理解,熟悉计算机控制系统的基本组成和原理,并能够运用所学知识进行实际的控制系统设计与调试。

二、实验原理计算机控制系统是一种通过计算机对实际物体或过程进行控制的系统。

其基本组成包括传感器、执行机构、人机界面、控制算法和控制器等。

传感器负责将物理量转换成电信号,输入给计算机;执行机构根据计算机的控制信号完成相应的动作;人机界面提供了与计算机进行交互的方式;控制算法基于传感器采集到的信息和用户的输入,计算出执行机构所需的控制信号;控制器根据控制算法输出的控制信号与执行机构进行交互。

三、实验内容本实验的主要内容为设计一个自动化温控系统。

系统包括一个温度传感器、一个加热器和一个温度控制器。

温度传感器负责采集环境温度,并将其转换成模拟电信号输入给温度控制器;加热器根据温度控制器输出的控制信号控制加热功率,从而调节环境温度;温度控制器根据温度传感器采集到的温度信号和用户设定的目标温度,计算出加热功率控制信号。

四、实验步骤1.连接硬件设备将温度传感器的输出接口与温度控制器的输入接口相连;将温度控制器的输出接口与加热器的输入接口相连。

2.设计控制算法根据用户设定的目标温度和实际温度,设计一个控制算法,计算出加热功率控制信号。

常见的控制算法包括PID控制算法、模糊控制算法等。

3.编写控制程序使用编程语言编写一个控制程序,根据控制算法计算出的控制信号,通过温度控制器的输出接口发送给加热器。

4.调试控制系统运行控制程序,观察温度控制系统的运行情况。

根据实际温度与目标温度的偏差调整控制算法的参数,使系统达到较好的控制效果。

五、实验结果分析运行实验过程中,通过观察实际温度与目标温度的偏差,可以评估系统的控制效果。

根据实际情况,调整控制算法的参数,使系统的响应速度更快、稳定性更好。

六、实验总结通过本实验,我对计算机控制系统的基本原理和组成有了更深入的理解,掌握了控制系统的设计与调试方法,并在实践中提高了解决实际问题的能力。

北航计算机控制系统实验报告

北航计算机控制系统实验报告

北航计算机控制系统实验报告计算机控制系统实验报告实验一模拟式小功率随动系统的实验调试实验二 A/D、D/A接口的使用和数据采集实验三中断及采样周期的调试实验四计算机控制系统的实验调试姓名:陈启航学号: 13031144 同组人:吴振环陈秋鹏李恺指导教师:袁少强日期: 2016年6月16日实验一二阶系统的电子模拟及时域响应的动态测试一、实验目的1. 熟悉反馈控制系统的结构和工作原理,进一步了解位置随动系统的特点。

2. 掌握判别闭环系统的反馈极性的方法。

3. 了解开环放大倍数对稳定性的影响及对系统动态特性的影响,对静态误差的影响。

二、实验内容1. 连接元件构成位置随动系统;2. 利用计算机内的采样及显示程序,显示并分析输出的响应结果;3. 反复调试达到设计要求。

三、实验设备XSJ-3 小功率直流随动系统学习机一台、DH1718 双路直流稳压电源一台、4 1/2 数字多用表一台四、实验原理模拟式小功率随动系统如下图所示:1. 实验前需进行零位调整,反馈极性判断,反馈极性判断又包括速度反馈极性判断和位置反馈极性判断,须使反馈为负反馈。

2. 动态闭环实验系统调试。

按下面电路图连线,通过改变变阻器大小来改变闭环系统放大倍数,通过一路A/D把输出相应采入计算机进行绘图,同时测量输入电压和反馈电位计输入电压,算出稳态误差。

五、实验结果滑阻阻值(千欧)7.118.324.138.3比例系数 1 1.52.753.7 给定角度(度)30 60 120输出角度(度)38 66 129静差角度(度) 3 1 4静态误差(mv)-146.7-6.2-193.5过度过程曲线见下图1.K=1时的过渡过程曲线2.K=1.5时的过渡过程曲线3.K=2.75时的过渡过程曲线4.K=3.7时的过渡过程曲线六、思考题及实验感想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闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

北航计算机软件技术基础实验报告计软实验报告4-1——多媒体关系型数据库的建立

北航计算机软件技术基础实验报告计软实验报告4-1——多媒体关系型数据库的建立

实验报告实验名称多媒体关系型数据库的建立班级学号姓名成绩图片OleObject)Create Table 客户数据(客户ID char(3) primary key,公司名称varchar(20),联系人姓名varchar(20),联系人头衔varchar(10),城市varchar(15),地区char(15),邮政编码char(6),电话char(8),传真char(8))Create Table 订单数据(订单ID char(4) primary key,客户ID char(3),雇员ID varchar(3),产品ID varchar(4),数量int,订购日期datetime,发货日期datetime,备注varchar(40))运行结果:关联数据库SQL语言建表雇员数据商品数据客户数据订单数据2.查询:(1)查询“客户数据”中在杭州或武汉的联系人姓名、电话、城市SELECT 联系人姓名,电话,城市FROM 客户数据WHERE (城市='杭州' OR 城市='武汉')运行结果:(2)查询“商品数据”中类别为光盘、耳机和外放设备的产品的产品名称、单价和库存量并根据单价递减顺序排列SELECT 产品名称,单价,库存量FROM商品数据WHERE 类别IN('光盘','耳机','外放设备')ORDER BY 单价DESC运行结果:3.插入:(1)在“雇员数据”中插入性别列,只能输入男或女ALTER TABLE 雇员数据ADD 性别char(1)运行结果:插入前插入后(2)在“商品数据”中插入一种产品名称为MP3的产品INSERT INTO商品数据(产品ID,产品名称,类别,单价,库存量)VALUES (‘150’,’MP3’,’外放设备’,’’260,’30’)运行结果:插入前插入后4.删除:(1)从“客户数据”中删除E商店的信息DELECT FROM 客户数据WHERE 公司名称=’E商店’运行结果:删除前删除后5.更改:(1)在“订单数据”中将订单ID为140810的订单的数量加3 UPDATE 订单数据SET 数量= 数量+ 3 WHERE 订单ID='140810'运行结果:更改前更改后实验三:在ACCESS数据库管理系统平台上建立查询表(视图)源代码:1.查找出三种最贵的商品SELECT TOP 3 * FROM 商品数据ORDER BY 单价DESC实验结果:2.统计某一雇员的销售额SELECT 雇员ID,SUM(数量*单价) AS 总销售额FROM 订单数据INNER JOIN 商品数据ON 订单数据.产品ID=商品数据.产品ID WHERE 雇员ID=[请输入要查询的雇员ID:] GROUP BY 雇员ID实验结果:【结论】(结果)1.由实验结果可知,利用SQL语句进行数据库的创建和维护是简洁高效的。

北航计算机软件技术基础实验报告计软实验报告2——二叉树

北航计算机软件技术基础实验报告计软实验报告2——二叉树

实验报告实验名称二叉树班级学号姓名成绩栈,将根结点入栈。

每次弹出栈顶元素,并判断左右子树的值。

如果头元素中存放的结点的左/右子树不为空,则入栈,直到栈顶指针为空。

4. 用栈结构来实现查找并交换子树的值。

先创建一个包含数据区域、顶部指针的栈,将根结点入栈。

每次弹出栈顶元素,并交换栈顶元素指向的结点的左右子树指针。

如果头元素中存放的结点的左/右子树不为空,则入栈,直到栈顶指针为空。

5.整理实验结果,写出实验报告【实验过程】(实验步骤、记录、数据、分析)实验一:源代码:/*实验内容:1:对给定二叉树用链式链式存储结构,利用队列与栈对二叉树进行运算。

2:按层次输出所有结点。

3:输出所有叶子结点。

4:将所有左右子树值交换。

*/#include<stdio.h>#include<stdlib.h>#define MAXSIZE 31//定义二叉树结构体,用一维数组模拟数据域,用两个一维数组模拟左、右链域typedef struct BinaryTree{int data[MAXSIZE];int leftChild[MAXSIZE];int rightChild[MAXSIZE];int head;}BTree;int main(){//声明及调用相关函数struct BinaryTree initBinaryTree(struct BinaryTree);struct BinaryTree createBinaryTree(struct BinaryTree);void levelOrder(struct BinaryTree);void leafNode(struct BinaryTree);void exchangeBranch(struct BinaryTree);printf("Exercise 1\n");BTree bt;bt = initBinaryTree(bt);bt = createBinaryTree(bt);printf("A binary tree has been created!\n\n\n");printf("Exercise 2\n");levelOrder(bt);printf("Exercise 3\n");leafNode(bt);printf("Exercise 4\n");exchangeBranch(bt);return 0;}//实验1:初始化二叉树struct BinaryTree initBinaryTree(struct BinaryTree bt) {int i;//数据域认为0为空,左右链域认为-1为空for (i = 0; i<MAXSIZE; i++){bt.data[i] = 0;bt.leftChild[i] = -1;bt.rightChild[i] = -1;}bt.head = -1;return bt;}//创建含有数据的二叉树struct BinaryTree createBinaryTree(struct BinaryTree bt) {int i;printf("Please enter all nodes:\n");//将数据放入数据域for (i = 0; i<MAXSIZE; i++)scanf("%d", &bt.data[i]);//形成链式存储for (i = 0; i < (MAXSIZE - 1) / 2; i++){if (bt.data[2 * i + 1] != 0)bt.leftChild[i] = 2 * i + 1;if (bt.data[2 * i + 2] != 0)bt.rightChild[i] = 2 * i + 2;}bt.head = 0;return bt;}//实验2:按层次输出各节点void levelOrder(struct BinaryTree bt){//创建一个空队列,包含存放二叉树结点地址的一维数组和头尾指针int queue[MAXSIZE];int front = -1, rear = -1, i = bt.head;int addQueue(int[MAXSIZE], int, int);int delQueue(int);//判定二叉树是否为空if (i == -1)printf("This tree is empty!Please create one!");//根结点入队rear = addQueue(queue, i, rear);printf("All existed nodes are as follows:\n");//当队列不为空时(队列不满的前提下)while (front != rear){//头元素出队,并将其中地址值赋给ifront = delQueue(front);i = queue[front];printf("%d ", bt.data[i]);//如果头元素中存放的结点的左/右子树不为空,则入队if (bt.leftChild[i] != -1)rear = addQueue(queue, bt.leftChild[i], rear);if (bt.rightChild[i] != -1)rear = addQueue(queue, bt.rightChild[i], rear);}printf("\n\n\n");}//元素入队int addQueue(int queue[MAXSIZE], int i, int rear){rear++;//循环队列指针处理方法if (rear == MAXSIZE) rear = 0;queue[rear] = i;return rear;}//元素出队int delQueue(int front){front++;//循环队列指针处理方法if (front == MAXSIZE) front = 0;return front;}//实验3:查找所有叶子结点void leafNode(struct BinaryTree bt){//新建一个空栈,包含存放二叉树结点地址的一维数组和栈顶指针int stack[MAXSIZE];int top = -1, i = bt.head;int pushStack(struct BinaryTree, int[MAXSIZE], int, int);int popStack(int);//判定二叉树是否为空if (i == -1)printf("This tree is empty!Please create one!");//根结点入栈top = pushStack(bt, stack, top, i);printf("All leaf nodes are as follows:\n");while (top != -1){//栈顶元素出栈top = popStack(top);//取出存放的地址值i = stack[top + 1];//判断是否为叶子结点if (bt.leftChild[i] == -1 && bt.rightChild[i] == -1) printf("%d ", bt.data[i]);//如果头元素中存放的结点的左/右子树不为空,则入栈else{if (bt.rightChild[i] != -1)top = pushStack(bt, stack, top, bt.rightChild[i]);if (bt.leftChild[i] != -1)top = pushStack(bt, stack, top, bt.leftChild[i]);}}printf("\n\n\n");}//入栈操作int pushStack(struct BinaryTree bt, int stack[MAXSIZE], int top, int i){top++;stack[top] = i;return top;}//出栈操作int popStack(int top){top--;return top;}//实验4:交换左右子树的值void exchangeBranch(struct BinaryTree bt){//新建一个空栈,包含存放二叉树结点地址的一维数组和栈顶指针int stack[MAXSIZE];int top = -1, i = bt.head, temp;//判定二叉树是否为空if (i == -1)printf("This tree is empty!Please create one!");//根结点入栈top = pushStack(bt, stack, top, i);printf("All branches have been changed!\n");printf("The results are as follows:\n");while (top != -1){//栈顶元素出栈top = popStack(top);//取出存放的地址值i = stack[top + 1];//判断存放的结点的左右子树是否均不为空,是则入栈if (bt.leftChild[i] != -1 && bt.rightChild[i] != -1){top = pushStack(bt, stack, top, bt.rightChild[i]);top = pushStack(bt, stack, top, bt.leftChild[i]);}//将所有非叶子结点的左右子树指针交换temp = bt.leftChild[i];bt.leftChild[i] = bt.rightChild[i];bt.rightChild[i] = temp;}//层次遍历输出交换后的二叉树levelOrder(bt);}运行结果:(从键盘输入15 98 6 20 10 45 0 30 40 0 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 0 0)实验二:自行设计的二叉树如下运行结果:(从键盘输入24 30 6 5 17 63 4 0 26 1 0 0 0 31 10 0 0 16 27 0 0 0 0 0 0 0 0 50 0 13 9)【结论】(结果)。

北航计算机软件技术基础实验报告实验报告4-2——数据库应用系统的开发

北航计算机软件技术基础实验报告实验报告4-2——数据库应用系统的开发

实验报告
实验名称数据库应用系统的开发
班级
学号
姓名
成绩
【实验方案设计】
1. 利用Visual Basic里的VB Application Wizard按照步骤逐步创建一个窗体应用程序,并链接到上一实验创建的数据库中,同时添加各种操作按钮,如插入、删除、更改等,最后将数据库的每个表视图集合到主视图中
【实验过程】(实验步骤、记录、数据、分析)
1.选择数据来源种类
2.选择数据库文件并做链接
3.选择数据视图布局,此处选择网格式布局,便于查看全部数据
4.选择一个表及要添加的字段和排列顺序
5.选择对数据可进行的操作按钮,如添加、更改、删除、更新、关闭等
6.添加完一个表后,继续添加其他表,直到整个数据库所有表已添加
7.添加完成后界面
8.通过链接到ACCESS数据库的VB数据库管理程序查看每个表数据,并进行数据增加、删除、修改等操作
9.在数据库管理系统中对数据进行增加操作,此处增加一条订单ID为151112的记录,可以看到在ACCESS中的数据表进行了同步增加。

这样就可以达到不打开ACCESS而只通过一个单界面应用程序就实现对数据库的维护工作,具有简单性、高效性的特点。

北航专业综合实验报告

北航专业综合实验报告

实验名称:网络安全综合实验实验时间: 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篇)

北航实验报告封面(共8篇)

北航实验报告封面(共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实验报告

北航os实验报告北航OS实验报告一、引言操作系统(Operating System,简称OS)是计算机系统中最基础的软件之一,它负责管理和控制计算机硬件资源,为用户和应用程序提供一个可靠、高效的工作环境。

本文将对北航OS实验进行详细的报告和分析。

二、实验目的本次北航OS实验的目的是让学生深入理解和掌握操作系统的基本原理和实现方式。

通过实践,学生将学会设计和实现一个简单的操作系统,了解操作系统的核心功能和运行机制。

三、实验内容1. 系统引导实验开始时,我们需要编写引导程序,将操作系统加载到计算机的内存中,并跳转到操作系统的入口地址开始执行。

这一步骤是整个实验的起点,也是操作系统正常运行的基础。

2. 中断处理操作系统需要能够处理各种中断事件,如时钟中断、键盘中断等。

学生需要实现中断处理程序,使操作系统能够响应和处理这些中断事件,并根据具体情况进行相应的操作。

3. 进程管理操作系统需要能够管理多个进程的创建、调度和终止。

学生需要设计并实现进程管理模块,包括进程控制块(PCB)的数据结构和进程调度算法。

通过合理的调度策略,提高系统的并发性和响应速度。

4. 内存管理操作系统需要管理计算机的内存资源,包括内存的分配和释放。

学生需要设计并实现内存管理模块,使用合适的算法来管理内存的分配和回收,避免内存泄漏和碎片化问题。

5. 文件系统操作系统需要提供文件系统来管理计算机中的文件和数据。

学生需要设计并实现一个简单的文件系统,包括文件的创建、读写和删除等操作。

通过文件系统,用户可以方便地存储和管理自己的数据。

四、实验过程在实验过程中,我们遇到了许多挑战和问题,但通过不断的尝试和调试,我们最终成功实现了一个简单的操作系统。

以下是我们在实验过程中遇到的一些关键问题和解决方案:1. 内存管理在实验过程中,我们发现内存管理是一个非常关键的问题。

如果内存管理不当,容易导致内存泄漏或者内存碎片化,从而影响系统的性能和稳定性。

我们通过设计一个位图来管理内存的分配和释放,使用首次适应算法来分配内存,并通过合理地回收内存来避免内存泄漏问题。

北航数值分析计算实习报告一

北航数值分析计算实习报告一

北京航空航天大学《数值分析》计算实习报告第一大题学 院:自动化科学与电气工程学院 专 业: 控制科学与工程 学 生 姓 名: 学 号: 教 师: 电 话: 完 成 日 期: 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 使用反幂法求得。

北京航空航天大学软件学院工程实践报告

北京航空航天大学软件学院工程实践报告

北京航空航天大学软件学院工程实践结题报告课题名称: 企业设备管理系统学生姓名:学号:专业方向:所属院系: 软件学院指导老师:摘要设备管理的日常工作通常由公司的行政部门进行处理,但是随着公司规模的不断扩大,作为管理职能部门之一的行政部的日常管理工作也随之增加,各业务部门设备的管理等工作量较大的事务占据了大量的时间。

行政部门迫切需要通过信息化的建设,来辅助行政管理规范化、制度化,并使行政管理所需各种数据标准化,为行政管理提供各种数据分析支持。

设备管理系统基于行政部门日益繁多的工作需要而开发的。

在实际的企业运作中,由于设备管理数据的冗多,繁杂和混乱,故而开发了设备管理系统来有效的协助行政部门的日常管理。

本论文以“设备管理系统"的设计与开发为背景,论述了设备管理系统的分析、设计、实施以及测试的整个过程。

系统采用基于B/S结构的动态网页技术,使用JSP+J2EE技术实现了对设备的管理,通过对系统的分析,系统主要实现用户管理,设备管理,询价管理,供应商管理等功能。

信息化是当今世界经济和社会发展的大趋势,使用计算机对设备信息进行管理,具有着手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高设备管理的效率,也是的科学化、正规化管理,与世界接轨的重要条件。

关键词:管理信息系统;设备管理系统;B/S结构;JSP+J2EEEnterprise Equipment Management SystemAbstractAccording to the case studied in the service department, I R&D an equipment management system. Because of the development of the company and more and more complex data, it is necessary to build an information system managing and supporting the daily process。

北航计算机测控系统实验

北航计算机测控系统实验

计算机测控系统实验报告院(系)名称学号学生姓名指导教师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。

北航计软实验报告实验一

北航计软实验报告实验一

2.删除 输入:线性表 L(1:n),n 为线性表的长度,删除的元素 b(一定在线性表中) 。 输出:删除 b 后的线性表 L(1:n)。
IF n = 0 T HENOUT PUT" underflow" ELSE{ i 1 WHIL E (i n) and (L(i) b) DO i i 1 IF i n T HEN OUT PUT" not thiselement" ELSE{ IF i n T HEN FOR j i T O n - 1 DO L(j) L(j 1) n n 1 } } RET URN
(3)线性链表的插入排序 输入:1000 个随机整数。 输出:头指针为 H 的有序链表。
H 1; READ x; A(1,1) x; A(1,2) 0 FOR k 2 TO 1000 DO{ READ x; A(k,1) x IF A(H,1) x THEN {A(k,2) H; H k} ELSE{ iH WHILE (A(i,2) 0) and (A(A(i,2), 1) x) DO i A(i,2) A(k,2 ) A(i,2); A(i,2) k } } RET URN
实验报告
实验名称
线性表的插入语删除
班 学 姓 成
级 号 名 绩
实验概述:
【实验目的及要求】
掌握线性表在顺序分配下的插入与删除运算; 掌握线性表的链式存储结构; 掌握插 入排序的方法;并掌握一种产生随机数的方法。
【实验原理】
(1)随机整数的产生 设 m=216,初值 y0=0,则递推公式 yi=mod(2053 yi-1+13849,m)产生 0 至 65535 之间的 随机整数。如要产生 0 至 999 之间的随机整数,只需做运算 xi=INT(1000yi/m)。 (2)线性表的插入与删除 1.插入 输入:数组 L(1:m),有序线性表 L(1:n),需插入的新元素 b。其中 n<m。 输出:插入 b 后的有序线性表 L(1:n)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北航计软实验报告一
————————————————————————————————作者: ————————————————————————————————日期:
计算机软件基础上机实验报告(一)
XXXXXX班XXX
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;
doubleduration;
//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个随机整数链接成有序链表
(不改变原随机数在存储空间中的顺序)
**/
#defineN 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(structdata));
n->next=NULL;
fscanf(fi,"%d",&a);
ﻩn->num=a;
ﻩhead=n;
for (i=1;i<=N-1;i++)

ﻩﻩn=(struct data*)malloc(sizeof(structdata));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-s tart)/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);。

相关文档
最新文档