北京理工大学计算机实验七报告表

合集下载

北京理工大学计算机实验七报告表

北京理工大学计算机实验七报告表

实验七实验报告表实验名称:广域网通信与邮件传输学号:姓名:班级:实验时间:实验报告表7-1网络中实现通信互联的主要设备和其功能主要设备功能或描述电脑查看、编辑、发送邮件DNS服务器为网络提供域名路由器连接网络邮件服务器负责电子邮件收发管理的设备实验报告表7-2域名解析的IP路由通讯的过程步骤操作或过程描述、所涉及设备1电脑/发送邮件/IP:10.7.1.62路由器A传到路由器B3路由器B传到路由器D4路由器D传到邮件服务器实验报告表7-3数据在网络中的IP路由通讯过程步骤操作或过程描述、所涉及设备1电脑/输入邮件内容并发送2经路由器A传到路由器N3经路由器N传到DNS服务器4由DNS服务器发出5经路由器N传到路由器B6经路由器B传到路由器D7由路由器D传到邮件服务器由邮件服务器发出邮件实验报告表7-4路由器是如何确定进行转发的下一跳路径的路由器IP目标网络子网掩码路由节点地址A106.17.22.1255.255.255.0122.12.18.3208.5.5.0255.255.255.0122.12.18.3207.113.21.1255.255.255.011.45.2.4 B208.5.5.0255.255.255.0112.12.45.3106.17.22.0255.255.255.0112.12.45.3209.113.21.0255.255.255.021.22.1.5 C145.13.21.0255.255.255.0145.12.21.3255.255.255.0255.255.255.0D209.113.21.0255.255.255.0209.113.21.1255.255.255.0255.255.255.0。

北京理工大学自动化专业微机原理硬件软件实验

北京理工大学自动化专业微机原理硬件软件实验

北京理工大学自动化专业微机原理硬件软件实验------------------------------------------作者xxxx------------------------------------------日期xxxx微机原理与接口技术硬件实验报告班级:姓名:学号:实验一: 8259中断控制器实验一、实验目的1. 掌握8259的工作原理。

2. 掌握编写中断服务程序的方法。

3. 掌握初始化中断向量的方法。

二、实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。

三、实验设备微机实验教学系统实验箱、8086CPU模块四、连线①单脉冲发生器输出P+与8259的IR0相连②8259的片选CS8259与CS0相连③8259的INT与8086的INT相连④8259的INTA与8086的INTA相连⑤CS273与CS1相连⑥00与LED1相连其它线均已连好如下图:五、实验步骤(1)连线。

(2)编辑程序,编译链接后,调试程序。

