帐前卒专栏

code, software architect, articles and novels.
代码,软件架构,博客和小说

湖大校园非常混乱。请看到这篇文章的还未上湖南大学,却励志要上湖南大学的小同学们想想清楚。因为是开放式校园,所以和外面的人接触很多。一栋宿舍里人来人往,非常多
人(还大多是外面的人)。 舍管阿姨根本不清楚哪个是哪个。

财产安全问题是一个非常重要的问题。所以如果家里一贫如洗,可以来这里。小李子就是这样一个人。在他寝室里现在只有他和蟑螂两种生物。没钱。可是还是半夜被盗了。手法
非常残忍,将锁弄个残废。幸好小李子在熟睡中,如果他醒来,恐怕这个人的灵魂就要升天堂了。据不完全统计,现在还未丢财务。但是不清楚蟑螂少了几只,正在进一步的调查
中。

混乱的校园…早点离开这个鬼地方才是上策。

本篇是个人言论,非官方语言。小李子的官方报道正在出台中…

在一个小cube里,Annie坐在肮脏的黄色大气球上耐心的听着Cloud布道。chao拿着水果跑进cube,惊喜的大叫:“这球终于有人擦了!”

晚上吃过晚饭,lynn挤进黄色大气球所在的cube里打星际。Cloud教导lynn如何打星际。“你可以把星际看成少女养成类游戏。点这个首饰盒可以…”
。战争进行了n分钟后,chao准备利用虫族的房子穿过lynn的阵地,空投到wei家中。房子正穿越lynn阵地的过程中,lynn大叫:“这一片飞的是什么东西?
!”于是,行踪败露。下一个n分钟后,Cloud很兴奋的说:“lynn努力将自己的人口保持在19.”又过了几分钟,xibei让lynn的兵都出去进攻。xibe
i:"把兵都A出去。"lynn:“怎么A?”

xibei教lynn玩完星际的几天后。大家准备去Sohail的家中。正在路途xibei抬头看到了Sohail住的宾馆。于是叫道:“大家A过去!”

军军打完CS的几天后。接到面试别人的通知。和定浩,以及旁听的傻傻的chao在大黄球曾滚过的cube正讨论如何面死那应聘者。军军:“他的专业是CS(compu
ter science)计算机科学,我们应该考些CS
fundamental的知识。”“好呀!”chao附和道。“比如:如何买枪,换子弹…”军军接下去说。(CS也是种游戏)

wei和Shawn在某处打照面。“You are so strong!”wei说。“You are so
handsome!”shawn说。似乎每天的照面频率很高。但是见面语却没有变过。

gencheng和chao在某处打照面。“吃饭去?”chao说。“好呀!”gencheng说。似乎这两个人只有在吃饭前才有机会见面。

老大和他的小弟在B1的中餐厅使劲嚼着那香辣土豆丝。小弟说:“老大,我那个bug解决了。给你说了下代码,你就知道哪里可能有bug,真是太厉害了!”老大:“你的
怕马匹的功夫也越来越厉害了。”小弟:“你怎么知道我是在拍马屁?不愧是老大!”老大:“好,你又拍了一个。”

shawn,wei,xibei,chao等帮内核心人物强烈要求帮主要对个人的负债进行一次清零操作。(每次个人账单都是红色标记也挺没有面子的。)lynn也跟随
大众的一起要求清零。帮主冷冷的对lynn说:“你刚存了100元,就从你开始清零吧。”

Annie请客,自己忙了一天,煮了一大锅东西。吃饭的时候,Annie问chao:“这个猪蹄怎么样?”“不错,我更喜欢吃丸子。”chao应道。Annie又问:
“你最喜欢吃什么?”“丸子!”chao用筷子捞了一圈又一圈,“不过现在没有了!”chao沮丧的说。(只有丸子是不用加工,直接放入锅里煮的!)

晚上8点左右,chao’s mentor shu和chao在红色小气球的cube里讨论visualDiff的实现细节。“第四个值是Alpha值,手机上有吗?
”“没有!”shu很肯定的回答。“我想把它去掉,如果使用循环,每隔4个就要把那个值去掉,这样进行判断,很费时间。”chao说。“你为什么不写四条顺序语句,代
替那个判断呢?”shu慢条斯理的说。chao沉思了一会,“手机上不需要这个值是吗?”chao说。“嗯。”“那我为什么要判读那个值是不是第四个呢?”…
(chao自己已经迷糊了…而shu则是在迷茫…)

