C++面向对象程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 编程实作——}H2}VC++ 6.0编程简介

支持C++程序设计的编译程序很多,常见的有Turbo C++、Borland C++和Visual C++等。Visual C++是Microsoft公司的产品,简称VC++。VC++ 6.0是Microsoft公司1998年推出的基于Windows的集成开发环境,提供了编写程序源代码的编辑器,创建各类资源文件(如对话框、图标、菜单等)的资源编辑器,具有编辑、编译、链接等功能。利用它可以输入、编辑源程序,进行程序的编译、调试、链接,最后生成可执行的命令程序。

VC++是一个功能强大的复杂编程环境,支持基于控制台和Windows平台的程序设计。下面以一个简单的例子介绍在VC++环境下编写基于控制台的程序设计过程。

例1-7】 某次考试成绩如下,编写程序计算每位同学的平均分。要求成绩从键盘输入,程序输出结果的形式与下面相同,但要输出每位同学的平均分。

语文 数学 政治 化学 英语 平均分

学生1 67 76 87 89 76

学生2 78 87 78 90 87

……

程序设计思路:设计一个二维数组s保存学生的成绩和平均分;设计一个读入学生成绩表的函数ReadData(),该函数将学生成绩读入数组s的前5列中;设计一个计算平均成绩的函数AveScore(),该函数计算每位同学的平均成绩,并将计算结果放入s数组的第6列;设计一个输出数据的函数OutData(),该函数将s数组的数据按指定格式输出。

1.6.1 在VC++中编辑源程序

现在介绍一种在Windows XP的VC++ 6.0环境下实现例1-7程序的简便方法,其过程如下。

<1> 选择“开始 | 所有程序 | Microsoft Visual Stduio | Microsoft Visual C++ 6.0”菜单命令,启动VC++ 6.0。

<2> 选择“文件 | 新建”菜单命令,进入Visual C++的“新建”对话框,如图1-7所示。

<3> 选择“新建”对话框的“文件”标签,单击“目录”编辑框右边的按钮,选择要保存源程序的目录。

<4> 选中“新建”对话框中的“C++ Source File”列表项,在该对话框右边的“文件”编辑框中输入源程序的名字,扩展名为 .cpp。然后单击“确定”按钮,进入Visual C++的编程序环境,如图1-8所示。

图1-7 Visual C++的“新建”对话框

图1-8 Visual C++ 6.0编程环境

<5> 在程序编辑窗口中输入下面的程序源代码。

//Eg1-7.cpp
#include <iostream.h>
#include <iomanip.h>    //setw在此头文件中定义
#define StuNum 5    //StuNum代表学生人数
void ReadData(double s[][6],int n);  //这3行是函数声明
void AveScore(double s[][6],int n);
void OutData(double s[][6],int n);
void main(){
  double s[StuNum][6];   //定义保存学生成绩的数组
  ReadData(s,2);    //读入学生成绩
  AveScore(s,2);    //计算各学生的平均分
  OutData(s,2);    //输出学生成绩表
}
void ReadData(double s[][6],int n){
  for(int i=0;i<n;i++){
    cout<<"输入学生 "<<i+1<<" 的5科成绩: "; //在屏幕上提示输入学生成绩
    for(int j=0;j<5;j++)   //输入学生的5科成绩
      cin>>s[i][j];
  }
}
void AveScore(double s[ ][6],int n) {
  for(int i=0;i<n;i++){
    double sum=0;
    for(int j=0;j<5;j++)
      sum=sum+s[i][j];
      s[i][5]=sum/5.0;
  }
}
void OutData(double s[ ][6],int n) { //下面的cout语句在屏幕上输出科目名称
  cout<<setw(17)<<"语文"<<setw(8)<<"数学"<<setw(8)<<"政治"
      <<setw(8)<<"化学"<<setw(8)<<"英语"<<setw(8)<<"平均分"<<endl;
  for(int i=0;i<n;i++){
    cout<<setw(8)<<"学生 "<<i+1;
    for(int j=0;j<6;j++)
      cout<<setw(8)<<s[i][j];
    cout<<endl;
  }
}

1.6.2 编译和调试程序

<1> 选择Visual C++的“编译 | 编译student.cpp”菜单命令,这里的student.cpp会随源程序的文件名而不同;或单击Visual C++工具栏中的编译工具按钮,弹出如图1-9所示的对话框。

图1-9 创建项目文件的提示框

<2> 一个C++程序在Visual C++环境下编译运行,必须有一组与之紧密相关的文件,这组文件包含了程序的环境设置、涉及的头文件、资源等内容,称为项目文件。图1-9所示对话框询问是否要创建本程序的项目文件。单击“是”按钮,Visual C++将自动生成该程序的相关项目文件。如果在选择编译命令之前,没有保存源程序,Visual C++还会弹出一个对话框,询问是否要保存源程序,当然也应单击该对话框中的“是”按钮。

