• 20155218 《Java程序设计》实验五(网络编程与安全)实验报告


    20155218 《Java程序设计》实验五(网络编程与安全)实验报告

    一、实验内容及步骤

    (一)

    • 编写MyBC.java实现中缀表达式转后缀表达式的功能
    • 编写MyDC.java实现从上面功能中获取的表达式中实现后缀表达式求值的功能
    • 由中缀式求得后缀式可以使用栈,伪代码如下:
    1. 设立一个栈,存放运算符,首先栈为空;
    2. 从左到右扫描中缀式,若遇到操作数,直接输出,并输出一个空格作为两个操作数的分隔符;
    3. 若遇到运算符,则与栈顶比较,比栈顶级别高则进栈,否则退出栈顶元素并输出,然后输出一个空格作分隔符;
    4. 若遇到左括号,进栈;若遇到右括号,则一直退栈输出,直到退到左括号止。
    5. 当栈变成空时,输出的结果即为后缀表达式。
    • 算符优先法求解表达式:(生成后缀表达式+后缀表达式求值)

    步骤1:建立符号运算的优先级关系表

    步骤2

    1. 设操作数栈OPND,置空;运算符栈OPTR,最低符号#压进OPTR;
    2. 读入字符C,C若是操作数, 进OPND;
    3. 若是运算符,与OPTR栈顶元素(A)比较,根据算符优先级,决定如何处理:
    4. A<C, C压入OPTR栈;
    5. A=C, A从OPTR出栈;
    6. A>C,A出栈,从OPND依次弹出两个操作数y、x, 计算Z=x A y,Z压入OPND栈。C压进OPTR.
    7. 重复(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%
    分析总结 20min 11.11%
  • 相关阅读:
    将Color的格式转变成颜色值
    F# 学习笔记 1 基础学习
    GridView 72般绝技
    前台直接读取Web.config中的值的方法
    根据属性名称 获取对象的属性值
    字符集与字符编码简介(转)
    一个WinForm程序配置信息的简单模型和维护工具——设计说明
    扩展DLL调用扩展DLL的LINK2001错误的解决办法之一
    CProfile : 读写私有INI配置文件
    日记:如何在MFC中使用Winsock2
  • 原文地址:https://www.cnblogs.com/xzh1996/p/6939592.html
Copyright © 2020-2023  润新知