博文

成为编程高手的二十二条军规[转](2005-11-18 12:47:00)

摘要: 楼主   1.大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!
  2.计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣的。
  3.记住:万丈高楼平地起!基础很重要,尤其是专业基础课,只有打好基础才能学得更深。
  4.C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。
  5.C语言与C++语言是两回事。就像大熊猫和小熊猫一样,只是名字很像。
  6.请先学习专业课《数据结构》、《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处。
  7.对编程有一定的认识后,就可以学习C++了。(是C++而不是VC,这两个也是两码事。C++是一门语言,而VC教程则是讲解如何使用MFC类库,学习VC应建立在充分了解C++的基础之上。看VC的书,是学不了C++语言的。)
  8.学习编程的秘诀是:编程,编程,再编程;
  9.认真学习每一门专业课,那是你今后的饭碗。
  10.在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看!所以多去实验室上机,现在错得多了,毕业后就错得少了。
  11.从现在开始,在写程序时就要养成良好的习惯。
  12.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路。
  13.你会买好多参考书,那么请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码。
  14.VC、C#、.NET这些东西都会过时,不会过时的是数据结构和优秀的算法!
  15.记住:书到用时方恨少。不要让这种事发生在你身上,在学校你有充足的时间和条件读书,多读书,如果有条件多读原版书,你要知道,当一个翻译者翻译一本书时,他会不知不觉把他的理念写进书中,那本书就会变得像鸡肋!
  16.我还是强调认真听专业课,因为有些课像《数据结构》、《编译原理》、《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月,有的甚至看了好几年都看不明白。
  17.抓住在学校里的各种实践的机会,要为自己积累经验,就业时经验比什么都有用。
  18.多去图书馆,......

阅读全文(4559) | 评论:9

软件工程师道德规范 (2005-11-17 23:44:00)

摘要:  软件工程师道德规范
1993年5月,IEEE计算机协会的管理委员会设立了一个指导委员会,其目的是为确立
软件工程作为一个职业而进行评估、计划和协调各种活动。同年,ACM理事会也同意设立
一个关于软件工程的委员会。到1994年1月,两个协会成立了一个联合指导委员会,负责
为软件工程职业实践制定一组适当标准,以此作为工业决策、职业认证和教学课程的基
础。为完成这项工作,他们提出了如下建议:
*采用标准定义;
*定义所需的知识主体和推荐的实践活动;
*定义道德标准;
*定义本科生、研究生(硕士)和继续教育(再培训和转岗)的教学课程
指导委员会决定通过设立一系列的专题组实现这些目标。最初的几个专题组包括:
软件工程知识主体和推荐的实践活动;软件工程道德和职业实践以及软件工程课程体系

软件工程道德和职业实践小组的目标是为软件工程师在道德上和职业上的责任和义
务制定一份文件。本道德规范(草案)由IEEE计算机协会和ACM联合指导委员会的软件工程
道德和职业实践专题组开发,并且已经过该委员会的审查。
任何规范,如果认真制定并正确推行,都会成为推动职业化和建立社会安全保障的
有力工具。它们不应该也不会只开花不结果,但这常常是人们对规范的错觉。本规范草
案是在对多个计算学科和工程学科规范进行广泛研究的基础上做出的,意在教育和激励
采用规范的职业群体和成员。规范也告诉公众,一种职业的职责及其重要性。规范向实
践者指明社会期望他们达到的标准,以及他们同行的追求和相互的期望。规范并不意味
着鼓励讼争,并且它们也不代表立法;但它们的确就影响专业人员及其客户的一些问题
给出了实际的建议,同时也给政策的制订者提供借鉴。
序言
现在,计算机越来越成为商业、工业、政府、医疗、教育、娱乐、社会事务以及人
们日常生活的中心角色。那些直接或通过教学从事设计和开发软件系统的人员,有着极
大的机会既可从事善举也可从事恶行,同时还能影响或使得他人做同样的事情。为尽可
能保证这种力量用于有益的目的,软件工程师必须要求他们自己所进行的软件设计和开
发是有益的,所从......

阅读全文(3553) | 评论:0

