当前位置:文档之家› 实验六、七(简单计算器)

实验六、七(简单计算器)

实验六、七(简单计算器)
实验六、七(简单计算器)

实验六、七图形应用程序设计

本实验需2次上机时间

上机时间:11月11、18号,星期一。

1、2班11月11 、18号下午2:30-4:05 地点:科技楼423

3、4班11月11、18号上午8:10-9:50地点:科技楼423

实验目的:

熟悉Swing组件及相关方法:掌握常用Swing组件的使用方法、组件的事件监听方法以及主要布局管理器的使用。

实验内容:

编写如下图的一个计算器图形界面,并可进行简单的加减乘除运算。

难点参考代码:

1、编写计算器的逻辑程序、包含加减乘除运算。使用switch语句

来选择不同的运算符。

2、编写计算器图形界面、包含文本和按钮

3、为按钮编写响应函数

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import https://www.doczj.com/doc/8814225009.html,bel;

import java.awt.Panel;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class Calculator extends WindowAdapter implements ActionListener {

JFrame frame;

JTextField show;

JButton bc, c, ce, ab, jia, jian, cheng, chu, equ, point, sqrt, ds, bfh,

zf;

// 按钮退格,清空,复位,关于,加,减,乘,除,等号,小数点,2次方根,倒数,百分号,正负号

JButton b[] = new JButton[10]; // 按钮数组,数字键0~9

double sum = 0, getValue;

int i = 0, j = 0, p = 0, l, action;

JDialog about;

final int slength = 30; // 设置结果显示有效长度

public void disp() {

frame = new JFrame();

frame.setTitle("xx的个人计算器");

frame.setSize(360, 230);

frame.setLocation(380, 260);

frame.setBackground(Color.LIGHT_GRAY);

frame.setLayout(new FlowLayout(FlowLayout.CENTER));

frame.setResizable(false);

//计算器disTop模块,包括数字显示文本框、back,ce,c,about按钮show = new JTextField(31);

show.setText("0");

show.setHorizontalAlignment(SwingConstants.RIGHT);

show.setEditable(false);

frame.add(show);

Panel dispTop = new Panel();

frame.add(dispTop);

dispTop.setLayout(new GridLayout(1, 4, 3, 3));

bc = new JButton(" Back ");

bc.setForeground(Color.BLUE);

dispTop.add(bc);

ce = new JButton(" CE ");

ce.setForeground(Color.BLUE);

dispTop.add(ce);

c = new JButton(" C ");

c.setForeground(Color.BLUE);

dispTop.add(c);

//广告按钮,显示计算器制作者

ab = new JButton(" About ");

ab.setForeground(Color.BLUE);

dispTop.add(ab);

about = new JDialog(frame, "关于计算器", true);

Label ct = new Label("本计算器由xx 制作", 1);

ct.setForeground(Color.RED);

about.add(ct, "Center");

about.setSize(200, 100);

about.setLocation(500, 300);

//主要按钮显示面板包括disLeft和disRight

Panel dispMain = new Panel();

frame.add(dispMain);

dispMain.setLayout(new GridLayout(1, 2, 10, 10));

//disLeft面板,包括0-9、+/-、。这十二个按钮

Panel dispLeft = new Panel();

dispMain.add(dispLeft);

dispLeft.setLayout(new GridLayout(4, 3, 3, 3));

Panel dispRight = new Panel();

//disRight面板,包括+、-、*、/、sqrt、%、1/x、=这个人几个按钮dispMain.add(dispRight);

dispRight.setLayout(new GridLayout(4, 2, 3, 3));

//新建0-9这是个按钮,并将其添加到disLeft中

for (l = 9; l >= 0; l--) {

b[l] = new JButton(String.valueOf(l));

dispLeft.add(b[l]);

b[l].addActionListener(this);

}

//新建其余按钮,并分别将其添加到各自的面板中

jia = new JButton("+");

jia.setForeground(Color.RED);

jian = new JButton("-");

jian.setForeground(Color.RED);

cheng = new JButton("*");

cheng.setForeground(Color.RED);

chu = new JButton("/");

chu.setForeground(Color.RED);

equ = new JButton("=");

equ.setForeground(Color.RED);

point = new JButton(".");

zf = new JButton(" +/- ");

sqrt = new JButton("sqrt");

bfh = new JButton("%");

ds = new JButton("1/x");

dispRight.add(chu);

dispRight.add(sqrt);

dispRight.add(cheng);

dispRight.add(bfh);

dispRight.add(jian);

dispRight.add(ds);

dispRight.add(jia);

dispRight.add(equ);

dispLeft.add(zf);

dispLeft.add(point);

//为各个按钮绑定监听器

about.addWindowListener(this);

bc.addActionListener(this);

ce.addActionListener(this);

c.addActionListener(this);

ab.addActionListener(this);

jia.addActionListener(this);

jian.addActionListener(this);

cheng.addActionListener(this);

chu.addActionListener(this);

equ.addActionListener(this);

point.addActionListener(this);

zf.addActionListener(this);

sqrt.addActionListener(this);

bfh.addActionListener(this);

ds.addActionListener(this);

frame.addWindowListener(this);

frame.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

getValue = Double.valueOf(show.getText()).doubleValue();

if (e.getSource() == jia) { // 加运算,可连加

if (j == 0) {

sum = getValue;

} else if (action == 1) {

sum += getValue;

}

setSum();

j++;

p = 0;

i = 0;

action = 1;

} else if (e.getSource() == jian) { // 减运算,可连减if (j == 0) {

sum = getValue;

} else if (action == 2) {

sum -= getValue;

}

setSum();

j++;

p = 0;

i = 0;

action = 2;

} else if (e.getSource() == cheng) { // 乘运算,可连乘if (j == 0) {

sum = getValue;

} else if (action == 3) {

sum *= getValue;

}

setSum();

j++;

p = 0;

i = 0;

action = 3;

} else if (e.getSource() == chu) { // 除运算,可连除if (j == 0)

sum = getValue;

else if (action == 4) {

sum /= getValue;

}

setSum();

j++;

p = 0;

i = 0;

action = 4;

} else if (e.getSource() == equ) { // 等号,运算最后一个操作数switch (action) {

case 1:

show.setText(String.valueOf(sum += getValue));

break;

case 2:

show.setText(String.valueOf(sum -= getValue));

break;

case 3:

show.setText(String.valueOf(sum *= getValue));

break;

case 4:

show.setText(String.valueOf(sum /= getValue));

break;

}

setSum();

i = 0;

j = 0;

action = 0;

} else if (e.getSource() == point) { // 小数点,只能按一个小数点if (p == 0)

show.setText(show.getText() + e.getActionCommand());

p = 1;

} else if (e.getSource() == c || e.getSource() == ce) { // 清空与复位

i = 0;

j = 0;

p = 0;

sum = 0;

action = 0;

show.setText("0");

} else if (e.getSource() == bc) { // 退格

String s = show.getText();

if (s.length() > 1) {

show.setText("");

for (l = 0; l < s.length() - 1; l++) { // 按一下,删除尾部一位char a = s.charAt(l);

show.setText(show.getText() + a);

}

} else

show.setText("0");

} else if (e.getSource() == ab) { // 关于

about.setVisible(true);

} else if (e.getSource() == sqrt) { // 开2次方根

sum = Math.sqrt(getValue);

setSum();

i = 0;

} else if (e.getSource() == ds) { // 求倒数

sum = 1 / getValue;

setSum();

i = 0;

} else if (e.getSource() == bfh) { // 百分号

sum = getValue / 100;

setSum();

i = 0;

} else if (e.getSource() == zf) { // 正负号切换,正号不显示String s = show.getText();

char a = s.charAt(0);

if (a == '-') {

show.setText("");

for (l = 1; l < s.length(); l++) { // 去掉负号

show.setText(show.getText() + s.charAt(l));

}

} else if (getValue != 0) { // 加上负号

show.setText("-" + s);

}

}

for (l = 0; l < 10; l++) { // 0~9数字键触发

if (e.getSource() == b[l]) {

if (i == 0)

show.setText("");

String s = show.getText();

if (s.length() < slength)

show.setText(show.getText() + e.getActionCommand());

if (e.getSource() == b[0] && getValue == 0 && p == 0)

show.setText("0");

if (e.getSource() != b[0] && getValue == 0 && p == 0)

show.setText(e.getActionCommand());

i++;// i用来标记数字键触发的状态

}

}

}

public void setSum() { // 把计算结果显示出来

show.setText(String.valueOf(sum));

String s = show.getText();

char a = s.charAt((s.length() - 1));

char b = s.charAt((s.length() - 2));

if (a == '0' && b == '.') { // 如果是整数,则去掉后面的小数点和0 show.setText(String.valueOf(Math.round(sum)));

}

}

public void windowClosing(WindowEvent e) {

if (e.getSource() == about)

about.setVisible(false);

else if (e.getSource() == frame)

System.exit(0);

}

public static void main(String args[]) {

new Calculator().disp();

}

}

计算机网络实验七

