《程序设计基础(C++)》实验教程 联系客服

发布时间 : 星期六 文章《程序设计基础(C++)》实验教程更新完毕开始阅读61884a2e08a1284ac950434d

实验六 结构和联合类型以及编译预处理

1.实验目的要求

(1) 掌握结构类型变量、联合类型变量的定义和使用,以及两者在内存中分配空间时的

区别。

(2) 掌握结构类型数组的概念和使用。

(3) *掌握链表的概念,初步学会对链表进行查找、插入、删除、排序等操作。 (4) 掌握宏定义、文件包含、条件编译的方法。

2.实验内容

(1) 阅读下面程序,写出其运行结果。

<1>

#include union pw {

int i ;

char ch[ 2 ] ; }a;

void main() {

a.ch[ 0 ] = 13 ; a.ch[ 1 ] = 0 ;

cout << “size=” << sizeof(a) << ?\\n? << “a.i=” << a.i ; } <2>

#include #define LETTER 0

void main() { char str[ 20 ] = ”C Language” , c ; int i = 0 ; while ( (c = str[ i ] ) != ?\\0? ) {

i ++ ; #if LETTER if ( c >= ?a? && c <= ?z? ) c = c – 32 ; #else

if ( c >= ?A? && c<= ?Z? ) c = c + 32 ; #endif cout << c ; } }

(2) 请原样录入下面两个程序并调试运行,注意程序编译时错误、错误的位置及产生错误的原因,并加以改正,检查程序运行结果是否正确,若不正确请修改。

程序1:

#include #define PI 3.1415926;

#define AREA(r) PI * r * r;

int main() {

double radius, s;

cout << \ cin >> radius; s = AREA(radius);

cout << \ s = AREA( radius + 1 );

cout << \ return 0; }

程序2:

#include

const float Pi = 3.1415.926;

inline float area(const float r) {return Pi * r * r;}

int main() {

double radius, s;

cout << \ cin >> radius; s= area(radius);

cout <<\ s= area(radius+1);

cout <<\ return 0; }

(3)编写程序实现下列问题的求解。

<1> 在某系的成绩登记册中,每个班最多有40个学生,每份成绩表中的成绩信息包括:学号(9位字符),姓名(8位字符),成绩(百分制),备注(20位字符)。设计程序以处理一个班级的成绩信息,包括输入、输出、查询(给定分数以上或以下的学生信息)、按分数排序等。

<2> *建立一个链表,存储上题所需数据,并实现相同功能。 <3> 定义一个带参数的宏,是两个参数的值互相交换。在主函数中输入来个数作为使用宏的参数,输出交换后的两个值。(说明:在程序主函数使用宏时,只能用两个参数,如swap(a,b),不能用三个参数)

3.思考题

在本实验内容(3)- <1>习题中,若要求成绩部分不仅可以是百分数,而且也可能是五分制(优、良、中、及格和不及格),应如何存储数据以及处理?

实验七 类与对象

1.实验目的要求

(1) 掌握类的定义和实现。

(2) 掌握对象创建及使用的基本方法。

2.实验设备

硬件环境:微型计算机 软件环境:

操作系统: Windows 语言环境: Visual C++

3.预习要求

学习教材有关类的定义与实现、对象创建与应用等有关内容,对实验基本要求应在上机实验前仔细阅读,程序应事先编制完成,上机时录入调试,同时还应设计相应的测试用例集,检查程序的正确性、可靠性、完备性和容错能力。

4.实验内容

(1)下面程序定义了一个以hours, minutes和seconds作为数据成员的Time类。设计了成员函数将两个Time对象相加(即时间相加),并进行相应的检查,查看增加的分钟数及秒数是否大于59。如果秒数大于59,则分钟数向前递增1。类似地,如果分钟数大于59,

则小时数向前增1。

#include

class Time {

private: int hours, minutes, seconds; public: void get_time() { cin>>hours>>minutes>>seconds; } void display_time() { cout<=60) { seconds-=60; minutes++; } if(minutes>=60) { minutes-=60; hours++; } } };

void main() { Time one, two, three; cout<<\ one.get_time(); cout<<\ two.get_time(); three.add_time(one,two); cout<<\ three.display_time();