C++程序设计报告

2020-05-01 11:08

成绩

课程名称: C++ 课程设计

设计题目: 编写程序提示用户输入一个班级中的学生人数n,

再依次提示用户输入n个人在课程A中的考试成绩,然后计算出平均值,显示出来。 要求用到第九章中的数组类模板 Array定义浮点型数组存储考试成绩。

姓 名: 石东梅 学 号: 1108020102 专业班级: 网络1101 班 完成日期: 20012 年 6 月 27日

1 设计任务

编写程序提示用户输入一个班级中的学生人数n,再依次提示用户输入n个人在课程A中

点型数组存储考试成绩。

的考试成绩,然后计算出平均值,显示出来。要求用到第九章中的数组类模板Array定义浮

1.1 设计目的

(1)、加强C++课程学习,将课本上的理论知识运用于实践,通过实际的程序操作来提高

自己编写程序的能力,达到理论与实践相结合的目的。 (2)、培养自己动脑思考,动手操作的能力,在实际操作过程中体会C++中面向对象的思想。

(3)、在实际的操作过程中去衡量自己理论知识掌握的程度,通过设计流程,编写程序,上机调试去寻找并发现知识的缺陷,并想办法弥补。

(4)、在本程序中主要是要达到能对类的定义及用法,数组的定义及用法,数组类模版,运算符重载,多文件结构,成员函数的实现等的熟练运用。

1.2设计内容

用数组类模板、析构函数、构造函数 、赋值构造函数、运算符重载、指针等语法来完成一个班级在某门课程中考试的平均值的程序。

1.3设计指标或者要求

设计指标:用C++完成一个班级在某门课程中的成绩储存并计算平均值的程序,要求用 到数组类模板。

输入要求:在程序运行的页面根据提示输入班级学生人数n,再依次输入每个人在课程A中的成绩。

输出要求:输出n个人在课程A中的平均成绩。

2 设计过程

(1)、分析程序的功能:使用户能根据程序提示输入班级学生人数n和n个人在某门课中考试成绩,并能储存成绩然后计算平均值,显示出来。

(2)、思考程序要用到的算法原理:使用数组类模板定义浮点型数组存储考试成绩;利用班级总人数与其在课程A中的总分之比的原理求平均值。 (3)、设计程序流程图(见2.3)。 (4)、编写程序(见2.4)。

2.1 程序功能

使用户能根据程序提示输入班级学生人数n和n个人在某门课中考试成绩,并能储存成

绩然后计算平均值,显示出来。

2.2算法原理

(1)、使用数组类模板定义浮点型数组存储考试成绩;

(2)、利用班级总人数与其在课程A中的总分之比的原理求平均值。

2.3程序流程图

开始

输入班级人数n和每个人的

考试成绩Score[i]

i

AverScore=TotalScore/n

输出AverScore

结束

i++;TotalScore=TotalScore+Score[i]

2.4 程序主要模块或者函数

#ifndef ARRAY_H #define ARRAY_H

#include #include #ifndef NULL const int NULL = 0; #endif

enum ErrorType

//错误类型集合,共有三种类型

{invalidArraySize, memoryAllocationError, indexOutOfRange}; char *errorMsg[] = {

\\};

template class Array {

private:

T* alist; //T类型指针,用于存放动态分配的数组内存首地址 int size;

void Error(ErrorType error,int badIndex=0) const; public:

Array(int sz = 50);

Array(const Array& A); ~Array(void);

//重载\使数组对象可以整体赋值

Array& operator= (const Array& rhs); T& operator[](int i); operator T* (void) const; int ListSize(void) const; void Resize(int sz);

};

//以下为类成员函数的实现 template

void Array::Error(ErrorType error, int badIndex) const {

cout << errorMsg[error];

if (error == indexOutOfRange)

cout << badIndex; //如果是下标越界错,输出错误的下标 cout << endl; exit(1);

}

template

Array::Array(int sz) {

if (sz <= 0) //sz为数组大小(元素个数),若小于0,则输出错误信息 Error(invalidArraySize); size = sz;

alist = new T[size]; //动态分配size个T类型的元素空间 if (alist == NULL) //如果分配内存不成功,输出错误信息 Error(memoryAllocationError); }

template Array::~Array(void) {

delete [] alist; }

template

Array::Array(const Array& X) {

//从对象X取得数组大小,并赋值给当前对象的成员 int n = X.size;

size = n;

alist = new T[n];

if (alist == NULL) //如果分配内存不成功,输出错误信息 Error(memoryAllocationError) T* srcptr = X.alist; T* destptr = alist; while (n--)

*destptr++ = *srcptr++; }

// 重载\运算符,将对象rhs赋值给本对象。实现对象之间的整体赋值 template

Array& Array::operator= (const Array& rhs) {

int n = rhs.size; if (size != n) {

delete [] alist;

alist = new T[n]; // 重新分配n个元素的内存 if (alist == NULL)

Error(memoryAllocationError); size = n; //记录本对象的数组大小 }

// 从rhs向本对象复制元素


C++程序设计报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:马克思主义基本原理(张峰教授2012年)华中科技大学

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: