我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下: 实现代码如下: import urllib.request def getHtml(url): html = urllib.request.urlopen(url).read() return html def saveHtml(file_name, file_content): # 注意windows文件命名的禁用符,比如 / with open(file_name.replace('/', '_') + ".html", "wb") as
2022-06-15 23:10:11 198KB html代码 html文件 python
1
PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设计文档+源代码+SQL文件PHP实现的通讯录管理系统设
2022-06-08 11:05:14 182KB PHP实现的通讯录管理系统设计文
功能要求: ①成绩的输入(学号、姓名、英语、数学、C++语言…)。 ②成绩统计(各科平均成绩、各科成绩"优秀"、"良好"、"中等"、"及格"、"不及格"的人数及其所占比例)。 ③总成绩统计(学生的总成绩、平均成绩及成绩排名)。 ④成绩的统计结果显示。 ⑤学生数据的添加、修改、与删除。 ⑥学生数据的读取与存储。
2022-05-22 15:52:29 3KB 成绩统计
1
中央气象局全国各城市天气代码数据库文件,用于天气预报应用,根据城市天气代码获取天气信息.
2022-05-19 13:54:17 132KB 全国 城市 天气 代码
1
1. 设计目的、意义(功能描述) 蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。本次大作业主要是对蒙特·卡罗方法进行并行处理,通过OpenMP、MPI、.NET、Java、Win32API等一系列并行技术和并行机制对该算法进行并行处理,从而也进一步熟悉了蒙特·卡罗方法的串行算法和并行算法,实现了用蒙特·卡罗方法计算出半径为1单位的球体的体积,体会到了并行技术在实际生活中的应用。 2. 方案分析(解决方案) 蒙特·卡罗方法(Monte Carlo method)是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。球的体积可以估算为:位于点模型内随机点个数与全体随机点个数的比值乘以包围盒的体积算的。 3. 设计分析 3.1 串行算法设计 假定球体用B表示,半径r=1单位,B1是包含B的参考立方体(在本例中是边长为2的正方体),在B1中产生N个均匀分布的伪随机点。对每个随机点检测其是否在B内,假设位于B内的随机点个数为N(in)(<=N),应用蒙特卡洛算法,则B的体积为 V=V1(N(in)/N) 其中V1是B1的体积。如果产生足够多的随机点,理论上可以获得任意逼近精度。 算法描述如下: BEGIN N=_MAX; FOR I=0;I<_MAX;I++ X=RANDOM(); Y=RANDOM(); Z=RANDOM(); IF (X*X+Y*Y+Z*Z)<=1 COUNT++; END IF; END FOR; BULK=V1*(COUNT/_MAX); END; 本算法主要是在参考立方体的选取上和定义的_MAX的值对结果影响较大,所以应该选择合适的数。 3.2 并行算法设计 对FOR循环进行划分使用两个处理器完成计算。例如对一个长为n的序列,首先划分得到两个长为n/2的序列,将其交给两个处理器分别处理;而后进一步划分得到四个长为n/4的序列,再分别交给四个处理器处理;如此递归下去最终得到结果。当然这是理想的划分情况,如果划分步骤不能达到平均分配的目的,那么结果的效率会相对较差。 伪代码如下: BEGIN N=_MAX; FOR1 I=0;I<_MAX/2;I++ X1=RANDOM(); Y1=RANDOM(); Z1=RANDOM(); IF (X1*X1+Y1*Y1+Z1*Z1)<=1 COUNT1++; END IF; END FOR1; FOR2 I=_MAX/2+1;I<_MAX;I++ X2=RANDOM(); Y2=RANDOM(); Z2=RANDOM(); IF (X2*X2+Y2*Y2+Z2*Z2)<=1 COUNT2++; END IF; END FOR2; BULK=V1*((COUNT1+ COUNT2)/_MAX); END; 3.3 理论加速比分析 实验中大量数据所产生的加速比比小量数据所产生的加速比要体现得更明显,并且数据生成的并行加速比随着处理器核的增加而增加。设处理器个数为p,数据量为n,由于正常情况下该快速排序算法的复杂度为O(nlogn),并行处理的时间复杂度为O(klogk),其中k=n/p,所以并行算法的时间复杂度为O((n/p)log(n/p)),理论加速比为nlogn/((n/p)log(n/p))=p+logp. 4. 功能模块实现与最终结果分析 4.1 基于OpenMP的并行算法实现 4.1.1 主要功能模块与实现方法 利用了OpenMP里面的#omp parallel sections将对两个for循环用两个线程并行化执行,以多线程方式并行运行程序,并行的算法步骤如下: (1)初始化_max = 10000000; (2)创建两个线程; (3)由OpenMP编译指导语句控制产生并行执行代码区段; (4)将数据存放到tianqing_count; (5)各线程调用算法得出结果; 并行算法的部分代码如下: #pragma omp parallel for private(tianqing_x,tianqing_y,tianqing_z) reduction(+:tianqing_count2) for (tianqing_i = 0; tianqing_i work1.pSumto(b, 0, MAXN - 1)); Thread newthread1 = new Thread(thread1); 创建Work类的对象work2; ThreadStart thread2 = new ThreadStart(() => work2.pSumto(c, 0, MAXN - 1)); Thread newthread2 = new Thread(thread2); stopwatch.Start(); 启动线程1和线程2; 等待进程结束; stopwatch.Stop(); 得到结果; 4.5.2 实验加速比分析 实验中创建了两个线程,通过多次测试,得出实验结果:由上面的理论加速比分析可知,当线程数为2时,理论加速比为2+log2=3.但由于实际操作中硬件设备以及内存分配的影响,实验加速比达不到理论值3.实验加速比在2.6~2.7左右。 4.6 并行计算技术在实际系统中的应用 4.6.1 主要功能模块与实现方法 该飞机订票系统主要实现了对机票的一些基本信息进行存储和管理的功能。在系统中实现了对机票信息的增删改查,考虑到查询的方便性,对机票按照航班号进行排序,而此排序方法用并行快速排序运用进来。利用OpenMP的并行技术,对机票信息按顺序排列好,并分析了实验过程中的加速比。 4.6.2 实验加速比分析 实验中创建了两个线程,通过多次测试,得出实验结果:当数据量比较大时,加速比理论在1.9左右。数据量较大时体现出来的加速比更准确。由上面的理论加速比分析可知,当线程数为2时,理论加速比为2+log2=3.但由于实际操作中硬件设备以及内存分配的影响,实验加速比达不到理论值3.实验加速比在2.2~2.4左右。 5. 设计体会 虽然没有按时完成作业,但这份报告花了我好几天的时间,从开始的搭建并行计算平台到最后的程序运行成功可以说是对我的一个锻炼。每一次的遇到问题与每一次的解决问题都是一个成长。每一次遇到问题和解决问题都是一种锻炼,一种尝试,从我们上并行计算课我懂得了很多电脑硬件和软件的知识,这些可能对于我们这个专业以后都是没有机会接触的,所以我觉得选择了并行计算与多核多线程技术这门课是非常正确的。对OpenMP、MPI、WIN32API、Java、.NET的并行技术有了一定的了解。在搭建MPI并行程序这块,学习的知识尤为增加,这些都是在不断的摸索、学习中学会的。 这次的大作业虽然是对以前实验的整合,但它加深了我对并行计算的印象,也使我对并行计算知识的理解更加深刻,也使我认识到了自己很多不足之处。学习并行计算的历程不会因为完成本次大作业而停止,我们是为了用知识武装大脑而学习,通过学习充实自己的生活,要努力学习,争取以后能够完成规模更大的程序。
2022-05-12 14:47:11 12.84MB 并行计算 课程设计
1
JavaScript操作数据库JS操作Access数据库,跟其他语言操作差不多,总结了一下习惯代码,仅供参考学习。 现在在F盘有文件abc.mdf,表名为Student,一共2个字段,Id数字类型主键,stuName文本类型,现对该表进行增删改查的操作: 1.查询 代码如下: <HTML> <HEAD> <TITLE>数据查询</TITLE> [removed] var conn = new ActiveXObject(“ADODB.Connection”); conn.Open(“DBQ=f://abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)
2022-05-05 20:40:19 35KB html代码 html文件 html语言
1
学习Arduino有段时间了,也看了很多东西,所以打算最近做了一辆3轮的智能车。 Arduino智能车制作配件 3轮小车底盘(能安装UNO、带其他配件) 1块 UNO控制板 1块 Arduino电机驱动 1块 UNO扩展板 1块 7.4V充电锂电池(充电器) 1块 电源端转DC端口线 1块 超声波云台(包含超声波、舵机及固定支架) 1块 LCD12864液晶显示器 1块 测速模块 2块 杜邦线(连接模块) 20根左右 焊接导线(连接电机及点击驱动) 6根左右 铜柱螺丝(必要时加高) 热缩管+扎带+黑胶布 工具:烙铁、锡丝、斜口钳或者剪刀、打火机(热缩管用)、螺丝刀 小车所用到的装备: 1、首先当然是小车底盘了,我用的是3轮小车底盘,带开关(很方便); 2、控制板(我用的是UNO兼容版),电机驱动,扩展板(方便用杜邦线,VCC及GND也很多);3块板子可以直接插在一起,节省了很多空间,如下图: 3、供电电源,我使用的是7.4V充电锂电池加DC转接头,当然还有充电器~~如下图: 4、超声波舵机云台,如图: 5、显示模块LCD12864,我的买回来后又加工了一次,原来是直排针(不太还接线),将它改成弯排针了,如下图: 6、最后就是测速模块,现在还没调试到它,但是已经将它安装在小车上;还有些配件:螺丝、铜柱、杜邦线等,还有些简单的工具:烙铁、螺丝刀什么的;我还有用扎带,热缩管,这样小车看起来会更美观! 超声波使用的是 A2 和A3脚,这个自行定义也可以的!我使用的扩展板上就有这个接口舵机使用的是D13 12864 使用的是杜邦线连接的,引脚使用下面也有! 所有的连接方式都有写到程序中,打开一看就知道了! Arduino避障小车 電路連接: D3、D4和D6、D7分别连接左右电机,控制电机 超聲波連接: VCC ---- +5V;Trig ---- A2;Echo ---- A3;GND ---- GND; 舵機控制:D13 LCD12864引脚连接: RS ---- D2;R/W ---- D8;E ---- D9;PCB ---- GND;VSS ---- GND;VDD ---- VCC;LED+ ---- VCC;LED- ---- GND;
2022-05-05 16:36:56 67KB 智能车 超声波避障 电路方案
1
RTTh跑代码的文件需要
2022-04-21 09:00:35 297.53MB rtth
1
VB源码
2022-04-19 15:04:51 215.66MB VB源码