自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (24)
  • 收藏
  • 关注

转载 堆和栈的区别 (转贴)

非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!转自:http://www.cppblog.com/oosky/archive/2006/01/21/2958.html堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似

2012-11-27 17:47:32 459

转载 分布式系统测试在阿里云的实践

转载自http://www.infoq.com/cn/articles/distributed-systems-test1. 阿里云的分布式系统飞天是阿里云独立开发的大规模分布式计算与存储系统,兼有分布式存储和分布式计算的多重功能。基于飞天大规模分布式系统,我们开发了弹性计算,海量邮箱服务,Key-Value存储引擎,结构化数据存储引擎和海量数据处理服务等一系列的上层服务,并且基于

2012-10-29 14:05:45 1118

转载 BIOS知识大全,欢迎补充,不断完善

http://bbs.chinaunix.net/thread-184644-1-1.html

2012-10-18 16:53:22 583

转载 CPU知识:了解CPU 18条

1.主频   主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很

2012-10-18 16:11:16 994

转载 c++中的异常捕捉:try和catch

首先形象比喻一下:try{A程序块} catch{Exception e}{B程序块} 。。。。。 A程序块比较有可能会出错的地方,B则是如果A中有了错误,进行的处理。就好比,一个流水线上,如果有个地方有个产品堵住了不通了,如果没人处理,则整个流水线就没法动作了,要想保证整个流水线的运作则要有人把这个产品给处理了。try语句就是对A程序块的语句进行捕捉有可能出错的地方,相当于流水线上那个检查

2012-10-13 16:29:14 2842

转载 带参数的main函数

main是一个函数,也能带参数。它的参数有两个,格式 如下:main(int argc, char *argv[])第一个是一个int型变量,表示参数的个数。第二个是一个字符串指针数组,数组中的每一个指针都指向一个字符串,这些字符串就是用户传给程序的参数,这些参数用用空格分开。这两个变量 的名字没有特别要求,你完全可以把argc改成m等其他可用的名字,但一般是这两个:argc(

2012-08-30 08:39:55 678

转载 正则表达式匹配也可以简单快速(下:实现部分)

转载请注明译者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/7097176720099402916150/ 实现Thompson在1968年的论文里对多状态模拟策略进行了介绍。在他的文章里,NFA的状态是使用机器码序列来表示的,可能状态列表仅仅是一系列的函数调用指令。实际上,Thompson将正则表达式编译成了机

2012-08-08 14:16:41 2966

转载 正则表达式匹配也可以简单快速(上:原理部分)

--------------------------虽然在java perl php python ruby里它很慢Author:Russ Cox Email:rscJanuary 2007[说明:本文由phylips@bmy翻译自英文文章Regular Expression Matching Can Be Simple And Fast (but is slow in Java, P

2012-08-08 14:15:16 1982

转载 内存池技术畅想

内容:本文将介绍几种常用的内存池技术的实现,这是我最近学习各大开源的内存池技术遗留下来的笔记,其主要内容包括: STL内存池以及类STL内存池实现Memcached内存池实现固定规格内存池实现 Nginx内存池实现   一.类STL的内存池实现方式SGI STL的内存池分为一级配置器和二级配置器,一级配置器主要处理分配空间大小大于128Byte的需求,其

2012-08-08 13:56:16 1104

转载 漫步Facebook开源C++库Folly之string类设计

就在近日,Facebook宣布开源了内部使用的C++底层库,总称folly,包括散列、字符串、向量、内存分配、位处理等,以满足大规模高性能的需求。AD:51CTO云计算架构师峰会 抢票进行中!这里是folly的github地址:https://github.com/facebook/folly在folly项目的Overview.md中,谈到了folly库的初衷:It compl

2012-08-07 16:00:37 3002

转载 线程通信机制之轻量级读写锁

关键词:读写锁,线程同步,ITCSlim Reader/Writer (SRW) Locks(轻量级读写锁,笔者译)跟critical section类似,用于控制同一个进程内部不同线程之间共享资源的访问,设计的最初目的是高效性,并且占用很少内存。读线程从共享资源中读数据,同时写线程需要向共享资源中写数据,当多个读、写线程共用一个资源(缓冲区)的时候,据需要使用诸如critical secti

2012-08-06 15:17:15 1543

转载 标准C++类std::string的内存共享和Copy-On-Write技术(转)

http://www.cnblogs.com/abiao/articles/1267102.aspx原文作者:陈皓1、             概念 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给

2012-07-28 21:52:05 3411 1

转载 我使用过的Linux命令之for - Bash中的For循环

本文链接:http://codingstandards.iteye.com/blog/778999  (转载请注明出处) 用途说明在shell中用于循环。类似于其他编程语言中的for,但又有些不同。for循环是Bash中最常用的语法结构。常用格式格式一for 变量do    语句done格式二for 变量 in 列表do    语句done

2012-07-27 09:42:16 3155

转载 Ubuntu安装低版本的GCC

Ubuntu安装低版本的GCC由于学习的原 因,需要用到GCC 4.1.2,而Ubuntu10.04下默认的GCC版本是GCC 4.4.1,所以需要自己安装低版本的GCC 4.1.2。通过学习,总结安装步骤如下。首先下载所需的 文件,我下载deb包,地址http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/。根据计算机情况和需要,

2012-07-13 11:38:26 2708

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest

一、前言本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例。 二、下载如果不记得网址, 直接在google里搜gtest,第一个就是。目前gtest的最新版本为1.3.0,从下列地址可以下载到该最新版本:http://googletest.googlecode.com/files/gtest-1.3.0.z

2012-07-09 17:39:17 505

转载 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原

2012-07-09 17:38:10 472

转载 轻松编写 C++ 单元测试

转载地址http://www.ibm.com/developerworks/cn/linux/l-cn-cppunittest/index.html#2.%E5%BA%94%E7%94%A8%20googletest%20%E7%BC%96%E5%86%99%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BB%A3%E7%A0%81%7Coutline单元测

2012-07-09 17:31:34 679

原创 GDB完全手册.txt

GDB完全手册.txtGDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等 IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所 谓“寸有所长,尺有所短”就是这个道理。用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNI

2012-07-07 08:51:38 1797

转载 C++中的类所占内存空间总结

类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分:成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,ta

2012-07-05 21:48:04 418

转载 Compass学习文档(3) (转)

<br /> 下面讲一下高级部分Compass与Hibernate,Spring的集成。Compass内部有对Hibernate,Spring的支持,如果配置好了,可以在建立和更新索引的时候不用Compass写一句代码。爽吧!~不过集成它们比较麻烦那就看我一步一步的来吧: <br />1.首先把Hibernate和Spring集成:<br />      来个例子吧,先看数据库脚本(MySql):Sql代码 CREATE TABLE `article` (      `Id` int(11) NOT NUL

2010-08-09 17:00:00 681

转载 Compass学习文档(2) (转)

<br /> 上面的只讲了Compass的建立索引也就是存储对象和加载对象,这里讲一下Compass的搜索查询功能。上面说了Compass和Hibernate是非常像的。Hibernate查询的时候用的是Criteriat和Query而Compass里用的是CompassQuery具有以上两个的功能。 <br />      还是拿上面的例子做例子吧: <br />      在上面的JUnit测试用例里加入: Java代码 public void InsertCompass()          {   

2010-08-09 16:58:00 849

转载 Compass学习文档(1) (转)

<br /> Compass是第一个实现java搜索引擎的开源框架,它是基于Lucene之上的,提供更简单的搜索引擎API,事务支持,对象到搜索引擎映射(Annotations & XML),Xml到搜索引擎映射,可以和Hibernate,Spring集成,功能非常的强大。如果用Hibernate,Spring做的项目需要搜索引擎的话,Compass是个非常好的选择。个人认为:如果说Lucene是搜索引擎中的JDBC,那么Compass就是Hibernate。而Compass和Hibernate不仅仅是比喻

2010-08-09 16:55:00 593

转载 JasperReports与iReport 简介

简介 JasperReports是一款开源的报表打印组件,是开源代码组织sf.net中的一个java报表打印工程,可以以PDF, HTML或XML等多种形式产生报表,支持分页打印,并且可以制作各种类型的图表。Jasperreport是按照一个预定义的xml文档来组织报表的数据,这些数据来源多样,包括关系数据库(通过配置JDBC连接)、java容器对象(collection和arrays)。要完成报

2010-05-18 16:28:00 1895 3

转载 Lucene in Action中文版

Lucene in Action中文版 第一部分 Lucene核心1.      接触Lucene  2.      索引 3.      为程序添加搜索4.      分析5.      高极搜索技术6.      扩展搜索第二部分 Lucene应用7.      分析常用文档格式8.      工具和扩充9.      Lucene其它版本10.   案例学习  序 Lucene开始是做为

2010-05-04 19:48:00 930

转载 json入门基础教程

在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。掌握 Ajax 的这一期讨论另一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地在应用程序中移动数据和对象。如果您阅读了本系列前面的文章,那么应已对数据格式有了相当的认识。前面的文章解释了在许多异步应用程序中如何恰当地使用纯文本和简单的名称/值对。可以将数据组合

2010-05-04 17:51:00 562

转载 Linux/Unix 常用命令三

九、kill1.作用kill命令用来中止一个进程。2.格式kill [ -s signal | -p ] [ -a ] pid ...kill -l [ signal ]3.参数-s:指定发送的信号。-p:模拟发送信号。-l:指定信号的名称列表。pid:要中止进程的ID号。Signal:表示信号。4.说明进程是Linux系统中一个非常重要的概念。

2010-04-26 14:19:00 575

转载 Linux/Unix 常用命令二

四、quota1.作用quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户。2.格式quota [-g][-u][-v][-p] 用户名 组名3.参数-g:显示用户所在组的磁盘使用限制。-u:显示用户的磁盘使用限制。-v:显示没有分配空间的文件系统的分配情况。-p:显示简化信息。4.应用实例在企业应用中磁盘配额非常重要,普通用户要学会看懂自己的

2010-04-26 14:16:00 564

转载 linux or unix 常用命令

快捷键:ctrl+c ctrl+d1.shell 分为图形shell和命令shell 命令shell分为bash和csh,切换到csh用csh,exit返回bash2.telnet 远程登陆unixtelnet 192.168.0.25login:hz0904 用户名password:sd0904 密码规则:6-8个字符,至少包含字母以及1个数字,不能与登录名相同3.pas

2010-04-26 14:13:00 728

原创 网管教程:如何使用HTTP压缩优化服务器(图)

鉴于互联网上的宽带有限,网络管理人员任何旨在加速接入速度的努力都是有价值的。其中的一个方法就是通过HTTP压缩技术实现接入速度的加速,它通过减少在服务器和客户端之间传输的数据量,显著地提高网站的性能。数据压缩本身并不新鲜。但是,这种方法的特色在于对服务器到客户端之间的数据压缩是实时的,很少有用户知道这种方法。HTTP压缩技术,无需客户端配置,它是一种最为简便的提高网络速度的方法。本文旨在讨论这种技

2010-04-26 12:14:00 537

原创 关于四种JDBC驱动类型的区别

Type1     JDBC-ODBC桥     作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分     Application--->JDBC-ODBC     Bridge(Type1     jdbc     driver)---->JDBC-ODBC     Library--->ODBC     Driver-->Database     适用于快速的原型系统,没有提

2010-04-26 12:12:00 1461

原创 各种排序算法 C语言版

#include #include const int SIZE = 100;const int MAX = 1000;using namespace std;//交换数据void Swap(int &a, int &b){    int temp = a;    a = b;    b = temp;}//冒泡排序void BubbleSort(int *arr, int size){    i

2010-04-26 12:06:00 656

vnc客户端win32

vnc客户端win32 图形化远程操控工具

2012-02-29

VMware-workstation-full-8.0.2注册机

VMware Workstation 8.0.2.591240 注册机

2012-02-29

几种磁带格式的比较与探讨

几种磁带格式的比较与探讨 ECMA-13 MTF IBM兼容格式

2011-09-13

LTF(The Linear Tape File System)

LTFS(The Linear Tape File System)

2011-09-13

严蔚敏《数据结构(C语言版)习题集》答案

严蔚敏《数据结构(C语言版)习题集》答案 第一章 绪论 1.16 void print_descending(int x,int y,int z)//按从大到小顺序输出三个数 { scanf("%d,%d,%d",&x,&y,&z); if(x<y) xy; //为表示交换的双目运算符,以下同 if(y<z) yz; if(x<y) xy; //冒泡排序 printf("%d %d %d",x,y,z); }//print_descending 1.17 Status fib(int k,int m,int &f)//求k阶斐波那契序列的第m项的值f { int tempd; if(k<2||m<0) return ERROR; if(m<k-1) f=0; else if (m==k-1 || m==k) f=1; else { for(i=0;i<=k-2;i++) temp[i]=0; temp[k-1]=1;temp[k]=1; //初始化 sum=1; j=0; for(i=k+1;i<=m;i++,j++) //求出序列第k至第m个元素的值 temp[i]=2*sum-temp[j]; f=temp[m]; } return OK; }//fib 分析: k阶斐波那契序列的第m项的值f[m]=f[m-1]+f[m-2]+......+f[m-k] =f[m-1]+f[m-2]+......+f[m-k]+f[m-k-1]-f[m-k-1] =2*f[m-1]-f[m-k-1] 所以上述算法的时间复杂度仅为O(m). 如果采用递归设计,将达到O(k^m). 即使采用暂存中间结果的方法,也将达到O(m^2). 1.18 typedef struct{ char *sport; enum{male,female} gender; char schoolname; //校名为'A','B','C','D'或'E' char *result; int score; } resulttype; typedef struct{ int malescore; int femalescore; int totalscore; } scoretype; void summary(resulttype result[ ])//求各校的男女总分和团体总分,假设结果已经储存在result[ ]数组中 { scoretype score[MAXSIZE]; i=0; while(result[i].sport!=NULL) { switch(result[i].schoolname) { case 'A': score[ 0 ].totalscore+=result[i].score; if(result[i].gender==0) score[ 0 ].malescore+=result[i].score; else score[ 0 ].femalescore+=result[i].score; break; case 'B': score[ 0 ].totalscore+=result[i].score; if(result[i].gender==0) score[ 0 ].malescore+=result[i].score; else score[ 0 ].femalescore+=result[i].score; break; …… …… …… } i++; } for(i=0;i<5;i++) { printf("School %d:\n",i); printf("Total score of male:%d\n",score[i].malescore); printf("Total score of female:%d\n",score[i].femalescore); printf("Total score of all:%d\n\n",score[i].totalscore); } }//summary 1.19 Status algo119(int a[ARRSIZE])//求i!*2^i序列的值且不超过maxint { last=1; for(i=1;i<=ARRSIZE;i++) { a[i-1]=last*2*i; if((a[i-1]/last)!=(2*i)) reurn OVERFLOW; last=a[i-1]; return OK; } }//algo119 分析:当某一项的结果超过了maxint时,它除以前面一项的商会发生异常. 1.20 void polyvalue() { float temp; float *p=a; printf("Input number of terms:"); scanf("%d",&n); printf("Input value of x:"); scanf("%f",&x); printf("Input the %d coefficients from a0 to a%d:\n",n+1,n); p=a;xp=1;sum=0; //xp用于存放x的i次方 for(i=0;i<=n;i++) { scanf("%f",&temp); sum+=xp*(temp); xp*=x; } printf("Value is:%f",sum); }//polyvalue

2011-04-14

超详细Oracle教程

超详细Oracle教程 引言 .................................................................................................................................................. 3 第一章 数据库基础 ......................................................................................................................... 6 第二章 Oracle入门 ......................................................................................................................... 6 第三章 查询基础 ........................................................................................................................... 11 第四章 单行函数 ........................................................................................................................... 14 第五章 分组函数 ........................................................................................................................... 19 第六章 多表查询 ........................................................................................................................... 21 第七章 子查询 ............................................................................................................................... 24 第八章 高级查询 ........................................................................................................................... 40 第九章 数据字典 ........................................................................................................................... 43 第十章 Oracle数据类型 ............................................................................................................... 44 第十一章 Oracle体系结构(DBA) ................................................................................................ 45 第十二章 DDL(改变表结构) ........................................................................................................ 46 第十三章 DML(改变数据结构) ................................................................................................. 48 第十四章 约束 ............................................................................................................................... 49 第十五章 视图 ............................................................................................................................... 55 第十六章 索引 ............................................................................................................................... 56 第十七章 序列、同义词 ............................................................................................................... 65 第十八章 PL SQL .......................................................................................................................... 67 第十九章 游标、函数 ................................................................................................................... 79 第二十章 存储过程 ....................................................................................................................... 86 第二十一章 触发器 ....................................................................................................................... 90 第二十二章 事务(数据库系统概论) ....................................................................................... 99 第二十三章 用户管理 ................................................................................................................. 100 第二十四章 备份 恢复 SQLLoader .......................................................................................... 104 第二十五章 数据库设计范式 ..................................................................................................... 106 第二十六章 数据库设计工具 ..................................................................................................... 107 第二十七章 对象关系数据库系统 ............................................................................................. 112 第二十八章 其他数据库 ............................................................................................................. 113

2011-04-14

C++大学教程-----chm版

一本书怎样适应两类读者呢?本书始终强调通过实践证明的结构化编程〔structuredprogramming)和面向对象编程(object-oriented programming)技术编写清晰的程序。非程序员从一开始就要养成良好的编程习惯。我们尽量以清晰而直接的方式编写程序。本书附有大量插图,更重要的是.本书提供大量实用的C++程序,并显示这些程序在计算机上运行时产生的输出结果。所有C++特性都是在完整、可工作的C++程序环境中介绍的,我们称其为“有生命力的代码”。所有这些例子都可以从我们的web站点www.deitel.com中下载.也可以通过本书所配的交互式光盘《C与C++多媒体教室(第二版)》中取得。多媒体教室的特性见本书最后的说明。多媒体教室中还包含本书一半练习的解答,包括简单解答、小型程序和许多完整项目。 本书的前五章介绍计算机基础、计算机编程和C++计算机编程语言。参加我们课程的新学员告诉我,第1章到第5章的材料为今后学习C++的高级知识打下了坚实基础。熟练的程序员可以快速浏览前五章,然后阅读本书其余部分对C++的有深度、有挑战性的介绍。 许多熟练的程序员告诉我们,他们很欣赏我们对结构化编程的处理、他们通常用C或Pascal结构化编程语言进行编程,但由于没有系统地学习结构化编程,因此常常无法用这些语言编写出最佳代码。学习本书前几章介绍的结构化编程知识后,有助于改进使用C或Pascal语言编程的风格。因此,无论你是新手还是熟练的程序员,这里的信息都是充实、有趣并且具有一定深度的。 大多数人对计算机能做的工作略有所知,利用本书可以学会如何指示计算机做这些工作。软件(sofware,即编写的指令,命令计算机完成操作并做出判断)可以控制计算机(通常称为硬件,Hardware)。C++是当今最常用的软件开发语言之一。本书介绍的C++版本已经过美国国家标准协会(ANSI,American ational Standards Institute)和国际标准化组织(IS0,International Stanards0rganization)的标准化,这个ANSI/ISO C++草案标准已经批准为全球标推。 计算机的应用领域在不断增加。在这个成本稳步攀升的时代,计算成本却在急速下降,因为硬件和软件技术都在飞速发展。25年前装满整个房间、价值上百万美元的计算机如今已经缩小到比手指甲还小的芯片,而且只要几美元。具有讽刺意味的是,硅是地球上最丰富的资源之一,是普通砂子的主要组成部分。硅芯片技术使计算技术如此经济,如今全世界已经有大约2亿台通用计算机在使用中,其应用涉及商业、工业、政府和个人生活。这个数字在近年内必将翻番。 本书将使读者面临几个挑战。几年前,人们学习第一个编程语言时可能只要学习C或Pascal,但实际上还需要学习C和C++,为什么呢?因为C++包括C语言和其他更多的内容。 几年前人们只需学习结构化编程(sstructured programming),而今则既要学习结构化编程,又要学习面向对象编程(object-oriented programming),因为面向对象是今后10年最关键的编程方法。本课程要建立和使用许多对象(Object),但是这些对象的内部结构最好用结构化编程方法建立。另外,操作对象的方法最好也用结构化编程方法来表达。 另一个介绍两种方法的原因是,目前有大量C++系统是从C语言系统移植过来的,还有大量的所谓“C语言遗留代码”。C语言已经使用20余年,近年来用得越来越多。人们学习C++之后就会发现,C++比C语言强得多,因此通常会转到使用C++.他们会将遗留的系统移植到C++,这是个相对简单的过程。然后,他们开始用各种C++对C++语言的增强特性改进其编写的类C语言程序的风格。最后,他们开始利用C++面向对象编程的功能,真正了解这种语言的全部好处。 编程语言中的一个有趣现象是,大多数厂家都推出C/C++产品组合而不是提供分开的产品。这样,用户可以继续使用C语言编程,适当时候再逐渐过渡到C++。 C++已经成为实现语言的首选.但它能在第一门编程课程中介绍吗?我们认为可以。五年前,当人们用Pascal作为第一门编程课程时,我们遇到过类似挑战。我们编写了《C How To Program》。 如今全世界几百所大学都在使用《C How To Prrogram》第二版,使用这本教材的课程和使用Pascal作为第一门编程课程一样有效。其间没有明显的差别,只是学生学习的兴趣更高,因为他们知道工作中要使用的是c语言而不是Pascal语言。学习C语言的学生还能更快地学习C++和新的Internet 语言——Java。 本书前五章介绍C++中的结构化编程方法、C++的“C语言部分”和“C++对C语言的改进”。然后要介绍C++面向对象编程,但我们不想等到第6章再介绍面向对象编程,因此前五章每一章都有一节“有关对象的思考”,介绍面向对象编程的基本概念和术语。第6章“类与数据抽象“将开始用C++生成对象并编写面向对象的程序。 第1章分为三部分,第一部分介绍计算机基础和计算机编程。第二部分立即开始编写一些简单C++程序,第三部分介绍有关对象的思考。 下面要开始富有挑战和回报的旅程了。学习过程中,如果想与我们联系,可以给我们发电子邮件 [email protected] 或浏览我们的web站点: http://www.deitel.com 我们将立即答复。希望大家喜欢学习《C++大学教程》,还可以使用本书的交互式光盘版本《C与C++多媒体教室(第二版)》,详见本书最后的说明。

2011-04-14

c/C++面试题大全--96页

本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。   许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。读者可从本文看到strcpy函数从2分到10分解答的例子,看看自己属于什么样的层次。此外,还有一些面试题考查面试者敏捷的思维能力。   分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。   2.找错题   试题1: void test1() {  char string[10];  char* str1 = "0123456789";  strcpy( string, str1 ); }   试题2: void test2() {  char string[10], str1[10];  int i;  for(i=0; i<10; i++)  {   str1[i] = 'a';  }  strcpy( string, str1 ); }   试题3: void test3(char* str1) {  char string[10];  if( strlen( str1 ) <= 10 )  {   strcpy( string, str1 );  } }   解答:   试题1字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界;   对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分;   对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen的结果未统计’\0’所占用的1个字节。   剖析:   考查对基本功的掌握:   (1)字符串以’\0’结尾;   (2)对数组越界把握的敏感度;   (3)库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:   2分 void strcpy( char *strDest, char *strSrc ) {   while( (*strDest++ = * strSrc++) != ‘\0’ ); }   4分 void strcpy( char *strDest, const char *strSrc ) //将源字符串加const,表明其为输入参数,加2分 {   while( (*strDest++ = * strSrc++) != ‘\0’ ); }   7分 void strcpy(char *strDest, const char *strSrc) {  //对源地址和目的地址加非0断言,加3分  assert( (strDest != NULL) && (strSrc != NULL) );  while( (*strDest++ = * strSrc++) != ‘\0’ ); }   10分 //为了实现链式操作,将目的地址返回,加3分! char * strcpy( char *strDest, const char *strSrc ) {  assert( (strDest != NULL) && (strSrc != NULL) );  char *address = strDest;  while( (*strDest++ = * strSrc++) != ‘\0’ );   return address; } 从2分到10分的几个答案我们可以清楚的看到,小小的strcpy竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的strcpy啊!   (4)对strlen的掌握,它没有包括字符串末尾的'\0'。   读者看了不同分值的strcpy版本,应该也可以写出一个10分的str

2011-04-14

设计模式精解-GoF 23种设计模式解析附C++实现源码

设计模式精解-GoF 23种设计模式解析附C++实现源码 设计模式精解-GoF 23种设计模式解析附C++实现源码

2011-04-13

java经典面试题--不下莫后悔

java经典面试题java经典面试题java经典面试题

2011-04-13

java面试题题集--不下莫后悔

java面试题题集 经典 精辟 不下莫后悔

2011-04-13

struts2.0中文教程

struts2.0中文教程 总结 上面的例子简单地演示了,Web 应用程序的基本操作,也即是,页面输入->Action处理->再输出到另外页面。Struts 2.0的简单易用、方便测试相信也会给大家留下不错的印象吧。我相信,Struts 2.0作为一个全新的Web架构,将会再次掀起Web开发的热潮。 不过,Struts 2.0还在测试中,正式版的发布还需些时日,所以文档方面可能有所欠缺。请大家继续留意我的博客,我会尽我所能为大家写更多关于Struts 2.0的文章。 posted on 2006-10-10 18:35 Max 阅读(12691) 评论(112) 编辑 收藏 引用 所属分类: Struts 2.0系列 评论共2页: 1 2 评论: # re: 为Struts 2.0做好准备 2006-10-26 22:57 | esmiles 纠正一个错误: HelloWorld.jsp中的<s:property name="name" /> name属性是错的。应该改成value属性,既: <s:property value="name" /> 回复 更多评论 # re: 为Struts 2.0做好准备 2006-10-27 09:12 | Max @esmiles Thanks,已经改正。 回复 更多评论 # re: 为Struts 2.0做好准备 2006-10-27 14:48 | Max @风人园 我没有遇过这种情况。 其实不用加也是可以运行的,只不过在tomcat加载应用程序时会有提示。 加一个空白的struts.properties文件就可以解决。 Struts 2.0有两个配置文件,struts.xml和struts.properties都是放在WEB-INF/classes/下。 1、struts.xml用于应用程序相关的配置 2、struts.properties用于Struts 2.0的运行时(Runtime)的配置 回复 更多评论 # re: 为Struts 2.0做好准备 2006-10-30 10:44 | Max @张先生 struts-default.xml文件不用您自己加,它位于struts2-core-2.0.0.jar包中。 回复 更多评论 # re: 为Struts 2.0做好准备 2006-11-02 23:14 | Tin 谢谢Max的教程。大家也可以到WebWork中文网站:http://webwork.javascud.org/ http://wiki.javascud.org/display/ww2cndoc/WebWork 看看。里面有WebWork 2.2的中文参考手册。 Struts 2.0.1目前还完全等于WebWork 2.2.x,所以可以参照WebWork2手册学习。 回复 更多评论 # re: 为Struts 2.0做好准备 2006-11-10 00:47 | Goingmm[匿名] 简单易懂!测试通过 需要尝试的朋友,有一个细节需要注意: 我开始图方便是把所有包都引入。结果出现struts2-all-2.0.1.jar包和struts2-core-2.0.1.jar包冲突。原因很简单就是这2个包里面都有struts-default.xml文件。造成重复定义 结论:在struts-2.0.1的lib下面有很多jar包。做这个测试只需要引入图5显示的其中6个包(在版本2.0.1里面没有struts2-extras-2.0.0.jar,所以不用引这个包) 回复 更多评论 # re: 为Struts 2.0做好准备 2006-11-22 21:42 | 太行山人 default-config.xml有什么用?一定要include到struts.xml中吗? 回复 更多评论 # re: 为Struts 2.0做好准备 2006-11-26 18:32 | Max Default-config.xml contains some interceptor stacks and common configurations. Including it can help you to create action easier 回复 更多评论 # re: 为Struts 2.0做好准备 2006-11-27 12:36 | 太行山人 如果我不想用default-config.xml中的默认配置,而是自己对default-config.xml中的一些参数自定义,应该把这个文件放在哪里呢?还是直接覆盖jar包中的这个文件呢? 或者,在struts.xml中配置相应的元素,会覆盖default-config.xml中相应元素的配置? 回复 更多评论 # re: 为Struts 2.0做好准备 2006-11-28 23:52 | Max 在struts.xml中配置相应的元素,可以覆盖default-config.xml中相应元素的配置。 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-02 13:26 | jakki @Max 警告: Could not find or error in struts.properties java.lang.IllegalStateException: struts.properties missing 我老是遇到报这个错,我已经加了这个文件了,怎么还报 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-04 18:50 | 张先生 把struts.properties 放到classes下即可了!! 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-05 10:52 | kevin666888 为什么不能正确显示中文: 如果在SayHello.jsp页面的输入框中输入中文,(如“世界”) 提交后显示的是乱码,如"Hello, ?=?!" 请各位指教。 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-05 18:34 | Max HelloWorld.jsp中<%@ page contentType="text/html; charset=UTF-8" %>有没有加上这个? 在我的环境中没有这个问题。 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-07 21:20 | konhon 优华 非常詳細... 我照做了下, 全通過 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-14 15:04 | xanbio @风人园 如果你是直接copy的过去就会有这个问题。。建议把配置文件按照上面的手写一遍就好了。。 我也遇到过这样的问题 回复 更多评论 # re: 为Struts 2.0做好准备 2006-12-14 15:07 | xanbio 不完全这样, 1.你需要在你的classpath下放置struts.properties文件。 2.同时你需要将tomcat下的你的项目的启动文件的conttext元素的reload属性设为true。 回复 更多评论 # 问一个关于中文乱码的问题。 2007-04-03 17:44 | lhx 我有一个注册页面register.jsp 如下,这样在页面上中文可以正确显示,但是到action中取出来的“user.username”就是乱吗了,该怎么解决啊? <%@ page contentType="text/html;charset=GBK"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Sign On</title> </head> <body> <s:form action="RegisterAction"> <table> <tr> <td>姓名</td> <td><s:textfield key="user.username"/></td> </tr> <tr> <td>地址</td> <td><s:textfield key="user.address" /></td> </tr> <tr><td colspan="2"><s:submit/></td></tr> </table> </s:form> 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-07 22:56 | Max @lhx <%@ page contentType="text/html;charset=GBK"%> 将页面的输出编码设置为:GBK,但是又使用了: <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 告诉浏览器使用gb2312来显示页面。 建议大家将编码都设为utf-8,在我开发的过程中很少碰到乱码的情况。 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-09 14:53 | open @风人园 请你加入这个试试: 把HelloWorld 更改为:HelloWorld.action看看的,应该是这个的问题! 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-18 13:36 | jiajia 启动tomcat时,strurs2自动得读default-config.xml配置文件,那么怎么读自己建的struts.xml文件 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-18 23:05 | Max @jiajia Struts 2默认会读取classpath下的struts-default.xml,struts-plugin.xml,struts.xml这三个文件。 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-19 09:49 | jiajia 谢谢max的回答,再问一下struts-plugin.xml这个文件在哪个jar包里面,还是自己定义的 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-19 23:19 | Max @jiajia struts-plugin.xml会在你下载的plugin的jar包中,如struts2-spring-plugin-2.0.6.jar。 回复 更多评论 # re: 为Struts 2.0做好准备 2007-04-19 23:28 | Max @Tony 你应该没在web.xml有配置struts 2的filter,试下将以下列代码加到web.xml的<web-app></web-app>元素之间: <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 回复 更多评论 # re: 为Struts 2.0做好准备 2007-05-10 17:31 | gpiaofei2006 全部按照步骤做完后,在SayHello.jsp,填上任意名字,执行结果都是Hello,null!十分迷惑 回复 更多评论 # re: 为Struts 2.0做好准备 2007-05-13 13:58 | gpiaofei2006 # re: 为Struts 2.0做好准备 2006-10-26 22:57 | esmiles 纠正一个错误: HelloWorld.jsp中的<s:property name="name" /> name属性是错的。应该改成value属性,既: <s:property value="name" /> HelloWorld.jsp中的<s:property name="name" /> 应该不改变 否则结果为:Hello,null; 回复 更多评论

2010-01-11

计算机程序构造与解释答案(周银辉)

1,过程作为返回值 在1.3中我们明白了高阶函数之后,“用一个过程作为另外一个过程的返回值”则是稀松平常的事情了,比如下面的代码: (define (f x) (+ x 1)) (define (g) f) ((g) 2) 函数g没有参数,其返回值为函数f,所以((g) 2)就运算结果就是(f 2),最后运算结果为3。 上面是用一个已命名的函数作为返回结果的,相应的,也可以将一个“匿名过程”作为结果返回,这里的“匿名过程”也就是我们的Lambda表达式,所以上面的代码可以改造成: (define (g) (lambda (x) (+ x 1))) ((g) 2) 那么((g) 2)的运算结果就是((lambda (x) (+ x 1)) 2),最后运算结果为3。 2,牛顿法 学到这里,你可能需要复习一下高等数学的基本内容,包括“导数”和“微分”,高数的在线教材可以在这里找到:http://sxyd.sdut.edu.cn/gaoshu1/index.htm 关于牛顿法的介绍可以看这里:http://en.wikipedia.org/wiki/Newton%27s_method ,下面是程序: (define (close-enough? v1 v2) (< (abs (- v1 v2)) 0.000000001)) ;定义不动点函数 (define (fixed-point f first-guess) (define (try guess step-count) (let ((next (f guess))) (if (close-enough? guess next) next (try next (+ step-count 1))))) (try first-guess 0)) ;定义导数函数 (define (D f) (lambda (x dx) (/ (- (f (+ x dx)) (f x)) dx))) ;牛顿法 (define (newton g first-guess) (fixed-point (lambda (x) (- x (/ (g x) ((D g) x 0.000000001)))) first-guess)) ;平方 (define (square x) (* x x)) ;定义开方,来测试下牛顿法 (define (sq x) (newton (lambda (y) (- (square y) x)) 1.0)) (sq 5) 3,“一等公民” 这里列出了程序语言中作为“一等公民”的语言元素所具备的几个“特权”: 可以用变量命名 可以作为过程参数 可以作为过程返回结果 可以被包含在数据结构中 4,练习1.40 求三次方程 x^3 + ax^2 + bx + c 的零点。 首先,证明 函数f(x) = x^3 + ax^2 + bx + c 是“可微”的: 由可导和可微的性质知道,可导和可微互为充要条件,所以,要证可微我们可以先证可导, f ’ (x) = (x^3)’ + (ax^2)’ + (bx)’ + (c)’ = 3x^2 + 2ax + b 所以f(x)的导数存在,那么f(x)可导,其必定可微。 其次,利用“牛顿法”:如果f(x)是可微函数,那么f(x)=0的一个解就是函数(x – f(x)/df(x)的一个不动点,其中df(x)是f(x)的导数。所以我们可以轻松得到下面的代码: (define (close-enough? v1 v2) (< (abs (- v1 v2)) 0.000000001)) ;定义不动点函数 (define (fixed-point f first-guess) (define (try guess step-count) (let ((next (f guess))) (if (close-enough? guess next) next (try next (+ step-count 1))))) (try first-guess 0)) ;定义导数函数 (define (D f) (lambda (x dx) (/ (- (f (+ x dx)) (f x)) dx))) ;牛顿法 (define (newton g first-guess) (fixed-point (lambda (x) (- x (/ (g x) ((D g) x 0.000000001)))) first-guess)) ;定义cubic函数,也就是我们题目中所谓的f(x) (define (cubic a b c) (lambda (x) (+ (* x x x) (* a x x) (* b x) c))) ;随便定义几个系数 (define a 3) (define b 5) (define c 8) (define result (newton (cubic a b c) 1.0)) ;定义一个验证过程,让其验证得到的解,是否让方程成立 (define (validate x) (= 0 (+ (* x x x) (* a x x) (* b x) c))) ;输出结果 result ;验证结果 (validate result) 比如上面我们计算 x^3 + 3x^2 + 5x + 8 = 0, 其一个解为:-2.3282688556686084 .....

2010-01-11

spring2.5-reference

spring2.5-reference 1.核心技术 2.中间层数据访问 3.the web 4.整合 5.示例程序 ...

2010-01-11

hibernate_reference

hibernate_reference 1.hibernate入门 2.体系结构 3.配置 4.持久化类 5.对象关系数据库映射 6.集合类 ...

2010-01-11

FLEX数据绑定专题

1. 关于数据绑定 数据绑定是将一个对象中的数据同另一个对象中的数据联系在一起的过程。数据绑定为在 应用的不同层之间传递数据提供了便捷方法。数据绑定需要一个源属性,一个目的属性,以及 用于表明何时将数据从源属性拷贝到目的属性的触发事件。当源属性变化时,对象发出触发事 件。 Adobe Flex 提供三种方法用于指定数据绑定:MXML 中的大括号({})语法,MXML 中的 <mx:Binding>标记,以及ActionScript 中的BindingUtils 的系列方法。下面的例子使用大括 号({})语法来展示一个Text 控件,该控件的数据来自于TextInput 控件Text 属性: <?xml version="1.0"?> <!-- binding/BasicBinding.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI" text="Enter text here"/> <mx:Text id="myText" text="{myTI.text}"/> </mx:Application> 大括号中所括的属性名就是绑定表达式中的源属性。当源属性的值放生变化时,Flex 把源属性 myTI.text 的当前值拷贝到目的属性 数据绑定表达式中可以将ActionScript 代码以及E4X 表达式作为一部分包含进来,如下例 所示: <?xml version="1.0"?> <!-- binding/BasicBindingWithAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI"/> <mx:Text id="myText" text="{myTI.text.toUpperCase()}"/> </mx:Application> 在这个例子中,当Flex 将源属性的数据拷贝到目的属性时,使用ActionScript 的 String.toUpperCase()方法将源属性中的文本转化为大写形式。关于更多的信息参看:在数据 绑定中使用ActionScript 以及在数据绑定中使用E4X 表达式。 可以用<mx:Binding>标记 作为大括号语法的替代方法。在使用<mx:Binding>时,要为 <mx:Binding>标记提供一个源属性作为标记的source 属性以及提供一个目的属性作为标记的 destination 属性。下面的例子使用<mx:Binding>标记定义了一个从TextInput 控件到Text 控 件的数据绑定: <?xml version="1.0"?> <!-- binding/BasicBindingMXML.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI"/> <mx:Text id="myText"/> <mx:Binding source="myTI.text" destination="myText.text"/> </mx:Application> 同大括号语法相比,用<mx:Binding>标记能够将视图(用户界面)同模型完全分离。 <mx:Binding>标记也能实现将多个源属性绑定到一个相同的目的属性,这是因为能够定义多个 具有相同的destination 属性的<mx:Binding>标记。例子请参照“绑定多个源属性到一个目的 属性”。

2009-08-09

VC++ 编程指南.chm

第一课 Windows编程和面向对象技术   1.1 Windows发展历史   1.2 Windows操作系统特点   1.3 Windows应用程序设计的特点   1.4 Windows应用程序的开发工具   1.5 面向对象和Windows编程 第二课 使用Visual C++ 5.0   2.1 Visual C++可视化集成开发环境   2.2 创建、组织文件、工程和工作区   2.3 WIN32开发   2.4 MFC编程   2.5 移植C Windows程序到MFC   2.6 Visual C++5.0新特性 第三课 窗口、菜单与消息框   3.1 编写第一个窗口程序   3.2 AppWizard所创建的文件   3.3 编译和链接Hello程序   3.4 应用程序执行机制   3.5几种窗口类型   3.6 使用菜单   3.7 更新命令用户接口(UI)消息   3.8 快捷菜单 第四课 工具条和状态栏   4.1 工具条的可视化设计   4.2 工具条的编程技术   4.3 状态栏的设计与实现 第五课 对话框   5.1对话框和控件的基本概念   5.2 对话框模板的设计   5.3 对话框类的设计   5.4 非模态对话框   5.5 标签式对话框   5.6 公用对话框   5.7 小结 第六课 控件 6.1 传统控件   6.2 新型Win32控件   6.3 控件的技术总结   6.4 在非对话框窗口中使用控件   6.5 如何设计新的控件   6.6 小结 第七课 文档视结构   7.1 文档/视图概念   7.2 文档视结构程序实例   7.3 让文档视结构程序支持卷滚   7.4 定制串行化   7.5 不使用串行化的文档视结构程序   7.6 小 结 第八课 多文档界面MDI   8.1多文档界面窗口   8.2图形设备接口(GDI)   8.3 绘图程序   8.4访问当前活动视图和活动文档   8.5分隔视图   8.6打印和打印预览   8.7支持多个文档类型的文档视结构程序   8.8防止应用程序运行时创建空白窗口   8.9小结 第九课 创建用户模块   9.1用户模块   9.2静态连接库   9.3创建动态库   9.4小结 第十课 数据库编程   10.1 数据库的基本概念   10.2 ODBC基本概念   10.3 MFC的ODBC类简介   10.4 CDatabase类   10.5 CRecordset类   10.6 CRecordView类   10.7 编写Enroll数据库应用例程   10.8 DAO和DAO类   10.9 自动注册DSN和创建表   10.10 小结 第十一课 多媒体编程   11.1 调色板   11.2位图   11.3依赖于设备的位图(DDB)   1.4与设备无关的位图(DIB)   11.5动画控件   11.6媒体控制接口(MCI).   11,7小结  第十二章 多线程与串行通信   12.1 多任务、进程和线程   12.2 线程的同步   12.3 串行通信与重叠I/O   12.4 一个通信演示程序   12.5 小结 --------------------------------------------------------------------------------

2009-03-14

JSP由浅入深(CHM).chm

JSP由浅入深(3)—— 通过表达式增加动态内容 编译:ZSC/太平洋网络学院   在我们前面的章节中,任何的HTML文件都可以转变成JSP文件,做法是通过改变它的扩展名为.jsp。当然,我们要知道是什么使得JSP有用呢?答案是嵌入Java的能力。将下列文本放置在一个以.jsp为扩展名的文件中,比如说这个文件为myjsp.jsp,然后将这个文件放置到你的JSP目录下并且在浏览器上看它。以下是具体的代码: <HTML> <BODY> Hello! The time is now <%= new java.util.Date() %> </BODY> </HTML> 这里要注意,每次你在浏览器中重载网页的时候,它就出现当前时间。字符系列<%= and %>的作用是圈起Java表达式,这个表达式将在运行的时候被计算。 正因为这样,使用JSP产生动态HTML网页来响应用户的动作才变为可能。 好吧,教程结束之后你最好作个练习:为不同的系统属性编写一个JSP用来输出由System.getProperty返回的数值,比如java.version、java.home、os.name、user.home以及user.dir等等。 [上一页] [下一页]

2009-03-14

java语言入门.chm

第 一 章 Java语 言 的 产 生 及 其 特 点 第 二 章 Java程 序 开 发 与 运 行 环 境 第 三 章 Java程 序 设 计 基 础 第 四 章 Java应 用 程 序 的 基 本 框 架 ……

2009-03-14

批处理教程(txt)

这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识。

2009-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除