要做自动化压力测试了。chao知道压力测试肯定能测到问题。所以chao在自己的msn上改签名为:“ruijun让我肩负起搞死dengshan的重要使命!”d
engshan是dev lead,这个项目要发布了,所以他要负责修复bug,但是他又想去休假。但是谁知道,被dengshan点出自动化压力测试那个程序写的有
问题。于是不是chao搞死了dengshan,而是dengshan整死了chao,当然ruijun也顺带被整死。于是chao星期六星期天和ruijun一起不
亦乐乎、忙死忙活地做着自动化压力测试,而dengshan舒服的在家中休假。

未完待续中…

所谓诡道,便是“是”装作“否”
忍让
化不利为有利
久战不利
胜敌而益强
充分利用各种手段进行斗争
知敌强弱,知己强弱,方能选择最佳策略
要懂得分权,这样可以避免牵制用兵,不懂军政,将帅不一
求胜:1.何时战,2.多少兵。3政、军、民有无共同的信念4我方准备充足,敌方准备不足5君主不干预有才能的

将领
胜兵先胜,而后求战;败兵先战,而后求胜(胜者先创造必胜的条件,然后再与敌作战;败者先与敌作战,然

后再侥幸求胜)
是否立于不败之地,操之在己;能否趁可乘之机,操之在敌
用兵之道无定法
风林火山阴雷(其疾如风,其徐如林,侵掠如火,不动如山,难知如阴,动如雷霆)
我专敌分
必死可杀,必生可虏,忿速可侮,链结可辱,爱民可烦  五种危险
通挂支隘险远  五地形
用兵作战六败:走,弛,陷,崩,乱,北
走:兵力相当,却以一攻十
弛:军队强大,指挥官能力欠缺
陷:指挥官能力强,但是军队差
崩:将帅无法控制骄横的高级军官
乱:管束不严,军纪不整
北:用兵无重点,料敌无方
有利才行动,无利则不妄动
击敌之不防
强与弱各司其职
始如处女,敌人开户,后如脱兔,敌不及拒
火攻有五:火人,火积,火辎,火库,火队
合于利而动
慎用兵
五间:乡间,内间,反间,死间,生间

VC++的链接错误LNK2005

编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。

造成LNK2005错误主要有以下几种情况:
1. 重复定义全局变量。可能存在两种情况:
A、 对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP
文件中定义如下:int   g_Test;那么在使用的CPP文件中就应该使用:extern   int   g_Test即可,如果还是使用int
g_Test,那么就会产生LNK2005错误,一般错误错误信息类似:AAA.obj   error   LNK2005   int   book
c?book@@3HA   already   defined   in   BBB.obj。切记的就是不能给变量赋值否则还是会有LNK2005错误。
这里需要的是“声明”,不是“定义”!根据C++标准的规定,一个变量是声明,必须同时满足两个条件,否则就是定义:
(1)声明必须使用extern关键字;(2)不能给变量赋初值
所以,下面的是声明:
extern   int   a;
下面的是定义
int   a;   int   a   =   0;   extern   int   a   =0;
B、对于那么编程不是那么严谨的程序员,总是在需要使用变量的文件中随意定义一个全局变量,并且对于变量名也不予考虑,这也往往容易造成变量名重复,而造成LNK20
05错误。

2. 头文件的包含重复。往往需要包含的头文件中含有变量、函数、类的定义,在其它使用的地方又不得不多次包含之,如果头文件中没有相关的宏等防止重复链接的措施,那
么就会产生LNK2005错误。解决办法是在需要包含的头文件中做类似的处理:#ifndef   MY_H_FILE       //如果没有定义这个宏
#define   MY_H_FILE       //定义这个宏
…….       //头文件主体内容
…….
#endif
上面是使用宏来做的,也可以使用预编译来做,在头文件中加入:
#pragma   once
//头文件主体
3. 使用第三方的库造成的。这种情况主要是C运行期函数库和MFC的库冲突造成的。具体的办法就是将那个提示出错的库放到另外一个库的前面。另外选择不同的C函数库
,可能会引起这个错误。微软和C有两种C运行期函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。另外一种是支持多线程的:msvcrt.lib。如果一
个工程里,这两种函数库混合使用,可能会引起这个错误,一般情况下它需要MFC的库先于C运行期函数库被链接,因此建议使用支持多线程的msvcrt.lib。所以在
使用第三方的库之前首先要知道它链接的是什么库,否则就可能造成LNK2005错误。如果不得不使用第三方的库,可以尝试按下面所说的方法修改,但不能保证一定能解决
问题,前两种方法是微软提供的:
A、 选择VC菜单Project->Settings->Link->Catagory选择Input,再在Ignore   libraries
的Edit栏中填入你需要忽略的库,如:Nafxcwd.lib;Libcmtd.lib。然后在Object/library
Modules的Edit栏中填入正确的库的顺序,这里需要你能确定什么是正确的顺序,呵呵,God   bless   you!
B、 选择VC菜单Project->Settings->Link页,然后在Project
Options的Edit栏中输入/verbose:lib,这样就可以在编译链接程序过程中在输出窗口看到链接的顺序了。
C、 选择VC菜单Project->Settings->C/C++页,Catagory选择Code   Generation后再在User
Runtime   libraray中选择MultiThread   DLL等其他库,逐一尝试。
关于编译器的相关处理过程,参考:
http://www.donews.net/xzwenlan/archive/2004/12/23/211668.aspx