SQL四条最基本的数据操作语句(2005-11-16 23:32:00)

摘要:掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。

   练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。

  在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。

  SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。

  INSERT语句

  用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:

  INSERT INTO EMPLOYEES VALUES

   ('Smith','John','1980-06-10',

   'Los Angles',16,45000);

  通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

  我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。

  如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到......

阅读全文(3761) | 评论:0

VC的20个小技巧!(2005-11-16 22:45:00)

摘要://一、打开CD-ROM

mciSendString("Set cdAudio door open wait",NULL,0,NULL);

//二、关闭CD_ROM

mciSendString("Set cdAudio door closed wait",NULL,0,NULL);

//三、关闭计算机

OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo); //获取操作系统版本信息
if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
    //Windows98,调用ExitWindowsEx()函数重新启动计算机
    DWORD dwReserved;
    ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改变第一个参数,实现注销用户、
    //关机、关闭电源等操作
    // 退出前的一些处理程序
}

//四、重启计算机

typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针
HINSTANCE hInst = LoadLibrary("shell32.dll"); //装入shell32.dll
SHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针
if(hInst != NULL)
{
    //获得函数的地址并调用之
    Sh......

阅读全文(3376) | 评论:0

解读八十年代 [转](2005-11-16 13:40:00)

摘要:解读八十年代 [转]

我们这代是可悲的一代,无论怎样估算都是如此。我们这些八十年代陆续来到世上的孩子,在这个浮华的尘世里奔波,为了学业、爱情、生计、尊严和其他的什么。我们被标名为“飘一代”,我们像个浮萍一样四处漂泊,没有固定的学业,没有固定的工作,没有至忠不虞的爱情。我们烦躁,我们选择反叛。 

理解。这是我们这代叫嚷的最多的一个词,但灌输的真正意义却没有几人可理喻,面对物欲横流的景象,我们只能选择接受和磨合,而无力去拒绝和改变。上一代教会了我们许多知识,遗憾的是,在怎样做人上面却没有重视。的确,我们这代在物质上没有什么短缺,但精神呢?空乏的几乎一无所有。在学校里,家长和老师重视的本质是分数,虽然“培养有能力的孩子”的口号是他们喊出来的;在工作上,父母重视的是一个月的薪水比别人多多少少多少,似乎分数不高,薪水不高一切理由便不是理由。慢慢的,我们不再争辩,在一次次的冷漠之后,我们学会了掩藏;我们把苦留在自己的肚里,让它深埋;我们学会了古老的麻醉方式;我们学会了抛弃良知;在那些灯红酒绿的夜晚,我们用灵魂、肉体的堕落尽情发泄。 

每一代人都有自己的生活方式,惟独我们这一代没有格式,过一天,算一天早已是我们的生活风格。上一代为我们担忧,下一代我们触摸不着。卡拉OK、青春偶像剧、卡通画、游戏、英特网......这些浅薄的流行文化侵人我们的骨髓,渗进去,好比甘露滴滴。我们反对优雅,害怕成熟的奸诈,过早的接触圆滑的人为关系让我们深深的诅咒这些,我们想保留童贞却又渴望刺激,我们的生活无聊,乏味,没有充实感。在那些霓虹灯闪烁的地方,我们的很多同伴在出卖着肉体维持生计,他们宁肯这样也不愿意回家,因为他们明白,回家迎接他们的是身体和情感的束缚,而他们除了接受唯一的方式就是逃避。他们生活在这个肮脏的肉体交易场所,在这里尝试摇头丸,吸食白粉,在他们抱着一大堆无用的空洞的理论知识的时候,他们需要的是刺激,这些刺激能让生活充实。你可能呵斥我们没有追求,可能责怪我们没有抱负和理想,事实上呢?你是错的。你不要呵斥也无需责怪,我们的追求、抱负、理想早已在社会大浪中被排斥。真的,不是我们在排斥这个社会,是社会在排斥我们。 

你不要对我们不屑一顾,你不得不承认,这个世界已经为我们这代头疼,那些父辈们曾经引以为荣的......

阅读全文(4782) | 评论:2

VB入门经验之谈(2005-11-15 11:16:00)

摘要:
                                                 VB入门经验之谈     在论坛会员“拓荒者”的要求下,现谈谈我学VB的几点经验。其实我只是入了门而已,在这高手云聚的CFANCLUB.NET中,我还只是一名小学生,许多人、许多东西都有待我去学习。本文只适合学VB还没入门的朋友阅读。     1、找一本标准的VB基础教材,只要一本,并且不要找那些大全、宝典之类的书,因为暂时还不适合你。     2、不要想一步登天,学一门语言没什么捷径,有的人学得快,只是他重视基础,而有的人基础都没打好,就急着去提高,结果学了很久水平都不上不下。请永远牢记,基础是最重要的!基础打好了,当你学其它知识时,就会得心应手,这是我最深刻的体会。     3、重视你的教材,每个知识点、每一道例题、每一种方法你都要深刻理解,不是死记,是要举一反三,有的知识点不要指望能看一两次就看得明白,不懂就看到懂为止。我记得当初看数据文件那一章,我足足看了七次。     4、认真做一次例题,这些题一般都很经典,最好上机运行一下,当然,也得做好每一章后面的习题。     5、再厉害的高手,记忆力都是有限的,所以养成做笔记的习惯是有必要的,你可以将重要的知识点整理一下,将你学到的、你认为有用的东西记录下来,当笔记做多了,你可以将它进行整理和分类,以后这笔记本就是你最好的工具书了,至于作用如何,你以后自然就会知道。 &nbs......

阅读全文(6105) | 评论:5

编程修养 (2005-11-15 10:39:00)

摘要:
———— 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快? 我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对 于速度快,只要编得多也就熟能生巧了。 我认为好的程序员应该有以下几方面的素质: 1、有专研精神,勤学善问、举一反三。
2、积极向上的态度,有创造性思维。
3、与人积极交流沟通的能力,有团队精神。
4、谦虚谨慎,戒骄戒燥。
5、写出的代码质量高。包括:代码的稳定、易读、规范、易维护、专业。 这些都是程序员的修养,这里我想谈谈“编程修养”,也就是上述中的第5点。我觉得,

果我要了解一个作者,我会看他所写的小说,如果我要了解一个画家,我会看他所画的图 画,如果我要了解一个工人,我会看他所做出来的产品,同样,如果我要了解一个程序员 ,我想首先我最想看的就是他的程序代码,程序代码可以看出一个程序员的素质和修养, 程序就像一个作品,有素质有修养的程序员的作品必然是一图精美的图画,一首美妙的歌 曲,一本赏心悦目的小说。 我看过许多程序,没有注释,没有缩进,胡乱命名的变量名,等等,等等,我把这种人统 称为没有修养的程序,这种程序员,是在做创造性的工作吗?不,完全就是在搞破坏,他 们与其说是在编程,还不如说是在对源程序进行“加密”,这种程序员,见一个就应该开 除一个,因为他编的程序所创造的价值,远远小于需要在上面进行维护的价值。 程序员应该有程序员的修养,那怕再累,再没时间,也要对自己的程序负责。我宁可要那 种动作慢,技术一般,但有良好的写程序风格的程序员,也不要那种技术强、动作快的“ 搞破坏”的程序员。有句话叫“字如其人”,我想从程序上也能看出一个程序员的优劣。 因为,程序是程序员的作品,作品的好坏直截关系到程序员的声誉和素质。而“修养”好 的程序员一定能做出好的程序和软件。 有个成语叫“独具匠心”,意思是做什么都要做得很专业,很用心,如果你要做一个“匠 ”,也就是造诣高深的人,那么,从一件很简单的作品上就能看出你有没有“匠”的特性 ,我觉得做一个程序员不难,但要做一个“程序匠”就不简单了。编程序很简单,但编出 有质量的程序就难了。 我在这里不讨论过深的技术,我......

阅读全文(4146) | 评论:0

C 语言图形函数(2005-11-15 10:38:00)

摘要:
C语言图形函数
图形函数
所有图形函数的原型均在graphics. h
中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图
形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示
器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选
为on, 只有这样才能保证正确使用图形函数。
1. 图形模式的初始化
不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器, 在不同
模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将
显示器设置成为某种图形模式, 在未设置图形模式之前, 微机系统默认屏幕为文
本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。设置屏幕为图形
模式, 可用下列图形初始化函数:
void far initgraph(int far *gdriver, int far *gmode, char *path);
其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所
在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。
图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。 根据不同的图形
适配器有不同的图形驱动程序。例如对于EGA、 VGA 图形适配器就调用驱动程序
EGAVGA.BGI。
表2. 图形驱动器、模式的符号常数及数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
图形驱动器(gdriver) 图形模式(gmode)
─────────── ─────────── 色调 分辨率
符号常数 数值 符号常数 数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGA 1  CGAC0 0 C0 320*200
CGAC1 1 C1 320*200
CGAC2 2 C2 320*200
CGAC3 3 C3 320*200
CGAHI 4 2色 640*200
────......

阅读全文(11380) | 评论:1

TC 字符屏幕函数详解(2005-11-15 10:37:00)

摘要:
     Turbo C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、
窗口文本的清除和输入输出等函数。     1.文本窗口的定义
    Turbo C2.0默认定义的文本窗口为整个屏幕, 共有80列(或40列)25行的文本
单元, 每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字
符的颜色和强度。
    Turbo C2.0可以定义屏幕上的一个矩形域作为窗口, 使用window()函数定义。
窗口定义之后, 用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超
出窗口的边界。
    window()函数的调用格式为:
     void window(int left, int top, int right, int bottom);
    该函数的原型在conio.h 中 (关于文本窗口的所有函数其头文件均为conio.h,
后面不再说明)。 函数中形式参数(int left,  int top)是窗口左上角的坐标,
(int right, int  bottom)是窗口的右下角坐标, 其中(left,  top)和(right,
bottom) 是相对于整个屏幕而言的。 Turbo C 2.0规定整个屏幕的左上角坐标为
(1, 1), 右下角坐标为(80, 25)。并规定沿水平方向为 X轴, 方向朝右; 沿垂直
方向为 Y轴, 方向朝下。若window()函数中的坐标超过了屏幕坐标的界限, 则窗
口的定义就失去了意义, 也就是说定义将不起作用, 但程序编译链接时并不出错。
    另外, 一个屏幕可以定义多个窗口, 但现行窗口只能有一个(因为DOS为单任
......

阅读全文(4872) | 评论:0

面向对象基础(OO)(2005-11-15 10:35:00)

摘要:
面向对象的软件开发对于90年代,就像是结构化的软件开发对于70年代那样让人着迷,而且 OO 的发展势头还在日益加速。OO 最初被多数人看作只是一种不切实际的方法和满足一时好奇心的研究,而现在已经得到了人们近乎狂热的欢迎。许多编程语言都推出了支持面向对象的新版本。大量的面向对象的开发方法被提出来。 一、软件工程: 需求分析 --> 总体设计 --> 详细设计 --> 编码 --> 测试
 (OOA)      (OOD)      (OOP)  (Coding) (OOT)
   ↑____________________________________________|   1、过程语言(高级语言):     - 过程或函数块、函数库,数据公开暴露给算法,使得修改函数体不影响程序代码几乎不可能(数据与函数绞在一起)。     - 结构化编程:不是改变使用的语言,提供了一个新的处理方法,如设计框图、流程图,以阐述各函数之间的相互作用关系和数据如何流过该程序,不利于独立开发,且饱受开发循环的折磨。     - 算法总是离不开数据结构,只能使用特定的数据结构。由于数据结构和数据对所有函数都可见,很难把握数据的修改出自哪个函数,这些数据的安全性得不到保障。     - 自上而下地解决规模较小的问题:程序规模小,并不一定效率高。一些小程序,可以通过结构化的程序设计技巧和优化,小幅度地提高运行速度,但是往往都是以牺牲可读性为代价的,给维护造成了大量的困难。一旦程序规模扩大,程序的可读性和可维护性,甚至连结构化的程序设计都感到力不从心。   2、1967年,Simula 67......

阅读全文(4581) | 评论:0