实验3 逻辑笔的设计与仿真

实验3 逻辑笔的设计与仿真
实验3 逻辑笔的设计与仿真

实验3逻辑笔的设计与仿真

一、实验目的:

1.掌握用SSI设计组合电路的方法;

2.掌握模拟和数字混合电路的设计与仿真调试方法;

3.学会仿真软件Multisim(Proteus)的使用。

二、实验任务:

用模拟比较器和SSI设计逻辑笔。

逻辑笔亦称为逻辑探针,它是目前在数字电路测试中使用最为广泛的一种工具,它对检测数字电路中各点电平是十分有效的。对于大部分数字电路中的故障,这种逻辑笔可以很快地将故障查找出来。将逻辑笔的探头放在被测点上(例如芯片的引脚、电路的某一点),逻辑笔上的指示灯会将此点的逻辑状态指示出来(逻辑高电位、逻辑低电位、脉冲信号或高阻抗状态等)。要求逻辑笔可以测试以下5种逻辑状态并提供指示:

(a)绿色发光二极管亮时,表示逻辑低电平(逻辑0,TTL逻辑:<0.8V,COMS逻辑:<1.5V);(b)红色发光二极管亮时,表示逻辑高电平(逻辑1, TTL逻辑:>2.0V,COMS逻辑:>3.5V);(c)黄色发光二极管亮时,表示中浮空或三态的高阻抗状态;

(d)白色发光二极管亮时,表示无效电平(TTL逻辑:0.8~2.0V,COMS逻辑:1.5~3.5V);(e)如果红、绿发光二极管同时亮(或闪烁),则表示有脉冲信号存在。

三、实验要求:

1.采用电位器分压模拟被测试逻辑电平,高阻态通过一开关进行切换;

2.模拟比较器可以采用MAX907或其它比较器。

3.采用与门CD4081和或非门CD4001实现高电平、无效电平以及高阻状态的判别。

4.电路采用6V电源供电。

5.要求计算电路中各电阻的阻值,所有电阻均采用1/4W功率电阻。

四、设计说明:

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

网络综合实验设计

