程序说明文档
Hill算法程序说明文档

Hill算法程序说明文档——《密码编码学与网络安全》实验一一、基本变量、数据结构、函数说明:1.基本变量定义部分:sc,sp:string型,明密文存储字符串。
r,c:int型,用于限制每次明密文矩阵的已知字符数。
pair:int型,明密文对最大值2.数据结构定义部分:cmatrix:double型二维数组,用于存储密文矩阵信息。
newpmatrix:double型二维数组,用于存储矩阵转逆变换后的明文矩阵信息。
oldpmatrix:double型二维数组,用于存储一开始未转逆的明文矩阵信息。
pmatrix:double型二维数组,用于存储最终的明文矩阵信息。
kmatrix:double型二维数组,用于存储密钥矩阵信息。
3.基本函数定义:changemod:返回类型为int型,参数类型为int型。
主要用途是:对一个输入的整型不断进行模26处理。
直到这个数能够被变量bs整除。
(这个函数的设置目的主要是为了防止算出的矩阵为小数)。
二、输入输出说明:本程序是需要输入进行驱动的。
具体输入项为:a. 已知明密文对每对的字符个数;b. 已知的明文对(若干);c. 与之相对应的密文对。
通过将明文矩阵行代换、并且转为逆矩阵后,与密文矩阵进行矩阵乘法并且mod 26后,程序运行完毕。
具体输出为:a. 行代换后的明文矩阵;b. 明文矩阵的逆矩阵;c. 最终解得的密钥矩阵K。
三、算法简略流程说明:对于输入的明密文矩阵,pmatrix和cmatrix矩阵。
首先使用线性代数的方法将明文矩阵进行行代换,如下列代码所示:for(int k=1;k<=r;k++){for(int t=c+1;t<=c*2;t++){if((t-k)==c) {pmatrix[k][t]=1;}else{pmatrix[k][t]=0;}}}for(int x=1;x<=r;x++) {for(int y=1;y<=c*2;y++) {System.out.print(pmatrix[x][y]+" ");}System.out.println();}然后将所得的行代换后的明文矩阵进行逆矩阵变换操作,具体步骤参见线性代数相关章节。
免疫程序说明-精品文档

三、国家免疫规划疫苗儿童免疫程序说明(2019年版)
一般原则
(一)起始免疫年(月)龄:免疫程序表
所列各疫苗剂次的接种时间,是指可以接
种该剂次疫苗的最小接种年(月)龄。
三、国家免疫规划疫苗儿童免疫程序说明(2019年版)
一般原则
(二)儿童年(月)龄达到相应疫苗的起
始接种年(月)龄时,应尽早接种,建议 在下述推荐的年龄之前完成国家免疫规划 疫苗相应剂次的接种:
乙脑灭活疫苗第4剂:<7周岁完成。
三、国家免疫规划疫苗儿童免疫程序说明(2019年版)
一般原则
如果儿童未按照上述推荐的年龄及时完成
接种,应根据下述疫苗补种通用原则和每
种疫苗的具体补种要求尽早进行补种。
三、国家免疫规划疫苗儿童免疫程序说明(2019年版)
Hale Waihona Puke 一般原则(三)国家免疫规划疫苗补种通用原则 未按照推荐年龄完成国家免疫规划规定剂次接种
疫苗均可按照免疫程序或补种原则同时接种,两
种及以上注射类疫苗应在不同部位接种。严禁将
两种或多种疫苗混合吸入同一支注射器内接种。
三、国家免疫规划疫苗儿童免疫程序说明(2019年版)
一般原则
(四)国家免疫规划疫苗同时接种原则 2.不同疫苗接种间隔:两种及以上国家免疫规
划使用的注射类减毒活疫苗,如果未同时接种, 应间隔≥28天进行接种。国家免疫规划使用的灭 活疫苗和口服脊灰减毒活疫苗,如果与其他种类 国家免疫规划疫苗(包括减毒和灭活)未同时接 种,对接种间隔不做限制。
三、国家免疫规划疫苗儿童免疫程序说明(2019年版)
表1. HIV感染母亲所生儿童接种国家免疫规划疫苗建议
HIV感染儿童 疫苗 乙肝疫苗 卡介苗 脊灰灭活疫苗 脊灰减毒活疫苗 百白破疫苗 白破疫苗 麻风疫苗 麻腮风疫苗 乙脑灭活疫苗 乙脑减毒活疫苗 A群流脑多糖疫苗 A群C群流脑多糖疫苗 甲肝减毒活疫苗 甲肝灭活疫苗 HIV感染状况不详儿童 无症状 √ 暂缓接种 √ × √ √ √ √ √ × √ √ × √ 有症状或有免疫 无症状和无免疫 有症状或有免疫 抑制 抑制 抑制 √ × √ × √ √ × × √ × √ √ × √ √ × √ × √ √ √ √ √ × √ √ × √ √ 暂缓接种 √ × √ √ × × √ × √ √ × √ HIV未感 染儿童 √ √ √ √ √ √ √ √ √ √ √ √ √ √
程序说明文档

执行修改操作
reader_type_delete
删除读者类型
reader_stat
读者情况统计
删除学科类型
book_bookclass_deleteclass
执行删除操作
book_stat
图书统计结果显示
borrow/
borrow_login
借书读者登录
borrow_querybook
查询图书
borrow_book_query
显示查询结果
borrow_book_borrow
读者借书
borrow_book_preconcert
执行删除操作
book_bookclass
学科类型管理
book_bookclass_addnew
添加学科类型
book_bookclass_add
执行添加操作
book_bookclass_update
修改学科类型
book_bookclass_updateclass
执行修改操作
book_bookclass_delete
执行修改操作
rule_delete
删除借阅规则
user_management
管理员账户管理
user_add
用户添加页面
user_adduser
执行添加操作
user_update
用户修改页面
user_updateuser
执行修改操作
user_delete
执行删除操作
book/
book_addnew
新书入库页面
读者预约
return_login
还书读者登录
画图程序说明文档

画图程序设计报告此绘图程序经过我一个多月的努力和不断改进,终于初步完成了。
现将此程序的主要功能和实现方法简要介绍如下:(1)画点、画直线和折线功能,在直线第一个端点已确定而第二个端点尚未确定时,随着鼠标的移动实现橡皮线功能。
实现方法:利用dc.SetROP2(R2_NOTXORPEN)函数设置绘图混合模式为异或模式,即把每一个新的鼠标位置作为直线第二个端点画一条直线,并同时在异或的绘图模式下将上一条直线重画一次,便相当于擦去了上一条直线,从而实线了橡皮线功能。
画折线时即把组成折线的每一条线段分别用与上述相同的方法便可实现。
(2)画矩形、三角形、任意多边形,还有椭圆和圆。
画矩形、多边形和椭圆分别用现成的函数dc.Rectangle、dc.Polygon、dc.Ellipse 就可是实现,只需将适当的参数传进函数中就行了。
但注意,必须在使用这些函数之前通过CClientDC dc(this)来获取设备环境。
而画三角形时只要把它看成是一个特殊的多边形就行了。
画圆时,首先第一次点击鼠标左键确定了圆的圆心,而第二次点击鼠标就得到了圆周上的一个点,通过(int)sqrt((point.x-m_nStartX)*(point.x-m_nStartX)+(point.y-m_nStartY)*(point.y-m_nStartY))计算得圆的半径m_radius,然后利用画椭圆函数dc.Ellipse(m_nStartX-m_radius,m_nStartY-m_radius,m_nStartX+m_radius,m_nStartY+m_radius)就可画出这个圆了。
利用和拉出橡皮线类似的方法,只需通过设置绘图模式为异或,就可在画这些图形时,实现随着图形随着鼠标位置动态变化的功能。
(3)实现橡皮擦和清屏功能。
首先都保证 BackColor这个成员变量始终等于背景颜色,初始默认值为白色(RGB(255,255,255)),然后在用橡皮擦时即随着鼠标的移动不停地画以鼠标所在处为中心的小矩形,由于画刷颜色为BackColor,即与背景颜色一致,便相当于擦去了鼠标经过处周围的图形。
小程序使用说明文档

