本例可执行文件下载:
下载
本案例知识要点
Visual C++ 6.0下创建C++ Source File并运行的方法
C++程序基本结构
C++函数结构
数组和指针的应用
一、案例需求
1.案例描述
一个班有若干个学生,5门课程。找出平均成绩在90分以上或全部课程成绩在85分以上的优秀学生。
2.案例效果图
学生成绩查询运行效果如图1-1所示。
3.功能说明
(1)从键盘输入学生数、课程名称、学生学号以及各门课程成绩。
(2)通过数组来存储学生学号、课程、以及成绩。
(3)编写函数求学生的平均成绩和查询满足条件的学生。
(4)将满足条件的学生的学号以及各门课程的成绩、平均成绩显示出来。
二、案例分析
为了便于数据存储和操作,采用如图1-2所示数据结构。分别利用course、score、num和aver四个数组存储课程信息、成绩信息、学号信息以及平均成绩。其中课程信息、成绩信息、学号信息由键盘录入,平均成绩通过计算得出。
三、案例设计
实现学生成绩查询的程序结构如图1-3所示。其中求学生的平均成绩过程和查找满足条件的优秀学生的过程采用函数实现。
四、上机过程
Visual C++ 6.0下创建并运行一个C++源程序需要经过编辑、编译、连接、执行等几个步骤。我们把本案例程序名称命名为studentscore,则经过编辑后生成studentscore.cpp源文件;接下来对源文件进行编译生成studentscore.obj目标文件;如果程序没有错误,最后经过连接生成studentscore.exe可执行文件。运行studentscore.exe文件即可执行程序。
1.创建程序源文件
如图1-4所示,启动并运行Visual C++ 6.0后,通过菜单【文件】——【新建】打开如图1-5所示“新建”对话框。
在新建对话框中通过【文件】标签选择【C++ Source File】选项来创建一个C++源程序文件。在“文件”下方的文本框中输入源文件名称,同时选择文件保存的路径,最后鼠标点击【确定】按钮。即可创建扩展名为.cpp的空白C++源程序文件。
INCLUDEPICTURE "http://210.31.100.100/c++jpkc/anlijijin/案例1.files/image006.gif" \* MERGEFORMATINET
创建C++源程序文件成功后,接下来就要对程序代码进行录入,如图1-6所示。
INCLUDEPICTURE "http://210.31.100.100/c++jpkc/anlijijin/案例1.files/image007.gif" \* MERGEFORMATINET
2.编译程序源文件
创建源程序成功后,接下来就是要对程序进行编译,将生成扩展名为.obj的二进制形式的目标程序。程序的编译过程主要是对程序代码中的语法和词法进行检查,如果程序在编译过程中系统发现语法和词法错误则不能生成目标程序,必须改正后重新进行编译。
如图1-7所示,选择【编译】菜单下【编译studentscore.cpp】选项,系统弹出如图1-8所示是否创建工作区对话框,选择“是”,接下来在弹出如图1-9所示的是否保存文件对话框中选择“是”,系统即可对源程序文件进行编译,编译结束后,则在系统输出窗口中显示编译结果,如图1-10所示。如果源程序中存在语法或词法错误,则在输出窗口中会显示错误个数和错误提示。这时必须对源程序进行改正后重新进行编译,只有所有错误都改正后编译才能通过并生成目标文件。
INCLUDEPICTURE "http://210.31.100.100/c++jpkc/anlijijin/案例1.files/image008.gif" \* MERGEFORMATINET
3.连接生成可执行文件
源程序编译成功后,接下来必须对目标程序进行连接,最终才能形成后缀为.exe的二进制可执行文件。
如图1-11所示,通过【编译】菜单下的【构件studentscore.exe】选项,对编译通过的目标文件进行连接,生成可执行文件studentscore.exe,连接结果如图1-12所示。
INCLUDEPICTURE "http://210.31.100.100/c++jpkc/anlijijin/案例1.files/image009.gif" \* MERGEFORMATINET
4.运行程序
INCLUDEPICTURE "http://210.31.100.100/c++jpkc/anlijijin/案例1.files/image010.gif" \* MERGEFORMATINET
目标程序通过连接生成可执行文件后,就可运行程序得到运行结果。如图1-13所示,通过菜单【编译】——【执行studentscore.exe】选项来运行刚刚生成的studentscore.exe程序,得到运行结果如图1-1所示。
五、案例实现
学生成绩查询程序源程序代码如下所示:
// *****************************************************************
// * studentscore.cpp 源文件
// *****************************************************************
#1. #include
#2. void main()
#3. {
#4. //函数avsco():求平均成绩
#5. //函数good():求平均成绩在90分以上或全部课程成绩在85分以上的优秀学
#6. //生
#7. //变量stunum:学生人数信息
#8. //数组num:学生学号信息
#9. //数组score:学生课程成绩信息
#10. //数组aver:学生平均成绩
#11. //数组course:课程信息
#12. void avsco(int stunum,float *,float *);
#13. void good(int stumun,char course[5][10],int num[],float *pscore,float aver[]);
#14. int i,j,stunum,*pnum,num[100];
#15. float score[100][5],aver[100],*pscore,*paver;
#16. char course[5][10],(*pcourse)[10];
#17. cout<<"input students number:"<>stunum; //输入学生人数
#19. cout<<"input course:"<>course[i]; //输入5门课程的名称
#23. cout<<"input NO. and scores:"<>*(pnum+i); //输入学生学号
#33. for (j=0;j<5;j++)
#34. cin>>*(pscore+5*i+j); //输入各门课程成绩
#35. }
#36. paver=&aver[0];
#37. cout<