c的最后课程设计和实验报告作业.zip
资源文件列表:

Graduation Design/220901138薛琦嘉 220901108侯栩涛-实验报告.doc 483.5KB
资源介绍:
课程设计报告
姓名
薛琦嘉
侯栩涛
实验成绩
学号
220901138
220901108
年级、班
22 级计科
三班
安阳师范学院计算机与信息工程学院
综合性、设计性实验报告书
实 验 课 程: 高级语言程序设计
实验指导教师: 焦清局
实 验 时 间: 2023 年 11 月 23 日 — 12 月 3 日
实 验 题 目: 类 的 设 计 与 应 用
实验类型: ■综合性 设计性

计算机信息工程学院综合性、设计性实验报告书
一、实验目的
对所学的面向对象程序设计语句进行验证性设计,以帮助学生将理论知识转化为实际操
作,在实践中更加清晰地理解、熟练掌握和应用所学知识。
二、实验仪器设备及实验环境
实验仪器设备:台式机电脑;实验环境和所需软件:visual studio 2010/2012.
三、总的设计思想、实验原理等
本实验报告主要是对面向对象程序设计中的类进行设计和应用,解决实际问题。
四、实验设计
1、给定一个 3 位正整数,计算各位数字平方和,如 345,则计算 3
2
+4
2
+5
2
。要求:
(1)通过带有参数的构造函数对数据成员初始化;(2)在主函数中通过定义对
象指针输出计算结果。
实验结果及分析
#include <iostream>
using namespace std;
class GetEveryAdd{//定义 GetEveryAdd 类
private:
int data;
int Fun(int d); //递归函数求各位的平方和
public:
GetEveryAdd(int D);//带参数的构造函数传入三位正整数
int GetAdd();//通过 GetAdd 函数调用 Fun 函数并返回显示各位平方和
};
GetEveryAdd::GetEveryAdd(int D){//构造函数
data=D;
}
int GetEveryAdd::Fun(int d){//递归函数
if(d%10!=0){
return (d%10)*(d%10)+Fun(d/10);//如果 d 不等于 0,则再次递归计算
d%10 的平方和
}else{
return (d%10)*(d%10);//如果 d 等于 0,证明已经计算完并返回平方和

计算机信息工程学院综合性、设计性实验报告书
}
}
int GetEveryAdd::GetAdd(){//调用并显示各位平方和
Fun(data);
}
int main(){
int n;
cout<<"请输入一个整数"<<endl;
cin>>n;
GetEveryAdd num(n);//定义 GetEveryAdd 的对象 num,并传入 n,调用构造
函数
GetEveryAdd* Num=#//使用对象指针指向 num 对象
cout<<"这个整数各位数字平方和为"<<Num->GetAdd()<<endl;//使用对象
指针调用 GetAdd 函数显示各位数字平方和
return 0;
}
2、定义一个数组(array)类(数组的长度为 10),通过运算符重载的方式实现
两个 array 对象的加法(对应元素逐一相加)。要求:(1)假设磁盘文件(文
件名为:input.dat)中有两行数据,每行有 10 个数,通过读取 input.dat 中的
数据给 array 对象初始化(每一行数据初始化一个对象);(2)把两个 array
对象加法后的结果输出到磁盘文件(输出文件名为:output.dat)上。

计算机信息工程学院综合性、设计性实验报告书
实验结果及分析
#include <iostream>
#include <fstream>
using namespace std;
class array{//定义 array 类
private:
int arr[10];
public:
array();//无参数的构造函数
array(int arr[]);//传入数组 arr[]的构造函数
array operator+(array aIn);//运算符重载计算和函数
int GetArrEle(int i);//显示函数,显示计算
};
array::array(){
}
array::array(int a[]){//传入数组 a 并把 a 数组赋值给类中的 arr 数组,利用
this 指针赋值
for(int i=0;i<10;i++){
this->arr[i]=a[i];
}
}
array array::operator+(array aIn){//运算符重载函数
array aOut;//定义一个新的对象 aOut,用这个存储和
for(int i=0;i<10;i++){
aOut.arr[i]=arr[i]+aIn.arr[i];//计算当前对象和 aIn 对象中 arr 数
组的对应项的和
}
return aOut;
}