<3> 选择编译命令后,Visual C++会编译链接源程序,并在输出窗口中指出编译的结果,如果在编译过程中发现了错误,也要显示在输出窗口中,如图1-10所示。

有了项目文件后,在工作区窗口中就有内容了(对比图1-10和图1-8),在“Class…”标签中列出了本程序所有的函数名,双击函数名,就能快速地定位到程序编辑窗口中该程序的代码定义处;“FileVi…”标签中列出了本程序所有的头文件名和源程序文件名。

<4> 双击输出窗口中的错误,Visual C++会高亮显示该错误信息行,并将光标定位到程序编辑窗口中对应的错误语句行。图1-10中就指向了一错误行,请注意“int b;”前面的命令行“int a”,它少了一个“;”,这与输出窗口中指出的错误是一致的。

<5> 修改输出窗口指示的全部错误后,保存程序。再次编译程序,直到改正了全部错误。

<6> 编译成功后,选择Visual C++的“编译 | 执行”菜单命令,或单击工具栏中的命令按钮,执行该程序。结果如图1-11所示。

在图1-11中,第1、2行后面的数字是程序执行函数ReadData()时从键盘输入的成绩,第3、4、5行是函数OutData()的输出。

图1-10 程序编译结果

图1-11 计算学生成绩平均分程序的运行结果

1.6.3 关于Visual C++的项目工作区文件

在上面的操作过程中,虽然只输入了一个源文件(student.cpp)的程序代码,但整个过程建立了一组文件,这些文件被放在新建文件时指定的目录中(即目录C:\C++,该目录是在图1-7中指定的)。

图1-12列出了目录“C:\C++”中的所有文件。从中可以看出,除了student.cpp文件外,还有student.dsp和student.dsw等文件,以及一个Debug目录。除了student.cpp是实际输入的源程序外,其他文件都是由Visual C++自动生成的。

图1-12 Visual C++自动生成的文件

图1-13 程序编译过程中生成的文件

扩展名为 .dsp的文件是项目文件,扩展名为 .dsw的文件是项目工作区文件。一个应用程序无论简单还是复杂,也不管它是由一个还是多个文件构成的,都必须建立项目文件才能被编译。项目文件把一个应用程序的所有文件如源程序(.cpp文件)、头文件(.h文件)、资源文件(.rc)、程序结构信息文件及系统环境配置文件等组织成一个有机的整体,构成一个能够被编译器识别和编译的项目。

项目工作区文件是用于组织文件、项目(复杂应用程序可能由多个项目组成)及项目设置的文件。在Visual C++的工作区窗口中列出的文件就来源于项目工作区文件(参考图1-10的工作区窗口,单击其中的“FileVi..”标签就会列出本项目的全部文件名),根据工作区窗口中列出的文件,可以方便地编辑对应的程序。双击该窗口中的程序文件名,就能打开Visual C++的编辑窗口,并在其中打开文件。

在图1-12中,还可以看到一个名为student.opt的文件和一个Debug目录。扩展名为 .opt的文件是工作区选项文件,用于保存项目工作区的配置信息。Debug是Visual C++在编译程序的过程中生成的目录,Visual C++会将编译形成的可执行文件(.exe)和编译过程中生成的一些临时文件放在其中。图1-13是Debug目录下的文件,其中student.exe就是编译形成的可执行文件,可以在DOS平台下直接运行它,甚至可以将它复制到其他计算机中去执行。该目录中的其他文件都是Visual C++在编译过程中形成的中间文件。

1.6.4 利用Visual C++向导创建应用程序

编写C++应用程序的另一种方法是利用Visual C++ 6.0的向导创建一个简单的程序模型,然后将该模型修改成实际的应用程序。方法如下。

<1> 启动Microsoft Visual C++。然后选择“文件 | 新建”菜单命令,在弹出的“新建”对话框中选择“工程”标签,如图1-14所示。

<2> 选中“Win32 Console Application”,在“位置”编辑框中指定保存文件的目录,在“工程”编辑框中输入源程序的名字。然后单击“确定”按钮。

<3> 在弹出的向导对话框中选中“A "Hello World!\n" application”单选项,单击“完成”按钮,Visual C++将在指定的目录下建立“Hellow World”的整个工程项目文件,如图1-15所示。

图1-14 “新建 | 工程”对话框

图1-15 Visual C++向导建立的Hellow World模型程序

<4> 修改“Hellow World”模型程序中的代码,用实际程序代码替换那些不需要的代码,然后编译、调试。

说明:在修改和删除Visual C++向导生成的“Hellow World”模型程序的代码时,要保留其中的“#include "stdafx.h"”语句行。头文件stdafx.h中包含了Visual C++程序运行过程中需要用到的一些变量和函数,以及项目文件经常要用到的一些特定文件信息。