第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<<setw(columnWidth)<<score.chinese<<setw(columnWidth)<<score.maths<<setw(columnWidth)<<score.english<<setw(columnWidth)<<
score.physical<<setw(columnWidth)<<score.chemistry<<setw(columnWidth)<<getSum(score)<<setw(columnWidth)<<getAverage(score)<<endl;
}
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<<left;

cout<<fixed<<setprecision(2);
//setw只对下一个被输出的数据有效,不会一直有效
cout<<setw(columnWidth)<<“chinese”<<setw(columnWidth)<<“maths” <<setw(columnWidth)<<“english” <<setw(columnWidth)<<
“physical”<<setw(columnWidth)<<“chemistry”<<setw(columnWidth)<<“sum”<<setw(columnWidth)<<“average”<<endl;
}
//将一个百分制的成绩转换为绩点
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

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

  1. 软件系统分析与设计作业1

    软件系统分析与设计作业1 简答题 软件工程的定义 在软件的开发.操作和维护工程中系统的.有纪律的.可量化的方法.即将工程应用于软件.(强调一种方法) 如1中所述的方法进行研究.(强调一种行为) 解释导 ...

  2. 软件设计师-12.软件系统分析与设计

    12.1 结构化分析与设计 结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的分析结果则展现了系统对数据的加工和转换.面向数据流建模是目前仍被广泛 ...

  3. 软件设计师教程(十三)计算机系统知识-软件系统分析与设计

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...

  4. 软件系统分析与设计指南--HOMEWORK1

    简答题 软件工程的定义 (1)将系统化的.规范的.可度量的方法应用于软件的开发.运行和维护,即将工程化方法应用于软件: (2)在(1)中所述方法的研究 解释导致 software crisis 本质原 ...

  5. 软件工程过程和软件系统分析与设计

    什么是软件工程 软件工程要求下怎么编写出高质量的代码 软件工程要求下写好代码后如何进行单元测试 知道软件是什么,和其他工程学科有什么不同,为什么需要一门专门的软件工程来研究. 软件工程是怎么一步一步发 ...

  6. 信息系统分析与设计 第七章 用例建模

    文章目录 7.1 基于用例的需求分析 7.2 用例的描述 7.3 建立用例的关系 7.1 基于用例的需求分析 用例分析是站在最终用户的角度看待系统及其特性,模型简单直接,一经提出便受到软件开发人员的青 ...

  7. 软件系统分析与设计 | UMLet建模

    1.根据旅馆建模文档Asg-RH.pdf 绘制用例图模型(到子用例) 给出 make reservation 用例的活动图 二.根据课程练习"投递员使用投递箱给收件人快递包裹"的业 ...

  8. UML系统分析与设计01-准备

    http://www.cnblogs.com/showjan/archive/2012/05/14/2499713.html UML,统一建模语言,在软件系统分析和设计中被广泛应用.作为一个初学者,我 ...

  9. 高中信息第四节计算机的软件,高中信息技术基础《计算机的软件》教案设计.doc...

    高中信息技术基础<计算机的软件>教案设计 计算机的软件 一.教学目标: (一)技能目标: 1.熟练掌握计算机的一些基本操作方法: 2.培养学生从多种信息中选取.处理.整合信息的能力: 3. ...

最新文章

  1. 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
  2. MvcScaffold快速开发实例
  3. mybatis 添加语句返回对象_mybatis的insert语句插入数据时的返回值的实现
  4. 【项目管理】敏捷和计划驱动项目的特征对比
  5. 【Flink】Flink SQL 一个流 输出 2 次
  6. docker安装软件(vim,service)
  7. php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
  8. .h文件包含后显示类型_C语言中#include只能包含.h文件吗?
  9. window下启动Redis闪退问题解决
  10. react+百度地图实现自定义图标
  11. 利用Linux系统实现VLAN间的单臂路由及安全网关的功能
  12. awg线径与电流_awg线径对照表(awg线径与电流对照表)
  13. 电视html转vga没有声音,怎样才能让HDMI转VGA连接电视能播放声音?
  14. 吉他音阶训练入门教程——中集(运用方法)
  15. Realm在android的应用
  16. html省市多级联动下拉框,基于javascript实现全国省市二级联动下拉选择菜单
  17. 北航计算机学院 张炯导师,北航计算机学院2011研究生招生复试规定与安排_跨考网...
  18. 一级建造师课件免费下载_注册建造师管理制度中的矛盾点总结!
  19. 华为 OSPF邻居建立的过程
  20. 如何隐藏控制台窗口?

热门文章

  1. vo、dto、bo、do、po的概念理解以及与controller、service、dao层的对应关系
  2. 当阿里云服务器 ECS 访问不了公网 ip可能存在的原因以及如何解决的办法
  3. mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
  4. 五星级洒店系统需求分析
  5. Centos 安装 glib
  6. 前端面试题汇总(JavaScript面试纯干货)
  7. java localdate获取自然周
  8. C++算法设计与分析课后习题(第三章)
  9. PMP项目管理与ACP敏捷管理哪一个更有用?
  10. Java实现 蓝桥杯VIP 算法提高 分苹果