软件系统分析与设计 第四节 第五节 数组

变量版

#include
#include //包含标准库的头文件

using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using namespace std;

int main()
{
int chinese=58,maths=90,english=73;
int sum = chinese+maths+english;
double average = sum /3.0;
cout<<fixed<<setprecision(2);
cout<<“chinese”<<’\t’<<“maths” <<’\t’<<“english” <<’\t’<<“average”<<endl ;
cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<average<<endl ;
chinese=66,maths=52,english=83;
sum = chinese+maths+english;
average = sum /3.0;
cout<<fixed<<setprecision(2);
cout<<“chinese”<<’\t’<<“maths” <<’\t’<<“english” <<’\t’<<“average”<<endl ;
cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<average<<endl ;
return 0;
}

数组版 第四节课和第五节课一起讲的

#include
#include //包含标准库的头文件

using std::cout;
using std::endl;
using std::fixed;
using std::setprecision;
using namespace std;

int main()
{
const int length = 3;
int grades[length] = {58,90,73};
int chinese=58,maths=90,english=73;
int sum = 0 ;
double average = 0.0;
//第一个元素grades[0];数组名grades(代表首元素的地址值)与0在执行下表运算“[]”
//地址值与整数执行下表运算的结构,是从地址值开始,跳过整数个同类型的存储单元空间之后到达的存储空间;
//下表是 :y元素与首元素的偏移量
/*
cout<<(&grades[1])[1]<<endl;
cout<<1[(&grades[1])]<<endl;
cout<<(&grades[2])[-1]<<endl;
*/
//sum = grades[0]+grades[1]+grades[2];//chinese+maths+english;
//sum = sum +grades[0]; //读sum旧的值,读grades[0],写sum
//sum = sum +grades[1]; //读sum旧的值,读grades[1],写sum
//sum = sum +grades[2]; //读sum旧的值,读grades[2],写sum
//抽象成以下格式
//sum = sum +grades[index]; //循环体语句

//循环语句 :for while do-while
//for适合:事先已经确定循环次数
//while适合:事先无法确认循环次数
//do——wihle:至少确定循环一次,无法确认循环次数

/*
for(表达式1;表达式;表达式3)
语句 //循环体只能是一条合法语句
*/

for(int index=0;index<length;index++)
sum=sum+grades[index];
//对于内置类型(整数类型 浮点数类型,逻辑类型等等)
//++的快慢区别不大

//对于自定义类型(类类型 结构类型 联合类型等等)
//++的快慢区别较大
//index++较慢
//obj++等价于obj,operator++(0),执行过程需要产生临时的存储空间
//++index较快
//++obj等价于obj。operator++()不产生

//求平均值
//average = 1.0*sum /length;
average = static_cast(sum)/length;
//static_cast<转换的目的类型>(表达式)

cout<<fixed<<setprecision(2);
cout<<“chinese”<<’\t’<<“maths” <<’\t’<<“english” <<’\t’<<“sum”<<’\t’<<“average”<<endl ;
//cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<sum<<’\t’<<average<<endl ;
for(int index=0;index<length;index++)
{
cout<<grades[index]<<’\t’;
}
cout<<sum<<’\t’<<average<<endl;
//grades = {66,52,83}; // 错误 grades 是首元素的地址值
//任何地址都是系统自行分配的,都被认定成常量
//常量不能被赋值;
//chinese=66,maths=52,english=83;
sum = 0;
grades[0] = 66;
grades[1] = 52;
grades[2] = 73;
//sum = grades[0]+grades[1]+grades[2];//chinese+maths+english;
//average = sum /3.0;
//cout<<chinese<<’\t’<<maths<<’\t’<<english<<’\t’<<sum<<’\t’<<average<<endl ;
for(int index=0;index<length;index++)
sum=sum+grades[index];
average = static_cast(sum)/length;
for(int index=0;index<length;index++)
{
cout<<grades[index]<<’\t’;
}
cout<<sum<<’\t’<<average<<endl;
return 0;
}

//玩具程序:很少的数据量
//模拟实际程序:很大的数据量

// 软件工程 :与软件生产有关的理论上的经验
// 软件应该满足五个要求:
//没有错误
//及时交付
//控制在预算之内
//当客户的需求发生改变时易于改变
//满足客户需求

//尽可能去除代码里的重复
//一旦存在重复的代码段,对这些代码段做改动很困难,重复的一致性改动
//c++存储字符串序列的方式:
//1, 字符串字面量:“ZHangsan”
//2 字符数组: char namep[] = “zhangsan”;
// chgar name[] = {‘z’,‘h’…,’\0’};
//3 字符串对象 :string name = “zhangSan”;

//数组是内置的最简单的数据结构 属于顺序表

//数据结构:数据以那种组织方式被存储,将数据以某种方式组织起来的一种结构
//序列结构 :顺序表 链表
//结合了具体操作特点的数据结构:栈 队列
//非顺序结构 : 树 映射 集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值