教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

计算机体系结构与算法分析毕业设计说明书,毕业设计(9)

来源:网络收集 时间:2026-04-01
导读: 中南林业科技大学本科毕业设计 软件体系结构与基础算法分析 return pas; } } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); * @param data 原始的明文密码 * @return MD5算法加密后的密码 */ pri

中南林业科技大学本科毕业设计 软件体系结构与基础算法分析

return pas; }

}

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

* @param data 原始的明文密码 * @return MD5算法加密后的密码 */

private String getwod(char[] data) {

String pas = null; try {

MessageDigest md = MessageDigest.getInstance(\返回指定的MD5摘要md.update(String.valueOf(data).getBytes());//使用制定字节更新摘要 byte ball[] = md.digest();//通过执行诸如填充之类的最终操作完成哈希计算 int i;//定义的一个初始变量,用来存放相应的值 StringBuffer buf = new StringBuffer(\

for (int offset = 0; offset < ball.length; offset++) { }

pas = buf.toString();// 32位的加密 System.out.println(pas);

i = ball[offset];//获取指定字节处的值 if (i < 0)

i += 256;//改变指定位置符合条件的值 buf.append(\if (i < 16)

buf.append(Integer.toHexString(i));//在新的字节流中加入新的改变了的字符

MessageDigest类

从注册界面上获取到的密码是一个char[],Model层在获取到这个装有密码的数组之后,调用加密的方法。该方法获得需要加密的参数之后,首先解析该数组,通过摘要类使用指定的字节来更新摘要,通过填充类来生成一个新的字节数组。在解析字节数组中的每一个位置对应的字节,当字节大小小于0时,在原字节长度的基础上加上256长度,若是大小小于16则在原字节长度的基础上加上0,然后将新的字节添加到新的字节数组中去。所获取到的就是新的加密后的密码。

注册时加密存入数据库中,避免直接访问数据库时看到的是明文密码。保证了用户数据的安全性,同时也会提高系统的可靠性。

25

中南林业科技大学本科毕业设计 软件体系结构与基础算法分析

2.排序扩展

在对容量进行排序时,由于table中自带的排序和数据库中的数据会产生一定的冲突,排序不会成功,所以有一个冒泡排序近似的算法来完成功能。

public void actionPerformed(ActionEvent e) {

Vector data=service.findALL();//获取数据库中所有物品的信息数据 if(((JButton)e.getSource()).getName().equals(\显示商品\ } }

//如果点击的是显示商品的按钮

table=new JTable(new MyGoodsModel(data)); frame.getPanl().getViewport().add(table);

table.getTableHeader().setReorderingAllowed(false);// 不允许改变表头的顺序 table.setAutoCreateRowSorter(true); frame.getPanl().updateUI();

System.out.println(\运行排序\点的是排序的按钮

Vector array=new Vector();//用来存放新排序的数据的容器 for(int i=0;i

int num=data.get(i).getGoodsNum();//获取当前数据的存货量 int state=i;//记录最大的存货的位置 for(int j=0;j

if(num<=data.get(j).getGoodsNum()){ }

num=data.get(j).getGoodsNum();//如果当前位置的存货量比下个位置的state=j;//记录最大存货量的位置

}else{

存货量大的话就将下个位置的存货量替换

}//end of for

array.add(data.get(state));//将一轮遍历完了的最大存货量的数据添加到新的容data.remove(state);//丛原容器中移除

器中

}//end of for

table=new JTable(new MyGoodsModel(array));//将新的数据付给表格模型 frame.getPanl().getViewport().add(table);//刷新表

table.getTableHeader().setReorderingAllowed(false);// 不允许改变表头的顺序 //table.setAutoCreateRowSorter(true); frame.getPanl().updateUI();//刷新表

自定义排序会在完成系统要求功能的同时提高程序执行和反应的效率,在一定程度上优化了系统。

26

中南林业科技大学本科毕业设计 软件体系结构与基础算法分析

5 软件体系结构中算法运用的分析

5.1 排序算法结果分析

图5-1 使用自带的算法排序后的结果

由图5-1不难看出,由于数据库字段的问题table类中自带的排序后产生的结果并不是我们想要的理想的结果。它是将数值型的数据当做字符串来排序的,并不是想数值型那样由大到小的排序后的结果,所以我们需要在原有的软件结构的基础上添加新的排序算法来达到想要的结果。

27

中南林业科技大学本科毕业设计 软件体系结构与基础算法分析

图5-2 用冒泡算法之后的排序结果

所以添加了新的冒泡排序操作后的结果就如图5-2所示,“存货”数量的排序是按照有大到小的顺序排列的,达到了我们想要的结果。

因此不难看出,基础算法在完善系统的功能方面有很好的效果。所以,在系统设计好的基础上,在完善某些功能时,可以优先考虑基础算法去解决。

5.2 加密算法分析

登录时服务器获取到的用户名的密码在前端就已经做了处理,经过MD5转码,将字符串型的用户密码转成16进制的类型存入数据库或者从数据库提取做验证,在基本程度上保证了用户的密码的安全。

28

中南林业科技大学本科毕业设计 软件体系结构与基础算法分析

从界面按获取密码原文调用MD5类返回指定的摘要使用指定字节更新摘要填充更新完的摘要并赋予一个字节数组当前位置是否小于数组长度否当前字节长度<0>16是<16字节值后面加256字节值后面加“0”字节值不变完成加密返回加密后的密文将新的字节值存入数组 图5-3 密文加密流程图

比如用户名的账号密码分别为:admin,admin,那么服务器收到的用户名密码就分别是:admin,21232f297a57a5a743894a0e4a801fc3。要是客户端机器上有中了木马病毒之类的,在不知道系统的解密的算法的情况下就无法窃取到用户的密码。

5.3 扩展分析

基础算法除了在完善系统功能和解决系统性能上有很大的作用之外,在提高系统执行的效率方面也有很大的作用。考虑到在仓库系统的操作中在提高效率主要是从数据库操作方面入手,而存储结构基本上不涉及到算法或者很少涉及到算法,所以没有做相关的实例。但是从基础算法的理解上入手,不难看出,基础算法在提高软件的数据访问效率上的确是有很大的作用的。像在缓存中查找对应的

29

…… 此处隐藏:1382字,全部文档内容请下载后查看。喜欢就下载吧 ……
计算机体系结构与算法分析毕业设计说明书,毕业设计(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/566030.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)