小程序使用说明文档1.登录角色:本次小程序主要支持的登录角色有:代理商、业务员两种角色2.功能模块:本次一期小程序主要实现的功能有三个,第一个商户经营状况查询;第二个商户预警提醒功能;第三个数据罗盘。
(1)商户经营状况商户经营状况中,可以查看到所登录角色下属的所有活跃商户的交易状况(如果某个商户某一天一条交易记录都没有,那么它不会出现在当天的经营状况列表里面)商户经营状况可以按照商户名查询某一个商户的经营状况;也可以按照具体某一天,或者按月来查询下属商户的交易状况;当然,这两个条件是可以组合使用的,你可以查询下属商户某一天或者某一个月份的经营情况!(2)商户预警预警提醒功能分两个页签:“预警信息”和“等待确认”,都可支持按照商户名进行搜索预警提醒中会显示登录角色下属的所有昨天交易量相对前天有所下降的商户,并且会按照下降比例从高到低的顺序进行排序。
在预警提醒中,可以预警商户进行操作。
对于处于正常波动范围内的商户,点击长按,在弹出框中点击“忽略”,即可从预警信息列表中清楚该数据。
对于下降比例不正常的商户,点击长按,在弹出框中选择“等待确认”,即可把该条记录添加到等待确认列表中(预警列表中的数据每天都会刷新,所以请务必记得把异常商户及时添加到等待确认列表!)。
等待确认列表列表中显示当前登录角色从预警信息列表中添加过来的所有商户数据,在改列表中可以对商户进行处理。
对于不小心误操作过来的商户,可以点击长按,选择“正常”,从该列表中清楚该条数据。
对于无法挽回的商户,点击长按,在弹出框中选择“确认流失”,填写流失原因说明(必填!)后可从该列表中移出该条数据。
对于已经做出处理并挽回的商户,点击长按,在弹出框中选择“确认处理”,填写处理方法(必填)后,可从该列表中移出该记录。
对于所有添加到等待确认列表中的商户,具体的处理方法和处理说明记录,都有在数据库做记录。
(3)数据罗盘数据罗盘主要是展示当前登录角色下的所有商户的交易情况的一些汇总信息。
程序设计说明文档

程序设计说明文档
-一、程序概述
本程序为一个图书管理系统,(简称BMS),用来实现图书的管理,包括添加,修改,删除,查询等,面向的用户为
图书管理人员,提供了一个安全可靠的管理工具。
-二、系统功能
1.图书管理:添加图书,修改图书信息,删除图书,查询图书
2.用户管理:添加用户,修改用户信息,删除用户,查询用户
3.系统设置:设置用户权限,设置日志记录
-三、系统架构
1. 前端:HTML,CSS,JavaScript
2. 后端:Node.js
3.数据库:MySQL
4. 缓存:Redis
-四、程序实现
1.建立数据库,创建表:图书信息表,用户信息表,登录日志表,权限表,等等。
2. 编写Node.js程序,读取表中数据,并进行处理。
3. 将处理后的数据返回Web页面,由JS渲染到页面中。
4.后端程序实现对用户信息表,用户登录日志表,用户权限表等的操作。
5.程序完成后,部署到生产服务器,确保安全可靠性。
-五、开发环境
1. 开发工具:Visual Studio Code
2.数据库:MySQL
3. 后端编程语言:Node.js
4. 技术框架:Express
5. 前端技术:HTML,CSS,JavaScript
-六、部署架构
1. 操作系统:CentOS, Ubuntu
2. Web服务器:Apache, Nginx
3. 数据库:MySQL, Redis。
程序说明文档

程序说明文档小组成员:周勍、麦娥英、曾启飞、李琰本程序为控制台程序,没有设计界面,所有的数据输入和输出需要在代码中指定路径和文件名。
本程序分为两大部分,样本训练和检测识别。
1.样本训练:(文件夹pichuli用于训练特征计算)(1)输入avi视频,调用函数Video_to_image,将视频数据按帧数截成100张图像,并存储起来;(2)批量导入100张训练样本(3)对训练样本进行颜色分割;(4)对(3)中结果图像进行高斯滤波和边缘检测,并转化为灰度图像,(5)利用findcontour函数进行椭圆拟合,检测出车牌标志(6)利用calculatevectors函数进行特征向量的计算,并保存为txt(7)输入(6)保存的txt(见X:\空间智能数据处理\pichuli\训练向量程序部分运行说明.txt)(8)设计网络参数:CvANN_MLP_TrainParams params;params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER +CV_TERMCRIT_EPS, 5000, 0.01);params.train_method=CvANN_MLP_TrainParams::BACKPROP;params.bp_dw_scale=0.1;params.bp_moment_scale=0.1;(9)设定预期输出值、网络层数等(10)调用train接口进行训练,得到一个txt,将其保存下来。
(步骤(7)-(10)为Training_MLP函数内容)2.检测识别(文件夹test用于检测识别算法)(1)通过修改路径代码,输入检测样本,并对其进行检测,即1中的(3)-(6)步骤;(2)输入txt数据后,调用predict接口进行预测,得到预测后的向量(3)对预测向量进行类别判定,如下代码:(4)得到识别结果,如下代码:。
连续梁程序说明文档2011010128

连续梁程序说明文档——结12 张佳佳2011010128一、程序思路二、流程说明1、运行matlab,在命令窗口输入“LXL”,或直接通过File-Open打开“LXL.m”运行该m文件;2、根据提示输入结构的几何特性和荷载工况;在输入时需要注意以下几点:1)所有的向量以matlab可识别的数组形式输入;2)单元抗弯刚度仅支持数值输入,需要提出EI后输入剩余系数;3)输入的直接结点力矩数组元素个数应等于最大位移编码数。
3、当所有数据输入完毕之后,程序自动输出如下量:1)整体刚度矩阵KE;2)各节点转角ZJ;3)各杆端弯矩FJ。
三、计算算例算例选取题4,荷载工况2:程序运行过程:请输入单元总数:NE=6请输入单元杆长数组:BL=[4 6 6 8 4 6]请输入去掉EI后的抗弯刚度数组:EI=[1 1.5 1 2 1 1.5]请输入单元定位向量数组:JD=[1,2;2,3;3,4;4,5;5,6;6,7]请输入杆端弯矩数组注意数组维数与最大位移编码相同:P =[0 0 -8 0 10 0 0]请输入跨中集中荷载数组:FL =[0 12 8 0 6 0]请输入均布荷载数组:q =[0 0 0 0 0 0]各节点转角整体刚度矩阵各单元杆端弯矩弯矩图四、编程总结此次编程时是首次接触matlalb这个软件,深感这个软件的强大和各种函数给编程已经矩阵运算带来的方便。
可能自己的算法比较繁琐,但是满足了各种荷载工况以及输出弯矩图的基本要求。
程序不知道带符号的运算,所有输入都必须以纯数字组成的数组进行输入,相信在这方面还会有很大的改进空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
顶层结构:
a、b结构:
random 模块是数据投保协议模块并产生[7:0]的递增数据,经过fifo 将数据以[31:0]输出,然后rdusedw[9:0]与350进行比较,比较大小,如果大的话输出fifo_flag=1。
表示后面可以添加以太帧。
寄存器wr 模块状态机:
s1状态表:construct the mac frame header and first 2bytes of udp payload,total length is
状态描述:
S0:将flag信号做一个反转,并定义flag=0&&fifoa_flag==1时channel_sel<=0;
flag=1&&fifob_flag==1时channel_sel<=1;
S1:6+6+2+20+8+1400字节;具体分为a,b;在这里针对a进行描述。
b888e3e5efb5123456789abc080045000596b3ba00000111d6e5c0a8a865c0a80001d43117710582 00000000+data_in;
1、b888e3e5efb5自己电脑本机mac地址;
2、123456789abc 板子上mac地址(自己进行配置);
3、0800 凡是携带IP包的帧的类型域都是0x0800;
4、45000 IP首部/版本
5、0596 IP头+数据长度 20+8+1402=1430;
6、b3ba 16位标示,每传1位16位标示加1;
7、0000 FLAGS/offset位;
8、01通过最多路由级数TTL;
9、11 UDP协议
10、d6e5 checksum数据
计算方法:取IP数据报报头部分(20B),数据如下:
45 00 05 96 b3 ba 00 00 01 11 d6 e5 c0 a8 a8 65 c0 a8 00 01
(1)将校验和字段置为0:
将d6 e5置为00 00,即变成:
45 00 05 96 b3 ba 00 00 01 11 00 00 c0 a8 a8 65 c0 a8 00 01
(2)反码求和
4500 + 0596 /021c+ b3ba + 0000 + 0111 + 0000 + c0a8 + a865 + c0a8 + 0001 = 32917
将将进位(3)加到低16位(2917)上:0003+2917=291a;
(3)取反码
将291a取反得:checksum= d6e5
0010100100011010=291a
1101011011100101 = d6e5;
11、c0a8a865 源IP地址,板子上自定义的IP地址;
12、c0a80001目的IP地址,pc机上使用的协议4静态地址;
13、d431 源端口号1771目的端口号(不用更改)
14、0582 UDP头+数据长度8+1402=1410 0x582;
15、 0000检验校验checksum是否正确
计算方法:
(1)对首部中每个16 bit进行二进制反码求和;
(2)将(1)中得到的和再取反码 ,看是否为0.
接收到的IP数据报首部:
45 00 05 96 b3 ba 00 00 01 11 d6 e5 c0 a8 a8 65 c0 a8 00 01
下面来验证下:
(1)反码求和
4500+0030+804c+4000+8006+b52e+d343+117b+cb51+153d=3fffc
4500 + 0596 + b3ba + 0000 + 0111 + d6e5 + c0a8 + a865 + c0a8 + 0001 = 3fffc
0003+fffc=ffff;
(2)取反码:~ffff=0 正确
16、 0000 两字节的UDP载荷
17、data_in;random中产生的data_in包含了数据头包协议,在数据段用户使用自定义应用时(例如传输图片)使用该协议对数据进行一个加协议头的操作;
S2:数据传输状态
datacnt==348时将fifo_rd<=0进行清零操作;
datacnt==350时mac_end<=1;拉低输入使能信号;
datacnt==351时所有数据置零并回到S0状态;
其他mac_dataout<={temp_data[7:0],temp_data[15:8],temp_data[23:16],temp_data[31:24]}; 使用SignalTap II结果
现使用512字节数据,需要更改如下:
0596 IP头+数据长度 20+8+1402=1430,改为0x21c = 20+8+512=540;
d6e5 checksum数据改为25a0;
0582 UDP头+数据长度8+1402=1410改为8+512 =520 = 0x208;
compare模块中将350更改为143;
注释:512中包括2字节udp载荷以及数据头包协议部分
IP核接口
ff_tx_crc_fwd:插入CRC 校验码,如果该端口和tx_ff_eop 一起设置为0,则自动
计算CRC 并且插入到帧中。
负责,将不会插入。
接GND;
ff_tx_data[31:0]/mac_datain[31:0] :发送信息,发送的第一个字节是
mac_datain[31:24],第二个字节是mac_datain[23:16],……;
ff_tx_eop/mac_end:一帧传送结束的标志位,设为1 证明最后一位传送完毕;
ff_tx_err:接GND,错误提示信号,若最后一字节被设定则证明前面的信息无效;
ff_tx_mod[1:0]:接GND,证明ff_tx_data[31:0]是有效的。
其他不同的状态代表:11: ff_tx_data[23:0]无效;10: ff_tx_data[15:0]无效;01: ff_tx_data[7:0]无效;
ff_tx_sop/mac_start:一帧开始发送的标志,设为1 表示开始;
ff_tx_wren/mac_wr:写入信号使能,证明ff_tx_data,ff_tx_sop,ff_tx_eop 的有效性;
ff_tx_clk/clk_50M:发送的FIFO 时钟;
ff_rx_rdy:接VCC,证明MAC 层准备就绪;
ff_rx_clk/clk_50M:接收FIFO 的时钟输入,上升沿有效;
address[7:0]/mac_reg_addr[7:0]:存储32 比特信息的寄存器地址;
writedata[31:0]/mac_reg_wr_data[31:0]:写入寄存器的数据,共32 位;
write/mac_reg_wren:寄存器写入信息的使能端;
clk/clk50M:寄存器参考时钟信号;
reset/nreset:复位信号;
tx_clk/clk_125M:GMII/RGMII/MII 发送参考时钟信号,为GMII/MII 提供参考时钟;rx_clk:GMII/RGMII/MII 接收参考时钟信号,为所有和接收rx 有关的信号提供
参考时钟;
set_10:(处于GND 状态)选择10Mbps 的以太网模式。
如果接地,说明现在
MAC 层不是处于该模式下;
set_1000:(处于VCC 状态)选择1Gbps 的以太网模式,置0 说明不在该模式下,置1 说明工作于该状态模式下;
gm_rx_d[7:0]:GMII 接收信号总线;
gm_rx_dv:置1 说明接收信号总线接收的数据是有效的,从接收帧的开始到帧的
结束,该信号应该都置于有效状态;
gm_rx_err:由物理层决定的,证明接收帧中出现了错误,错误提示信号;
输出:
gm_tx_d[7:0]:GMII 发送数据总线;
gm_tx_en:证明数据gm_tx_d[7:0]的有效性;
gm_tx_err:错误提示信号;
以太网IP核配置。