软件系统分析与设计 第七节 第八节 制表符
第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中所述的方法进行研究.(强调一种行为) 解释导 ...
- 软件设计师-12.软件系统分析与设计
12.1 结构化分析与设计 结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的分析结果则展现了系统对数据的加工和转换.面向数据流建模是目前仍被广泛 ...
- 软件设计师教程(十三)计算机系统知识-软件系统分析与设计
软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...
- 软件系统分析与设计指南--HOMEWORK1
简答题 软件工程的定义 (1)将系统化的.规范的.可度量的方法应用于软件的开发.运行和维护,即将工程化方法应用于软件: (2)在(1)中所述方法的研究 解释导致 software crisis 本质原 ...
- 软件工程过程和软件系统分析与设计
什么是软件工程 软件工程要求下怎么编写出高质量的代码 软件工程要求下写好代码后如何进行单元测试 知道软件是什么,和其他工程学科有什么不同,为什么需要一门专门的软件工程来研究. 软件工程是怎么一步一步发 ...
- 信息系统分析与设计 第七章 用例建模
文章目录 7.1 基于用例的需求分析 7.2 用例的描述 7.3 建立用例的关系 7.1 基于用例的需求分析 用例分析是站在最终用户的角度看待系统及其特性,模型简单直接,一经提出便受到软件开发人员的青 ...
- 软件系统分析与设计 | UMLet建模
1.根据旅馆建模文档Asg-RH.pdf 绘制用例图模型(到子用例) 给出 make reservation 用例的活动图 二.根据课程练习"投递员使用投递箱给收件人快递包裹"的业 ...
- UML系统分析与设计01-准备
http://www.cnblogs.com/showjan/archive/2012/05/14/2499713.html UML,统一建模语言,在软件系统分析和设计中被广泛应用.作为一个初学者,我 ...
- 高中信息第四节计算机的软件,高中信息技术基础《计算机的软件》教案设计.doc...
高中信息技术基础<计算机的软件>教案设计 计算机的软件 一.教学目标: (一)技能目标: 1.熟练掌握计算机的一些基本操作方法: 2.培养学生从多种信息中选取.处理.整合信息的能力: 3. ...
最新文章
- 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
- MvcScaffold快速开发实例
- mybatis 添加语句返回对象_mybatis的insert语句插入数据时的返回值的实现
- 【项目管理】敏捷和计划驱动项目的特征对比
- 【Flink】Flink SQL 一个流 输出 2 次
- docker安装软件(vim,service)
- php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
- .h文件包含后显示类型_C语言中#include只能包含.h文件吗?
- window下启动Redis闪退问题解决
- react+百度地图实现自定义图标
- 利用Linux系统实现VLAN间的单臂路由及安全网关的功能
- awg线径与电流_awg线径对照表(awg线径与电流对照表)
- 电视html转vga没有声音,怎样才能让HDMI转VGA连接电视能播放声音?
- 吉他音阶训练入门教程——中集(运用方法)
- Realm在android的应用
- html省市多级联动下拉框,基于javascript实现全国省市二级联动下拉选择菜单
- 北航计算机学院 张炯导师,北航计算机学院2011研究生招生复试规定与安排_跨考网...
- 一级建造师课件免费下载_注册建造师管理制度中的矛盾点总结!
- 华为 OSPF邻居建立的过程
- 如何隐藏控制台窗口?
热门文章
- vo、dto、bo、do、po的概念理解以及与controller、service、dao层的对应关系
- 当阿里云服务器 ECS 访问不了公网 ip可能存在的原因以及如何解决的办法
- mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
- 五星级洒店系统需求分析
- Centos 安装 glib
- 前端面试题汇总(JavaScript面试纯干货)
- java localdate获取自然周
- C++算法设计与分析课后习题(第三章)
- PMP项目管理与ACP敏捷管理哪一个更有用?
- Java实现 蓝桥杯VIP 算法提高 分苹果