软件系统分析与设计 第七节 第八节 制表符

第7 8节 绩点结构体版

main.cpp

#include “Score.h”
int main()
{
outputTitle();
Score ZhangSan = {58,90,73,81,77};
Score LiSi = {66,52,83,79,61};
Score WangWu = {92,64,100,64,70};
output(ZhangSan);
output(LiSi);
output(WangWu);
return 0;
}

Score.cpp

#include “Score.h”
#include
#include //包含标准库的头文件
using std::cout;
using std::endl;
using namespace std;
using std::fixed;
using std::setprecision;
using std::left;
using std::setw;

int getSum(Score score)
{
int sum = score.chinese +score.english + score.maths+score.chemistry+
score.physical;
return sum;
}
//求平均值
double getAverage(Score score)
{

return getSum(score)/static_cast(amount);

}
//输出各科成绩即平均值
void output(Score score)
{
cout< score.physical< }
void outputTitle()
{
//水平制表符setw(columnWidth)是一个转义字符,属于字符型字面量
//输出一setw(columnWidth)所产生的效果:输出若干个空格(最少输出1个空格 最多输出8个空格),让光标自动跳到下一个制表位
//制表位所占位置是有规律的:第1位[0] 第9位[8] 第17位[16] 第25位[24]
//由于physical 所占位数为8 输出完后光标来到了下一个制表位所以输出了8个空格 导致没有对齐

//制表位的所占位置的规律是由操作系统决定的

//指定被输出的每一个数据的字符宽度 ,默认字符宽度是0
//数据的标准宽度:58的标准宽度的是2 "chinese"的标准宽度是7,…
//如果标准宽度>字符宽度,那么以标准宽度进行输出
//如果字符宽度>标准宽度,那么以字符宽度进行输出,空余位置将被填充字符填充
//默认填充字符是空格

//我的理解:标准宽度是字符实际的宽度
// 字符宽度是指定的一个制表符站位的宽度(如默认是8)

//如果指定对齐格式是左对齐,那么填充字符将填充在数据的右边
//右对齐 填充在数据的左边

//操纵器 设置左对齐
cout<

cout< //setw只对下一个被输出的数据有效,不会一直有效
cout< “physical”< }
//将一个百分制的成绩转换为绩点
double toPoint(int grade)
{
double point = 0.0;
const int passGrade =60;
if(grade>=passGrade)
point =(grade-passGrade)/10.0+1.0;
return point;
}

//计算某个学生(score类型结构变量)的平均分绩点
double getAveragePoint(Score score)
{
double average=getAverage(score);
//C++11 版本以上支持使用标准库round函数进行四舍五入
int interger=static_cast(average);
double decimal =average-interger;
if(decimal>=0.5)
interger++;
return toPoint(interger);

}

Score.h

#ifndef SCORE_H_INCLUDED
#define SCORE_H_INCLUDED

struct Score
{
int chinese;
int maths;
int english;
int physical;
int chemistry;
};
const int columnWidth=10; //列的宽度
const int amount = 5; //科目数量
int getSum(Score score);
double getAverage(Score score);
void output(Score score);
void outputTitle();
#endif // SCORE_H_INCLUDED

你可能感兴趣的:(软件系统分析与设计)