如果电脑打开文件和点击鼠标右键特别慢,但是如果将网线拔掉,速度就会恢复正常,可以试试将以下键值改名:
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers]
[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers]
如果电脑打开文件和点击鼠标右键特别慢,但是如果将网线拔掉,速度就会恢复正常,可以试试将以下键值改名:
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers]
[HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers]
如何在毕业答辩中取得高分 | ||
| ||
答辩一般是几位相关专业的老师根据你的论文对你提一些问题,同时听取你的个人阐述,以了解你对论文的熟悉性。一般各位学友应按以下步骤进行: 1、首先阐述个人的论文简介; 转载自http://zikao.eol.cn/article/20030217/3077481.shtml |
注意:程序申请的空间并没有释放^_^ 摘自ngaut的博客http://www.cppblog.com/ngaut/archive/2006/01/01/2351.aspx
/**//********************************************************************
created: 2005/12/30
created: 30:12:2005 10:39
filename: bintree.h
author: Liu Qi
purpose: 二叉树的3种遍历方式(包括非递归实现),前序,后序和中序,先访问根节点就是
前序(部分书籍称为先根遍历,个人觉得该说法更好^_^),类似的,最后访问根节点就是后序
*********************************************************************/
#ifndef TREE_H
#define TREE_H
#include
#include
#include
#include
#include
using namespace std;
typedef int ElemType;
typedef struct treeT
{
ElemType key;
struct treeT* left;
struct treeT* right;
}treeT, *pTreeT;
/**//*===========================================================================
* Function name: visit
* Parameter: root:树根节点指针
* Precondition:
* Description:
* Return value:
* Author: Liu Qi, //-
===========================================================================*/
static void visit(pTreeT root)
{
if (NULL != root)
{
printf(" %d\n", root->key);
}
}
/**//*===========================================================================
* Function name: BT_MakeNode
* Parameter: target:元素值
* Precondition: None
* Postcondition: NULL != pTreeT
* Description: 构造一个tree节点,置左右指针为空,并且返回指向新节点的指针
* Return value: 指向新节点的指针
* Author: Liu Qi, [12/30/2005]
===========================================================================*/
static pTreeT BT_MakeNode(ElemType target)
{
pTreeT pNode = (pTreeT) malloc(sizeof(treeT));
assert( NULL != pNode );
pNode->key = target;
pNode->left = NULL;
pNode->right = NULL;
return pNode;
}
/**//*===========================================================================
* Function name: BT_Insert
* Parameter: target:要插入的元素值, pNode:指向某一个节点的指针
* Precondition: NULL != ppTree
* Description: 插入target到pNode的后面
* Return value: 指向新节点的指针
* Author: Liu Qi, [12/29/2005]
===========================================================================*/
pTreeT BT_Insert(ElemType target, pTreeT* ppTree)
{
pTreeT Node;
assert( NULL != ppTree );
Node = *ppTree;
if (NULL == Node)
{
return *ppTree = BT_MakeNode(target);
}
if (Node->key == target) //不允许出现相同的元素
{
return NULL;
}
else if (Node->key > target) //向左
{
return BT_Insert(target, &Node->left);
}
else
{
return BT_Insert(target, &Node->right);
}
}
/**//*===========================================================================
* Function name: BT_PreOrder
* Parameter: root:树根节点指针
* Precondition: None
* Description: 前序遍历
* Return value: void
* Author: Liu Qi, [12/29/2005]
===========================================================================*/
void BT_PreOrder(pTreeT root)
{
if (NULL != root)
{
visit(root);
BT_PreOrder(root->left);
BT_PreOrder(root->right);
}
}
/**//*===========================================================================
* Function name: BT_PreOrderNoRec
* Parameter: root:树根节点指针
* Precondition: Node
* Description: 前序(先根)遍历非递归算法
* Return value: void
* Author: Liu Qi, [1/1/2006]
===========================================================================*/
void BT_PreOrderNoRec(pTreeT root)
{
stack
while ((NULL != root) !s.empty())
{
if (NULL != root)
{
visit(root);
s.push(root);
root = root->left;
}
else
{
root = s.top();
s.pop();
root = root->right;
}
}
}
/**//*===========================================================================
* Function name: BT_InOrder
* Parameter: root:树根节点指针
* Precondition: None
* Description: 中序遍历
* Return value: void
* Author: Liu Qi, [12/30/2005]
===========================================================================*/
void BT_InOrder(pTreeT root)
{
if (NULL != root)
{
BT_InOrder(root->left);
visit(root);
BT_InOrder(root->right);
}
}
/**//*===========================================================================
* Function name: BT_InOrderNoRec
* Parameter: root:树根节点指针
* Precondition: None
* Description: 中序遍历,非递归算法
* Return value: void
* Author: Liu Qi, [1/1/2006]
===========================================================================*/
void BT_InOrderNoRec(pTreeT root)
{
stack
while ((NULL != root) !s.empty())
{
if (NULL != root)
{
s.push(root);
root = root->left;
}
else
{
root = s.top();
visit(root);
s.pop();
root = root->right;
}
}
}
/**//*===========================================================================
* Function name: BT_PostOrder
* Parameter: root:树根节点指针
* Precondition: None
* Description: 后序遍历
* Return value: void
* Author: Liu Qi, [12/30/2005]
===========================================================================*/
void BT_PostOrder(pTreeT root)
{
if (NULL != root)
{
BT_PostOrder(root->left);
BT_PostOrder(root->right);
visit(root);
}
}
/**//*===========================================================================
* Function name: BT_PostOrderNoRec
* Parameter: root:树根节点指针
* Precondition: None
* Description: 后序遍历,非递归算法
* Return value: void
* Author: Liu Qi, // [1/1/2006]
===========================================================================*/
void BT_PostOrderNoRec(pTreeT root)
{
stack
pTreeT pre=NULL;
while ((NULL != root) !s.empty())
{
if (NULL != root)
{
s.push(root);
root = root->left;
}
else
{
root = s.top();
if (root->right!=NULL && pre!=root->right){
root=root->right;
}
else{
root=pre=s.top();
visit(root);
s.pop();
root=NULL;
}
}
}
}
/**//*===========================================================================
* Function name: BT_LevelOrder
* Parameter: root:树根节点指针
* Precondition: NULL != root
* Description: 层序遍历
* Return value: void
* Author: Liu Qi, [1/1/2006]
===========================================================================*/
void BT_LevelOrder(pTreeT root)
{
queue
treeT *treePtr;
assert( NULL != root );
q.push(root);
while (!q.empty())
{
treePtr = q.front();
q.pop();
visit(treePtr);
if (NULL != treePtr->left)
{
q.push(treePtr->left);
}
if (NULL != treePtr->right)
{
q.push(treePtr->right);
}
}
}
#endif
测试代码
#include
#include
#include
#include "tree.h"
#define MAX_CNT 5
#define BASE 100
int main(int argc, char *argv[])
{
int i;
pTreeT root = NULL;
srand( (unsigned)time( NULL ) );
for (i=0; i
WIN XP
单击“开始/运行”,输入“rundll32 netplwiz.dll,UsersRunDll”,按回车键后弹出“用户帐
户”窗口,看清楚,这可跟“控制面板”中打开的“用户账户”面板窗口不同哦!然后取消选定“要
使用本机,用户必须输入用户名和密码”选项,单击确定,在弹出的对话框中输入你想让电脑每次自
动登录的账户和密码即可。
J2EE架构的银行核心业务系统?
放眼看世界银行与保险公司的核心业务系统,真正用J2EE架构的确实很少,但作为IT公司与用户却都叫得要往J2EE架构转,这里的原因有几个:
1、IT公司必须炒作新概念,才能获得新利润
目 前各银行与保险公司都有自己的核心业务系统,一般而言一个系统使用时间越长,系统会越稳定(使用过程实际是一个不断的排除BUG与系统优化的过程),但随 着业务的发展,系统还是要有所发展的,如新增业务功能的处理,新增服务渠道等,一个好的架构,这些扩展都可在原有架构上有序的扩展,当然有的系统基础架构 不好,或由于开发过程中的“大跃进”,使得每一次系统升级都要打快速补丁,最终导致破坏了原有良好的系统架构。
系统升级过程中破坏了原来较好的架 构,这是如何做好软件工程的问题,与是否采用J2EE无关,而且在国内导致这个问题更重要的原因是用户方在软件方面的投入不足,要求的开发周期严重不合 理,而打补丁的方法是最快最省市的方法,很少考虑该补丁对系统结构长远是否有不利的影响,结果是系统在几年后不得不作一次大规模的修改,否则原有系统已经 无法打上新的补丁了。这种系统的维护升级方式实际上更花钱,而且风险更大,但用户似乎更能接受,如果采用平稳的升级方法,每次要投入较多的资金与时间,但 风险小,长远来说更省钱,但国内用户很难接受这种理念,老觉得IT公司是要让用户付出更多的费用。实际上这样的开发方式IT公司更喜欢,因为每过几年可能 会拿到一个较大的单子,但由于新的单子也不一定就落到原来开发公司的口袋里,而每次重新招标都会增加很高的市场成本,因此各公司会把更多的精力放在如何维 护与客户的关系上,而对现有产品增加投入则没有动力。这就是国内软件业的现状,并且已经进入恶性循环,到一天国内的软件公司撑不下去了,则用户可能面临着 不得不选国内的产品,但价格则可能是国内产品的几十倍或上百倍。当然国外的产品会在某些方面好于国内的产品,但如果国内的软件公司能取得合理的利润进入良 性发展,也是可以把自己的产品做得更好的。
正因为在上述大环境下,IT公司当然更愿意鼓吹一切新的技术,而不论该技术是否成熟,也不论该技术是否 适合用户的实际需要,因为只有鼓吹新技术才会使系统不断地重新开发,这样才会把市场的总盘子做大,也只有这样,大家才会有钱赚(因为在国内挣不到维护费, 版权费,只有不断变才会有开发费赚)。但变的风险,开发商是不关心的。
2、用户希望简化客户端的维护
C/S结构,客户端程序的升 级安装总是比较麻烦,再加上可能的病毒破坏,客户端操作人员的误删程序等都可能导致不能正常使用系统。用户方的IT技术人员都希望能捞到一种办法,使客户 端象原来的笨终端一样,加电就能用,这样就省事很多。这样基于J2EE架构的B/S结构就很有吸引力。
用户的想法并不错,但简化客户端的维护,不一定只有采用J2EE架构一条路,而用户以为只有J2EE才是唯一的途径正是IT公司长期“教育”的结果。
用 户方的IT人员,特别是CIO们缺乏战略眼光,即使采用传统的C/S结构,使客户端的升级维护可能会麻烦一些,但这只是战术方面的投入,而由于系统架构长 期处于不稳定,特定是在升级过程中如何保证数据迁移不会导致数据“失真”(由于改变架构往往会换一家公司开发,而新的开发商对原有系统的数据库表结构不能 完全了解,最省事的办法也是不负责任的办法,就是库结构一起改,然后进行数据迁移)这些战略方面的风险则很少关心。
架构变更的风险究竟有哪些呢?我们可作简单的归纳:
1、数据风险
在上述讨论中已经提及。
2、系统稳定性
除 非是已经很成熟的应用了软件产品,否则任何一个开发的应用系统都要经过2—3年才能逐步稳定。而国内用户很少同意购买一个产品,再根据产品的要求来对自己 的业务流程进行重组,这样实际上就没有真正意义上的软件产品,即使有一个产品的基本版本,在任何一个用户单位都要经过大量的修改或客户化才能适应用户要 求,结果就是系统的稳定性被破坏,趋于稳定的周期加长。
3、效率风险
任何一种架构实际都是有一定的适用范围。
2层的C/S架构适用的小型企业应用,因为有很多开发工具支持,开发周期快,即使有变化,重新开发的成本不会太大。
N 层C/S架构(采用IBM-CICS,BEA-TUXEDO中间件),该架构已经把业务逻辑设计成一个一个独立的可供调用的SERVICES,增加或修改 业务逻辑只是增加SERVICES或修改已有的SERVICES,客户端只作界面处理。这样的架构使得业务逻辑的变更极为方便,而这正是银行保险这样的应 用更为关心的。这样的架构是专为OLTP应用设计的。
J2EE架构也可把业务逻辑后移,设计成SAERVICES,也可按连接池方式与数据库连 接,从而减少DBMS的系统开销,但J2EE架构在应用服务的平衡负载方面与N层C/S架构比还是比较低级,特别是对于大型应用(如国内较大的保险公司, 如果全国大集中,保单数都会在上千万,甚至上亿),对于这种规模的应用,不但服务端要构建集群架构,数据库可能也要构建集群架构(即构建多个同构的数据库 (同表名,同库名,但存放在不同的数据库服务器中),数据按某种分片规则存放在不同的数据库中)。这种要求J2EE架构是很难支持的,至少目前这样。
合理的解决方案:
1、大型应用核心业务的架构要采用N层的C/S架构
支持大交易量大数据量的要求。
2、客户端可采用WIN终端方式
WIN 终端的界面与WINDOWS的窗口界面风格相同,也可在WIN终端上运行浏览器,即如果是B/S结构也能支持。WIN终端方式客户端的程序是安装在WIN 终端服务器上的,这样与纯C/S结构比,客户端维护也大为简单了,如果开发客户端程序的自动发布与安装程序,则一样可做到“0”维护。
3、客户端的浏览器化
如果确实需要,客户端也可设计成浏览器风格,但对于业务逻辑是调用TUXEDO或CICS服务,而不是调用J2EE服务,这样可充分利用或重用核心业务系统已有的处理逻辑(这也是保证系统稳定的重要手段),也即核心架构不动,但前端的展现架构可跟上潮流。
国 外的大型应用系统的发展正是这样的,在美国还有很多银行或保险公司其核心系统还是用COBOL语言写的,还是用的VSAM文件系统,但在客户端,包括互联 网上的电子商务可能比国内的同行做得更好,其基本思路就是保留原有的核心系统架构(原系统一般称为LEGACY系统),在外围则可引入新的技术手段。
拿亚马逊公司来说,该公司是互联网时代发展出来的新型公司,但其电子商务的网上交易处理则仍然采用的是TUXEDO这样的中间件就可看出,J2EE不该作为这个时代软件架构的“万金油”。
系 统架构的设计更应着重于库表结构的设计及业务逻辑的SERVICES化,而是用TUXEDO, CICS的SERVICES还是用J2EE的SERVICES来实现则要视具体情况而言,即应用越大,或已有TUXEDO/CICS SERVICES,则不能轻言改变,如果应用规模不大,或者确实是新应用,则可尝试采用全新的架构。即架构是否要改变应是由应用决定的而不是由技术决定 的。
另一个问题也是要注意的,一个新的技术从提出到实用是需要时间的。关系数据库理论是1970年提出的,关系数据库产品是到 1980年代中出现的,但真正把关系数据库应用于大型应用系统的开发则是在1990年代的事了,成熟的时间是20年。小型应用多采用新技术,一是风险小, 二是能加速技术的成熟(如果没有实际应用,新技术也是很难成熟的,因此小型应用的尝试也可看作是必要的贡献),而大型应用则应保守些,因为试验的风险太 大,这方面用户方更需要头脑清新,但中国人赶时髦的热情一直是很高的,并且总是喜欢革命也而是改良,但这种习惯在大型应用系统的规划方面实在是要不得。
最 后希望在推广一种新技术时,IT公司要厚道一些,用户方要理智一些。另外也希望用户方在规划IT投入方面,在软件投入上的比例要更合理一些,特别是要加大 对于服务维护的投入,如果软件公司挣到了该挣的钱,则软件公司会更注重提升产品本身的功能与性能,而不会(至少会少些)变着法子让用户不断换系统了。所谓 买的没有卖的精,由于用户方的问题,逼得开方商另想生财之道也是没有办法的办法,但最终损失的是用户,是中国的软件产业。
原文地址:http://www.itpub.net/487375.html
转载自海阔天空 鹰击云飞的博客http://blog.csdn.net/yhhah/archive/2006/12/12/1439523.aspx
首先要安装第1步visual studio.net系统必备,其它点不了.可点第1步安装就弹出"安装程序检测到另一个程序要求计算机重新启动.必须重新启动计算机后才能安装 visual studio.net系统必备.系统重新启动后,你需要重新启动安装程序.单击"确定"重新启动,单击"取消"退出安装程序,以后再安装."对话框.重启 n次都弹出此对话框,无法安装.
解决办法:
运行->regedit
找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager******************************************************************
SQLServer的安装也有同样问题的话,一样的解决办法,也是把PendingFileRenameOperations删除,就可以了。
转载自 小桥流水人家http://by1945.blog.sohu.com/32155731.htmlMSN(Windows Live Messenger)用户在昵称上加上一段代码,即可使昵称加上绿色I'M。通过这样,可以给慈善组织捐款,款项将由微软支付。目前有多个可供选择的组 织,希望PRC的兄弟姐妹们选择能捐助到中国的组织。注意是昵称(显示名称)上,不要加错地方:)
1.American Red Cross
——I'm 准备提供帮助。美国红十字协会。代码 = *red+u
2.Boys and Girls Clubs of America
——I'm 为孩子提供理想的环境。儿童群益会(美国)。代码 = *bgca
3.National AIDS Fund
——I'm 与艾滋病(AIDS)抗争。美国国家艾艾滋基金。代码 = *naf
4.National MS Society
——I'm 参与到解决多发性硬化症。国家多发性硬化症学会。= *mssoc
5.ninemillion.org
——I'm 帮助9百万流离失所的孩子。国际儿童难民援助组织。代码 = *9mil
6.Sierra Club
—— I'm 探索和保护这个星球。地球环境协会/山岳协会(保护自然生态)。代码 = *sierra
7.StopGlobalWarming.org
——I'm 阻止全球变暖。防止全球温室效应恶化相关机构。代码 = *help
8.Susan G. Komen for the Cure
——I'm 寻找乳腺癌的治愈方法。乳腺癌基金会。代码 = *komen
9.UNICEF
——I'm 救助生死边缘徘徊的孩子。美国地区联合国儿童基金会。代码= *unicef
10.World Wildlife Fund for Nature
——I'm 希望保护环境和野生动物。世界自然基金会。代码 = *wwf
11.The Oxford Committee for Famine Relief
——I'm 协助解决当时世界各地饥荒以及贫困问题。乐施会。代码 = *oxfam
12.国际关怀协会。
——I'm 帮帮鳏寡孤独,改善人际冷漠。代码 = *care
13.The Humane Society of the United States
——I'm 展现我的人道主义。代码 = *hsus
14.American Cancer Society
——I'm 帮助癌症研究。代码 = *acs
15.unknown
代码 = *one
默认情况下,Windows XP的本地安全设置要求进行网络访问的用户全部采用来宾方式。同时,在Windows XP安全策略的用户权利指派中又禁止Guest用户通过网络访问系统。这样两条相互矛盾的安全策略导致了网内其他用户无法通过网络访问使用Windows XP的计算机。你可采用以下方法解决。
方法一:解除对Guest账号的限制
点击“开始→运行”,在“运行”对话框中输入“GPEDIT.MSC”,打开组策略编辑器,依次选择“计算机配置→Windows设置→安全设置→本地策略→用户权利指派”,双击“拒绝从网络访问这台计算机”策略,删除里面的“GUEST”账号。这样其他用户就能够用Guest账号通过网络访问使用Windows XP系统的计算机了。
方法二:更改网络访问模式
打开组策略编辑器,依次选择“计算机配置→Windows设置→安全设置→本地策略→安全选项”,双击“网络访问:本地账号的共享和安全模式”策略,将默认设置“仅来宾—本地用户以来宾身份验证”,更改为“经典:本地用户以自己的身份验证”。
现在,当其他用户通过网络访问使用Windows XP的计算机时,就可以用自己的“身份”进行登录了(前提是Windows XP中已有这个账号并且口令是正确的)。
当该策略改变后,文件的共享方式也有所变化,在启用“经典:本地用户以自己的身份验证”方式后,我们可以对同时访问共享文件的用户数量进行限制,并能针对不同用户设置不同的访问权限。
不过我们可能还会遇到另外一个问题,当用户的口令为空时,访问还是会被拒绝。原来在“安全选项”中有一个“账户:使用空白密码的本地账户只允许进行控制台登录”策略默认是启用的,根据Windows XP安全策略中拒绝优先的原则,密码为空的用户通过网络访问使用Windows XP的计算机时便会被禁止。我们只要将这个策略停用即可解决问题。
abstract | continue | for | new | switch | boolean |
default | goto | null | synchronized | break | do |
if | package | this | byte | double | implements |
private | threadsafe | byvalue | else | import | protected |
throw | case | extends | instanceof | public | transient |
catch | false | int | return | true | char |
final | interface | short | try | class | finally |
long | static | void | const | float | native |
super | while |
cast | future | generic | inneroperator | outer | rest | var |
这几天我的电脑不知道怎么回事,在“开始”菜单的“运行”中键入"gpedit.msc"的时候,总是弹出一个对话框“组策略管理单元初始化失败”,我也不知道为什么会出现这个问题,于是就上网搜索,结果发现许多人都出现过这种问题,现归纳解决方法如下:
方法一:1、 点击『开始』菜单 2、点击“运行” 3、键入"regedit"(不包括感叹号) 4、在注册表键值HKEY_CURRENT_USER\ Software\Policies\Microsoft\MMC请将RestrictTo PermittedSnapins 的值设置为 0
方法二、1、点击『开始』菜单 2、点击“运行” 3、键入"regedit"(不包括感叹号)
4、 在注册表键值 HKEY_CURRENT_USER\Software\Policies\Microsoft\Mmc\{8FC0B734-A0E1- 11D1-A7D3-0000F87571E3}\Restrict_Run和HKEY_CURRENT_USER\Software\ Policies\Microsoft\MMC\{0F6B957E-509E-11D1-A7CC-0000F87571E3}\Restrict_Run
请将 Restrict_Run 的值设置为 0 5、修改完毕后重启。
方法三、1、点击『开始』菜单 2、点击“运行” 3、键入"regedit"(不包括感叹号)
4、 在注册表键值HKEY_CLASSES_ROOT\CLSID\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}\ InProcServer32把其中的default改成:%SystemRoot%\System32\GPEdit.dll 5、修改完毕后重启。
方法四、检 查环境变量:a、点击『开始』菜单 b、点击“控制面板”c、在“控制面板”中打开“系统”d、在“系统属性”中点击“高级”标签 e、在“高级”标签页 中点击“环境变量”按钮 f、在“环境变量”中的“系统变量”框中的变量名为Path中修改变量值为:%Systemroot%\System32;% Systemroot%;%Systemroot%\system32\WBEM
方法五、运行regsvr32 filemgmt.dll a、点击『开始』菜单 b、点击“运行”c、键入"regsvr32 filemgmt.dll"(不包括感叹号)
方法六、如果组策略找不到 framedyn.dll,就可能会出现这种错误。如果使用安装脚本,要确保脚本置于系统路径中的%windir%\system32\wbem 目录下。默认情况下,%windir%\system32\wbem 已经存在于系统路径中,因此,如果您不使用安装脚本,就不可能遇到这个问题。或试着将将Framedyn.dll文件从\windows\system32\wbem目录下拷贝到\windows\system32目录下!
附:如果在方法一/二中提到的MMC项在你的计算机注册表中找不到,那么就手动建立即可。
或者直接将下面内容复制粘贴进入记事本,并保存为后缀名为.reg的文件,双击运行该.reg文件即可。
-----------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\MMC]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]
"Restrict_Run"=dword:00000000
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC]
[-HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]
"Restrict_Run"=dword:00000000