实验七 1. 熟悉界面。运行Wireshark 软件,结合网络教程《WIRESHARK -简明教程-界面 说明》(openmaniak.//wireshark_use.php)熟悉界面元素。 2. 抓包练习。 1) 单击“Capture”菜单的“Options”项,在出现的对话框的“Interface”栏选择合适的网络接口后单击“Start”按钮。 2) 利用Windows 的有关软件进行一些网络访问,如在命令提示符窗口中ping 其他主机,或者利用IE 浏览器访问某。 3) 单击“Capture”菜单的“Stop”项,观察“封包列表”处显示的所捕获的包。共有几个包?都有那些类型的包(看“Protocol”列)? 很多包,有以下十个类型: ARP DHCPv6 HTTP ICMPv6 ICMPv3 LLMNR NBNS OICQ TCP UDP

3. 过滤器的使用。阅读网络教程《WIRESHARK -简明教程-过滤器》(openmaniak.//wireshark_filters.php),使用其中的例子进行练习(注意:需要根据实际的实验环境修改例子中IP 地址和端口等参数)。 来源192.168.99.203的封包

ether[12:2] <= 1500 1. 捕捉任何主机发出的Ethernet 80 2.3 格式的帧(帧的长度字段<=1500),Wireshark 的capture filter 的filter string 设置为:ether[12:2] <= 1500。

ether[12:2] > 1500 捕捉任何主机发出的DIX Ethernet V2(即Ethernet II)格式的帧(帧的长度字段>1500, 帧的长度字段实际上是类型字段),Wireshark 的capture filter 的filterstring 设置为:ether[12:2] > 1500。 分别选择802.3 格式的帧和Ethernet II 的帧各一个(若有相应类型的帧),填写表3。 PDU协议数据单元中,帧的上层PDU是IP分组,802.3将数据链路层分为LLC子层和MAC子层,IP分组分别要经过LLC和MAC层封装才交由物理层传输

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUES仿真。 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数

值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图: 二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

计算机网络实验

广州大学学生实验报告 开课学院及实验室:计算机学院 2015年月11日10日 一、实验目的 理解上述知识点所涉及的基本概念并学会使用这些工具测试网络的状态及从网上获取信息。 二、实验环境 安装了TCP/IP协议的Windows系统的计算机 三、实验内容 1、检测本机的MAC地址 2、检测本机网关的MAC地址 3、检测本地域名服务器的IP地址 4、检测DHCP服务器的MAC地址(考虑两种网络环境:实验室网络环境和宿舍网络环境) 5、检测去往https://www.doczj.com/doc/8814225009.html,的路径MTU 6、检测本机的路由表 7、检测去往https://www.doczj.com/doc/8814225009.html,n网络的可用性、回程响应时间及经过的路由器个数。 8、检测本机的所有有效连接,及各连接的端口号 9、往路由表添加一条路由,去往主机https://www.doczj.com/doc/8814225009.html,的路由,经过邻居同学的主机转发 10、课后实验并写入实验报告: ●为了确定你所在组织的路由是否稳定,使用路由跟踪程序来找到去往每一网络中 的一条路由,重复测试一次,再连续测试几天,看看路由有变化吗? ●挑选10个Internet中较远的目的地,进行前一练习中的实验,看看路由变化的频 度。 ●上网收集网络测试工具并测试使用方法。 四、实验步骤、记录和结果 实验1:检测本机的MAC地址 用ipconfig/all命令可以查看到本机的信息,包括MAC地址、IP地址等

实验2:检测本机网关的MAC地址:从上述可知网关ip为202.192.33.254,再输入Arp –a 202.192.33.254 由ipconfig/all命令可得到本机网关的IP地址为:172.18.36.254,通过ping网关的IP 地址后用arp -a命令可得到本机网关的MAC地址为:00-0c-db-c9-71-c0 实验3:检测本地域名服务器的IP地址:直接输入ping https://www.doczj.com/doc/8814225009.html, 由ipconfig/all命令可得到本地域名服务器的IP地址为:202.192.18.10

实验7_北航研究生计算机网络实验

实验九IPv6实验 1. 3.5节步骤2中,请思考下面问题: 主机加入到组播组中的过程是什么? 答:1. 主机通过地址自动配置,获得多播组地址; 2.主机发送MLD多播侦听报文给本地链路的路由器; 3.路由器根据报文中的信息,向多播转发表中添加表项,以记录多播组的成员身份。 4. 3.5节步骤3中,仔细观察PC1与RT1之间的交互报文,回答下述问题: 1)为什么报文中的“next header”采用hop-by-hop的选项? 答:因为hop-by-hop选项规定该报文的传送路径上每台中间节点都要读取并处理该拓展报头,起到提醒路由器对MLD报文进行深入检查的作用。 2)为什么跳数被限制为1? 答:为了将此报文限制在链路本地上。 3)在“Hop-by-Hop”选项中,有一个“Padn”,它的作用是什么? 答:为了使字段符合对齐要求。 5. 3.5节步骤4中,仔细观察Router Solicitation的报文,回答下述问题: 1)在前面的multicast listener report报文中,报文的跳数限制为1,而在这里, 同样是主机发给路由器的报文,为什么跳数却采用255? 答:因为节点只接受跳数限制为Cur Hop Limit字段的RA报文,所以主机无须担心接收到链路外的RA报文,所以主机在发送RS报文时无须担心RS报文传递到本地链路外。 2)报文中的ICMP选项中的“source link-layer address”的作用是什么? 答:表示发送该RS报文的接口的链路层地址,这样路由器在接收到RS报文后无须进行地址解析就可以返回单播的RA报文。

6. 3.5节步骤6中,仔细观察Router Advertisement的报文,回答下述问题: 1)“Cur hop limit”的含义是什么? 答:主机发送普通报文时使用的默认跳数限制。 2)报文中“lifetime”的含义是什么? 答:发送该RA报文的路由器作为缺省路由器的生命周期。 3)“reachable time”的含义是什么? 答:本链路上所有节点的“可达”状态保持时间。 4)“retransmit time”的含义是什么? 答:重传NS报文的时间间隔,用于邻居不可达检测和地址解析。 5)这里为什么会有“source link-layer”地址呢? 答:为了表示路由器发送RA报文的接口的链路层地址。

数电实验二:简易计算器(实验报告)

数电实验2实验报告 1、设计修改方案 (1)加入编码器连接4选一数据选择器,控制进行运算的种类 (2)修改了输出端数据选择器的程序,使得当计算器没有任何输入时,结果显示保持为0,并且利用芯片自身的灭零管脚,让显示结果中,当十位为零时,十 位的零不显示。

2、实验数据及分析 (1)修改后电路图(附后) (2)仿真波形 设置输入2个4位二进制数为0110(十进制6)和0010(十进制2),计算方式控制SW[3:0]设为0111,即模拟除法操作,加入时钟信号。 ①模拟除法波形: 可以看到十位(商)的数码管显示中,1、2、3、4、7段亮,显示为数字3,而个位(余数)显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6除2商3余0。满足计算要求。 ②模拟乘法波形:(SW[3:0]设为1011,其他输入同上)

可以看到个位的数码管显示中,1、4、5、6段亮,显示为C(化为十进制为12),而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6乘2等于0C,即等于12。当改变输入4和2是,显示结果为8,。满足计算要求。 ③模拟加法波形:(SW[3:0]设为1101,其他输入同上) 可以看到个位的数码管显示中,1、2、3、4、5、6、7段全亮,显示为数字8,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6加2等于08,即等于8。满足计算要求。 ④模拟减法波形:(SW[3:0]设为1110,其他输入同上) 可以看到个位的数码管显示中,2、3、6、7段亮,显示为数字3,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6减2等于03,即等于3。满足计算要求。 从上面加减乘除四种功能运算的波形仿真可以看出,本实验设计能够正确完成对输入数字的上述四种运算。满足题目要求。

计算机网络实验

试验一 利用wireshark抓包工具抓包 一、实验名称 使用网络协议分析仪 Wireshark 二、实验目的 1. 掌握安装和配置网络协议分析仪Wireshark的方法; 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格式、协议层次和协议交互过程的理解。 三、实验内容和要求 1. 安装和配置Wireshark的网络协议分析仪,下载地址https://www.doczj.com/doc/8814225009.html,。 2. 使用并熟悉Wireshark分析协议的部分功能。 四、实验环境 1.Windows7 操作系统PC机器。 2.PC机器具有以太网卡一块,通过双绞线与局域网连接。 3.Wireshark软件(Wireshark-win64-2.0.2)。 五、操作方法与实验步骤 1:安装网络协议分析仪,从官网下载exe软件双击安装Wireshark-win64-2.0.2。

2:启用Wireshark进行试验。 2.1:启动初始如下显示: 2.2:分组捕获数据,并将捕获的数据保存为文件抓包实验数据.pcapng,当再次需要捕获时,可以打开文件在进行实验抓包。2.3:对数据进行协议分析。 在上部“俘获分组的列表”窗口中,有编号(No)、时间(Time)、源地址(Source)、目的地址(Destination)、协议(Protocol)、长度(Length)和信息(Info)等列(栏目),各列下方依次排列着俘获的分组。中部“所选分组首部的细节信息”窗口给出选中帧的首部详细内容。下部“分组内容”窗口中是对应所选分组以十六进制数和ASCII 形式的内容。 2.4无线网连接抓包实验数据如下图1 2.5本地连接网页抓包实验数据如下图2

计算机网络实验报告-答案.

计算机网络实验报告 专业计算机科学与技术 班级计102 学号 109074057 姓名王徽军 组号一组D 指导教师毛绪纹 安徽工业大学计算机学院 二○一二年十二月

目录 实验总体说明 (3) 实验一以太网帧的构成 (3) 实验三路由信息协议RIP (9) 实验四传输控制协议TCP (11) 实验五邮件协议SMTP、POP3、IMAP (12) 实验六超文本传输协议HTTP (14)

实验总体说明 1.实验总体目标 配合计算机网络课程的教学,加强学生对计算机网络知识(TCP/IP协议)的深刻理解,培养学生的实际操作能力。 2.实验环境 计算机网络协议仿真实验室: 实验环境:网络协议仿真教学系统(通用版)一套 硬件设备:服务器,中心控制设备,组控设备,PC机若干台 操作系统:Windows 2003服务器版 3.实验总体要求 ●按照各项实验内容做实验,记录各种数据包信息,包括操作、观察、记录、分析, 通过操作和观察获得直观印象,从获得的数据中分析网络协议的工作原理; ●每项实验均提交实验报告,实验报告的内容可参照实验的具体要求,但总体上应包 括以下内容:实验准备情况,实验记录,实验结果分析,算法描述,程序段,实验过程中遇到的问题以及对思考问题的解答等,实验目的、实验原理、实验步骤不需要写入实验报告中。 实验一以太网帧的构成 实验时间:_____________ 成绩:________________ 实验角色:_____________ 同组者姓名:______________________________

练习一:领略真实的MAC帧 00000000: FF FF FF FF FF FF 8C 89 A5 75 71 10 06 05 14 55 ..q....U 00000010: 85 48 D2 78 62 13 47 24 58 25 00 00 00 00 00 00 .H襵b.G$X%...... 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............ 练习二:理解MAC地址的作用 ●记录实验结果 表1-3实验结果 本机MAC地址源MAC地址目的MAC地址是否收到,为什么 主机B 8C89A5-7570BB 8C89A5-757113 8C89A5-7570C1 是,主机A与主机B接在同一共享模块 主机D 8C89A5-771A47 8C89A5-757113 8C89A5-7570C1 是,主机C与主机D接在同一共享模块 主机E 8C89A5-757110 无无否,与主机A、C都不在同一共享模块 主机 F 8C89A5-7715F8 无无否,与主机A、C都不在同一共享模块 练习三:编辑并发送MAC广播帧 ●结合练习三的实验结果,简述FFFFFF-FFFFFF作为目的MAC地址的作用。 答:该地址为广播地址,作用是完成一对多的通信方式,即一个数据帧可发送给同一网段内的所有节点。 练习四:编辑并发送LLC帧 ●实验结果 帧类型发送序号N(S)接受序号N(R) LLC 001F 0 ●简述“类型和长度”字段的两种含义 答:一是如果字段的值小于1518,它就是长度字段,用于定义下面数据字段的长度;二是如果字段的值大于1536,用于定义一个封装在帧中的PDU分组的类型。 思考问题: 1.为什么IEEE802标准将数据链路层分割为MAC子层和LLC子层? 答:出于厂商们在商业上的激烈竞争,IEEE的802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同标准,如802.4令牌总线网、802.5令牌环网等。为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层,即逻辑链路控制

微机原理实验简易计算器

【实验题目】 简易计算器设计 【实验目的】 综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等; 结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。 【基本要求】 1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E; 2) 16个按键的分配可以自行指定; 【扩展要求】 1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E; 2)增加÷的功能,有小数显示; 【实验程序】 ;该程序实现了基本要求及扩展要求的2) DSEG SEGMENT BUFF DB 6 DUP() LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39 H,5EH,79H,71H,00H,40H POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1 NEWNUM DB 0 COUNT DB 0 FLAG DB 0 ;是否有键按下的标志 NEGTI DB 0 ;是否为负数的标志 NUM DW 0 NUM1 DW 0 NUM2 DW 0 TAG DB 0 ;运算种类标志 POINT DB 0 ;除法结果添加小数点标志 RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV DX,300CH ;8255初始化 MOV AL,81H OUT DX,AL LEA SI,BUFF MOV CX,6 NEXT: MOV BYTE PTR[SI],16 INC SI LOOP NEXT CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来 MOV COUNT,0 ;记按下了几位数 NEXT2: CALL SHOW CALL SCAN ;判断是否有按键按下 CMP FLAG,1 JZ OK JMP NEXT2 OK: MOV FLAG,0 MOV POINT,0 MOV DX,3000H ;判断是哪一个键被按下 MOV AL,0FFH OUT DX,AL MOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FH XL: ROL CL,1 INC CH MOV DX,3000H MOV AL,CL OUT DX,AL MOV DX,3008H

计算机网络实验

实验四IEEE 802.3协议分析和以太网 一、实验目的 1、分析802.3协议 2、熟悉以太网帧的格式 二、实验环境 与因特网连接的计算机网络系统;主机操作系统为windows;Ethereal、IE 等软件。 三、实验步骤 (注:本次实验先完成前面的“1 俘获并分析以太网帧”,并回答好后面的第1-10 题,完成后看书学习一下arp的相关内容) 1、俘获并分析以太网帧 (1)清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。(2)启动Ethereal,开始分组俘获。 (3)在浏览器的地址栏中输入: https://www.doczj.com/doc/8814225009.html,/ethereal-labs/HTTP-ethereal-lab-file3.html,浏览器将显示冗长的美国权力法案。 (4)停止分组俘获。首先,找到你的主机向服务器https://www.doczj.com/doc/8814225009.html,发送的HTTP GET报文的分组序号,以及服务器发送到你主机上的HTTP 响应报文的序号。其中,窗口大体如下。

选择“Analyze->Enabled Protocols”,取消对IP复选框的选择,单击OK(不这样设置也可,建议先不要这样操作)。窗口如下。 (5)选择包含HTTP GET报文的以太网帧,在分组详细信息窗口中,展开Ethernet II信息部分。根据操作,回答“四、实验报告内容”中的1-5题(6)选择包含HTTP 响应报文中第一个字节的以太网帧,根据操作,回答“四、实验报告内容”中的6-10题 2、ARP (1)利用MS-DOS命令:arp 或c:\windows\system32\arp查看主机上ARP缓

计算机网络实验报告(7)访问控制列表ACL配置实验

一、实验项目名称 访问控制列表ACL配置实验 二、实验目的 对路由器的访问控制列表ACL 进行配置。 三、实验设备 PC 3 台;Router-PT 3 台;交叉线;DCE 串口线;Server-PT 1 台; 四、实验步骤 标准IP访问控制列表配置: 新建Packet Tracer 拓扑图 (1)路由器之间通过V.35 电缆通过串口连接,DCE 端连接在R1 上,配置其时钟频率64000;主机与路由器通过交叉线连接。 (2)配置路由器接口IP 地址。 (3)在路由器上配置静态路由协议,让三台PC 能够相互Ping 通,因为只有在互通的前提下才涉及到方控制列表。 (4)在R1 上编号的IP 标准访问控制。 (5)将标准IP 访问控制应用到接口上。 (6)验证主机之间的互通性。 扩展IP访问控制列表配置: 新建Packet Tracer 拓扑图 (1)分公司出口路由器与外路由器之间通过V.35 电缆串口连接,DCE 端连接在R2 上,配置其时钟频率64000;主机与路由器通过交叉线连接。 (2)配置PC 机、服务器及路由器接口IP 地址。 (3)在各路由器上配置静态路由协议,让PC 间能相互ping 通,因为只有在互通的前提下才涉及到访问控制列表。 (4)在R2 上配置编号的IP 扩展访问控制列表。 (5)将扩展IP 访问列表应用到接口上。 (6)验证主机之间的互通性。 五、实验结果 标准IP访问控制列表配置: PC0: PC1:

PC2:

PC1ping:

PC0ping: PC1ping: 扩展IP 访问控制列表配置:PC0: Server0:

计算机网络实验一_

计算机网络滑动窗口 实验报告 班级:2012211306 学号:2012211249 姓名:查凯文

一.实验目的 通过上机编程模拟滑动窗口协议中的协议6——选择性重传协议,熟悉和掌握协议6的基本概念、基本原理以及实现方法和过程,并与协议5进行对比,加深对滑动窗口协议的理解和认识。 二.实验内容 在Linux、WindowsNT下编程模拟实现滑动窗口协议的1bit滑动窗口协议,需要分别实现发送方功能与接收方功能。 三.实验说明 a)窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。 分析: ①初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧; ②发送方打开0号窗口,表示已发出0帧但尚确认返回信息。此时接收窗口状态不变; ③发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变; ④接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变; ⑤发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变;

⑥发送方继续发送2号帧,2号窗口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状态仍不变; ⑦接收方已收到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口状态不变; ⑧发送方收到接收方发来的1号帧收毕的确认信息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍不变。 b)选择重传协议 在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT),其工作过程如图所示。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。

计算机网络实验室规划方案

目录 安徽省新华学院................................................................................................... 错误!未定义书签。第1章网络实验室的建设目标....................................................................... 错误!未定义书签。 实验室建设的目标和意义................................................................................. 错误!未定义书签。第2章规划方案简介 ........................................................................................ 错误!未定义书签。 实验室设备汇总................................................................................................. 错误!未定义书签。.实验室设备拓扑图.............................................................................................. 错误!未定义书签。 试验台拓扑图..................................................................................................... 错误!未定义书签。 实验室机柜图..................................................................................................... 错误!未定义书签。第3章实验室组网配置 .................................................................................... 错误!未定义书签。 实验室设备连线以及接口规划方案 ................................................................. 错误!未定义书签。 实验室设备的网络地址分配 ............................................................................. 错误!未定义书签。 1、学生机区域IP地址规划............................................................................ 错误!未定义书签。 RCMS地址规划 ................................................................................................ 错误!未定义书签。 实验室各设备密码的配置................................................................................. 错误!未定义书签。 3760-1/2 设备的具体配置命令 ......................................................................... 错误!未定义书签。 (1)S-3760-1配置 ......................................................................................... 错误!未定义书签。 (1)S-3760-2配置 ......................................................................................... 错误!未定义书签。

数字逻辑电路课程课程设计--简易加减计算器

数字逻辑电路课程课程设计--简易加减计算器

摘要 本次课程设计的任务是设计一个具有加减运算功能的简易计算器,并通过合适的方式来显示最后的计算结果。此次设计电路的完成主要是利用简单的数字电路和电路逻辑运算来进行的。简易加减计算器电路主要是对数据的输入与显示,数据的加减运算,数据的输出与显示三个主要的方面来设计研究完成的。 在输入电路的部分,我们通过开关的闭合与断开来实现数据的输入,开关闭合接入高电平“1”,断开接入低电平“0”。而输入的数据将通过显示译码管以十进制的形式显示出来。由于输入二进制的位数较多,我们采用个位十位分别输入的方式来简化电路。

加减运算电路则主要通过加法器来实现的。设计电路时,我们将个位和个位、十位和十位分别接入一片加法器。在进行加法运算时我们所选择的加法器是完全符合要求的,但是在进行减法运算时加法器就不能满足我们的设计要求了。因此我们将减法转换为加法进行运算,运算时采用补码的形式。在进行减法时通过异或门将减数的原码全部转换为补码,输入加法器中进行相加。最后将进位信号加到十位的运算电路上就实现了加减法的运算电路。 在显示电路中,由加法器输出的数据是二进制码。这些码可能表示超过十的数字,所以显示译码管就不能正确的显示出数字了。此时要将二进制转化成BCD码,再将BCD码送到显示译码管中就可以将计算所得的数字显示出来了。

概述 1.1设计题目: 简易加减计算器 1.2设计任务和要求: 1)用于两位以下十进制数的加减运算。 2)以合适的方式显示输入数据及计算结果。 1.3设计方案比较: 方案一:输入十进制的数字,再通过编码器对十进制的数字进行编码,输出二进制的数据。运用显示译码器对输入的数字以十进制的形式进行显示。在进行加减计算的时候将二进制数字运用数模转换,然后再进行相加减。然后将这些模拟信号再次转换成数字信号转换成数字信号,再将数字信号输入到显示译码管中来显示数剧。

计算机网络实验三

计算机网络实验三

仲恺农业工程学院实验报告纸 自动化(院、系)自动化专业 122 班___ 组计算机通信网课 实验三虚拟局域网VLAN 第一部分:交换机端口隔离. 【实验名称】 交换机端口隔离. 【实验目的】 理解Port Vlan的配置,了解VLAN的原理,熟练掌握交换机端口隔离划分虚拟局 【背景描述】 假设此交换机是宽带小区城域网中的一台楼道交换机,住户PC1连接在交换机的 fa0/5口;住户PC2连接在交换机的fa0/15口,住户pc3连接在fa0/1口.现要实现各家各户 的端口隔离. 【实现功能】 通过PORT VLAN实现本交换机端口隔离. (通过虚拟局域网技术可以隔离网络风暴, 提高网络的性能,降低无用的网络开销。并能提高网络的安全性,保密性。) 【实现拓扑】 Switch PC1 PC2 【实验设备】 S2126G 1台、PC机 【实验步骤】 步骤1.搭建一个小型局域网的拓扑,使得一台可网管的交换机,通过普通快速以太 网端口f0/1、f0/2、f0/10与多台PC,使用直连线相连接。

并给三台PC机配置IP,要求所有IP属于同一个网段。保证三台PC两两之间互相能够ping通。截图于此 switchA#configure terminal !进入交换机全局配置模式 switchA(config)#vlan 2 !创建VLAN2 switchA(config-vlan)#name wxk01 !将其命名为wxk01 switchA(config-vlan)#exit!退出VLAN 01 switchA(config)#vlan 3 !创建VLAN 02 switchA(config-vlan)#name wxk02 !将其命名为wxk02 switchA(config-if)#exit 验证测试 使用命令show vlan和show running-config查看与刚才有何不同。 switchA#show vlan 步骤2.将接口分配到VLAN. switchA(config)#interface fa0/1 !进入fa0/1的接口配置模式。 switchA(config-if)#switch mode access switchA(config-if)#switch access vlan 2 !将fa 0/1 端口加入VLAN 2中。switchA(config-if)#exit switchA(config)#interface fa 0/2 !进入fa0/2的接口配置模式。 switchA(config-if)#switch mode access switchA(config-if)#switch access vlan 3 !将fa 0/2 端口加入VLAN 3中。switchA(config-if)#exit 验证测试 switchA#show vlan 步骤3.测试任两台PC互相PING不通.

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 1.1实验任务: 根据计算器的原理设计一个具有加减乘除功能的简易计算器。如:5+3*4/8=4。 1.2 实验基本要求: (1)实现最大输入两位十进制数字的四则运算(加减乘除)。 (2)能够实现多次连算(无优先级,从左到右计算结果)。 如:12+34*56-78/90+9=36 (3)最大长度以数码管最大个数为限,溢出报警。 二.实验设计方案 (1)用QuartusII的原理图输入来完成系统的顶层设计。 (2)用VHDL编写以及直接拖模块来各功能模块。 (3)通过2个脉冲分别实现个位数和十位数的输入。 (4)通过选择每次的输出数值,将输出值反馈到运算输入端 (4)通过除法运算实现十六进制到十进制的转换输出。 其具体实现流程图如下:

三系统硬件设计 FPGA: EP2C5T144C8目标板及相应外围硬件电路。(从略) 四系统软件设计 1.数据输入模块 原理:用VHDL创建模块,通过两个脉冲分别对两个数码管进行输入控制,再通过相应运算模块将两个独立数据转化成两位十进制数字。 2.运算模块 原理:用VHDL创建模块,四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号来时,将所得结果反馈给运算模块输入端。具体实现代码见附录二。 3.输出模块 原理:用VHDL创建模块,通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据,并且通过除法模块将十六进制转化为十进制。当输出结果溢出是LED0亮,同时数码管显示都为零。部分实现见附录二。 五实验调试 输入数据12,再按加法键,输入第二个数字25,按等号键,数码管显示37;按灭加法、等号键,输入第二个数据2,依次按等号键,减法键,数码管显示35;同上,按灭减法键、等号键,输入第三个数据7,依次按等号键,除法键,数码管显示5;按灭除法键、等号键,输入第四个数据99,依次按等号键,乘法键,数码管显示495,按灭乘法键、等号键,当前显示为99,依次按等号键、乘法键,数码管显示49005,同上进行若干次之后,结果溢出,LED0亮,同时数码管显示都为零。当输出为负数时,LED0灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

计算机网络实验实验

计算机网络实验实验报告 姓名:张程程 学号:1202100110 班级:电气自动化类121班实验一、网络基本知识及网线的制作 实验目的: 1、使学生掌握基本的网络知识; 2、使学生掌握RJ-45接头的制作。 实验内容: 1、阅读预备知识掌握网络基础知识; 2、一般双绞线的制作 3、交叉双绞线的制作 4、测试一般双绞线的导通性 思考问题: 1、交换机与集线器的区别 答:(1)在OSI/RM中的工作层次不同 交换机和集线器在OSI/RM开放体系模型中对应的层次就不一样,集线器是同时工作在第一层(物理层)和第二层(数据链路层),而交换机至少是工作在第二层,更高级的交换机可以工作在第三层(网络层)和第四层(传输层)。 (2)交换机的数据传输方式不同 集线器的数据传输方式是广播(broadcast)方式,而交换机的数据传输是有目的的,数据只对目的节点发送,只是在自己的MAC 地址表中找不到的情况下第一次使用广播方式发送,然后因为交换机具有MAC地址学习功能,第二次以后就不再是广播发送了,又是有目的的发送。这样的好处是数据传输效率提高,不会出现广播风暴,在安全性方面也不会出现其它节点侦听的现象。具体在前面已作分析,在此不再赘述。 (3)带宽占用方式不同 在带宽占用方面,集线器所有端口是共享集线器的总带宽,而交换机的每个端口都具有自己的带宽,这样就交换机实际上每个端口的

带宽比集线器端口可用带宽要高许多,也就决定了交换机的传输速度比集线器要快许多。 (4)传输模式不同 集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送数据。而交换机则不一样,它是采用全双工方式来传输数据的,因此在同一时刻可以同时进行数据的接收和发送,这不但令数据的传输速度大大加快,而且在整个系统的吞吐量方面交换机比集线器至少要快一倍以上,因为它可以接收和发送同时进行,实际上还远不止一倍,因为端口带宽一般来说交换机比集线器也要宽许多倍。 2、常见的局域网拓扑结构有哪些 答:目前常见的网络拓扑结构主要有以下四大类: (1)星型结构 (2)环型结构 (3)总线型结构 (4)星型和总线型结合的复合型结构 3、局域网的几种工作模式 答:目前局域网主要存在着两种工作模式,它们涉及到用户存取和共享信息的方式,它们分别是:客户/服务器(C/S)模式和点对点(Peer-to-Peer)通信模式。 4、T568A、T568B 打线方法 答:在EIA/TIA布线标准中规定了双绞线的两种线序568A与568B。 568A标准:绿白—1,绿—2,橙白—3,蓝—4,蓝白—5,橙—6,棕白—7,棕—8 568B标准:橙白—1,橙—2,绿白—3,蓝—4,蓝白—5,绿—6,棕白—7,棕—8 标准中要求12、36、45、78线必须是双绞。这是因为,在数据的传输中,为了减少 和抑制外界的干扰,发送和接收的数据均以差分方式传输,即每一对线互相扭在一起传输一 路差分信号。 实验二、常用网络命令及网络软件的使用

大学网络实验室方案的设计与建设

大学网络实验室方案的设计与建设

摘要:针对高校教学的需求提出了计算机网络实验室建设的总体构思,设计基于思科网络设备的网络实验 室建设与维护方案,并予以实施。 关键词:计算机网络实验室;方案;实施 随着信息技术的迅速发展,网络技术已经渗透 到社会生活的各个层面,社会对计算机网络技术人 才的需求量与日俱增,因此培养具备网络设备配置、 管理维护、安全管理能力的人才成为高校计算机专 业的一项重要任务。计算机网络是一门与实践结合 紧密的课程,而许多高校由于实验条件不足,在进行 该课程的设置时重理论、轻实践,造成学生对计算机 网络学习积极性不高,缺乏深刻理解,实践能力薄 弱。为解决这个问题,就必须加强计算机网络实验 室的建设,培养学生的实际动手能力,才能为社会输 送合格的网络技术人才。 1实验室的总体构思 实验室的方案设计基于以下几个方面考虑: (1)内容丰富 实验室设备能涵盖局域网、广域网、无线、网络

础上实现实践课程与理论课内容的紧密结合,全方位为学生提供实践动手的机会。 (2)设备完善 同类网络设备具备多种不同的型号,为学生在 实验中提供广泛的操作平台,在对比中学习,学习中对比,进一步拓宽眼界。 (3)拓扑灵活 灵活的拓扑设计只需要经过简单的跳线即可改 变拓扑,满足多种实验要求,而且能够根据多种需求进行扩展,让学生在实验中有机会充分发挥创新能力,根据实验目的自行完成实验的设计与配置,而且可实现实验室内部网络与校园网的轻松连接。(4)易于维护 紧凑连续的实验课程安排要求在一个班级完成 实验后能够迅速恢复实验设备,以免影响下一个班级的上机使用,这就需要一个易于维护与恢复的实验环境,包括对网络设备及终端计算机的恢复。

单片机课程设计——基于C51简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

相关主题
文本预览
相关文档 最新文档