
php入门到就业线上直播课:进入学习
本文 *** 作环境:windows7系统、DELL G3电脑
计算机的基本功能是算术运算、输入、输入 *** 作、逻辑运算。
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量改没销数据的现代化智能电子设备。
由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。
计算机发明者约翰·冯·诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。
计算机的应用在中国越来越普遍,改革开放以后,中国计算机用户的数量不断攀升,应用水平不断提高,特别是互联网、通信、多媒体等领域的应用取得了不错的成绩。1996年至2009 年,计算机用户数量从原来的630万增长至6710 万台,联网计算机台数由原来的2.9万台上升至5940万台。互联网用户已经达到3.16 亿,无线互联网有6.7 亿移动用户,其中手机上网用户达1.17 亿,为全球第一位。
正如上述,在国土资源遥感综合调查信息中,既包含有多源、多时相、多尺度、多分辨率、多类型的遥感图像数据和基础地理数据,也包括在项目开展过程中衍生的许多观测和分析资料,数据量十分庞大。因此,根据数据共享的要求,在数据生产、管理、应用服务以及更新和维护过程中,如何组织和管理好这些海量数据,如何快速、全面有效地访问和获得所需数据,成为面临的突出问题。在这里,采用何种方式利用现有的大型商业化关系数据库系统高效地存储与管理这些数据,成为能否发挥系统最大性能的关键所在。
传统的GIS系统对空间数据(与空间位置、空间关系有关的数据)的存储与管理大多采用这些商业软件特定的文件方式,如:ArcInfo的Coverage、MapInfo的Tab、MAPGIS的WL等。如果数据量越多,这些文件就会越大,数据的处理就会越复杂,其存储、检索、管理也就越困难,而且其最大的缺点还在于不能进行多用户并发 *** 作。由此可见,用以往传统的存储机制去管理像遥明首感综合调查这样的海量数据,显然难以满足要求。而近年来发展起来的空间数据库引擎技术则是解决海量数据存储管理的途径之一。
本系统建设过程中,采用了空间数据库引擎ArcSDE+大型关系数据库Oracle组合技术,较理想地实现了歼大遥感综合调查海量数据的存储、检索、查询、处理。众所周知,Oracle提供了大型数据库环境,能够很好地处理海量数据,而ArcSDE可将具有地理特征的空间数据和非空间数据统一加载到Oracle中去,因此,通过ArcSDE空间数据库引擎,可将Oracle海量数据管理功能加载到GIS系统中,并可利用Oracle的强大管理机制进行高效激改数率的事务处理、记录锁定、并发控制等服务 *** 作。
你好!测试程序负责给编写好的程序提供样本数据,自动收集运行结果,并根据结果作出反馈。测试程序可以单独写,也可以做为模块整合在源程序中。
像我数敬纤们熟知的debug语句,就是测试的最简单例子。在没有“断电查看”这一功能之前,为了监测程序每步执行后变量的结果,往往加入一些输出关键变量的语句。
例如以下程序:
#incldue<iostream>
using namespace std
#define DEBUG
int main(){
int n
#ifdef DEBUG
cout<<n<<endl
#endif
n = 3
cout<<n<<endl
return 0
}
此处DEBUG的作用是薯仿查看未初始化的变量n的值。通常会显示-89******00(0xcccccccc).
一般这样的语句还会出现在对指针进行 *** 作之后,用debug语句输出指针所指向内存的内容等。
这只是测试程序的一个功能。正如前面提到的,测试程序应该提供数据以检测程序的健壮性和安全性,以及用海量数据对执行效率进行检验等。
测试数据的选择有以下几个要点,分别检测程序的不同特性:
@ 尽可能包括输入集合内所有可能出现的元素,观察程序能否给出正确结果。(Authenticity)
比如:有一个程序输入给定迷宫平面图,要测试稿庆出最短路径长度。那么输入的迷宫应该包括各种可能:有通路的和没有通路的,有死胡同的和没有的,有回路的(避免搜索时出现死循环),出口在左上角,右上角的等,都要考虑进去。程序应该对每种情况都做出正确的反应。
@ 注意测试极端情况以及临界情况。(Security)
这是为了检测程序的健壮性,用户不可避免地会做出不合法的举动,程序需要有足够的防护强度来应对这些意外。
比如:如果编写了一个简易的计算器,那么一定要检查除数为0的情况;一个程序的功能是将一片文档的内容链接到另一个文档内,那么一定要检查自己链接自己的情况;等等。
@ 注意输入数据的规模以及随机性。(Efficiency)
衡量程序效率的标准应该考虑大规模数据下的表现。数据需要有足够的随机性以避免意外情况。
比如:比较几种不同排序算法的效率时,选用的数据应该是随机顺序的。在顺序数据的情况下:冒泡算法显然比快排还快,但这是偶然情况。
@ 如果有可能,还可以检测程序的通用性及扩展性(Versatility &Compatibility)
好的程序应该易于扩展,可利用价值高。大多数软件都在不停的打补丁,而不是推倒重写。
测试程序一般无法直接检测这两种特性。然而,测试中出现的错误有时可以帮助我们提升程序的质量。
我曾经写过一个类似于美图秀秀的图像处理程序,C++写的,相当粗糙。输入还要用命令行控制。当时我用各种图片进行了测试,包括纯色的,有明显背景色调的,以及完全混乱的噪声点。前面的图片表现都很好,但处理最后一张图片时程序抛出了异常——经过检验发现,我的处理程序是基于24位图片写的,而最后一张图片是32位的。类似的情况还有32位系统和64位系统下程序运行的问题等,在此就不赘述了。
要编写测试程序,一般分为两个模块:数据生成和结果检测。
测试程序的第一部分将生成的数据写入一个文件,让程序读取文件并运行后,再将结果写入另一个文件,之后由测试程序的第二部分比对输出文件和标准答案。
对于检测健壮性的测试程序,只需有第一部分即可,待检测程序在处理数据时如果发生异常,就根据结果作相应的修改。
测试效率的程序,可以在待检程序内加入计时模块。具体写法如下:
#include<ctime>
#define CHECK_TIME
int main(){
//....intput
#ifdef CHECK_TIME
clock t start = clock()
#endif
#ifdef CHECK_TIME
cout <<"Execution Time: " <<clock() - start <<" ms." <<endl
#endif
嗯,就是这么多啦,希望对你有帮助!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)