面向对象程序设计-C++ Steam & Vector 【第三次上课笔记】

大家可以下载后用Vim 或者 Sublime Text等文本编辑器查看

Conference: http://blog.csdn.net/candy1232009/article/details/7032526

//ofstream fout;    //C style
//fout.open("fout.txt");

ofstream fout ("fout.txt");    //C++ out stream recommend
ifstream fin ("fio.cpp");    

//fout.close()    //Not necessary in C++, because C++ do it automatically

//Copy the whole file

int main(){
    ofstream fout ("SourceCodeCopy.cpp");
    ifstream fin ("SourceCode.cpp");
    string str;
    while(getline(fin, str)){    //Discards newline char
        fout << str << endl;    //... must add it back
    }
    return 0;
}

//calculate the average number

int main(){
    int i, num, cur;
    cin >> num;

    //double* array = (double*) malloc(num * sizeof(double));    //C style
    double* array = new double[num];    //C++ style
    double ave = 0.0;
    for(i = 0; i < num; ++i){
        cin >> array[i];
        ave += array[i];
    }
    cout << "Ave is the " << ave / num << endl;
    //free(array);    //C style
    delete[] array;    //[] means delete all the Array, if "delete array" means delete only the array[0]

    return 0;
}

//one double number array Example

int main(){
    double* pd = new double;

    cin >> *pd;
    cout << *pd;
    delete pd;

    return 0;
}

//Introduce Vector

int main(){
    vector <double> vc;        //init a vector
    vc.push_back(27.8);        //insert element to its tail
    vc.push_back(54.2);

    //vc[2] = 89.3    //Don‘t do in this way, no such spacez

    for(i = 0; i < vc.size(); ++i){
        cout << vc[i] << endl;
    }
    return 0;
}

//Answer is 0 0 89.3 27.8 54.2  (5 elements)

int main(){
    int i;
    vector <double> vc(3);    //init a space long for 3
    vc.push_back(27.8);
    vc.push_back(54.2);

    vc[2] = 89.3;//

    for(i = 0; i < vc.size(); ++i){
        cout << vc[i] << endl;
    }

    return 0;
}

//Copy an entire file into a vector of string

int main(){
    vector <string> v;
    ofstream out ("SourceCodeCopy.cpp");
    ifstream in ("SourceCode.cpp");
    string line;
    while(getline(in, line)){
        v.push_back(line);
    }
    for(int i = 0; i < v.size(); ++i){
        out << 1 + i << ": " << v[i] << endl;
    }

    return 0;
}

//Class work
//give a number N, and make n random numbers into a file

int main(){
    srand((int)time(NULL));
    int i, n;
    vector <int> v;
    ofstream out ("rand_num.txt");

    cin >> n;
    while(n--){
        v.push_back(rand() % 65536);
    }
    for(i = 0; i < v.size(); ++i){
        out << v[i] << endl;
    }

    return 0;
}

//make n numbers in the range [0, 1)

int main(){
    srand((int)time(NULL));
    int i, n;
    vector <double> v;
    ofstream out ("rand_num.txt");

    cin >> n;
    while(n--){
        v.push_back((double)rand() / (double)RAND_MAX);
    }
    for(i = 0; i < v.size(); ++i){
        out << v[i] << endl;
    }

    return 0;
}
时间: 2024-10-29 10:09:19

面向对象程序设计-C++ Steam & Vector 【第三次上课笔记】的相关文章

{key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】

Peronal Link: http://segmentfault.com/a/1190000002464822 这节课讲了本门课程 面向对象程序设计中最为重要的一个部分 - 多态 1 /************************************************************************* 2 > File Name: polymorphism.cpp 3 > Author: Jeremy Wu 4 > Created Time: Mon 25

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类 本节导读:本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等). 读前必备: A.类和类的实例 [.net 面向对象编程基础]  (9) 类和类的

[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用

[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是时候来引用他解决问题.而本节主要目的就是使用表达式树解决实际问题. 读前必备: 本节学习前,需要掌握以下知识: A.继承 [.net 面向对象编程基础]  (12) 面向对象三大特性——继承 B.多态 [.net 面向对象编程基础]  (13) 面向对象三大特性——多态 C.抽象类 [.net 面向

&#171;面向对象程序设计(java)&#187;第三周学习总结 周强 201771010141

实验目的与要求 (1)进一步掌握Eclipse集成开发环境下java程序开发基本步骤: (2)熟悉PTA平台线上测试环境: (3)掌握Java语言构造基本程序语法知识(ch1-ch3): (4)利用已掌握Java语言基本程序设计知识,学习设计开发含有一个主类.类内可有多个方法的应用程序. 实验内容和步骤 实验1:采用个人账号登录https://pintia.cn/,使用邀请码588329加入PTA平台NWNU-2017NISE教学班(西北师范大学 计算机科学与工程学院 2017级 网络与信息安全

c++面向对象程序设计 谭浩强 第三章答案

2: #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private: int month; int day; int year; }; Date::Date(int m,int d,int y):month(m),day(d),year(y) { } Date::Date(int m

[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)

[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这些是多线程的基本原理. .NET 4.0以后对多线程的实现变得更简单了. 本节主要讨论.NET4.0多线程的新特性——使用Task类创建多线程. 读前必备: A. LINQ使用  [.net 面向对象编程基础] (20) LINQ使用 B. 泛型          [.net 面向对象编程基础] (

2017面向对象程序设计(Java)第三周学习总结

白驹过隙,日月如梭,一转眼,我们已经度过了第三周的学习时光,随着时间的一天天流逝,我么对知识的积累也逐渐增多.当然,我们还有许许多多需要改进的地方.下面,我将对第三周的助教工作进行总结,望老师及同学们批评指正. 首先,针对上周的实验课,我总结了以下不足之处:1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开别的网页做别的事情. 3.有同学反映学习内容越来越晦涩难懂,抽象,不容易理解. 其次,针对博客,上周存在的不足有:1.整体来说,博客内容宽泛,过

学习Linux第三次上课笔记

**1.9 使用PuTTY远程连接Linux 1.下载PuTTY. 2.在虚拟机上查看IP地址,使用ifconfig命令. 3.如果在虚拟机上,敲ifconfig命令,没反应.那么使用 4.配置Putty,配置完成后,点击open按钮.最后一张是设置成功图. 5.如果没有成功,重启一下网络服务. (1)按windows+R键,输入cmd,然后Ping虚拟机的IP地址.看看你不能ping通.(2)在虚拟机上,重启网络服务.(3)putty上面重新配置,如上面的步骤一样. 注意:在Putty上面复制

面向对象程序设计介绍以及面向对象的基本特征

面向对象的程序设计(Object Oriented Programming,OOP)方法是目前比较流行的程序设计方法,和面向过程的程序设计比,它更符合人类的自然思维方式.在面向过程程序设计中,程序=数据+算法,数据和对数据的操作是分离的,如果要对数据进行操作,需要把数据传递到特定的过程或函数中.而在面向对象程序设计中,程序=对象+消息,它把数据和对数据的操作封装在一个独立的数据结构中,该数据结构称作对象,对象之间通过消息的传递来进行相互作用.由于面向对象本身固有的特性,使得面向对象程序设计已经达