(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。

(4)撰写实验报告。

六、实验源程序CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART: MOV DX,4A0H ;写ICW1MOV AX,13HOUT DX,AXMOV DX,4A2H ;写ICW2MOV AX,80H ;IR0的中断向量码为80HOUT DX,AXMOV AX,01OUT DX,AX ;一般嵌套,非缓冲,非自动EOIMOV AX,0 ;写OCW1OUT DX,AX ;允许中断;中断向量存放在(0000H:0200H)开始的四个单元里MOV AX,0MOV DS,AXMOV SI,200H ;中断类型号为80HMOV AX,OFFSET HINT ;中断服务程序的入口地址MOV DS:[SI],AXADD SI,2MOV AX,CSMOV DS:[SI],AXSTI ;开中断,设置IF=1JMP $ ;原地跳转HINT: ;中断服务程序XOR CX,0FFH ;CX取反MOV DX,4B0H ;CS273接口的地址,与8个LED灯相连MOV AX,CX ;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的地址MOV AX,20H ;一般EOI命令,全嵌套方式OUT DX,AXIRET ;中断返回CODE ENDSEND START七、实验思考题1.将P+连线连接到IR1—IR7任意一个;重新编写程序。

北京理工大学计算机学院数据库开发实验报告2

北京理工大学计算机学院数据库开发实验报告2

数据库系统开发实验报告1.2 实验二:触发器的创建与测试1.2.1内容检查订单明细表Sales.SalesOrderDetail中的信息,如果修改记录中的产品单价UnitPrice大于产品公开报价(Production.Product.ListPrice),则不能进行修改并抛出错误信息,否则,进行修改并将修改的有关信息写到Production.ProuctUpdateLog表中。

1.2.2要求1.使用RAISEERROR抛出错误信息。

2.修改信息记录表Production.ProductUpdateLog的内容:记录编号、订单编号、订单明细编号、产品编号、产品的公开报价、修改前产品的单价、修改后产品的单价、修改者的登录名。

使用存储过程完成该功能,并在存储过程中调用该存储过程。

3.给出触发器和存储过程的源代码和简要的说明(可以在代码中使用注释进行说明)。

4.设计触发器测试方案并给出测试的命令和结果,必要时可对测试结果进行分析。

实验内容:首先,用Windows系统下的登录,附加数据库AdventureWorks按照实验内容,我们先来查询一下AdventureWorks中的订单明细表Sales.SalesOrderDetail。

语句:USE AdventureWorksGOSELECT*FROM Sales.SalesOrderDetailGO查询结果如下:根据实验内容,创建名为Production.ProuctUpdateLog(产品更新日志)的表。

其属性分别为记录编号,订单编号,订单明细编号,产品编号,产品公开报价,修改前产品的单价,修改后产品单价,修改者登录名。

语句:/*记录编号,订单编号,订单明细编号,产品编号,产品公开报价,修改前产品的单价,修改后产品单价,修改者登录名*/USE AdventureWorksGOCREATE TABLE Production.ProductUpdateLog(记录编号int IDENTITY primary key,订单编号int not null,订单明细编号int not null,产品编号int not null,产品公开报价money,修改前产品单价money,修改后产品单价money,修改者登录名nvarchar(50) not null)GO运行结果如下:将修改者登录名设为不准为空,同时用IDENTITY关键字设主键“记录编号”为自动增长。

北理工操作系统内存管理实验报告

北理工操作系统内存管理实验报告

实验三:内存管理班级:学号:姓名:一、实验目的1.通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解;2.熟悉虚存管理的页面淘汰算法;3.通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。

二、实验要求1.设计一个请求页式存储管理方案(自己指定页面大小),并予以程序实现。

并产生一个需要访问的指令地址流。

它是一系列需要访问的指令的地址。

为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列。

2.页面淘汰算法采用FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。

而不再判断它是否被改写过,也不将它写回到辅存。

3.系统运行既可以在Windows,也可以在Linux。

三、实验流程图图1 页式存储管理程序参考流程四、实验环境硬件设备:个人计算机。

系统软件:windows操作系统,Visual C++6.0编译环境。

五、实验结果说明:模拟产生35个指令地址,随机产生20个指令地址进行排队,假设主存中共有10个工作集页帧。

将前9个指令调入内存,因为前9个指令中,页号为13的指令有两个,所以调入内存中共有8页。

此时主存中还有两个空闲帧。

此时按刚才随机顺序进行访问指令工作。

前9页因都在主存中可直接调用。

第10个随机地址为页号为5的指令,也在主存中,也可直接调用。

页号为24,3因不在主存中,需要调用进主存。

此时主存已满。

然后主存需要进行调用页号为27号的指令,因主存已满,需要执行FIFO算法,将最先进入主存的页号为30的指令调出,将27号放入第1000000帧。

以后需要调用的页面按照存在就无需调用,否则按FIFO原则进行调页工作。

六、实验感想七、实验代码#include <iostream>#include <iomanip>#include <stdlib.h>#include <time.h>#include <vector>#include <queue>//#include <algorithm>using namespace std ;#define PAGETABLE_NUM 35 //模拟进程的页表表项数量;#define AVAILABLEFRAME_NUM 10 //主存中固定工作集页帧的数量;#define RANDOMNUMBER_NUM 20 //产生随机指令地址的数量;structPageTableEntry{unsignedintFrameNum ;boolPressent ;};voidInitRandomAddr(vector<unsigned int>&RandomAddr) ;voidInitIdleFrameQueue(queue<unsigned int>&IdleFrameQueue) ;voidInitPageTable(vector<PageTableEntry>&PageTable, vector<unsigned int>&RandomAddr, queue<unsigned int>&IdleFrameQueue, queue<unsigned int>&AvtiveFrameQueue) ;voidSetPTE(PageTableEntry&PTE) ;int main(){int a ;//初始化RANDERNUMBER_NUM条随机的32位指令地址;vector<unsigned int>RandomAddr(RANDOMNUMBER_NUM) ;InitRandomAddr(RandomAddr) ;//初始化FIFS指针;vector<unsigned int>::iterator FIFS_pintor ;FIFS_pintor = RandomAddr.begin() ;//初始空闲帧队列;queue<unsigned int>IdleFrameQueue, ActiveFrameQueue ;InitIdleFrameQueue(IdleFrameQueue) ;//初始进程页表(模拟进程初始时,工作集已经使用至少10个页帧);vector<PageTableEntry>PageTable(PAGETABLE_NUM) ;InitPageTable(PageTable, RandomAddr, IdleFrameQueue, ActiveFrameQueue) ;//Testcout<<" 开始访问指令地址\n" ;vector<unsigned int>::iterator pt_RandomAddr ;for(pt_RandomAddr = RandomAddr.begin(); pt_RandomAddr != RandomAddr.end(); pt_RandomAddr++ ){unsignedintPageNum = (*pt_RandomAddr) >> 12 ;cout<<"地址:0x"<<hex<<*pt_RandomAddr<<dec<<"\t页号:"<<PageNum;if ( PageTable[PageNum].Pressent == 0 ) //该页不在主存中;{cout<<"\t该页不在主存,";if (IdleFrameQueue.empty()) //工作集空闲页帧已用完;{cout<<"执行FIFO淘汰算法\t";//FIFS算法淘汰一页;unsignedintFrame_Num ;Frame_Num = ActiveFrameQueue.front() ;ActiveFrameQueue.pop() ;PageTable[(*FIFS_pintor) >> 12].Pressent = 0 ; //标记此页已经被置换出主存;//置换进新页;PageTable[PageNum].FrameNum = Frame_Num ;PageTable[PageNum].Pressent = 1 ;ActiveFrameQueue.push(Frame_Num) ;//移动FIFS指针;FIFS_pintor++ ;}else{cout<<"调入所需页到空闲页\t";//调入当前所需的页到空闲页中;unsignedintFrame_Num ;Frame_Num = IdleFrameQueue.front() ;IdleFrameQueue.pop() ;PageTable[PageNum].FrameNum = Frame_Num ;PageTable[PageNum].Pressent = 1 ;ActiveFrameQueue.push(Frame_Num) ;}}elsecout<<"\t该页在主存";cout<<"\t帧号:"<<PageTable[PageNum].FrameNum<<endl ;}return 0 ;}voidInitRandomAddr(vector<unsigned int>&RandomAddr){cout<<" 生成随机指令地址\n" ;vector<unsigned int>::iterator pd ;srand( (unsigned)time( NULL ) );for(pd = RandomAddr.begin(); pd != RandomAddr.end(); pd++ ){//产生随机页号0~PAGETABLE_NUM - 1;unsignedint High_20 = rand() % PAGETABLE_NUM ;//产生随机偏移量0~4095 ;unsignedint Low_12 = rand() % 4096 ;unsignedintAddr = (High_20 << 12) | Low_12 ;*pd = Addr ;cout<<"随机指令地址:0x"<<setw(8)<<setfill('0') <<setiosflags(ios::uppercase | ios::fixed)<<hex<<*pd<<"\t页号:"<<dec<<High_20<<"\t偏移量:0x"<<hex<<Low_12<<dec<<endl ;}}voidInitIdleFrameQueue(queue<unsigned int>&IdleFrameQueue){//帧号从0~1048575,这里取1000000~1000016;for ( unsigned intFrameNum = 1000000; FrameNum< 1000000 + AVAILABLEFRAME_NUM; FrameNum++ )IdleFrameQueue.push(FrameNum) ;}voidInitPageTable(vector<PageTableEntry>&PageTable, vector<unsigned int>&RandomAddr, queue<unsigned int>&IdleFrameQueue, queue<unsigned int>&AvtiveFrameQueue){cout<<" 初始化页表; \n" ;for_each(PageTable.begin(), PageTable.end(), SetPTE) ;unsignedintPage_Num, Frame_Num ;for ( int count = 0; count < 9; count++){while(true){Page_Num = RandomAddr[count] >> 12 ;if ( PageTable[Page_Num].Pressent != 0 )break ;Frame_Num = IdleFrameQueue.front() ;IdleFrameQueue.pop() ;PageTable[Page_Num].FrameNum = Frame_Num ; //设置页帧号;PageTable[Page_Num].Pressent = 1 ; //标记页帧在主存中;AvtiveFrameQueue.push(Frame_Num) ; //记录活动页帧;cout<<"将模拟进程的第"<<Page_Num<<"页初始化至主存中,帧号为:"<<Frame_Num<<endl;}}cout<<endl ;}voidSetPTE(PageTableEntry&PTE){PTE.FrameNum = PTE.Pressent = 0 ; }。

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

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

《数据结构与算法统计》实验报告 学院: 班级: 学号: 姓名:一、实验目的 1.熟悉VC++6.0环境,学习使用C++实现链表的存储结构; 2.通过编程,上机调试,进一步理解线性表、链表、环表的基本概念。

二、实验内容采用单向环表实现约瑟夫环。

请按以下要求编程实现:① 从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。

环表中的结点编号依次为1,2,......,m。

② 从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出了这个环表的全部结点为止。

例如,m=10,s=3,n=4。

则输出序列为:6,10,4,9,5,2,1,3,8,7。

三、程序设计1、概要设计应用单向环表寄存数字序列。

⑴单向环表的抽象数据类型线性表的定义如下:ADT LinkList {数据对象:D = { ai | ai ?ElemSet, i=1,...,n,n≥0 }数据关系:R1 = { <ai-1, ai> | ai-1,ai ?D, i=2, ...,n }基本操作:Creat(LinkList &L,int m)操作结果:构造一个有m个结点的单向环表L。

found(LinkList L,int s)初始条件:单向环表L已经存在。

操作结果:找到单向环表L的第s个结点。

ysf(LinkList h,int n) 初始条件:单向环表L已经存在,且本次查找的起始结点h已找到。

操作结果:进行约瑟夫环的计算并输出相应值。

} ADT LinkList⑵主程序流程主程序首先调用Creat(LinkList &L,int m)函数,创建含有m个结点的单向环表L;再调用found(LinkList L,int s)函数查找第s个结点;最后调用ysf(LinkList h,int n)函数,进行约瑟夫环的计算并在屏幕上显示计算结果。

北京理工大学ZHZH

北京理工大学ZHZH

北京理工大学微机原理与接口技术实验报告实验内容:微机原理综合设计组别:姓名:班级:学号:一、实验目的1.利用所学知识设计简单计算器。

二、实验内容利用8255控制试验箱上的键盘,实现2位十进制数以内的加减乘除运算,将运算结果通过8250发送到上位机。

键盘为10个数字键0-9,六个功能键 +、-、*、/、=、复位。

三、实验方法1.设计思路⑴.根据题目要求首先应该实现试验箱上的键盘扫描功能,计算按下键码的键值(键值检测中应该加入相应的延时程序以达到精确扫描的目的)。

再进行加减乘除算数运算,通过8250芯片发送到上位机,利用串口小助手实现算数。

2.实验程序流程图。

四、实验源程序(必要的文字注释)初始化按键闭合? 开始按键扫描保存键值 进行算数运算按键恢复? 输出结果结束NN Y Y1.简单计算器程序。

ASSUME CS:CODECODE SEGMENTORG 100HSTART: MOV DX,04A6H ;控制寄存器地址MOV AX,90H ;设置为A口输入,;B口输出,C输出OUT DX,AX ;8255初始化MOV AX,0MOV DS,AXAAA: MOV DI,2000HMOV CX,10CCC1: MOV DS:[DI],0INC DILOOP CCC1MOV DI,2000HMOV DX,486HMOV AX,80HOUT DX,AXMOV DX,480HMOV AX,12OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,486HMOV AX,7OUT DX,AXMOV DX,482HMOV AX,0OUT DX,AXMOV DX,48AHIN AX,DXMOV DX,480HIN AX,DXCHECK0: ;CHECK0检测是否有健被按下MOV AX,OOH ;C口的PC0、PC1、PC2作为行选择线MOV DX,04A4H ;C口地址OUT DX,AX; 写入C口内容00H,即令所有行为低电平MOV DX,04A0H ;A口地址IN AX,DX ;读入A口的内容CMP AL,OFFH ;判定是否有列线为低电平JE CHECK0 ;没有,无闭合键,则循环等待MOV CX,05FFH ;延迟常数,可以修改来改变延时时间DELAY:LOOP DELAY ;有,则延迟清除抖动,当cx=0时则停止该循环行扫描键盘和列扫描键盘,确定被按键的行值和列值MOV CL,3 ;行数MOV AH,0MOV AL,0FBH ; 0fbh=1111 1011BCONTIN: PUSH AL ;将ax的内容(0fbh)入栈保存MOV DX,04A4H ;C口地址OUT DX,AL ;写入C口内容0fbh=1111 1011B,即将第三行置为低电平MOV DX,04A0H ;A口地址IN AL,DX ;读入A口的内容MOV AH,AL ;将A口的内容送入ahCMP GH,0FFH ;判断是否有列线为低电平JNE NEXT ;比较结果不等于0则转移,即有列线为低电平POP AX ; 比较结果等于0,即没有列线为低电平,(ax)=00fbhROR AL,1 ; fbh(1111 1011B)循环右移,(al)=1111 1101检测下一行LOOP CONTIN ;循环扫描下一行,确定行JMP CHECK0 ;若所有行都没有被按下,则返回check0重新检测NEXT: MOV CH,CL ;保存行值至chMOV CL,7 ;列值从0开始编号0-7BEGIN0: SHL AH,1 ; ah为A口的内容,逻辑左移1位,末位补0 JNC GOON ;无进位则转移,即可确定列LOOP BEGIN0 ;继续循环,确定列JMP CHECK0GOON: ;计算显示码在discode中的位置:(行数-1)*8 +列值MOV BL,CL ;保存列值至BLDEC CH ;行数减1MOV CL,3SHL CH,CL ;左移三位即相当于减1之后的行数*8ADD DL,CH ;确定显示码在discode表中的偏移量,即(行数-1)*8+列值MOV BH,0MOV CX,BX ;显示码在discode表中的偏移量送CXDISPLAY: ;显示输出MOV SI, OFFSET DISCODEADD SI,CX ;显示码偏移地址MOV DX,040AH ;C口地址MOV AL,0FHOUT DX,AL ;写入C口内容,使位控(LED1)有效MOV AL,CS:[SI] ; 取被按键的显示字形码送入al MOV DX,04A2H;B口地址OUT DX,AL ; 将显示字形码送B口输出显示NOPNOPCMP AL,3fhJNZ L1MOV AH,0JMP NEXT1L1: ;定义键码子程序L1CMP AL,06hJNZ L2MOV AH,1JMP NEXT1L2: ;定义键码子程序L2CMP AL,5bhJNZ L3MOV AH,2JMP NEXT1L3: ;定义键码子程序L3CMP AL,4fhJNZ L4MOV AH,3JMP NEXT1L4: ;定义键码子程序L4CMP AL,66hJNZ L5MOV AH,4JMP NEXT1L5: ;定义键码子程序L5CMP AL,6dhJNZ L6MOV AH,5JMP NEXT1L6: ;定义键码子程序L6CMP AL,7dhJNZ L7MOV AH,6JMP NEXT1L7:CMP AL,07hJNZ L8MOV AH,7JMP NEXT1L8: ;定义键码子程序L8 CMP AL,7fhJNZ L9JMP NEXT1L9:CMP AL,6fh ;AL与6FH比较JNZ L10 ;若ZF=0则存入L10中MOV AH,9JMP NEXT1L10:CMP AL,77hJNZ L11MOV AH,10JMP NEXT1L11:CMP AL,7chJNZ L12MOV AH,11JMP NEXT1L12:CMP AL,39hJNZ L13MOV AH,12JMP NEXT1L13:CMP AL,5ehJNZ L14MOV AH,13JMP NEXT1L14:CMP AL,79hJNZ L15JMP NEXT1L15:CMP AL,71hJMP AAANEXT1:MOV DS:[DI],AHINC DICMP DI,2004HCALL DELAY1JE ACLTJMP CHECK0ACLT:MOV AX,0MOV DX,0MOV DI,2000H ;将2000H送入DIMOV AL,DS:[DI] ;将DS:[DI]的地址送入AL MOV DL,DS:[DI+2]MOV BL,DS:[DI+1]CMP BL,10JNZ K1ADD AL,DLPUSH AX ;将AX压栈JMP LOOP1 ;转移到LOOP1地址K1:CMP BL,11JNZ K2SUB AL,DLPUSH AXJMP LOOP1K2:CMP BL,12JNZ K3MUL DLPUSH AXJMP LOOP1K3:CMP BL,13JNZ LOOP1DIV DLPUSH AXJMP LOOP1PPP:LOOP1:CALL DELAY1CALL SENDJMP KKKDELAY1: ;延时子程序MOV CX,0FFFFHLLL:LOOP LLLRETSEND:PUSH AXMOV DX,48AHSEND1:IN AX,DXJNZ SEND2JMP SEND1SEND2:POP AXMOV DX,480HOUT DX,ALRETKKK:JMP CHECK0DISCODE DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h;(0-7);定义各键码DB 7fh,6fh,77h,7ch,39h,5eh,79h,71h ;(8-F)DB 01h,02h,04h,08h,10h,20h,40h,80h;(abcdefgh);显示字形码表CODE ENDS ;代码段结束END START ;程序段结束五.实验结果简单计算器1位十进制实验结果截图。

北理工VHDL实验报告综述

北理工VHDL实验报告综述

本科实验报告实验名称:VHDL语言及集成电路设计实验课程名称:VHDL语言及集成电路设计实验时间:2014.5 任课教师:桂小琰实验地点:4-427实验教师:任仕伟实验类型:□原理验证□综合设计□自主创新学生姓名:学号/班级:组号:学院:信息与电子学院同组搭档:专业:电子科学与技术成绩:实验一:带有异步复位端的D触发器一、实验目的(1)熟悉linux操作环境和modelsim软件环境(2)理解时序逻辑和组合逻辑电路的区别(3)理解并行语句和顺序语句(4)用VHDL语言编写一个带有异步复位端的D触发器及其测试文件二、实验原理(1)组合逻辑和时序逻辑○1组合逻辑电路当前输出的值仅取决于当前的输入,不需要触发器等具有存储能力的逻辑单元,仅仅使用组合逻辑门○2时序逻辑电路的当前输出不仅取决于当前的输入,还与以前的输入有关,这类电路中包括寄存器等元件,也包括组合逻辑电路,寄存器通过一个反馈环和组合逻辑模块相连。

触发器便是属于时序逻辑电路(2)并行和顺序代码从本质上讲,VHDL代码是并发执行的。

只有PROCESS,FUNCTION或PROCEDURE内的代码才是顺序执行的。

当它们作为一个整体时,与其他模块之间又是并发执行的。

以下是3个并发描述语句(stat1,stat2和stat3)的代码,会产生同样的电路结构。

stat1 stat3 stat1stat2 = stat2 = stat3 = 其他排列顺序stat3 stat1 stat2(3)并行语句——进程(PROCESS)○1语法结构:[进程名: ]PROCESS (敏感信号列表)[变量说明语句]…BEGIN…(顺序执行的代码)…END PROCESS [进程名];○2PROCESS 的特点1多进程之间是并行执行的;2进程结构内部的所有语句都是顺序执行的;3进程中可访问结构体或实体中所定义的信号;4进程的启动是由敏感信号列表所标明的信号来触发,也可以用WAIT语句等待一个触发条件的成立。

北京理工大学数据结构实验报告选作1

北京理工大学数据结构实验报告选作1

《数据结构与算法统计》实验报告学院:班级:学号:姓名:一、实验目的1.熟悉VC++6.0环境,学习使用C++实现链表的存储结构;2.通过编程,上机调试,进一步理解线性表、链表的基本概念。

二、实验内容归并顺序表(选作)。

请按以下要求编程实现:①从键盘输入两个升序排列的整数序列linka和linkb,每个序列以输入0为结束标记。

②将链表linka和linkb归并为linkc,linkc仍然为升序排列。

归并完成后,linka和linkb为空表。

输出linkc。

③对linkc进行处理,保持升序不变,删除其中重复的整数,对重复的整数只保留一个,输出删除重复整数后的链表。

例如:linka输入为:10 20 30 40 50 0linkb输入为:15 20 25 30 35 40 45 50 0归并后的linkc为:10 15 20 20 25 30 30 35 40 40 45 50 50删除重复后的linkc为:10 15 20 25 30 35 40 45 50三、程序设计1、概要设计说明程序的主要功能,主程序的流程以及各个程序模块之间的调用关系,给出主要流程图。

应用单链线性表寄存数字序列。

⑴单链线性表的抽象数据类型线性表的定义如下:ADT LinkList {数据对象:D = { ai | ai ∈ElemSet, i=1,…,n,n≥0 }数据关系:R1 = { <ai-1, ai> | ai-1,ai ∈D, i=2, …,n }基本操作:Creat(LinkList &L)操作结果:构造单链线性表L。

MergeList(LinkList &La,LinkList &Lb,LinkList &Lc)初始条件:单链线性表La,Lb,Lc已经存在。

操作结果:归并La,Lb得到新的单链线性表Lc,Lc的元素也按值非递减排列。

Delete(LinkList &L)初始条件:链表L已经存在。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
145.12.21.3
255.255.255.0
255.255.255.0
D
209.113.21.0
255.255.255.0
209.113.21.1
255.255.255.0
255.255.255.0
207.113.21.1
255.255.255.0
11.45.2.4
B
208.5.5.0
255.255.255.0
112.12.45.3
106.17.22.0
255.255.255.0
112.12.45.3
209.113.21.0
255.255.255.0
21.22.1.5
C
145.13.21.0
255.255.255.0
实验七实验报告表
实验名称:
实验报告表7-1网络中实现通信互联的主要设备和其功能
主要设备
功能或描述
电脑
查看、编辑、发送邮件
DNS服务器
为网络提供域名
路由器
连接网络
邮件服务器
负责电子邮件收发管理的设备
实验报告表7-2域名解析的IP路由通讯的过程
步骤
操作或过程描述、所涉及设备
1
电脑/发送邮件/IP:10.7. 1.6
2
路由器A传到路由器B
3
路由器B传到路由器D
4
路由器D传到邮件服务器
实验报告表7-3数据在网络中的IP路由通讯过程
步骤
操作或过程描述、所涉及设备
1
电脑/输入邮件内容并发送
2
经路由器A传到路由器N
3
经路由器N传到DNS服务器
4
由DNS服务器发出
5
经路由器N传到路由器B
6
经路由器B传到路由器D
7
由路由器D传到邮件服务器
由邮件服务器发出邮件
实验报告表7-4路由器是如何确定进行转发的下一跳路径的
路由器IP
目标网络
子网掩码
路由节点地址
A
106.17.22.1
255.255.255.0
122.12.18.3
208.5.5.0
255.255.255.0
122.12.18.3
相关文档
最新文档