联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2018-06-21 03:05

第一次作业


1.编一程序,计算数列:1 – 2 + 3 – 4 + 5 – 6 +…的前N项的和。


2.编一程序,计算                                                 的值。


用无穷级数e^x = 1+x+x^2/2!+x^3/3!+……x^n/n!+……计算e^x的近似值,当x^n/n!<0.000001时结束


3.打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153 = 1 + 125 + 27。

课堂作业:1.  从屏幕上输入一行字符串,将字符串中含有”to”这个完整的单词提取出来,并显示在屏幕上.比如,输入”I want to go to the playground too”,输出的是to  to,后面的too不能输出。


第二次作业

1.建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。


2.阅读下面程序,分析其执行过程,写出输出结果。

#include <iostream>

class Student

{public:

Student(int n, float s):num(n),score(s){  }

void change(int n,float s){num=n;score=s;}

void display( ){cout<<num<<“ ”<<score<<endl;}

private:

int num;

float score;

};

int main( )

{

Student stud(101,78.5);

stud.display( );

stud.change(101,80.5);

stud.display( );

return 0;

}


3.实验说明与要求如下:

(1)定义Point类,有两个成员X、Y,表示平面上的一个点的坐标。定义Point类的构造函数、复制构造函数和获取私有成员X、Y值的成员函数GetX( )和GetY( )。

(2)定义组合类Line,有两个Point类的对象成员p1、p2,p1和p2表示平面上的一条线段的两个端点,Line表示这两个端点构成的线段。构造函数的参数为两个Point对象,构造函数计算线段长度存入len中。定义Line的复制构造函数。

(3)定义组合类Triangle,有3个Line类的对象成员l1、l2、l3表示平面上的3条线段,area表示由3条线段构成的三角形面积。构造函数的参数为3个Line对象。构造函数判断这3条边能否构成三角形,能够出三角形,则计算该三角形面积,若不能,面积为0。定义Triangle复制构造函数。

(4)在主函数中分别定义3个Point类对象、3个Line类对象、1个Triangle类对象,计算Triangle类对象的面积。


课堂作业:线性表用来存放若干个整数,用一个指针指向其存放整数的首地址。当存放的数据大于原先开辟的空间时,线性表自动动态开辟空间,储存所有的整数。

线性表有三个参数来描述:指向线性表存储空间首地址的指针变量List;无符号整数nMax,指示表的最大长度;无符号整数nElem,指示表中实际所放的数据个数。

class ListClass {

  int *List;    //指向线性表的指针

  unsigned nMax;    //表的最大长度

  unsigned nElem;    //表中当前的元素个数

public:

void Init(int n=10);   //初始化针表,最大长度的缺省值为10

void Elem(int); //在线性表尾增加一个元素

int & Elem(unsigned n);//返回线性表中第n个元素的引用

unsigned Elem(void);//返回当前线性表中元素的个数

unsigned Max(void);//返回线性表的长度(占用空间数)

void Print(void);//输出线性表中所有的元素

int GetElem(int i);//返回线性表中第i个元素的值

void Destroy(void);//收回线性表占用的存储空间

};

完善上述线性表,并在main函数中通过测试用例进行测试。


第三次作业

1. 分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)类。要求:

(1)在两个基类中都包含姓名/年龄/性别/地址/电话等数据成员。

(2)在Teacher类中还包含数据数据成员title(职称),在Cadre类中还包含数据成员post(职务)。在Teacher_Cadre类中还包含数据成员wages(工资)。

(3)对两个基类中的姓名/年龄/性别/地址/电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。

(4)在类体中声明成员函数,在类外定义成员函数。

(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名/年龄/性别/职称/地址/电话,再用cout语句输出职务与工资。


2. 在例12.1程序的基础上做一些修改。声明Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱体)类。将类的声明部分分别作为3个头文件,对他们的成员函数的定义部分分别作为3个源文件(.Cpp文件),在主函数中用“#include”命令把它们包含进来,形成一个完整的程序,并上机运行。


3. 编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle(圆形)/Square(正方形)/Rectangle(矩形)/Trapezoid(梯形)/Triangle(三角形)。用虚函数分别计算几种图形面积,并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。


课堂作业: 利用虚基类Person(类的定义如下所示),派生出Man和Women,再由Man和Women共同派生出Transexual(“两性人”),消除“两性人”中的冗余数据:姓名、年龄,并编程实现之。



第四次作业

1. 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加预案算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如,c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2为复数)。编写程序,分别求两个复数之和、整数和复数之和。

2. 有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。


3. 输出下列程序的运行结果:


课堂作业:定义一个人民币类 RMB,包含私有数据成员元、角、分,请用友元函数重载运算符“+”和“++”,以对类对象进行运算。

要求:区分自增前置和自增后置两种不同的方式;在显示时,如果分的值超过了10,需要向角进位,同样,如果角的值超过了10,需要向元进位。比如8元11角2分,应调整为9元1角2分。


第五次作业

1. (教材第10章第5题)在第4题的基础上,重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。


2. 建立两个磁盘文件f1.dat和f2.dat,编写程序实现以下工作:

(1)从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件中放10个整数)

(2)从f1.dat读入10个数,然后存放到f2.dat文件原有数据的后面;

(3)从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)


3. 编写程序实现以下功能:

(1) 按职工号由小到大的顺序将5个员工的数据(包括号码、姓名、年龄、工资)输出到磁盘文件中保存

(2) 从键盘输入两个员工的数据(职工号大于已有职工号),增加到文件的末尾。

(3) 输出文件中全部职工的数据。

(4) 从键盘输入一个号码,在文件中查找有无此职工号,如有则显示此职工是第几个职工以及此职工的全部数据。如没有,就输出“无此人”。可以反复多次查询,如果输入查找的职工号为0,就结束查询。


课堂作业:定义一个二维实型数组,并用键盘键入二维数组的元素值。

要求:①将此二维数组的元素值存入二进制文件中;

②打开前面对程序中所建立的存放二维数组元素值的二进制文件,求出文件中二维数组的素数及最大值。


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp