【实训5-4】无返回值的函数
(总分18)


 【实训目的】无返回值的函数   

【第 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(陈海云) : 返回首页