C++学习/温习:新型源码学编程(一)

时间:2023-01-27 12:52:29

写在前面

  • 本文约15页,如觉得文章过长请通过左侧边栏或知识点概览目录浏览食用
  • 面向初学者撰写专栏,个人原创的学习C/C++笔记(干货
  • 编程练习所作源代码输出内容为中文,便于理解
  • 如有错误之处请各位读者指正
  • 请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。

致粉丝:可以在阅读完我的文章后,自己尝试写一点原创心得(哪怕一行字也好)。
               希望众(尽管617个????)粉丝多多支持、浏览、自我创作@_@


本文源代码及生成程序下载链接

本文源代码(解决方案)下载链接C++学习/温习:新型源码学编程(一)https://download.csdn.net/download/Chinese_mad_Boy/87350778


 知识点概览

写在前面

本文源代码及生成程序下载链接

 知识点概览

C++ Primer Plus编程练习2.7笔记

一.姓名地址打印

1.头文件与C++库中控制输入输出的头文件

2.主函数main(){}以及int整型

3.命名空间namespace与std

4.cout输出流

5.停留生成程序窗口的方法

二.长度单位转换

三.自定义函数

1.void函数声明

2.空函数简单调用

四.年龄转月份

学习C++基本数值类型

五. (实用程序)温度单位转换    简洁易懂地介绍C++参数

1.自定义带参数函数声明

2.调用带参数函数并且将实际参数带入

3.带参数函数返回值计算

六.长度单位转换(光年—>天文单位)(参数详解) 简洁易懂地介绍C++参数

 七.(实用程序)小时 : 分钟电子表式显示

结语


C++ Primer Plus编程练习2.7笔记

一.姓名地址打印

编写一个C++程序,它显示您的姓名和地址。

//2.7_1.cpp
//控制台打印姓名地址
#include<iostream>							//输入输出
int main()
{
	using namespace std;					//省去“std::”
	cout << "姓名:" << "YHLZ" << endl;		//"YHLZ"处便于更改姓名
	cout << "地址:" << "中国" << endl;		//"中国"处可增添地址
	
    //VS2022生成的程序自动等待按任意键退出
	//其他编译器防止提示符窗口自动退出解决方法:
	//方案一:cin.get();
	//方案二(推荐):system("pause");

	return 0;								//主函数返回
}

1.头文件与C++库中控制输入输出的头文件<iostream>

   #include<iostream>       
(#include)包含一个头文件。
(<iostream>)C++库自带控制输入输出的头文件,i=input(入),o=output(出),stream(流)。

2.主函数main(){}以及int整型

int main(){}
int 代表此函数为整型(返回无小数部分值,如return 0)。
main 是必须有的源代码必须有的主函数。
小括号()中可以包含参数,空的小括号指无参数,可以用(void)表示。
花括号{}中包含函数体,可以包含声明、语句等。

3.命名空间namespace与std

using namespace std;
using namespace 可以使用 std 所包含的命名空间,这条语句在此代码主函数中,可以省去主函数中所有原本需要写的 std::。
若这条语句放在主函数外(可以在源代码顶部),则可以省去整个源码中用到 std::地方的std::前缀
使用标准C++库函数时必须使用 std 限定。std 限定在<iostream>头文件中的 cout(c 输出)、cin(c 输入)等标准函数

4.cout输出流

cout << "姓名:" << "YHLZ" << endl;
<<将右侧信息插入到 cout 输出流中,每条字符串信息用""半角双引号引起来,endl 指示换行,C++与C语言也可以使用 \n 作为换行符,但换行符不可放在变量名、函数名、参数名等处。

5.停留生成程序窗口的方法

    //VS2022生成的程序自动等待按任意键退出
    //其他编译器防止提示符窗口自动退出解决方法:
    //方案一:cin.get();
    //方案二(推荐):system("pause");

源代码运行示例如下:

C++学习/温习:新型源码学编程(一)


二.长度单位转换

编写一个C++程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(yard)(1long=220码)

//2.7_2.cpp
//长度单位转化
#include<iostream>								 //输入输出
int main()
{
	using namespace std;					     //省去“std::”
	double d_Long,d_Yard;                        //声明double浮点型长度单位long的数值与英码yard的数值
	cout << "请输入长度(单位:long):" ;	
	cin >> d_Long;								 //将输入流中的浮点型数值传输给d_Long
	d_Yard = 220 * d_Long;						 //计算long单位转换为yard单位
	cout << d_Long << "long=" <<d_Yard <<"yard." << endl;
												 //输出(打印)转换式
	return 0;
}

1.double浮点型声明

double d_Long,d_Yard;
double 声明浮点型(有小数部分)变量,变量名命名采用 d(double 缩写)+下划线_+便于理解的实用名称 long 与 yard(实际题目要求的长度单位英文名)。
//作者命名偏好下划线且第二个单词开始大写

2.cin输入流

cin >> d_Long;
cin 捕获用户输入流,将输入的内容传输给变量 d_Long。C++是面向对象型编程语言,将输入流发送给对象并且智能选择类。

3.乘法赋值计算

d_Yard = 220 * d_Long;
计算部分,将捕获的long单位数值*220的结果从左向右赋给赋值号(=)左侧的yard具体数值
也可以通过这段代码替换实现

cin >> d_Long;
cout << d_Long << "long=" << d_Long*220 <<endl;
//前面省去对英码数值变量d_Yard的声明,直接用算式代替 

源代码运行示例如下:
C++学习/温习:新型源码学编程(一)


三.自定义函数

编写一个C++程序,它使用3个用户自定义的函数(包括 main()),并生成下面的输出:
Three blind mice(三盲鼠)
Three blind mice
See how they run(视其何行)
See how they run
其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次,并生成其余的输出

//2.7_3.cpp
//自定义函数
#include<iostream>
using namespace std;     //全局范围省去“std::”书写
void t();		    	 //声明不带参数、无返回值的自定义函数,该函数输出句子首字母为T
void s();				 //声明不带参数、无返回值的自定义函数,该函数输出句子首字母为S
int main()
{
	t();				 //函数调用
    t();
	s();
	s();
	return 0;	    	 //主函数有返回值0(整型)
}
void t()
{
	cout << "Three blind mice" << endl;
}
void s()
{
	cout << "See how they run" << endl;
}

1.void函数声明

void t();
void表示该自定义函数无返回值,()表示无参数,这句声明代码中新建了一个名为t的函数
当然也可以使用其他命名,例如function函数的英文缩写或者其他名字。

2.空函数简单调用

t();
函数声明在源码顶部,函数体void t(){}在主函数下面,那么可以在主函数中直接调用函数。
函数体中可以包含语句、变量声明等。该函数只有执行打印输出流的语句。

源代码运行示例如下:

C++学习/温习:新型源码学编程(一)


四.年龄转月份

编写一个程序,让用户输入年龄,然后显示该年龄包含多少个月,如下所示:
输入你的年龄:29

//2.7_4.cpp
//输入年龄转月份

#include<iostream>
int main()
{
	using namespace std;
	int y,m;                   //声明int整型时间数值y(年),m(月)
	cout << "请输入您的年龄:";
	cin >> y;				   //将输入流中的整型数值传输给y
	m = 12 * y;			       //月=12*年

	cout << y << "岁的朋友,您的年龄包含" << m << "个月。" << endl;
	//也可以用cout<<y<<"年有"<<y*12<<"月"<<endl;替换上面的代码,同时省去对变量m的声明与赋值计算

	return 0;
}

学习C++基本数值类型

此程序与程序 2.7_2.cpp 相类

源代码运行示例如下:

C++学习/温习:新型源码学编程(一)


五. (实用程序)温度单位转换

编写一个程序,其中主函数调用一个用户自定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:
请输入摄氏温度值:
20
20摄氏度是68华氏度
℉=1.8×℃+32.0

方案一(未自定义函数,较简单)

//2.7_5_1.cpp
//方案一
//实用程序:温度单位转换
#include<iostream>
int main()
{
	using namespace std;			  //省去“std::”
	double C, F;                      //声明温度单位℃的数值与℉的数值
	cout << "请输入温度(单位:℃):";
	cin >>C;						  //将输入流中的浮点型数值传输给C
	F = 1.8 * C+32.0;				  //计算℉结果赋值给F
	cout << C << "℃=" << F << "℉" << endl;
	//输出转换结果,先给用户展示验证输入℃,再展示转换结果℉
	return 0;
}

1.F = 1.8 * C+32.0;
单独将赋值运算过程提取出来,便于修改数值(此程序为温度转换公式常量,没必要修改数值)

2. cout << C << "℃=" << F << "℉" << endl;
注意:如果使用符号“℃”与“℉”时,编译出的程序运行时符号显示可能出现问题
所以实际操作建议用方案二中的
输出转换结果,先给用户展示验证输入℃,再展示转换结果℉。这是一个好的编程习惯

方案二(自定义函数)

//2.7_5_2.cpp
// 方案二
//实用程序:温度单位转换
#include<iostream>
double c_To_F(double);
int main()
{
	using namespace std;							//省去“std::”
	double C,F;                                     //声明温度单位℃的数值与℉的数值
	cout << "请输入温度(单位:摄氏度):";
	cin >>C;								        //将输入流中的浮点型数值传输给C
	F = c_To_F(C);
	cout << C << "摄氏度相当于" << F<< "华氏度" << endl;
	//输出转换结果,先给用户展示验证输入℃,再展示转换结果℉
	return 0;
}
double c_To_F(double sum)
{
	return 1.8 * sum + 32.0;
}

1.自定义带参数函数声明

double c_To_F(double);
声明一个 double 浮点型的函数(用来实现计算摄氏度℃转华氏度℉)

返回一个浮点型数值(自动截断小数部分的没用的0)
并且声明这个函数包含 double 的参数

!注意:声明时必须注明有参数函数的参数类型

2.调用带参数函数并且将实际参数带入

F = c_To_F(C);
函数调用,参数带入。
调用函数 c_To_F 同时,用变量C(即摄氏温度值)换掉 c_To_F 函数块里的浮点型参数 sum ,将变量 C 的具体数值替换参数 sum。
函数
!注意:调用时省去函数类型double与参数类型double,参数名直接用带入变量名C代替即可

3.带参数函数返回值计算

double c_To_F(double sum)
{
    return 1.8 * sum + 32.0;
}
具体函数块
使用主函数中所提供的变量 C 代替参数 sum,进行计算
此时函数返回值就会赋给主函数中摄氏温度值变量 F 
!!注意:返回值部分仍需使用 sum ,因为运行前不知函数是否会被调用

源代码运行示例如下: 

C++学习/温习:新型源码学编程(一)


六.长度单位转换(光年—>天文单位)(参数详解)

编写一个程序,其main调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值并显示结果:
请输入光年值:

4.2
4.2光年=265608天文单位
天文单位是从地球到太阳的平均距离(约1.5亿公里或9600万英里),光年是光一年走的距离(约10万亿公里或6万亿英里)(除太阳外,最近的恒星大约离地球4.2光年)。请使用double类型:
转换公式为1光年=63240天文单位

//2.7_6.cpp
//长度单位转换(光年—>天文单位)
#include<iostream>
double fun(double);                  //声明double浮点型返回值函数及参数类型
int main()
{
	using namespace std;
	double gn,tw;                    //变量gn指光年,tw指天文单位
	cout << "请输入光年:" << endl;
	cin >> gn;
	tw=fun(gn);
	cout <<gn<< "光年=" << tw<< "天文单位。" << endl;

	return 0;
}
double fun(double s)                 //具体函数块,说明形参s
{
	return 63240* s ;                //返回值的计算
}
  • 需讲解的代码:
  • double fun(double);
  • int main(){tw=fun(gn);}
  • double fun(double s){return 63240* s ;}

参数:任意函数括号里的一部分简洁易懂地介绍C++参数

main(void){}或main(){}指主函数main无参数

  1. 形参(形式参数)
    例如,double fun(double);这里第二个double声明形式参数是double类型
    double fun(double s){return 63240* s ;} 这里括号里的 s 是形式参数,
    形式上作为函数fun调用前的参数,计算会参照 s 的数值(尽管此时 s 还没有具体数值,需要到实际(调用)参数“借”来数值进行计算,自己只走过场)
    形式参数在调用会被实际参数代替。
  2. 实参(实际参数)
    例如,int main(){tw=fun(gn);} 这里主函数块里函数调用时,原本形式参数 s 的位置被实际有具体数值的 gn 代替,gn 就是实际应用到函数 fun 的计算中的实际参数。

源代码运行示例如下: 

C++学习/温习:新型源码学编程(一)


 七.(实用程序)小时 : 分钟电子表式显示

编写一个程序,要求用户输入小时数和分钟数。在 main() 函数中将这两个值传递给一个void函数,后者以下面这样的格式显示这两个值
输入小时数:9
输入分钟数:12
时间:9 : 12

//2.7_7.cpp
//电子表时间显示
#include<iostream>
using namespace std;         //全局范围省去“std::”书写
void time(int,int);
int main()
{
	int h;
	int m;                   //变量h指小时(hour),m指分钟(minute)
	cout << "请输入小时数:";
	cin >> h;
	cout << "请输入分钟数:";
	cin >> m;
	time(h, m);              //函数调用,实参带入
	return 0;
}
void time(int num1,int num2) //具体函数块,声明形参num1,num2
{
	cout << num1 << " : " << num2 << endl;
	//注意:" : "是"空格+半角冒号+空格"
}

两个整型参数示例程序(见注释简洁解释)

源代码运行示例如下: 

C++学习/温习:新型源码学编程(一)


结语

今天我们共同学习了C++头文件<iostream>,主函数、数值类型及函数参数等重要知识。
学习编程是一条漫长的路,贵在坚持。每天学习来提升自己的的编程能力,成为耀眼的IT之星。
各位读者跟随我的脚步,我们共同努力,共同进步吧!

返回作者主页

专栏下一篇文档:C++学习/温习笔记:源码学编程(二)

其它文章: 

                  C语言求幂运算(尽大支持)——中文式奇特命名

                  简洁易懂地介绍C++参数

                  学习C++基本数值类型 

                  C/C++基础运算符


 如有探讨问题联系邮箱:yhlz0613@163.com

对于文章中的错误请各位批评指正,我一定及时更正

请在投票后评论回复意见,如有关于写博文的指导也请您回复提出

 <!--感谢浏览                    诸君慢行且留言          过客匆匆常回访-->