20155218 《Java程序设计》实验五(网络编程与安全)实验报告
20155218 《Java程序设计》实验五(网络编程与安全)实验报告
一、实验内容及步骤
(一)
- 编写MyBC.java实现中缀表达式转后缀表达式的功能
- 编写MyDC.java实现从上面功能中获取的表达式中实现后缀表达式求值的功能
- 由中缀式求得后缀式可以使用栈,伪代码如下:
- 设立一个栈,存放运算符,首先栈为空;
- 从左到右扫描中缀式,若遇到操作数,直接输出,并输出一个空格作为两个操作数的分隔符;
- 若遇到运算符,则与栈顶比较,比栈顶级别高则进栈,否则退出栈顶元素并输出,然后输出一个空格作分隔符;
- 若遇到左括号,进栈;若遇到右括号,则一直退栈输出,直到退到左括号止。
- 当栈变成空时,输出的结果即为后缀表达式。
- 算符优先法求解表达式:(生成后缀表达式+后缀表达式求值)
步骤1:建立符号运算的优先级关系表
步骤2
- 设操作数栈OPND,置空;运算符栈OPTR,最低符号#压进OPTR;
- 读入字符C,C若是操作数, 进OPND;
- 若是运算符,与OPTR栈顶元素(A)比较,根据算符优先级,决定如何处理:
- A<C, C压入OPTR栈;
- A=C, A从OPTR出栈;
- A>C,A出栈,从OPND依次弹出两个操作数y、x, 计算Z=x A y,Z压入OPND栈。C压进OPTR.
重复(3),直至表达式结束。
实验截图:
(二)
- 结对编程:一人负责客户端,另一人负责服务器
注意责任归宿,要会通过测试证明自己没有问题
基于Java Socket实现客户端/服务器功能,传输方式用TCP - 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
- 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
客户端显示服务器发送过来的结果
实验截图:
(三)
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
实验截图:
(四)
客户端和服务器用DH算法进行3DES或AES算法的密钥交换
实验截图:
(五)
服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
实验截图:
二、实验练习:使用TDD的方式设计关实现复数类Complex
产品代码:客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
( 二)PSP
步骤 | 耗时 | 百分比) | ||
---|---|---|---|---|
需求分析 | 20min | 11.11% | ||
设计 | 20min | 11.11% | ||
代码实现 | 100min | 55.55% | ||
测试 | 20min | 11.11% | 20/50 | |
分析总结 | 20min | 11.11% | {{屏幕快照 2017-06-04 上午12.30.00.png(uploading...)}} |
20155218 《Java程序设计》实验五(网络编程与安全)实验报告的更多相关文章
- 20155326 《Java程序设计》实验五网络编程与安全实验报告
20155326 <Java程序设计>实验五网络编程与安全实验报告 实验内容 任务一 1.两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/67667 ...
- 20155317 《Java程序设计》实验五网络编程与安全实验报告
20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...
- 20155320 《Java程序设计》实验五网络编程与安全实验报告
20155320 <Java程序设计>实验五网络编程与安全实验报告 实验内容 实验一 1.两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/67667 ...
- 20155339 《Java程序设计》实验五网络编程与安全实验报告
20155339 <Java程序设计>实验五网络编程与安全实验报告 实验内容 实验一 1.两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/67667 ...
- 20162328WJH实验五网络编程与安全实验报告
20162328WJH实验五网络编程与安全实验报告 一.实验五 网络编程与安全-1 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能 ...
- 20155338 《JAVA程序设计》实验五网络编程与安全实验报告
20155338 <JAVA程序设计>实验五网络编程安全实验报告 实验内容 实验一: •两人一组结对编程: •结对实现中缀表达式转后缀表达式的功能 MyBC.java •结对实现从上面功能 ...
- 20155324 《Java程序设计》实验五 网络编程与安全
20155324 <Java程序设计>实验五 网络编程与安全 实验内容 任务一 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实现从上面功能中获取的表达式中 ...
- #《JAVA程序设计》 20155214 实验五 网络编程与安全
<JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...
- 20155301 《Java程序设计》实验五网络编程与安全
20155301 <Java程序设计>实验五网络编程与安全 实验内容 实验1: 两人一组结对编程:参考http://www.cnblogs.com/rocedu/p/6766748.htm ...
- 20155308 《Java程序设计》实验五 网络编程与安全
20155308 <Java程序设计>实验五 网络编程与安全 实验内容 任务一 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.ht ...
随机推荐
- console 程序随系统启动及隐藏当前程序窗口
应业务需求,程序需要与系统启动而自动运行,故加入以下代码,保存成 .bat文件 ,双击执行即可 reg add "HKEY_CURRENT_USER\Software\Microsoft\W ...
- 定义类、System.Object对象、构造函数与析构函数、抽象类与静态类
一.类定义 class MyClass { //类成员 } 1.访问级别 默认访问级别为internal(内部类),也可以是public(公共类) internal(内部类):当前项目中的代码才能访问 ...
- jq实现多级菜单
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- C++派生类成员访问作用域,同名重载
#include <iostream> using namespace std; class CFatherSum //父类Sum { public: int m_iVar; //公用数据 ...
- nowcoder模拟赛
R1 D1 普及组... T1/T2 咕 T3 链接:C 小A有一个只包含左右括号的字符串S.但他觉得这个字符串不够美观,因为它不是一个合法的括号串.一个合法的括号串是这样定义的: ()是合法的括号串 ...
- 转:日志组件logback的介绍及配置使用方法
转自:http://blog.csdn.net/zgmzyr/article/details/8267072 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.lo ...
- Semtech 的 137-1050 MHz 超低功耗长距离收发器(SX1276 Long Range Transceiver)
SX1276 收发器采用 LoRa? 长距离调制解调器,可实现超长距离扩频通信和高抗干扰能力,并将电流消耗降至最低.凭借 Semtech 专利的 LoRa 调制技术,SX1276 使用低成本晶体和物料 ...
- Spring中使用属性文件properties的两种方式
实际项目中,通常将可配置的参数放到属性文件中,例如数据库连接信息.redis连接信息等,便于统一管理.然后通过IoC框架spring将其加载到上下文中,使得程序可以直接使用. 创建mysql.prop ...
- PAT——1029. 旧键盘
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
- [微信小程序] js变量名称写活
function create_variable(num){ var name = "test_"+num; //生成函数名 window[name] = 100; window[ ...