随笔分类 -  C++作业

摘要:声明抽象基类Shape,由它派生出3个子类:Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别求出以上三者的面积,三个图形的数据在定义对象时给定。再设计一个函数sumArea,求出三个图形面积之和。要求用基类指针数组,使它的每一个元素指向一个派生类对象。View Code #include <iostream>#include <cmath>using namespace std;const double PI = acos(-1.0);class Shape {public: virtual double g 阅读全文
posted @ 2013-05-05 20:28 gray035 阅读(285) 评论(0) 推荐(0)
摘要:流迭代器(Stream Iterators)1 输出流迭代器(Ostream Iterators)输出流迭代器可以把指定的内容直接写入指定的ostream。Ostream Iterator的实现原理跟Insert Iterator非常相似,唯一的区别就是Ostream Iterator利用<<输出操作符把值输出到了ostream对象。通过流迭代器,算法就可以使用通用的迭代器接口把相应的内容输出到流对象。下面列出了Ostream Iterator可以进行的所有操作:操作表达式作用效果ostream_iterator(ostream)针对ostream创建一个Ostream Itera 阅读全文
posted @ 2013-04-22 22:23 gray035 阅读(325) 评论(0) 推荐(0)
摘要:先设计一个记录图书的结构体,包含图书的书名、作者和出版社每步完成都要保存文件,每步开始时都要读入文件。数据用vector保存方便按书名排序,排序需要重载小于号。任务概述:设计一个简单的图书管理程序,能新增、查询、显示、修改和删除图书信息。程序要求:1)图书数据用文件来存储,按书名排序存放。系统自带Sort()直接排序查询显示时每屏不超过20个记录,超过时分屏显示。设置1个计数器,当达到数目时清屏并要认为输入任意键接着输出2)记录修改:能选择修改图书的书名、作者和出版社,书号不可修改。在修改或删除之前需要用户进一步确认,确认无误后再进行操作。修改时先查找到目标后再对目标进行修改。3)支持模糊查询 阅读全文
posted @ 2013-04-18 16:51 gray035 阅读(189) 评论(0) 推荐(0)
摘要:运算符重载是很重要的,特别是在有些stl中必需重载小于号才能使用。还有就是输出流的"<<"重载,方便直接cout输出,但是只能有友元函数来重载,因为在cout<<class T <<endl;中其左边类型已经被确定了,必需有这样的友元函数来实现:friend ostream &operator<<(ostream &,Complex &);详见代码(复数类的实例):View Code #include <iostream>#include <cmath>using namespa 阅读全文
posted @ 2013-04-16 22:02 gray035 阅读(433) 评论(0) 推荐(0)
摘要:纯虚函数一般是基类中定义的,派生类中必需重定义,不然是缺损的。虚函数一般是一个共有的的成员函数,方便理解详见代码:View Code #include <iostream>using namespace std;class Animal {public: virtual void eat() = 0;//纯虚函数,只能用指针声明 void sleep(){ cout << "睡觉" << endl; }};class Rabbit:public Animal{public: void eat()//子类必需对纯虚函数进行重定义,不然不能声 阅读全文
posted @ 2013-04-16 21:56 gray035 阅读(150) 评论(0) 推荐(0)
摘要:程序设计要求设计一个Card类来表示单张扑克牌的逻辑模型。如下类图所示。设计一个Deck类用来表示一副52张的扑克牌,公有接口必须包括生成扑克牌、显示扑克牌、洗牌等这样的成员函数。如下类图所示。程序主函数如下:int main() { Deck deck; deck.MakeDeck(); deck.ShowDeck(); return 0;}运行程序能输出一副扑克牌View Code #include <cstring>#include <iostream>#include <time.h>using namespace std;char Suit[4] 阅读全文
posted @ 2013-04-07 19:44 gray035 阅读(388) 评论(0) 推荐(0)
摘要:View Code #include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define P(x) (x)*(x)class Point { friend class B;public: Point(double x=0,double y=0) { X = x; Y = y; } Point(Point &a); double get_x(); double get_y(); friend doubl... 阅读全文
posted @ 2013-04-01 13:11 gray035 阅读(138) 评论(0) 推荐(0)
摘要:3-1.文件和字符串基本操作:从文件中读取单词,统计单词的个数,单词之间以空格、标点或换行符分隔。注意判断文件是否打开成功。单词为英文单词。提示:使用系统函数getline来读取一整行到string类型的变量中去。其第一个参数是输入流,第二个参数是string类型的变量。该函数从输入流中读入字符,然后存储到string变量中,直到出现以下情况为止:3-2.类的设计:从以下两题中选一。选1. 设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明 阅读全文
posted @ 2013-03-26 12:37 gray035 阅读(783) 评论(0) 推荐(0)
摘要:View Code #include<iostream>using namespace std;struct pos { int x ,y ; pos() {}; pos(int X,int Y) :x(X) , y(Y) {} pos operator + (pos & a) { //重载 + 号,可以直接相加 return pos(a.x + x,a.y + y); } void print() { cout << x << " " << y <<endl; }};template <typena 阅读全文
posted @ 2013-03-19 17:41 gray035 阅读(171) 评论(0) 推荐(0)
摘要:3种链接属性: 外部(external), 内部(internal),无设置(none)外部(external): 使用extern关键字内部(internal): 使用static关键字如果在不同的文件中定义相同名字的变量,编译器无法通过编译使用extern可以访问其他文件中定义的变量使用static标示的变量在文件内部有效,其他文件中无法访问。并且在该文件中无法引用到其他文件的同名称变量使用extern标示的变量必须已经定义过。使用static标示的函数,在其他文件中不能访问。在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一 阅读全文
posted @ 2013-03-18 18:27 gray035 阅读(1576) 评论(0) 推荐(0)
摘要:作业2-3:文件in.txt中有多个整数,各个数字之间以空白字符分隔。请读出所有的数字,并转成16进制数据输出到另一个文件out.txt中。只需提交源文件 NumberConvert.cpp。作业2-4:输入一段文字,其中包含一些非法的单词,请将这些非法单词删除或替换,然后输出过滤后的文字。只需提交源文件 Word.cpp。要求:程序格式规范,变量、函数命名合理,程序中应有必要的注释。View Code #include <iostream>#include <cstdio>#include <fstream>using namespace std;int 阅读全文
posted @ 2013-03-16 09:09 gray035 阅读(460) 评论(0) 推荐(0)