模块四综合模块设计(网络互联)班级14信管本学号141201120姓名李显明 实验时间2017年5月11日 实验地点综合实验楼608 分组及同组人双人组,同组人:付卫 实验项目网络互联 实验总结与讨论综合设计实验: 1、二层交换机的工作原理:二层交换机属数据链路层设备,可以识别数据包中的 MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己 内部的一个地址表中。具体的工作流程如下: (1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它 就知道源MAC地址的机器是连在哪个端口上的; (2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口; (3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上; (4)如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器 回应时,交换机又可以学习目的MAC地址与哪个端口对应,在下次传送数据时就不再 需要对所有端口进行广播了。 不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。 2、三层交换机的工作原理:三层交换机就是具有部分路由器功能的交换机,三层 交换机的最重要目的是加快大型局域网内部的数据交换,能够做到一次路由,多次转 发。三层交换技术就是二层交换技术+三层转发技术。传统交换技术是在OSI网络标 准模型第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层 实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优 网络性能。使用IP的设备A----三层交换机----使用IP的设备B,比如A要给B发 送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己 在同一网段。如果在同一网段,但不知道转发数据所需的MAC地址,A就发送一个ARP

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

贪吃蛇游戏程序设计实验报告

Windows编程大作业贪吃蛇设计与实现 学校:武汉轻工大学 院系: 班级: 姓名: 学号: 2015年12月16日

目录 一、题目介绍 二、设计目的 三、详细设计 3.1贪吃蛇本体设计 3.2贪吃蛇食物设计 3.3游戏界面设计 3.3.1游戏初始化 3.3.2游戏开始 3.3.3游戏暂停 3.3.4游戏退出 3.3.5游戏总界面 3.3.6游戏区域与背景 3.3.7关于SNAKE 3.4玩法规则设计 3.5核心设计 四、功能测试 五、总结 六、参考文献

一、题目介绍: 编写一个基于MFC的小游戏。 基本要求: 1、实现一个小游戏 2、实现基本游戏控制功能 3、具有游戏数据保存功能 4、界面布局合理、美观; 二、设计目的: 通过使用vc++6.0实现一个小游戏的课程设计,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。 三、详细设计 3.1贪吃蛇的本体设计 贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下: struct Snake { int x,y; int len; int direct; }Snake[50]; 3.2贪吃蛇食物设计 贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。 struct Food { int x; int y; int isfood; }Food; 3.3游戏界面设计 3.3.1游戏初始化 游戏初始蛇体长度为3,颜色为灰色,食物标志为1,因为此时没有显示出食物,需要随机生成后,才置为0;

电子电路综合实验

电子电路综合实验 总结报告 题目:红外遥控器信号接收和显示的 设计实现 班级:20100412 学号:2010041227 姓名:涂前 日期:2013.04.17 成绩:

摘要: 我国经济的高速发展,给电子技术的发展,带来了新的契机.其中,红外遥控器越来越多的应用到电器设备中,但各种型号遥控器的大量使用带来的遥控器大批量多品种的生产,使得检测成为难题,因此智能的红外遥控器检测装置成为一种迫切的需要。在该红外遥控器信号的接收和显示电路以单片机和一体化红外接收器为核心技术,但是,分立元件搭建的电路也可以实现,具体74HC123单稳态触发器、74HC595、STC89C51单片机红外接收器HS0038组成。在本系统的设计中,利用红外接收器接收遥控器发出的控制信号,并通过单稳态触发器、移位寄存器等将接收信号存储、处理、比较,并将数据处理送至数码管显示模块。总之,通过对电路的设计和实际调试,可以实现红外遥控器信号的接收与显示功能。根据比较接收信号的不同,在数码管显示电路及流水灯电路上显示相应的按键数字. 关键词:74HC123单稳态触发器、74HC595、单片机、红外接收器HS0038

设计选题及设计任务要求 1设计选题 基于单片机的红外遥控器信号接收和转发的设计实现. 2设计任务要求 ⑴结合数字分立元件电路和红外接收接口电路共同设计的一个红外遥控信号接收系统,用普通电视机遥控器控制该系统,使用数码管显示信号的接收结果。 ⑵当遥控器按下任意数值键时,在数码管上显示其值。例如按下“0”时,在数码管上应显示“00”。

目录 第一章系统概述 1.1 方案对比及论证 1.2 总体方案对比 1.3方案对比论证 1.4可行性分析 第二章主要器件介绍 2.1 HS0038塑封一体化红外线接收器 2.2 74HC123单稳态触发器 2.3 74HC595 2.4 MC14495 2.5数码管显示 第三章硬件单元电路设计及原理分析 第四章调试及测试数据分析 4.1 调试的步骤 4.2 调试出现的问题及原因分析 4.3数据测量 4.4 测量仪器介绍及误差分析

网络程序设计实验报告-Winsock编程接口实验

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.360docs.net/doc/6213955381.html, https://www.360docs.net/doc/6213955381.html,,能输出https://www.360docs.net/doc/6213955381.html,和https://www.360docs.net/doc/6213955381.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

北航电子电路设计数字部分实验报告

电子电路设计数字部分实验报告 学院: 姓名:

实验一简单组合逻辑设计 实验内容 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验仿真结果 实验代码 主程序 module compare(equal,a,b); input[7:0] a,b; output equal; assign equal=(a>b)1:0; endmodule 测试程序

module t; reg[7:0] a,b; reg clock,k; wire equal; initial begin a=0; b=0; clock=0; k=0; end always #50 clock = ~clock; always @ (posedge clock) begin a[0]={$random}%2; a[1]={$random}%2; a[2]={$random}%2; a[3]={$random}%2; a[4]={$random}%2; a[5]={$random}%2; a[6]={$random}%2; a[7]={$random}%2; b[0]={$random}%2; b[1]={$random}%2; b[2]={$random}%2; b[3]={$random}%2; b[4]={$random}%2;

b[5]={$random}%2; b[6]={$random}%2; b[7]={$random}%2; end initial begin #100000 $stop;end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验二简单分频时序逻辑电路的设计 实验内容 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验仿真结果

网络编程实验报告

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

Java程序设计实验报告2(弹球游戏)[1]1

《Java语言程序设计》课程设计 实习报告 题目: 班级: 学号: 姓名: 同组人员: 指导老师:张彬

一、实验目的 1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。 2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行 线程的创建、启动等工作。 3、培养独立查找资料,并解决问题的能力。 二、实验任务 1、设计并编程实现弹球游戏: 用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。 鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。 程序需提供计时功能,并最终显示玩家能坚持多少秒。 2、程序要求: (1)具备相应界面,并通过事件编程,实现相应的GUI组件功能。 (2)使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。 (3)实现鼠标与屏幕四周,以及与小球的碰撞检测。 三、开发工具与平台 1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。 2.开发平台:JDK1.5 四、设计思路 1.界面设计 (1)制作一个简单的面板JFrame,文件保存为bollFrame.java 其中为一public的类bollFrame,其构造方法为: bollFrame(int n){ super(); setTitle("我的弹球小游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();//得到电脑屏幕大小 setSize(450,450); setLocation((dimension.width-game.getWidth())/2-250, (dimension.height-game.getHeight())/2-250);//设置面板显示基中; this.n = n; myBollPanel = new bollPanel(n);//构造一个画板; add(myBollPanel);//将画板放入JFrame createMenu();//创建菜单; setJMenuBar(bar); } (2)构造画板类,文件保存为bollPanel.java 其构造函数如下: bollPanel(int n){ this.n = n; // executorThread = Executors.newCachedThreadPool();//创建线程池; mouse = new mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程; this.setIsOver(false);//游戏开始线程条件的判断; for(int i =0 ;i

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

《程序设计课程设计》实验报告材料

《程序设计》课程设计 姓名: 学号: 班级:软件工程14 班 指导教师: 成绩:

1.消除类游戏 1.1【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 1.2【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 1.3【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 1.4【功能实现】 #include #include using namespace std;

int main() { int m, n, i ,j; int temp; cin >> n >> m; temp = m; m = n; n = temp; int * map = new int[m * n]; int * mark = new int[m * n]; int * tmap = map; int * tmark = mark; int dif = 0; //输入 for ( i = 0 ; i < m ; i++ ) for (j = 0; j < n; j++) cin >> *(tmap + i * n + j); for (i = 0; i < m; i++) for (j = 0; j < n; j++) { //横行 if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0) if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + 1) = 0; *(tmark + dif + 2) = 0; } //竖列 if (tmap + 2 * n - map < m * n || tmap + n - map < m * n) if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + n) = 0; *(tmark + dif + 2 * n) = 0; } tmap = map + (j+1) + i * n; } //输出 cout << endl; tmap = map; for (i = 0; i < m; i++)

算法程序设计实验报告

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

《程序设计实训》实验报告

计算机程序设计实训报告 [“拍飞虫”实验] 专业班级:装控1405,装控1406 实习时间:2015年7月11日至7月15日 实习地点:文理楼124 成员 1: 成员 2:

一、作品概述 本作品运用funcode平台所给模板,在所给源代码的基础上进行编写,对整个游戏进行美化,更换了背景,优化了空格开始键,并且添加了拍蚊子时的音效,以及开始时的欢迎界面,每次游戏结束会对积分进行排序,如果最终得分为满分,则会显示“游戏成功”。 二、功能设计 1.游戏运行,初试界面出现‘空格开始’的提示。 2.玩家按空格开始游戏,界面上出现25只小蚊子和15只大蚊子。 3.游戏开始后,用户每拍一个小蚊子,加两分 4.被淘汰的猴子会出局,加入屏幕下方的淘汰者猴子队列中。 5.站在被淘汰猴子后方的选手依次往前移,填补空白 6.用户继续按空格淘汰猴子,值到剩下唯一的猴子,就是大王!这样,一局游戏完成。 7.一局游戏完成后,屏幕重新出现“空格开始”的标志,用户按空格可以继续游戏,如此往复。 三、功能实现 含每个功能的具体实现,可以用流程图(不要贴代码)等描述。 (说明:主要写用到的各类型的全局变量、含义) 1.g_iMonkeys[6] 用一个int类型的数组来保存猴子精灵编号 2.g_flocation[6] 用一个浮点型数组存储猴子位置(因为6只猴子站成一排,y坐标值是相同的,因此该数组保存6只猴子的x坐标值)。其中g_Monkeys[i] 对应的位置 g_fLocation 3.g_iNumMokeys 当前备选猴子数量,即截图中上层队列的猴子数。 4.g_iNumLoseMonkeys 淘汰的猴子数量,即下层队列中的猴子数。 5.g_iChooseMonkey 本轮淘汰的猴子编号。 6.g_iMoveMonkey 淘汰猴子后,后面需要移动的猴子数。

电子系统综合设计实验报告

电子系统综合设计实验报告 所选课题:±15V直流双路可调电源 学院:信息科学与工程学院 专业班级: 学号: 学生姓名: 指导教师: 2016年06月

摘要本次设计本来是要做±15V直流双路可调电源的,但由于买不到规格为±18V的变压器,只有±15V大小的变压器,所以最后输出结果会较原本预期要小。本设计主要采用三端稳压电路设计直流稳压电源来达到双路可调的要求。最后实物模型的输出电压在±13左右波动。 1、任务需求 ⑴有+15V和-15V两路输出,误差不超过上下1.5V。(但在本次设计中,没有所需变压器,所以只能到±12.5V) ⑵在保证正常稳压的前提下,尽量减小功效。 ⑶做出实物并且可调满足需求 2、提出方案 直流可变稳压电源一般由整流变压器,整流电路,滤波器和稳压环节组成如下图a所示。 ⑴单相桥式整流 作用之后的输出波形图如下:

⑵电容滤波 作用之后的输出波形图如下: ⑶可调式三端集成稳压器是指输出电压可以连续调节的稳压器,有输出正电压的LM317三端稳压器;有输出负电压的LM337三端稳压器。在可调式三端集成稳压器中,稳压器的三个端是指输入端、输出端和调节端。 LM317的引脚图如下图所示:(LM337的2和3引脚作用与317相反)

3、详细电路图: 因为大容量电解电容C1,C2有一定的绕制电感分布电感,易引起自激振荡,形成高频干扰,所以稳压器的输入、输出端常并入瓷介质小容量电容C5,C6,C7,C8用来抵消电感效应,抑制高频干扰。 参数计算: 滤波电容计算: 变压器的次级线圈电压为15V ,当输出电流为0.5A 时,我们可以求得电路的负载为I =U /R=34Ω时,我们可以根据滤波电容的计算公式: C=т/R,来求滤波电容的取值范围,其中在电路频率为50HZ 的情况下,T 为20ms 则电容的取值范围大于600uF ,保险起见我们可以取标准值为2200uF 额定电压为50V 的点解电容。另外,由于实际电阻或电路

网络编程实验报告

网络编程技术实验报告 一实验目的: 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。 二实验要求 要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。

. 实验一java基本语法 实验目的: 了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 实验要求: 1、编写一个声明Java不同数据类型变量的程序。 2、编写使用不同选择结构的程序。 3、编写使用不同循环结构结构的程序。 实验内容: 1、编写一个声明Java不同数据类型变量的程序。 public class DataTypes { public static void main(String args[]) { byte b=127; short s=32767; int i=2147483647; long l=9223372036l;//为什么long表示的数比Int还小? char c='c'; float f=1.23F; double d=0.9E-3; boolean bool=true; System.out.println(" b="+b); System.out.println(" s="+s); System.out.println(" i="+i); System.out.println(" l="+l); System.out.println(" c="+c); System.out.println(" f="+f); System.out.println(" d="+d); System.out.println(" bool="+bool); }

相关文档
最新文档