第一篇:刑法实验教学实验指导书
模拟法庭实验指导书(刑事案件用)
一、实验目的
1.掌握起诉状、辩护词、一审判决书等民事诉讼司法文书的撰写。2.掌握我国一审普通程序开庭审理的基本环节和流程。3.提高法庭口头表达和应变能力。4.培养证据意识和证据运用能力。
5.提高根据刑法、刑事诉讼法以及相关司法解释分析、解决问题的能力。
二、实验内容
根据相关法律的规定,对给定案例进行分析和讨论,然后根据自己扮演的诉讼角色写作相关司法文书,组织和参与一审开庭审判。
三、实验步骤
1.参与人员及角色的选定
根据法庭审判人员配置要求,审判参与人员包括:法官(3人或5人)、书记员和速记员(总2人)、法警(1人)、公诉人(2人)、辩护人(2人)、被告(1人)证人(1~15人),各班按以上人员的配备协调分配好人选。
2.安排好模拟现场,并按上条所述各角色名称制定好角色牌,以供现场使用。桌椅按法庭现场要求提前布置。
3.法官在审判前需要草拟案件的初步判决书,最后的判决根据庭审情况再加以修正。
4.全班所有人员无故不得缺席,违者按旷课论。
四、实验报告
所有人员必须根据案情事先写好起诉状、辩护词、公诉词、判决书,并于模拟法庭结束之时交给指导老师,不能雷同,不交及雷同者以实验不及格论处。
五、刑事诉讼流程
刑事诉讼的具体程序参见以下图标,通过实验把握刑事诉讼的基本程序:
第二篇:《操作系统》实验教学指导书2.1
天津理工大学华信软件学院 《操作系统》实验教学指导书2.1 课程代码: 课程名称: 适用专业: 指导教师:
1460350
操作系统 / Operating System 软件工程专业 张一鸣 开课院(系)、实验室:华信软件学院C408机房
实验指导书名称: 《操作系统实验教程(Linux版)》第七章
实验二 进程的建立与调度(2.1 进程的建立与控制)
1.实验目的
(1)加深对进程概念的理解,明确进程和程序的区别。(2)进一步理解并发的概念,明确并发与并行的异同。(3)分析进程竞争资源现象,学习解决进程互斥的方法。(4)了解Linux系统中进程通信的基本原理。
2.实验内容
(1)进程的创建
编写一段源程序,使用系统调用fork()创建一个子进程,当此程序运行时,在系统中有一个父进程和一个子进程活动。让每一个进程在屏幕上显示一个字符串;父进程显示字符“I am the parent”并显示其进程id和子进程的id;子进程显示字符串“I am the child”,并显示其进程id。
(2)进程的控制
进程并发图,如图1所示。
设有7个进程,其执行次序如图1所示。在Linux下使用C语言利用系统调用命令fork(),execl(),exit(),wait()进行藐视,调用execl()函数的时候,模拟调用/bin/echo下的echo命令,向控制台输出一句可鉴别是哪个进程的字符串即可。
3.准备知识
(1)阅读Linux的sched.h源文件,加深对进程管理概念的理解。(2)阅读Linux的fork.c源文件,分析进程的创建过程。
4.实验原理
Linux是一个多用户多任务的操作系统,即在同一个时间内,可以有多个进程同时执行。常用的单CPU单核计算机在同一个时间片内只能执行一条命令,Linux使用了一种称为“进程调度(process scheduling)”的手段来实现。首先,为每个进程分配一定的运行时间片,该时间片通常以毫秒为单位,然后依照某种调度算法,从就绪队列中选择一个进程投入运行,其他的进程暂时等待。当正在运行的进程时间片耗尽,或执行完毕退出,或因某种程度原因暂时被挂起,系统就会重新调度,选择下一个进程投入运行。因为每个进程占用的时间片都很短,对于用户而言,就好像多个进程在同时运行。
在Linux中,系统为每个进程创建一个进程控制块(Process Control Block,简称PCB)。PCB是一个特定的数据结构,包括了很多重要的信息,供系统调度和进程本身执行用。其中进程ID(process ID)被称作进程标识符,用来唯一标识该进程。
5.实验步骤
(1)进程的创建
使用fork()函数创建进程。返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1.具体流程图如图2所示。
(2)进程的控制
在Linux下使用C语言利用系统调用命令ford(),execl(),exit(),wait()进行描述。调用execl()函数的时候,模拟调用/bin/echo下的echo命令,向控制台输出一句可以鉴别是哪个进程的字符串即可。
6.参考代码及运行结果
(1)进程的创建
[源程序] #include
printf(“I am the child, my pid is %d!n”,getpid());} else {
printf(“I am the parent, my pid is %d, my child pid is %d!n”,getpid(),pid);} } [运行结果] I am the child, my pid is 5947!I am the parent, my pid is 5946, my child pid is 5947!(2)进程的控制
[源程序] #include
execl(“/bin/echo”,“echo”,“I am P1”,0);} wait(&status);if((p2=fork())==0){
execl(“/bin/echo”,“echo”,“I am P2”,0);} if((p3=fork())==0){
execl(“/bin/echo”,“echo”,“I am P3”,0);} do {
pid=wait(&status);
if(pid==p2)
end_p2=1;
if(pid==p3)
end_p3=1;}while(end_p3==0);if((p4=fork())==0){
execl(“/bin/echo”,“echo”,“I am P4”,0);} if((p5=fork())==0){
execl(“/bin/echo”,“echo”,“I am P5”,0);} do {
pid=wait(&status);
if(pid==p4)
end_p4=1;
if(pid==p5)
end_p5=1;}while(end_p4==0||end_p5==0);if((p6=fork())==0){
execl(“/bin/echo”,“echo”,“I am P6”,0);} do {
pid=wait(&status);
if(pid==p2)
end_p2=1;
if(pid==p6)
end_p6=1;}while(end_p2==0||end_p6==0);if((p7=fork())==0){
execl(“/bin/echo”,“echo”,“I am P7”,0);} wait(&status);exit(1);} [运行结果] I am P1 I am P2 I am P3 I am P4 I am P5 I am P6 I am P7
第三篇:实验教学指导书 - 移动通信
电子科技大学
通信抗干扰技术国家级重点实验室
实验教学指导书
(实验)课程名称
移动通信
电子科技大学教务处制表 实验一 无线信道特性及其分析方法
一、实验目的
1.了解无线信道各种衰落特性;
2.掌握各种描述无线信道特性参数的物理意义;
3.利用MATLAB中的仿真工具模拟无线信道的衰落特性。
二、实验原理
1.预习信道模型的部分;
三、实验步骤 3.1 模型及关键模块讲解
1.将当前文件夹改为程序对应的文件夹。
2.打开MATLAB,点击File命令下的Open,选择对应的文件目录,打开已经完成的模型“QPSK_Rayleigh_Channel_6_5.mdl”。
3.关键模块功能介绍和参数配置:(请确保参数和下面图形内一致)
1)Bit Source,输出随机的信源比特;
2)Convert:示范一个Simulink和m语言接口的程序
3)Unipolar to Bipolar Converter,双极性变单极性模块,按照下列参数设置完成二进制0、1变为双极性
1、-1序列(二进制0对应输出1,二进制1对应输出-1)
点击上图中的Help按钮,可以获得该模块功能说明和参数的含义。4)Rectangular QAM Modulator Baseband,典型的QAM的调制模块,按下述参数可以完成QPSK调制。
-pi/2
点击上图中的Help按钮,可以获得相关模块功能的详细说明和参数的含义。5)Multipath Rayleigh Fading Channel:瑞利多径信道模型
6)Awgn Channel:高斯噪声信道 7)Signal Trajectory of QPSK Signal
8)
11,Before Rayleigh Fading1 和 12,After Rayleigh Fading
9)Display 模型中的多个Display模块会显示不同位置的数据。 Display1显示输入的二进制序列;
Display2显示每2个比特为1组进行前后顺序交换后的序列; Display3显示输入二进制序列转化为双极性二进制后的序列; Display4显示调制后的符号;
3.2 运行程序并进行分析
1.调试。(可选项)
从MATLAB的主命令窗口中打开嵌入的m语言程序f_convert.m,打开后如下图,注意该程序必须和对应的QPSK_Rayleigh_Channel.mdl文件在相同的目录下,且MATLAB的当前目录也要指向该目录
在其中第2行后的任意地方可以设置断点(在对应行左侧灰色部分处单击),如下:
运行Simulation(点击Simulation选项下的Start),则将在第一次调用该程序的时候,停止于断点,此后,可以用step(()或step in)进行单步调试,并检查数据的变化(将鼠标指向需要观察的变量L,将会自动出现小框描述此时L的数值)。完成对该嵌入的m语言子函数的验证后,可以再次单击原断点处的红色标记以取消该断点,并按Continue()返回Simulation的运行。
2.运行程序,点击Simulation选项下的Start,开始运行程序,出现瑞利信道的特征示意图
(选做,有兴趣的自行在高版本中试验,低版本的MATLAB没有该功能)
在运行过程中,通过选择 Visualization的选项,可以得到不同的信道特征图(本实验只观察Impulse Response 和Doppler Spectrum两个图形)。
四、实验作业
1.在程序运行的过程中,任取一段Display1的数据和Display4的数据,分析其是否满足QPSK的调制过程; 分析:Display1:
10100011
-0.7071+0.7071i-0.7071-0.7071i
Display4:-0.7071+0.7071i
0.7071+0.7071i 由此四个值,画出对应的星座图10_10_00_11,可得
310->->-0.7071+0.7071i,4500->->0.7071+0.7071i,11->->-0.7071-0.7071i。所以满足44QPSK的调制过程。
2.调试嵌入的f_convert.m,看看临时变量L的取值为多少。
分析:L=8。
3.运行过程中,分别截取Signal Trajectory of QPSK Signal,11,Before Rayleigh Fading1 和 12,After Rayleigh Fading模块输出的QSPK的相位转移图和瑞利信道前后的星座图,进行解释。
图2 Signal Trajectory of QPSK Signal
图3 11,Before Rayleigh Fading1
图4 12,After Rayleigh Fading
实验二 典型通信系统的搭建和分析
一、实验目的
1.学习基于BPSK、QPSK和卷积码的典型通信系统的链路实现;
二、实验原理
1.预习调制和关键技术部分;
三、实验步骤 3.1模型及关键模块讲解
1.打开MATLAB,点击File命令下的Open,选择对应的文件目录,打开已经完成的模型“BPSK_QPSK_AWGN_BER_6_5.mdl”。
2.关键模块功能介绍和参数配置:(请确保参数和下面图形内一致)
1)Bit Source,输出随机的信源比特;
2)Convolutional Encoder,卷积码编码模块
3)BPSK Mod,用典型的QAM调制模块(Rectangular QAM Modulator Baseband)完成BPSK调制。
4)BPSK Demod,用典型的QAM解调模块(Rectangular QAM Demodulator Baseband)完成BPSK解调。
5)QPSK Mod,用典型的QAM调制模块(Rectangular QAM Modulator Baseband)完成QPSK调制。
6)6, QPSK Demod,用典型的QAM解调模块(Rectangular QAM Demodulator Baseband)完成QPSK解调。
7)7, AWGN Channel1,添加白高斯噪声模块(BPSK链路);
8)8, AWGN Channel1,添加白高斯噪声模块(QPSK链路);
9)9, Viterbi Decoder / 10, Viterbi Decoder,Viterbi译码器;
10)Compare Encoder1 / Compare Encoder3,误码率比较
11)
Compare Encoder2/ Compare Encoder4,误码率比较
12)Display1/ Display2/ Display3/ Display4,显示误码率比较的结果,第一行为BER,第二行为错误的比特数,第三行为比较的总比特数。其中,Display1 和 Display3 显示的是包含卷积码编译码的系统性能;Display2 和 Display4 显示的是不包含卷积码编译码的系统性能;
13)Probe1 / Probe2 / Probe3,可以实时显示测试接点上数据的特征(目前开放的是该路数据的宽度和该路数据总体的采样时间)。
3.2运行程序并进行分析
1.运行程序,点击Simulation选项下的Start,开始运行程序,观察测试显示的误码率和Probe显示的数据特点。
四、实验作业
1.对比Probe1/ Probe2/ Probe3处的数据,说明采用BSPK和QPSK调制前后,比特周期和符号周期之间的关系。分析: 调制前:
Probe1:
W:16,Tf:[1.6e-005 0] Probe2:
W:16,Tf:[1.6e-005 0]
QPSK Probe3:
W:16,Tf:[1.6e-005 0]
BPSK 调制后:
Probe1:
W:16,Tf:[1.6e-005 0] Probe2:
W:08,Tf:[1.6e-005 0]
QPSK Probe3:
W:16,Tf:[1.6e-005 0]
BPSK 由此知,BPSK的周期与符号周期是相等的;而QPSK的周期是符号周期的一半。
2.分别为BPSK和QPSK链路选择多个Es/N0(dB,2,4,6,8),运行链路,记录数据,将4个Es/N0条件下运行得到的两组误比特率数据(无编译码的)直接赋给BER_BPSK_QPSK.m程序中的ber_BPSK和ber_QPSK,替换原有的[1,2,3,4]数据,运行BER_BPSK_QPSK.m程序,画出在相同Es/N0下的BPSK和QPSK性能曲线,将两个图进行比较,判断结果是否正常,并进行解释。(每个Es/N0大概需要5-6分钟,也可以自行将链路复制,从而一次可以运行多个Es/N0(选作))
分析:改变之后:
2:1.895e+006
6:1.813e+006
4:1.854e+006
8:1.921e+006
ber_BPSK = [0.03757,0.01252,0.002384,0.0001875];ber_QPSK = [0.1041,0.05681,0.02307,0.006066];
由图像可知,BPSK和QPSK的Es/N0相差约3dB, 3.1)分别对BPSK设置多个Es/N0(dB,2,4,6,8),对QPSK设置多个Es/N0(dB,5,7,9,11),此时二者对应的Eb/N0相同,将4次得到的误比特率数据(无编译码的)直接赋给BER_BPSK_QPSK.m程序中的ber_BPSK和ber_QPSK,替换原有的数据,运行BER_BPSK_QPSK.m程序,画出在相同Eb/N0下的BPSK和QPSK性能曲线,对这两个图进行比较分析和解释;2)分析无编码的MPSK调制方式下Es/N0和Eb/N0的关系,写出二者的关系式。分析: 2:1.416e+006 4:1.329e+006 6:9.705e+005 8:1.133e+006
4.1)在完成作业3时,同时可以得到两个不同测试点的误码率(包含编译码和不包含编译码的),参考BER_BPSK_QPSK.m的模式进行画图,比较二者的区别并进行解释;2)分析码率为R、采用MPSK调制方式的Es/N0和Eb/N0的关系,写出二者的关系式。分析:
5.(选作)比较包含编译码和不含编译码两种系统的误比特率性能时,考虑在相同Eb/N0的条件下,所采用的卷积编码器的编码增益。注意:
在高版本中,berawgn函数输出的是未编码调制系统误比特率随着Eb/N0的变化曲线。作业3的性能曲线与该曲线进行比较,可以验证作业3的结果是否正确。在低版本中,大家可以在BER_BPSK_QPSK.m中,利用erfc函数计算BPSK和QPSK的理论误比特率,来验证仿真性能是否正确(自行编写代码)。 在作业2、3中,在测试调制链路误码率性能时(不考虑编译码),可以直接将编码后的数据当做输入信源来看,所以:一个bit的周期为1e-6,BPSK的AWGN信道的Symbol Period设为1e-6;QPSK的AWGN信道的Symbol Period设为2e-6,都表示的是调制符号周期。
实验三 典型通信系统的搭建和分析(对比实验)
一、实验目的
1.学习基于BPSK,QPSK和卷积码的典型通信系统的m语言实现;
二、实验原理
1.预习调制和关键技术部分;
三、实验步骤
3.1模型及关键模块讲解
1.MATLAB提供了标准函数berawgn()用于计算典型的调制方式在AWGN环境下的误码率,bercoding():用于计算采用卷积编码的相干PSK系统在AWGN信道下的误比特率上界。
2.打开MATLAB,点击File命令下的Open,选择对应的文件目录,打开m程序 vitsimdemo.m / wireless_comm_viterbi_demod.m.运行即可得到卷积码编码,解码后的误码率。
3.关键函数功能介绍和参数配置:
1)trellis = poly2trellis(constlen, codegen):生成卷积码编码、译码所需要的网格图
2)msg_orig = randi([0 1], numSymb, 1):生成随机的0,1(低版本matlab使用randsrc()完成此功能)3)msg_enc = convenc(msg_orig, trellis)卷积编码 4)hMod = modem.pskmod():产生调制信息
5)msg_tx = modulate(hMod, msg_enc);调制编码后的信息(在低版本matlab中由函数dmodce完成4、5的功能)6)awgn()添加awgn噪声
7)demodulate():解调(低版本matlab中由ddemodce完成此功能)8)vitdec():viterbi解码
3.2运行程序并进行分析
1.运行程序:按F5即可运行该代码。观察误码率曲线和数据特点。了解各个函数的用法。
2.为了看每一段程序的功能,可以在每段设置断点,观测每一段的输出。也可以按F10单步执行。
四、实验作业
1.对比QPSK调制前后bit和符号的关系。了解经过QPSK调制后比特周期和符号周期之间的关系。
2.了解Es /N0 与Eb/N0的关系 3.以框图的形式画出程序执行流程图
4.(选作)修改程序,得到仿真ber曲线,并与理论曲线对比
第四篇:工商管理模拟实验教学指导书
《工商管理模拟》实验教学指导书
课程编号:123091 课程名称:
工商管理模拟 实验学分:1
实验学时:
适用专业:工商管理专业
实验
一、营销管理模拟
实验目的与要求:要求学生掌握企业营销管理的基本方法和撰写营销报告;目的是培养学生灵活运用所学的营销基本知识和原理,培养学生解决实际问题的能力。
实验条件:本实验要求使用营销管理仿真系统,运行的计算机硬件要求为P3以上,10G硬盘,局域网运行,WINDOW98,2000以及WINDOW XP操作系统,实验需要工商管理模拟配套软件。
实验内容:企业营销策划和企业营销管理
实验步骤:
一、教师进行有关实验基本操作讲解;
二、学生进入营销仿真系统进行企业营销环境和行业相关调查报告的阅读;
三、学生进行基本数据处理;
四、根据模拟的行业环境和企业产品服务情况进行企业营销策略的策划;
五、学生撰写实验总结
五、教师对实验进行归纳总结
注意要点:
一、远离电源和主服务器
二、参加实验的同学要注意实验室的安全
三、遵循实验操作流程,严禁利用实验课访问其他网站。
实验报告要求:完成实验,提交一份实验报告,要求以企业营销策划为主要内容,2500字左右格式参考教材。
实验
二、技术、采购和设备管理模拟
实验目的与要求:要求学生掌握工商企业技术、采购和设备管理的流程和管理原则;通过本实验其最终目的是培养学生灵活运用所学的运营管理和物流管理的基本理论来设计企业相关管理制度。
实验条件:本实验要求使用企业内部管理系统软件,该软件要求在WINDOW98,2000以及WINDOW XP操作系统运行,要求局域联网以培养学生的协调能力。实验要求使用的计算机至少在奔3以上,10G硬盘,具有同时40人上网操作的机房。
实验内容:
一、设计企业采购环节和采购管理
二、设计企业技术管理规范
实验步骤:
一、教师进行有关实验基本理论和操作方式的讲解;
二、学生进入企业内部管理系统界面,进入企业技术、采购和设备管理仿真系统;
三、学生设计企业内部管理制度和相关管理环节;
四、通过局域网运行相互检测设计情况;
五、学生撰写实验总结;
六、实验指导教师进行实验课程的总结。
注意要点:
一、远离电源和主服务器
二、参加实验的同学要注意实验室的安全和卫生
三、遵循实验操作流程,严禁利用实验课访问其他网站
四、注意模拟设计时的可操作性
实验报告要求:完成实验,提交一份实验报告,要求以企业内部的技术、采购和设备管理为核心内容,以实验结论为依据撰写2500字左右的实验报告,相关格式参考教材。
实验
三、生产管理模拟
实验目的与要求:要求学生掌握企业生产管理的过程与原则,并根据模拟实验撰写企业生产管理条例。目的是通过企业生产管理模拟使学生掌握企业生产管理的各个环节,使学生明确生产管理实际操作。
实验条件:本实验要求使用生产管理仿真系统,运行的计算机硬件要求为P3以上,10G硬盘,局域网联网;操作系统为WINDOW98,2000以及WINDOWXP操作系统,实验需要配套软件和容纳40人的模拟实验室。
实验步骤:
一、教师介绍背景企业生产管理的基本情况和实验基本操作;
二、学生进入生产管理仿真系统界面,模拟设计企业生产管理规范;
三、教师进行实验的在线解答;
四、学生在线据提交生产管理规范文本;
五、教师进行实验总结。
实验内容:设计企业生产管理规范和条例 注意要点:
一、远离电源和主服务器
二、参加实验的同学要注意实验室的安全
三、遵循实验操作流程,严禁利用实验课访问其他网站
四、独立完成实验
实验报告要求:在线提交电子版的实验报告。格式参考教材中企业生产管理规范的范本。
实验
四、仓库管理与财务管理模拟
实验目的与要求:要求学生掌握企业原材料仓库和产品仓库管理的管理方法和管理技术,掌握企业财务管理的流程和管理原则。本实验的目的是使学生掌握仓库和财务管理的基本技巧,使学生了解企业仓库管理和财务管理的重要性和复杂性。
实验条件:本实验要求使用企业物流管理子系统和企业财务系统软件,要求软件具有可操作性,运行的计算机硬件要求为P3以上,10G硬盘,局域网运行,WINDOW98,2000XP操作系统,实验需要配套浏览器以及其他视频软件。
实验内容:企业仓库管理模拟和企业财务管理模拟 实验步骤:
一、教师讲解企业仓库和财务管理的基本知识和实验中模拟企业的基本情况;
二、学生进入模拟仿真系统界面,了解本实验的运营环境和要求
三、学生进行模拟实验的仓库和财务管理的设计
四、根据模拟的结果学生撰写实验总结
注意要点:
一、独立完成实验
二、远离电源和主服务器
二、参加实验的同学要注意实验室的安全和卫生
三、遵循实验操作流程,严禁利用实验课访问其他网站。
实验报告要求:完成实验,提交一份电子版本的实验总结,要求以模拟仿真系统中的企业案例系统地总结企业仓库管理和财务管理的基本流程和核心管理环节背景。格式自定。
实验
五、人力资源管理模拟
实验目的与要求:要求学生掌握企业人力资源管理的基本方法和原则;通过本实验可以锻炼学生对企业人力资源管理各环节的了解和掌握,综合运用所学的基本理论解决模拟实验中的人力资源管理问题。
实验条件:本实验要求使用人力资源管理仿真系统,运行的计算机硬件要求为奔3以上,10G硬盘以上,要求学生使用的计算机局域网运行,计算机操作系统为WINDOW98,WINDOW2000,WINDOWXP操作系统,实验需要工商管理模拟配套软件。
实验内容:人力资源管理的各个环节
实验步骤:
一、教师有针对性就企业人力资源管理的问题进行综述;
二、学生注册进入人力资源管理模拟仿真系统,独立完成模拟系统中的各个环节的问题;
三、学生撰写实验报告
四、教师就实验进行总结
注意要点:
一、要求学生独立完成模拟实验
二、远离实验室总电源和主服务器
二、参加实验的同学要注意实验室的安全
三、遵循实验操作流程,严禁利用实验课访问其他网站。
实验报告要求:独立完成实验报告。要求满足
1、实验报告要包括模拟实验中人力资源管理过程中的一个环节;
2、实验格式要参照管理咨询公司人力资源管理策划报告;
3、实验报告在一周内提交;
4、实验自数在5000字内。
第五篇:数据结构 实验指导书
数 据 结 构 实 验 指 导 书
数据结构实验指导书
目录
数据结构实验指导书.......................................................................................................................1
目录...........................................................................................................................................1 实验指导书概述...............................................................................................................................2 上机实验题目...................................................................................................................................3
实验一 C语言相关知识复习................................................................................................3
一、实验目的...................................................................................................................3
二、实验内容...................................................................................................................3 实验二 单链表的插入、删除...............................................................................................3
一、实验目的...................................................................................................................3
二、实验内容...................................................................................................................3
三、实现提示...................................................................................................................4 实验三 栈及其应用.................................................................................................................5
一、实验目的...................................................................................................................5
二、实验内容...................................................................................................................5 实验四 二叉树的递归算法.....................................................................................................6
一、实验目的...................................................................................................................6
二、实验内容...................................................................................................................6 实验五 图的遍历.....................................................................................................................7
一、实验目的...................................................................................................................7
二、实验内容...................................................................................................................7 实验六 有序表的查找.............................................................................................................7
一、实验目的...................................................................................................................7
二、实验内容...................................................................................................................7 实验七 哈希表.........................................................................................................................7
一、实验目的...................................................................................................................7
二、实验内容...................................................................................................................7 实验八 内部排序算法的应用.................................................................................................8
一、实验目的...................................................................................................................8
二、实验内容...................................................................................................................8
实验指导书概述
“数据结构”是计算机专业一门重要的专业技术基础课程,是一门关键性核心课程。本课程系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了多种常用的查找和排序技术,并对其进行了性能分析和比较,内容非常丰富。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。
由于以下原因,使得掌握这门课程具有较大难度: 内容多,时间短,给学习带来困难;
贯穿全书的动态链表存储结构和递归技术是学习中的重点和难点; 隐含在各部分的技术和方法丰富,也是学习的重点和难点; 先修课程中所介绍的专业性知识不多,加大了学习难度。
由于数据结构课程的技术性与实践性,《数据结构课程实验》的设置十分必要。为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。
上机实践是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通过上机实践,使学生在可能短的时间内对数据结构知识的实践和应用有一个比较全面和系统的认识,达到理论与实践相结合的目的。
为了达到上述目的,本指导书安排了8个实验题目,它们与教科书的各章有紧密的关系,使学生在实验后能加深对课程内容的理解,增强动手能力。
每个实验题目采取了统一的格式,由问题描述、基本要求、测试数据、实现提示等部分组成。
问题描述旨在为读者建立问题提出的背景环境,指明问题“是什么”;
要求则对问题进一步求精,划出问题的边界,指出具体的参量或前提条件,并规定该题的最低限度要求;
测试部分旨在为检查学生上机作业提供方便,在完成实习题时应自己设计完整和 严格的测试方案,当数据输入量较大时,提倡以文件形式向程序提供输入数据;
实现提示对实现中的难点及其解法思路等问题作了简要提示,个别问题给出了参考实现。
下面带*的题目为选做题目。
上机实验题目
实验一 C语言相关知识复习
一、实验目的
复习C语言中函数、数组、结构体、文件等概念,掌握它们的描述与操作方法;熟悉掌握C++中typedef、引用参数调用(&)的概念及使用方法,为理解数据结构课程的后续内容以及算法书写奠定基础。
二、实验内容 问题描述:编写一个函数,求一个整数数组中的最大、最小值。
要求:在函数声明中采用引用参数传递方式实现最大、最小值的返回。测试:在主函数中输入10个数,调用此函数,打印输出最大和最小值。2 关于指针的使用:
用malloc方式分别申请两个指针,并实现两个指针内容的比较大小操作。要求:此功能在一个函数内实现,该函数接受两个整数值,存储到两个指针内容中,输出两者中的最大值。
测试:从主函数中输入两个数,调用该函数,打印输出交换后的值。
实验二 单链表的插入、删除
一、实验目的
1、熟悉某种数据结构在计算机上实现的方法。
2、掌握单链表的定义、创建、插入、删除、遍历等基本操作的实现。
3、体会单链表操作、有序表插入、删除的一般方法。
二、实验内容
问题描述:已知递增有序的单链表A,编写算法实现向A中插入或删除一个元素,并保持A的有序性。
实验要求:
1、结点的数据均为整型。
2、若表中已经存在此元素,则不插入
三、实现提示
1.在已知的线性表中插入或删除,需要下面的辅助函数:线性表的创建、线性表的遍历
2.在单链表表中插入或删除,需依次实现:
a)单链表结构的定义
b)单链表的创建(头插法或尾插法建表)c)单链表的遍历
d)单链表的插入、删除(采用顺序查找方法,顺头指针往后,查找插入或删除位置,再修改指针)
//头文件
#include “stdlib.h” //预定义常量 #define NULL 0
//单链表的定义
typedef struct LNode{ int data;struct LNode *next;}LNode,*LinkList;//单链表的创建
void Create_List(LinkList &L){ int data;LinkList p,q;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;
q=L;
scanf(“%d”,&data);while(data!=0){
p=(LinkList)malloc(sizeof(LNode));
p->data=data;
p->next=q->next;
q->next=p;
q=p;
scanf(“%d”,&data);} }
//单链表的遍历
void TranverseList(LinkList L){
LinkList p;
p=L->next;
if(p==NULL)
{
printf(“niln”);
return;
}
while(p!=NULL)
{
printf(“%d ”,p->data);
p=p->next;
}
printf(“n”);}
实验三 栈及其应用
一、实验目的
1、熟悉栈的顺序表示与实现。
2、熟悉栈的应用。
3、理解并掌握递归函数的设计与实现。
二、实验内容 问题描述:利用栈实现十进制数n转化为d进制数 要求:
1)输入一个n和d,打印输出d进制数序列。
2)利用顺序栈来实现十进制数n转化为其他d进制数。此时,需要同时实现初始化空栈、入栈、出栈、判栈空等辅助功能。测试数据:
(1)输入n:1348
d:8 输出:2504(2)输入n:9
d:8 输出:11(3)输入n:0
d:8 输出:0 2 问题描述:利用栈实现算术表达式求值。要求:
1)参与运算的操作数为10以内的数值。测试数据:
自拟。
实验四 二叉树的递归算法
一、实验目的
1、掌握二叉树的表示与实现。
2、掌握二叉树的定义、创建、遍历等基本操作的实现。
3、熟悉求二叉树深度等递归算法的设计与实现。
二、实验内容
问题描述:已知二叉树t,分别采用顺序存储结构、二叉链表存储结构实现求二叉树的深度,并对二叉树分别进行中序遍历。要求:
1、二叉树分别采用顺序或二叉链表存储。
2、树中的数据类型约定为整型。测试数据:
1、输入序列:-+aØØ*bØØ-cØØdØØ/eØØfØØ创建二叉树; 输出:深度:5
前序序列:-+a*b-cd/ef
中序序列:a+b*c-d-e/f
后序序列:abcd-*+ef/-T:d / e f
2、t=nil
输入:Ø
输出:深度:0 实验五 图的遍历
一、实验目的
熟悉图的基本操作,掌握图遍历的设计与实现。
二、实验内容
问题描述:已知的描述校园景点的图,实现对该图的深度优先和广度优先遍历。要求:
图采用邻接矩阵存储,顶点信息包括景点的名称和简单描述。
实验六 有序表的查找
一、实验目的
1、理解各种查找方法的基本思想
2、熟悉有序表查找方法的算法实现
二、实验内容 已知一有序的序列{1,3,5,7,9},采用折半法分别查找3和6。
2已知输入一无序的序列{5,1,3,9,7},创建一棵二叉排序树,然后对其遍历,输出递增有序的序列。
实验七 哈希表
一、实验目的
理解哈希表的概念和基本操作;熟悉哈希表的创建、查找、插入的算法实现。
二、实验内容
问题描述:已知11位好友的名字各不相同,设计并实现一个哈希表,根据好友的名字,可以取得其生日。要求:
1、好友的信息包含名字和生日两个数据项,其中好友的名字为主键,用汉语拼音形式存放;
2、哈希函数采取:好友名字中所有拼音字母ASCII码值的和 MOD 11(除以1取余);
3、采取线性探测再散列的方式处理冲突。
实验八 内部排序算法的应用
一、实验目的
理解各种内部排序方法的基本思想;熟悉各种内部排序方法的算法实现
二、实验内容
问题描述:已知一序列{503,087,512,061,908,170,897,275,653,426},分别采取下列排序方法对其进行排序:
(1)直接插入排序;
(2)简单选择排序;
(3)起泡排序;(4)快速排序;(5)堆排序。