Worker(){} Worker(int num,char* Name,int Age, double Salary):number(num),age(Age),sal(Salary) {strcpy(name,Name); } void display() {cout< int main(){ ofstream out(\ Worker man[]={Worker(1,\张三\李四\ Worker(3,\王五\刘六\ Worker(5,\晓红\黄明\ for(int i=0;i<6;i++) out.write((char*)&man[i],sizeof(man[i])); out.close(); Worker s1; ifstream in(\ in.seekg(2*(sizeof(s1)),ios::beg); in.read((char*)&s1,sizeof(s1)); s1.display(); in.seekg(0,ios::beg); in.read((char*)&s1,sizeof(s1)); s1.display(); in.close(); return 0; } 2.已知数据文件IN.DAT中存有20个整数,每个整数间用空格分隔。有一类Array的结构如下: class Array{ int A[20]; public: Array(){ for(int i=0;i<20;i++) A[i]=0; } int getNumberA(Array &a,int k){return a.A[k];} void getdata();//读数据函数 void max_min(int &,int &);//排序函数 void putdata(int &,int &);//写结果数据函数 }; 其中: 成员函数getdata()的功能为:从数据文件IN.DAT中把20个数据读出来存入数据成员A[]中。 成员函数max_min(int &,int &)的功能为:求数据成员A[]中20个整数的最大值和最小值。 成员函数putdata(int &,int &)的功能为:把求得的数据成员A[]中20个整数的最大值和最小值输出到数据文件OUT.DAT。 要求:在类外写出上述三个成员函数的实现代码,并在main函数中对该类进行测试。 3.假设有学生类Student,包括姓名、学校、专业、班级、电话号码、通信地址、邮政编码等数据成员。编程完成Student类的设计,从键盘输入10个同学的通信录信息,并将这10 个同学的信息写入磁盘文件address.dat中。然后从address.dat文件中读取各同学信息并显示在屏幕上。 实验十、异常处理(自学) 一、实验目的 1.学会使用C++的异常处理机制进行程序的编制。 2.学会使用命名空间解决名字冲突。 二、实验内容 1.阅读下面的程序,写出程序运行的结果。 (1) #include cout< } catch (int){ cout<<\} return 0; } (2) #include int main(){ err(200); err(99); err(-1210); return 0; } (3) #include void err1(){ cout<<\ throw excep(\} void err2(){ try{cout<<\err1(); } catch(int){cerr<<\throw; } } void err3(){ try{ cout<<\err2(); } catch(...){cerr<<\throw; } } int main(){ try{ err3(); } catch(...) { cerr<<\} return 0; } 2.设计日期类Date,该类具有三个整型数据成员year,month,day,具有多个重载的构造函数,修改日期的函数,分别获取年、月、日的函数,输出日期的函数。要求该类实现如下的异常处理功能: InvalidDay:对于日期day成员,不能接受大于31或小于1的值,当传递给类的日期大于31或小于1时,抛出这种类型的异常。 InvalidMonth:对于月month,不能接受大于12或小于1的值,当传递给类的日期大于12或小于1时,抛出这种类型的异常。 第2部分 补充习题 第1章 面向对象程序设计概述 一、选择题 1、C++是( )。 A 面向对象的程序设计语言 B 结构化程序设计语言 C 既是面向对象的程序设计语言又是结构化的程序设计语言 D 非结构化的程序设计语言 2、C++语言属于( )。 A 机器语言 B 低级语言 C 中级语言 D 高级语言 3、下面关于对象概念的描述中,错误的是( )。 A 对象就是C语言中的结构变量 B 对象代表着正在创建的系统中的一个实体 C 对象是一个属性和操作(或方法)的封装体 D 对象之间的信息传递是通过消息进行的 4、下面关于类概念的描述中,错误的是( )。 A 类是抽象数据类型的实现 B 类是具有共同行为的若干对象的统一描述体 C 类是创建对象的样板 D 类就是C语言中的结构体类型 5、下列关于C++类的描述中错误的是( )。 A 类与类之间可以通过一些手段进行通信和联络 B 类用于描述事物的属性和对事物的操作 C 类与类之间必须是平等的关系,而不能组成层次关系 D 类与类之间可以通过封装而具有明确的独立性 6、面向对象程序设计思想的主要特征中不包括( )。 A 封装性 B 多态性 C 继承性 D 功能分解,逐步求精 二、填空题 1、构成对象的两个主要因素是 和 ,其中 用于描述对象的静态特征, 用于描述对象的动态特征。 2、类和对象的关系可表述为:类是对象的 ,而对象则是类的 。 3、封装包含两方面含义,一是用 把 包装起来,二将对象中某些部分 。 4、 是指特殊类自动地拥有或隐含地复制其一般类的全部属性与操作。 5、面向对象的软件工程包括的五个阶段为: , , , , 。 第2章 C++基础知识 一、选择题 1、下列关于C++语言的发展说法错误的是( )。 A C++语言起源于C语言 B C++语言最初被称为“带类的C” C 在1980年C++被命名 D 在1983年C++被命名 2、C++语言是以 语言为基础逐渐发展而演变而成的一种程序设计语言。( ) A Pascal B C C Basic D Simula67 3、下列关于C++与C语言关系的描述中错误的是( )。 A C++是C语言的超集 B C++是C语言进行了扩充 C C++和C语言都是面向对象的程序设计语言 D C++包含C语言的全部语法特征 4、下列C++标点符号中表示行注释开始的是( )。 A # B ; C // D } 5、每个C++程序都必须有且仅有一个( )。 A 预处理命令 B 主函数 C 函数 D 语句 6、C++对C语言做了很多改进,下列描述中哪一项使得C语言发生了质变,即从面向过程变成面向对象( )。 A 增加了一些新的运算符 B 允许函数重载,并允许设置默认参数 C 规定函数说明必须用原型 D 引进类和对象的概念 7、对定义重载函数的下列要求中,错误的是( )。 A 要求参数的个数不同 B 要求参数中至少有一个类型不同 C 要求参数个数相同时,参数类型不同 D 要求函数的返回值不同 8、在函数的返回值类型与返回值表达式的类型的描述中,错误的是( )。 A 函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的 B 函数返回值的类型就是返回值表达式的类型 C 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型 D 函数返回值类型确定了返回值表达式的类型 9、下列不正确的选项是( )。 A C++语言是一种既支持面向过程程序设计,又支持面向对象程序设计的混合型语言 B 标点符号是在程序中起分割内容和界定范围作用的一类单词 C iostream是一个标准的头文件,定义了一些输入输出流对象 D 类与类之间不可以进行通信和联络 10、下列表示引用的方法中,正确的是( )。 已知:int k=1000; A int &x=k; B char &y; C int &z=1000; D float &t=&k; 二、填空题 1、C++既可以用来进行面向 程序设计,又可以进行面向 程序设计。 2、常量分成两种,一种是 常量,另一种是 常量。 3、 就是某一变量的别名,对其操作与对变量直接操作完全一样。 4、按函数在语句中的地位分类,可以有以下3种函数调用方式: , , 。