C++实验报告一

实验一 C++基础的应用

(实验课时:2  实验性质:设计)

实验名称:  C++基础的应用

实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。

(2)练习C++函数的定义及使用;

(3)练习C++数组的定义及使用;

(4)练习C++指针的定义及使用;

(5)练习C++结构体的定义及使用;

(6)练习多文件的程序的编译和运行方法;

实验设备: (1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);

(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。

实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;

(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和 int max( int a, int b,int c)。

(3)编程2:编写一个程序c2.cpp,求: a!+ b! + c!的值。要求:使用递归函数。主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;

(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;

(5)编程4:建立一个动态链表并进行输出和删除管理。链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。

(6)使用debug调试功能:追踪第2个程序中函数的运行。

(7)思考:

在第2个程序中,如果a,b,c的值较大,则显示的结果会怎样?这时如何解决此问题?

(提示:显示的结果会不对,可能还会是负数,定义一个数组来存放最后结果。)

实验要求: (1)掌握Visual C++6.0开发环境的常用功能及使用,能进一步使用Visual C++6.0的debug调试功能:单步调试、设置断点等;

(2)掌握C++函数的定义及使用,掌握函数的嵌套调用和递归调用的方法;

(3)掌握C++数组、指针、结构体的定义及使用;

(4)掌握多文件的程序的编译和运行方法;

(5)程序格式规范,程序运行正确;

(6)认真书写实验报告,如实填写各项实验内容。

实验步骤: (1)启动Visual C++6.0开发环境;

(2)熟悉Visual C++6.0编译系统的常用功能;

(3)在file菜单中,新建C++源程序c1.cpp;

(4)编辑C++源程序文件c1.cpp的内容。

(5) 编译c1.cpp,系统会提示是否创建工程(由于前面没有创建工程),选择“是”。则创建一个工程;

(6)程序编译正确时,则可建立可执行程序;

(注意观察每步的结果)

(7)运行可执行文件;

(8)关闭工作空间。

(9)对编程2,在file菜单中,新建C++源程序cpp2_1;

(10)编辑C++源程序文件cpp2_1的内容;

(11)编译cpp2_1,系统会提示是否创建工程(由于前面没有创建工程),选择“是”,则创建工程;

(12)在file菜单中,新建C++源程序cpp2_2;

(13)编辑C++源程序文件cpp2_2的内容;

(14)编译文件cpp2_2时,系统提示是否加入到此工程,选择“是”,则把文件cpp2_2加入到该工程中。

(15)编译和运行此程序,并注意观察每步的结果。

(16)使用调试功能:运行到光标处、单步跟踪、查看变量值。

(17)使用关闭工作空间。

(18)参照上述方法,完成编程3和编程4。

注意:若编译时出错:“fatal error c1010:unexpexted end of file while looking for precompiled header directive.”;

该文件需要包含头文件:stdafx.h,即在开头有语句:#include “stdafx.h”

思考题:假如已建立了两个C++源程序c1.cpp和c2.cpp。先用open打开c1.cpp,并完成了编译、连接和运行,再打开c2.cpp,对它进行编译和连接。此时会出现什么问题?原因何在?怎样解决?

程序一

------》源代码:

 1 #include "iostream.h"
 2
 3 int max(int a,int b)
 4 {
 5     if(a>b)
 6         return a;
 7     else
 8         return b;
 9 }
10
11 int max(int a ,int b,int c)
12 {
13     if(a>=b&&a>=c)  return a;
14     if(b>=a&&b>=c)  return b;
15     if(c>=a&&c>=b)  return c;
16 }
17
18 main()
19 {
20     int a,b,c,t1,t2;
21
22
23     cout<<"a="; cin>>a;
24     cout<<"b="; cin>>b;
25     cout<<"c="; cin>>c;
26
27     t1=max(a,b);
28     t2=max(a,b,c);
29
30     cout<<"t1="<<t1<<endl;
31     cout<<"t2="<<t2<<endl;
32 }

-------》分析总结:

1、重载函数:在同一命名空间内,可以允许不同函数有相同的名字。要求是这些函数在“参数个数”或“参数类型”这两方面至少有一个不一样。

程序二

-----------》源代码:

 1 //功能函数(递归)
 2 #include "iostream.h"
 3
 4 double fact(int n)
 5 {
 6     double result;
 7     if(n==1||n==0)
 8         result=1;
 9     else
10         result=n*fact(n-1);
11     return result;
12 }
13 //主函数
14 #include "iostream.h"
15
16 main( )
17 {
18     double fact(int n);
19     int sum,a,b,c;
20     cout<<"a="; cin>>a;
21     cout<<"b="; cin>>b;
22     cout<<"c="; cin>>c;
23     sum=fact(a)+fact(b)+fact(c);
24     cout<<"sum="<<sum;
25 }

---------》分析总结:

1.递归函数:此函数两个关键点是——递归出口、递归式子。递归出口是判断什么时候停止递归的关键;递归式子关键靠找规律如何自己调用自己。

2.文件、工程:

程序三

----------》》源代码:

 1 //有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号.
 2
 3 #include "iostream.h"
 4
 5 main( void )
 6 {
 7
 8     int a[3][4];
 9     int i,j,max,line=0,list=0;
10
11     for(i=0;i<3;i++)
12     {    for(j=0;j<4;j++)
13         {
14             cout<<"请输入第["<<i<<"]"<<"["<<j<<"]矩阵值:";
15             cin>>a[i][j];
16         }
17     }
18 //改进后的----------------------------------------------------------------------------------------------
19     cout<<"please input no.1 line:"<<endl;
20     for(j=0;j<4;j++)
21           cin>>a[0][j];
22     cout<<"please input no.2 line:"<<endl;
23     for( j=0;j<4;j++)
24            cin>>a[1][j];
25     cout<<"please input no.3 line:"<<endl;
26     for( j=0;j<4;j++)
27            cin>>a[2][j];
28 //----------------------------------------------------------------------------------------------------
29   for(i=0;i<3;i++)
30         for(j=0;j<4;j++)
31         {
32             if(a[i][j]>=a[line][list])
33             {
34                 line=i;
35                 list=j;
36             }
37         }
38     max=a[line][list];
39     cout<<"max="<<max;
40     cout<<"line="<<line+1;
41     cout<<"list="<<list+1<<endl;
42    return 0;
43 }
44 //增加一个显示出矩阵的功能:并添加了一些\t\n等的应用,使得界面更好看)
45 cout<<endl;
46 for(i=0;i<3;i++)
47     {    for(j=0;j<4;j++)
48     {
49             cout<<a[i][j];
50             cout<<"\t";
51     }
52         cout<<"\n";
53     }

--------》分析总结:

1、多理解和用一些endl、\t,\n这些,使得界面的显示效果达到最优。

--------》运行结果:

时间: 2024-10-15 12:12:12

C++实验报告一的相关文章

广外第二周的实验报告来这里分享一下

虽然有很多还不知道怎么改,可能也有很多测试不到的地方,但是通过这个星期我好歹了解了好多东西啊 实验报告 通过本次学习,能了解到VC6.0.是用于将已生成的C++语言源程序代码转换为计算机能读懂的目标代码,计算机用的均是二进制代码.编辑完成后它首先生成扩展名为obj的文件(程序编译后的二进制文件),若想进行之后的链接.运行过程,必须不断修改源程序文件至完全正确. 在文件→新建→源代码这里可以新建源代码:新建→打开项目或文件中可以打开以前写过的源代码或者程序:运行→编译中即把所打源文件转换为二进制代

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

词法分析实验报告

词法分析实验报告 一.        实验目的 编制一个词法分析器,通过该词法分析程序的设计实例,进一步了解词法分析程序构造的一些细节. 二.        实验内容和要求 实验内容: 对字符串表示的源程序,从左到右进行扫描和分解.根据词法规则,识别出一个一个具有独立意义的单词符号,以供语法分析之用,若发现词法错误,则返回出错信息. 实验要求: 输入:源程序字符串 输出:二元组(种别,单词本身) 待分析语言的词法规则 三. 实验方法.步骤及结果测试 源程序名:压缩包文件(rar或zip)中源程序

DAY01 WINDOWS 实验报告

DAY 01   Windows 实验一 实验名称:虚拟机的安装以及win7系统的安装 实验描述:学习安装虚拟机,以及安装不同的系统,可以满足用户不同时期的不同的需求 实验步骤: 步骤1:点击开始-选择vmware文件夹-点击Vmware Workstation                             步骤2:点击文件-新建虚拟机-下一步-选择客户机操作系统和版本-选择虚拟机安装位置-设置虚拟机的处理器.内存等信息-完成虚拟机裸机的安装 步骤3:点击编辑虚拟器-双击CD/DVD(

DAY02 WINDOWS 实验报告

实验一 实验名称: ghost做系统的备份与还原 实验描述:对系统进行备份,可以使用户在电脑中病毒或出故障后,可以还原到一个比较纯净的系统环境 实验步骤: 步骤1:点击编辑虚拟机设置-CD/DVD-选择镜像文件-选择超级急救箱 步骤2:启动虚拟机-进入资源管理器-运行超级急救箱安装文件 步骤3:重启系统-选择超级急救箱-选择ghost32 for winpe 步骤4:进入PE系统以后,点击ghost32程序-选择local->partition->To image-下一步-选择要备份的分区-选

数据结构与算法 第四次实验报告 图

数据结构与算法 第四次实验报告 姓名:许恺 学号:2014011329 班级:计算机14-1     中国石油大学(北京)计算机科学与技术系 1.图的定义,文件为"Graph.h" #ifndef GRAPH_H//定义头文件 #define GRAPH_H #include<string>//引入标准库中的头文件 using namespace std; const int MaxSize=12; struct ArcNode//定义边表结点 { int adjvex;/

《信息安全系统设计基础》第二次实验实验报告

<信息安全系统设计基础>实验二实验报告 实验报告封面 实验目的与要求 解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux 环境下串行程序设计的基本方法. 掌握终端的主要属性及设置方法,熟悉终端I /O 函数的使用.学习使用多线程来完成串口的收发处理. 熟悉linux开发环境,学会基于S3C2410的linux开发环境的配置和使用.使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程 实验步

《信息安全系统设计》第四次实验报告

实验报告:外设驱动设计 小组成员 :20145306张文锦,20145334赵文豪,20145331魏澍琛. 实验仪器:windows xp,arm开发板. 实验内容.步骤与体会 1. 进入/arm2410cl/exp/drivers/01_demo,使用vi 编辑器阅读理解源代码. 2. Makefile 中有两种编译方法,可以在本机上使用gcc:也可以使用交叉编译器进行编译. 如果编译的时候出现问题,需要是在/usr/src 下没有建立一个linux 连接,可以使用下面的命令:[[email

20145301《Java程序设计》实验报告一:Java开发环境的熟悉

20145301<Java程序设计>实验报告一:Java开发环境的熟悉 课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一律得0分)以及分析(从中可以得到什

20145216史婧瑶《Java程序设计》第一次实验报告

实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一