上机实验

  • 格式:doc
  • 大小:47.50 KB
  • 文档页数:3

上机实验
1.实验一:使用VC++6.0编写C++程序
1.1. 实验目的
1.学习使用Visual C++6.0的开发环境,学习debug调试功能(单步执行、设置断点、观
察变量值)。

2.学习用Visual C++6.0编写简单的C++程序。

3.练习编辑和调试书上的例题。

4.掌握基本数据类型和表达式的应用、程序基本结构,学会编写简单的C++程序。

1.2. 实验任务
1.建立两个磁盘文件file1.dat和file
2.dat,编写程序实现以下工作:
1)在文件file1.dat中存放20个整数;
2)编写程序,从file1.dat文件中读出数据,按照从大到小的顺序排序,并将排序后的数据存放到文件file2.dat中。

(注:文件输入、输出可使用C语言的方式,也可使用C++的方式)
2.实验二:使用C++基本数据类型和表达式编写简单程序
2.1. 实验目的
1.通过上机学会查找、修改编译的错误,并掌握单步调试和设断点调试程序的方法。

2.进一步学习并掌握C++的基本数据类型、变量、常量和表达式的概念及使用方法。

3.学习C++的基本语句、条件语句、多分支语句、循环语句和输入输出语句的语法规则及
执行过程,理解并掌握简单的C++程序的三种结构(顺序、分支和循环)。

2.2. 实验任务
1.编写一个程序,从键盘输入三个整数,然后输出最大数。

2.编写一个程序,从文件中读取数据,输出最大值和最小值。

3.写一个程序计算汽车的耗油量。

让用户输入汽车行驶前和行驶后的里程表读数,以及行
驶前后油箱的油量。

计算使用的汽油使用量、行驶的里程以及每公里耗油量。

在显示器上打印这些值和相关的指示信息。

要求:运行时提示用户输入数据。

3.循环语句及数组的应用
3.1. 实验目的
1.加深理解循环的概念,掌握while语句、do-whike语句和for语句的循环规则及执行过程。

2.学习一维数组、二维数组和字符数组的概念和使用方法。

3.练习用C++的循环语句、数组编写简单的程序,掌握循环结构的设计和调试方法。

4.掌握循环嵌套的规则及多重循环的程序设计方法。

5.掌握break语句和continue语句的使用方法。

3.2. 实验任务
1.编写一程序,实现将一个字符串str1中的小写字母变为大写字母、大写字母保持不变的
方式存入另一个字符串str2中,并显示str1 和str2的内容。

2.编写一程序,使之完成下列功能。

要求:完成矩阵转换,输出转换前和转换后的矩阵。

矩阵转换后,计算主对角线数之和,并输出。

1 2 3 4 13 9 5 1
5 6 7 8————》14 10 6 2
9 10 11 12 15 11 7 3
13 14 15 16 16 12 8 4
3.从键盘输入10个常数32,56,78,9,21,70,26,90,66,88,编一程序将这十个数
按照从小到大的顺序显示出来。

4.编写一个程序,计算用户输入的10个数的倒数的和。

但是,如果用户输入0,则立刻终
止;如果输入1,则并不加入和数。

显示程序运行的结果。

5.输入两个数x和n,并计算如下序列前n项的和
223
++++++
x x x x x x
()()...
6.按照下面的模式显示。

同行间数的间隔用tab。

由用户决定打印的行数。

5
5 4
5 4 3
5 4 3 2
5 4 3 2 1
4.函数与数组的应用
4.1. 实验目的
1.进一步掌握数据类型变量和常量的应用、运算符与表达式的应用、程序基本结构的应用。

2.熟悉定义函数的方法、函数实参和形参的对应关系以及“值”传递的方式。

3.掌握全局变量和局部变量的概念和使用方法。

4.理解并运用调用、递归调用、内联、重载和默认参数的函数,掌握函数调用的内部实现
机制。

5.学会使用头文件,理解多文件结构,理解编译预处理的概念。

4.2. 实验任务
1.设计一个程序,从文件中读取一组数据,然后计算这组数据的均值和方差,并对这组数
按照从小到大的顺序进行排序。

要求:用average(int *data, int n), variance(int *data, int n), sorti(int *data, int n)函数实现上述功能。

2.从键盘输入一个三位数abc,从左到右用a、b、c表示各位的数字,现要求编一个函数,
完成逆序输出这三位数,即输出另一个三位数cba,例如:输入123,输出321。

(算法提示:a=n/100;b=(n-a*100)/10;c=(n-a*100)%10;m=(c*100+b*10+a)。

5.类与对象
5.1. 实验目的
1.掌握声明、定义类和成员函数的方法及对成员函数的访问方法。

2.掌握构造函数、析构函数以及类成员访问权限等相关概念。

3.理解对象的概念,掌握对象的定义、对象的初始化和赋值的方法。

4.了解成员函数的特性、类的作用域及对象生存期等概念。

5.了解结构化编程和面对对象编程的方法和两者的区别,领会面向对象程序设计的方法。

6.学会使用静态数据成员和静态成员函数。

5.2. 实验任务
1.看懂书上所给出的典型例题,并在其上进行简单的修改,体会并理解本章涉及到的内容
在实际解决问题中的应用。

2.建立Complex类,执行复数的数学运算。

并写程序测试该类。

复数成员包括实部(realPart)
和虚部(imaginaryPart)。

用Double型变量表示类的私有数据。

提供可以初始化的构造函数。

在没有初始值时,构造函数应有默认值(如0+0i)。

公有成员函数完成如下任务:
a. 两复数相加。

b. 两复数相减。

c. 两复数相乘。

d. 打印复数,格式为(real,image),其中real表示实部,image表示虚部。

提示用户输入两个复数,执行复数的加、减、乘运算,并输出运算结果。

3.建立一个Time类,将当前时间存储为time_t(某种整型的别名)类型的数。

构造函数取
一个参数作为初始值,设置内部时间。

参数有默认值time(0)(该时间函数在<ctime>中定义,0表示使用当前时间)。

定义getter函数得到当前时间,和setter函数用于改变当前时间。

6.面向对象程序设计
6.1. 实验目的
1.掌握类的继承与派生,以及基类成员访问限制。

2.掌握基类和派生类构造函数、析构函数相关概念。

3.理解多态性的概念,了解虚函数的作用。

4.了解多继承和虚拟继承、纯虚函数等概念。

5.了解结构化编程和面对对象编程的方法和两者的区别,领会面向对象程序设计的方法。

6.2. 实验任务
1.写一个程序,定义抽象基类Shape和它的派生类Circle、Rectangle、Triangle,用一个函
数printArea分别输出以上三者的面积,3个图形的数据可在定义时给出。