博文
C++的iostream标准库介绍(3)(2005-09-25 21:15:00)
摘要:语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出。 1.有流对象的成员函数。 例如,下列程序以成员函数的方式控制输出的精度:
//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者 #include <iostream> using namespace std; int main() { float pi=3.14159f; cout<......
C++的iostream标准库介绍(2)(2005-09-25 21:14:00)
摘要:接下来我们继续看一下C++风格的串流控制,C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
istringstream类用于执行C++风格的串流的输入操作。 stringstream类同时可以支持C++风格的串流的输入输出操作。 strstream类同时可以支持C风格的串流的输入输出操作。
istringstream类是从istream(输入流类)和stringstreambase(c++字符串流基类)派生而来,ostringstream是从ostream(输出流类)和stringstreambase(c++字符串流基类)派生而来,stringstream则是从iostream(输入输出流类)和和stringstreambase(c++字符串流基类)派生而来。
他们的继承关系如下图所示:
istringstream是由一个string对象构造而来,istringstream类从一个string对象读取字符。 istringstream的构造函数原形如下: istringstream::istringstream(string str);
//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者 #include <iostream> #include <sstream> using namespace std; int main() { istringstream istr; istr.str("1 56.7",); //上述两个过程可以简单写成 istringstream istr("1 56.7"); cout << istr.str()<......
C++的iostream标准库介绍(1)(2005-09-25 21:13:00)
摘要:我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序员使用。
iostream为内置类型类型对象提供了输入输出支持,同时也支持文件的输入输出,类的设计者可以通过对iostream库的扩展,来支持自定义类型的输入输出操作。
为什么说要扩展才能提供支持呢?我们来一个示例。
#include #include <iostream> using namespace std; class Test { public: Test(int a=0,int b=0) { Test::a=a; Test::b=b; } int a; int b; }; int main() { Test t(100,50); &nb......
结束的夜(2005-09-24 21:23:00)
摘要: 终于明白你已变成回忆,
让幸福从指间流失原来是一件那么令人痛心的事情!
如烟的往事竟是如此的经不起折腾?
你走的那个夜晚,
我的天空下,雨一直下个不停............
雨中的你.....
期待着.........
错过的童话(2005-09-24 21:18:00)
摘要: 我想我们之间或许彼此做的都不够,才会如此的经不起折腾,就像枝头上刚开的柳花,风一吹,就落了.
对于这一切我真的很后悔,后悔自己当初的选择,如果没有那个意外的她,我想,我们没理由不在一起的,没理由不相爱的...
只是后来的事,你我都没有想到,本想等我收拾好自己的心情后就与你双宿双飞,可是...
原本属于我们的童话已经翻页了.........
我以为童话可以重新来过,故事可以再次演绎,然而这个世界没有我想象的那么完美....
......
一个女孩写的恋爱程序(2005-09-21 23:55:00)
摘要:result love(boy, girl) { if( boy.有房() and boy.有车() ) { boy.set(nothing); return girl.嫁给(boy); } if( girl.愿意等() ) { while(!(boy.赚钱 > 100,000 and girl.感情 > 8 ) ) { for( day=1; day <=365; day++) { if( day == 情人节 ) if( boy.givegirl(玫瑰) ) girl.感情++; else girl.感情--; if( day == girl.生日) if( boy.givegirl(玫瑰) ) girl.感情++; else girl.感情--; boy.拼命赚钱(); } } if( boy.有房() and boy.有车() ) { boy.set(nothing); return girl.嫁给(boy); } 年龄++; girl.感情--; } return girl.goto( another_boy); } ......
经典算法问题------背包问题(2005-09-21 23:54:00)
摘要:问题描述;
有不同价值,不同重量的物品n件,求从这n件物品中选取一部分物品的选择方案,是选中的物品总重量不超过指定的限制重量,但是选中的物品的价值之和最大.
[分析]
这个经典的问题的较高效率的方法是一般是递归和贪婪法,但是我在软件考试参考书上看到这个题目用了一个很好的算法(搜索法),是把每一种解决的可能情况转换成2进制的数来表示,我第一次看到这个方法真的很好(也许是我太菜了的原因吧,呵呵~~~~~~~~~)
大家来一起讨论一下:
程序代码:
#include#includeusing namespace std;const int MAX=100;int change_base(float b[],int num){ int tempt=num/2,i=0,yushu; yushu=num%2; while(tempt!=0) { b[i]=yushu; num=tempt; tempt=num/2; yushu=num%2; i++; } b[i]=1; return i;}
int main(){ int num; cout<......
面向对象c++数据结构(2005-09-21 23:52:00)
摘要:#ifndef MGR#define MGRclass arraymgr{ int total_elements,max_elements; int * thearray;public: arraymgr(int); ~arraymgr(); bool addelement(int); bool getelement(int,int &); bool deleteelement(int); bool findelement(int,int &); void showelements(); int getsize();};#endif#ifndef a#define a#include"mgr.h"#include<iostream>using namespace std;arraymgr::arraymgr(int num){ max_elements=num; total_elements=0; thearray=new int [max_elements];}arraymgr::~arraymgr(){ delete [] thearray;}bool arraymgr::addelement(int num2){ if(total_elements>=max_elements-1) return false; else&nb......
编写程序方法论(2005-09-21 23:52:00)
摘要:这编程序员之家的butterfly写的文章非常经典,建议大家看看。以下是原文:编写程序方法论--本文只针对我自己的计算机系软件专业学习而论 ——————————————————————————一 谁不该读此文 ———— 我的文章一向极具针对性,从来不会为我所看不惯的东西而保守了笔墨的犀利。 此文自然也不会例外。以下几类人忌读:凡是想要去考研究生的人别读,此文具备的 思想意识是你们淤腐脑袋所不能理解,你们应该把这点时间花在死啃教科书上。喜欢 在计算机领域玩弄图形设计,网页制作以及一切有志投身于计算机的软件应用领域的 人别读,我会亵渎了你的理想的。平时喜欢把玩CPU和内存条于股掌之上,浑天把超 频如何如何挂在嘴上的骨灰级电脑硬件DIYer们,也别读此文章,这倒不是你们不适合 读,而是我根本就认为你们读我这篇文章是对我莫大的侮辱! 开篇结束,理性开始 —————————————————————————— 二 从什么开始? ———— 很多的朋友曾问过我:我应该从什么东西开始学起?我都无一例外地回答说:汇 编!可这样的回答,不能使每一个人都明白的。他们说:我也跟着教材跟着老师学习 了汇编语言呀。好,我就从对汇编教材的分析,来阐明我对汇编学习的理解。大家仔 细看看我们的汇编教材,它开宗明义的是IBM-8086宏汇编语言,而教材最致命最能毒 害学生对汇编的认识之处就在于此!相信每一位学习了汇编的同学,都明白一点,就 是在编写汇编程序时,最常用最依赖的是INT21H。而这INT21H,根本就不是8086的中 断服务例程,它是系统提供的,是DOS这个操作系统提供的!谁的汇编程序,能离得开 INT21H?离开了它,不仅失去了系统那庞大的服务例程,基本丧失了实际意义,而且 能否在DOS平台上正确运行,正确实现功能,还不能肯定。(高高手除外!)(在这里,我 引入我自己的一个名词来表述--“系统相关性”。)所以,教材在宣言自己是与系统无 关的IBM-8086汇编的同时,让学生去学的却是具有“系统相关性”的DOS汇编,这一重 大的失误,使绝大多数的同学在学习汇编的时候,注意的是对汇编语言本身语法的理解, 而忽略了与之相关而绝不可少的DOS系统原理,从而在将来运用自己所学到的知识进行 编写程序时,倍感系统相关的知识的缺乏,感觉除了教材上的例子以外,自己无从下笔。 各位读者,请认真回答我的提问,有......
高级程序员考试心得 (2005-09-21 23:51:00)
摘要:
前些天发表了一篇《2002年系统分析员考试心得》,没想到十分受大家欢迎,收到了几十封网友的E-mail,这其中有许多朋友说自己觉得系统分析员级考试难度太大,还没有准备2003年考,但觉得高级程序员(软件设计师)级考试可能比较适合自己,还询问我2001年当时参加高级程序员考试时的心得。我想既然大家这么瞧得起我,我还是将当年的考试心得写出来,这样便可以全面系统介绍了我的考试心得,帮助大家顺利通过。虽然2001年至今已经过去了两年,两年的考试也会有些变化,但我想我的这些心得还是不会白写的,万变不离其踪。好吧,请各位仔细往下看吧:) 正文:还是一样,我先简单介绍一下高级程序员考试,让大家有个大概的认识。高级程序员全称是“全国软件资格与水平考试——高级程序员级”,其大纲称“通过本级考试的合格人员能按照软件需求规格说明书进行软件设计和编制程序,具有相当于工程师的实际工作能力和业务水平”。记得前些年,这个级别改称“系统设计师”。我个人认为这种改变还是正确的,因为高级程序员在实际工作中和程序员(许多人称这个级别为中级程序员)还是有很大的区别的,程序员主要是带领初级程序员进行某一个系统中若干相关模块的开发,并负责将这部分合并提交,可以说程序员的主要工作是编码,工作还主要停留在技术层面。而高级程序员正像其改名后的称谓:系统设计师,其工作是辅助系统分析员进行软件系统中的功能设计,已经不仅仅是技术层面的工作了,还包括许多功能分析和设计的工作。因为我个人认为,由于软件资格与水平考试的这四个级别是十多年前定下的,今天已经不能适应现在软件开发的要求。我觉得应该改称:编码员、程序员、系统设计师、系统分析师。这么改也是符合现代软件开发中的惯例。 明白了高级程序员的工作后,我们就可以对自己面对的考试有一个清醒的认识。高级程序员考试不是考编程,而是考功能设计。这点对于复习来说是十分重要的。看看这些年的试题,上午主要是以基础知识考查为主,下午特别是以考功能设计为主。所以复习时要特别注意相关的能力的培养。在这篇文章中,我不想介绍具体知识和能力的提高,而是从方法上介绍我的心得,具体的知识解答等问题,可以看其他相关的文章。下面,我分上午考试和下午考试,来具体说说复习和考试时要注意的问题。上午的考试是考计算机基础知识......
