发布时间 : 星期六 文章《程序设计基础(C++)》实验教程更新完毕开始阅读61884a2e08a1284ac950434d
实验六 结构和联合类型以及编译预处理
1.实验目的要求
(1) 掌握结构类型变量、联合类型变量的定义和使用,以及两者在内存中分配空间时的
区别。
(2) 掌握结构类型数组的概念和使用。
(3) *掌握链表的概念,初步学会对链表进行查找、插入、删除、排序等操作。 (4) 掌握宏定义、文件包含、条件编译的方法。
2.实验内容
(1) 阅读下面程序,写出其运行结果。
<1>
#include
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
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 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<
void main() { Time one, two, three; cout<<\ one.get_time(); cout<<\ two.get_time(); three.add_time(one,two); cout<<\ three.display_time();