这就是我所遇到过的LNK2005错误的几种情况,肯定还有其他的情况也可能造成这种错误,所以我不希望你在看完这篇文章以后,再遇到LNK2005错误时候,不动脑
筋的想对号入座的排除错误。编程的过程就是一个思考的过程,所以还是多多开动你的头脑,那样收获会更多!

注意:头文件中只是全局变量和函数的声明,严禁定义。只有模板类中重载运算符除外… 这是我得到的结论。

今天上午做模板类。结果还发现了大大小小的问题。

希望自己的模板变的越来越规范,所以强迫自己把模板类中的函数的定义和声明分开。 而且放在了不同的文件里。

下面是大概的写法。


template < class type >

class A
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

public :

friend ostream & operator << (ostream & , A < type >& );

A();


![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) } ;

然后在另一个.cpp中这样定义


template < class type >

ostream & operator << (ostream & os,A < type >& a)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

os << a… << endl;

return os;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


template < class type >
A
< type > ::A()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {


![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


template < class type >

void A < type > ::test()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {


![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

在main函数中这样调用

A a();

a.test();

cout << a;

结果链接失败…报的错误好像是link2019.

不清楚为啥,后来同时在main的文件中include A.h 和A.cpp可以解决构造函数和Test()函数reference的问题。

然后又将重载<<的函数放在类的定义中才解决了link2019链接错误.

但是我还是想把这个重载的函数声明和定义分开写,不知道哪位高手可以指点一下。

当了数据结构的助教,还要修改作业。在学生们的作业本上留下了对错号。但是没有写其他的东西。为了防止有学生来冒充我的笔迹来自行打对错号,然后声称没有给分这种现象
的发生。我花了一个小时做了一个数字签名。因为我的笔迹很烂,很容易模仿。

代码如下:基本原理使用的Hash散列。所以不知道签名数据的人,绝对可能从自己作业的签名中获取签名数据,自然也不可能去冒充一个签名。

我使用的mysql的散列函数


#include " stdafx.h "

#include < iostream >

#include < string >


using namespace std;


int iHTLen;

//
mySql hash

unsigned int Hash ( const char * keys, const int len)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

const char * key = keys;

// Hash function for character keys

int length = len;

int nr = 1 , nr2 = 4 ;

while (length -- )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

nr ^= (((nr & 63 ) + nr2) * ( * key ++ )) + (nr << 8 );

nr2 += 3 ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

return ((unsigned int ) nr) % iHTLen;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

//
just Test the consequence are correct or not

bool TestHashValue( const unsigned int hashValue[], int len)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

for ( int i = 0 ; i < len; i ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

for ( int j = i + 1 ; j < len; j ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

if (hashValue[i] == hashValue[j])
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

return false ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

return true ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

//
guarantee the input values are not the same

bool TestPreValue( const string students[], int len)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

for ( int i = 0 ; i < len; i ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

for ( int j = i + 1 ; j < len; j ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

if (students[i] == students[j])
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

return false ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

return true ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


unsigned int Hash( string studentName, string date, string signer)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

int len = studentName.length() + date.length() + signer.length();

char * sign = new char [len];

memset(sign, 0 ,len);

strcpy(sign,studentName.c_str());

strcat(sign,date.c_str());

strcat(sign,signer.c_str());


return Hash(sign,len);

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }



int _tmain( int argc, _TCHAR * argv[])
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {


int num = 0 ;

cin >> num;

string * students = new string [num];

string signName;

string date;


for ( int i = 0 ; i < num; i ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

cin >> students[i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


cin >> date;

cin >> signName;

cin >> iHTLen;

bool isGoon = TestPreValue(students,num);

if ( ! isGoon)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

cout << " students’ names are the same? " << endl;

exit( 2 );
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


unsigned int * signNum = new unsigned int [num];

for ( int i = 0 ; i < num; i ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

signNum[i] = Hash(students[i],signName,date);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


bool isSuccess = TestHashValue(signNum,num);

if ( ! isSuccess)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

cout << " please change the last value and run again! " << endl;

exit( 2 );
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


for ( int i = 0 ; i < num; i ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

cout << students[i] << " " << signNum[i] << endl;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


return 0 ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

幸好没有重名的学生。(__) 嘻嘻……

以上的代码使用VS2005的编译器。不过数据不方便透露,所以大家看懂代码可以自己输入自己的签名数据。大家不必在意Hash函数是如何去写的。因为我也不清楚为什
么这样写。

以后改作业可以省心了。

请点点吃饭。气氛依旧很不愉快,发现从来没有和她吃饭愉快的时候。 期间提到想去旅游,问我支持不支持。点点给我的每一个想法都很新奇,远远超出我的想象空间。旅游是
个好事情可以增长眼界,锻炼胆识。不过要是一个人去,我想还不如躺在自己的床上睡觉舒服。发现自己不喜欢旅游。因为很累,而且要去看风景识人文,为何不在互联网上取得
呢?因为自己每到一个地方,总是发现还没有网上的照片好看。比如说天津。只是感觉校园很大,而且有种很“自卑”的感觉。她还说不想去实习。问了为啥,答曰害怕。仔细想
想,这些想法间矛盾很多。一个人去旅游是为了锻炼胆识,而不去实习却因为害怕孤独。真的想不通。她很希望得到我的支持。我说可以,但是你要给我拿出计划和方案出来。只
有个想法,估计谁都不会同意的。可恰恰相反,她的同学和家人竟然都欣然同意。看来是自己的想法太不合群了。于是就在郁郁中结束了吃饭这个活动。

知难行易,知易行难。不清楚这句话对不对,也不清楚是不是自己书读的太多,反而束缚了自己的手脚。的确有很多想法和自己想法不同,就会招到自己的排挤。但是自己从没有
强迫别人改变他的想法。不过我清楚的知道:做一件事情,如果没有计划和方案,还能顺利的进行,那真的是上天眷顾!希望上天多多眷顾我一下…

死亡之旅即为那些时间要求提高50%,预算减少50%,人员减少50%,功能增加50%的项目。按常规来说根本达不成目标的项目
小型的项目成功的概率最大,大型项目就是真的死亡之旅了。

产生的原因:人人都是傻瓜。只是在不同的时间对不同的事物成为傻瓜。
不要对项目做出乐观的估计。
刚刚起步的公司容易换海军陆战队综合症

成为死亡之旅的原因并不在于技术,而在于荒谬的进度。

项目就像场婚姻,开始时,我们通常天真而充满希望。但随着现实的慢慢介入,我们不得不重新调整自己对这种关系的期望.

以为无比的自信,死亡之旅项目团队才能够完成传统项目团队无能为力的任务。
年轻人不会放弃的乐观,精力以及专注于某一问题的能力。。。还有他们的天真。。。

向团队授权。

加入死亡之旅,要在其中一个方面(功能,成本,时间)上有机动性。并承认是死亡之旅。

没有爬过富士山的人是傻瓜,爬过两次富士山的人更傻。

朋友!你想戒掉网瘾吗?你想从沉迷的网游世界挣脱吗?

如果你想,那么,装湖大校园网吧!

你的孩子沉迷网游无法认真学习吗?装湖大校园网吧!

湖大承诺,24小时质量保证让你的孩子无法正常游戏。强大的技术支持,保证让你的孩子10分钟掉一次线,练级、副本、任务、PK,一个都别想要。绝对让你体会宽带的价
格,拨号的享受。

下面是对用户王同学的调查:

问:你觉得湖大校园网好吗?

王:太好了!

问:为什么这么觉得呢?

王:现在我的已经从网游中彻底摆脱了。

问:效果这么好?

王:是啊,现在我一看到电脑就会吐,一看见网游的广告就会休克。

问:哇……了不起啊!

王:是啊,是啊!湖大校园网让我从虚拟世界走了出来。不仅如此,我还越来越喜欢和家长交流。

问:为什么呢?

王:说话不会掉线。不会说着说着人就消失,让我很有存在感。

朋友!看到这里你还犹豫什么?拨打电话给我们吧!湖大校园网,真正为用户着想!我们深知免费咨询会伤害用户的消费心理,让您的自尊受到伤害!所以,我们顶住社会压力,
开放收费电话咨询!为了满足你奢侈的消费欲望,我们一直在努力!

湖大的承诺:没有最慢,只有更慢!

湖大的保证:没有掉线,只有无法连接

0%