|
【实训目的】无返回值的函数
【第 1 步】实训内容介绍
1. 实训内容介绍
2. 无返回值的函数
3. 代码重组
4. 实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】无返回值的函数
1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 cpp5code 中:
#include <iostream.h>
// 编写无返回值的函数print
void print(int score) {
// 在这里补写代码
}
void main(void) {
// 并在主函数调用它
int score;
cout << "输入成绩: ";
cin >> score;
print(score);
cout << "再次输入成绩:";
cin >> score;
print(score);
}
然后编写打印函数,输入传入的成绩值,但是会对成绩值进行判断,从而输出不同的内容 代码见简明教程【例5-4】第 1 步代码,运行结果如下:
输入成绩: 87
成绩是:{87}
再次输入成绩:105
{成绩不能大于100分}
Press any key to continue
输出文字如下(请复制):
cout << "{成绩不能是负数}" << endl;
cout << "{成绩不能大于100分}" << endl;
cout << "成绩是:{" << score << "}\n";
cout << "输入成绩: ";
cout << "再次输入成绩:";
代码如下:
// 从下一行开始复制。
#include <iostream.h>
void print(int score) {
if(score<0){
cout << "{成绩不能是负数}" << endl;
return;
}
if(score>100){
cout << "{成绩不能大于100分}" << endl;
return;
}
cout << "成绩是:{" << score << "}\n";
}
void main(void) {
int score;
cout << "输入成绩: ";
cin >> score;
print(score);
cout << "再次输入成绩:";
cin >> score;
print(score);
}
// 一直复制到上一行结束。
【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 3 步】代码重组
下述代码是“3.2.6 代码命名和排版规范“中的代码
#include <iostream.h>
void main(void) {
//菜单
cout << "{1. 计算月份的日数}\n";
cout << "{2. 判断空调的开和关}\n";
char choice;
cout << "选择菜单功能:";
cin >> choice;
//实现用户选择的功能
switch (choice) {
case '1':
//计算月份的日数
int year, month, day;
cout << "输入年份和月份:";
cin >> year >> month;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
day = 29; //闰年
} else {
day = 28; //普通年份
}
break;
default:
day = 0;
cout << "月份错误\n";
}
cout << "该月天数是{" << day << "}\n";
break;
case '2':
//判断空调的开和关
float temperature;
cout << "输入温度: ";
cin >> temperature;
if (temperature > 30) {
cout << "{打开空调(制冷)}\n";
} else if (temperature < 10) {
cout << "{打开空调(制热)}\n";
} else {
cout << "{关闭空调}\n";
}
break;
default:
cout << "{选择错误}\n";
}
cout << "{程序结束}\n";
}
现在对这个文件中的代码进行重组, 编写两个函数 getDays() 和 setAC() 来实现其业务功能,然后在主函数中调用它们。先将下述代码复制到 cpp5code 中,然后根据代码中的说明,对前述代码进行重组:
#include <iostream.h>
void getDays(){
// 从上述代码中复制合适的部分到这里
}
void setAC(){
// 从上述代码中复制合适的部分到这里
}
void main(void) {
//菜单
cout << "{1. 计算月份的日数}\n";
cout << "{2. 判断空调的开和关}\n";
// 在这里补写代码,调用两个函数,实现相同的功能
cout << "{程序结束}\n";
}
运行结果如下:
{1. 计算月份的日数}
{2. 判断空调的开和关}
选择菜单功能:1
输入年份和月份:2020 2
该月天数是{29}
{程序结束}
Press any key to continue
代码如下:
// 从下一行开始复制。
#include <iostream.h>
void getDays(){
int year, month, day;
cout << "输入年份和月份:";
cin >> year >> month;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
day = 29; //闰年
} else {
day = 28; //普通年份
}
break;
default:
day = 0;
cout << "月份错误\n";
}
cout << "该月天数是{" << day << "}\n";
}
void setAC(){
float temperature;
cout << "输入温度: ";
cin >> temperature;
if (temperature > 30) {
cout << "{打开空调(制冷)}\n";
} else if (temperature < 10) {
cout << "{打开空调(制热)}\n";
} else {
cout << "{关闭空调}\n";
}
}
void main(void) {
cout << "{1. 计算月份的日数}\n";
cout << "{2. 判断空调的开和关}\n";
char choice;
cout << "选择菜单功能:";
cin >> choice;
switch (choice) {
case '1':
getDays();
break;
case '2':
setAC();
break;
default:
cout << "{选择错误}\n";
}
cout << "{程序结束}\n";
}
// 一直复制到上一行结束。
【Jitor 校验第 3 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 4 步】实训总结
本次实训学习了无返回值的函数。总结如下:
1. 函数必须先声明后使用
2. 只能以独立的方式调用
本实训还学习了代码的重组,把实现某个功能的一段代码命名为函数,移到函数中,然后调用它, 可以使用整个项目的代码结构更加清晰。
【Jitor 校验第 4 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |