高级程序设计应用实验指导书
软件工程教研室
辽宁工业大学院 2011年3月
目录
实验一 结构体 ...................................................................................................... 1 实验二 实验三 实验四 实验五 实验六 实验七 类 ................................................................................................................... 3 指针(一) ........................................................................................ 5 指针(二) ........................................................................................ 9 链表 ........................................................................................................... 11 输入输出流 ...................................................................................... 13 综合编程 ............................................................................................. 15
实验一 结构体
一、实验目的
1. 掌握结构体类型及结构体变量的定义方法。
2. 掌握结构体数组的定义,每个数组元素中各成员的访问方法。 3. 掌握用typedef定义类型。 4. 掌握结构体变量作为函数的参数。 5. 掌握返回结构体类型值的函数。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统,VC++6.0。
三、实验内容
将学生的基本信息定义为如下的结构体: typedef struct { int num;
char name[20]; int age; int score; }student;
1.读入5名学生的基本信息(学号,姓名,年龄,成绩),定义一个函数,按学号检索该学生的所有信息。
2.读入5名学生的基本信息(学号,姓名,年龄,成绩),将其按成绩进行排序,
输出排序后所有学生的基本信息。
3.定义一个结构体数组,内含四个数组元素,每个元素用来存储一个学生的基本信息(学号,姓名,年龄,成绩),每个元素定义为如上的student类型,要求将输入结构体数组元素的功能用一函数getelement实现,该函数的返回值为一结构体类型即student类型。
四、实验要求
⒈ 程序1用结构体数组实现,每个学生基本信息定义为相应的结构体类型student,且检索不成功时,需给出相应的提示信息。
⒉ 程序2中的排序操作定义为一个子函数实现,用结构体数组作为函数参数。 3. 实现程序3的功能,体会结构体与函数的关系。
五、报告要求
1.报告要求用专门的实验报告纸书写,字迹清晰,格式规范。
2.实验实验报告的格式形式应统一。封面应包括:课程名称、实验名称、名称、专业班级、姓名、学号、实验日期。
3.报告要规范,应包括:实验名称、实验目的、实验要求、实验内容、源程序、实验的运行结果、结果分析及心得体会。
4.实验报告中应书写源程序,且源程序中要有注释。
5.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果;如未调试通过或结果不正确,试分析原因。
6.报告最后包含实验总结和体会。
实验二 类
一、实验目的
1. 掌握类的概念及定义类的方法。 2. 掌握类的成员函数的定义和使用方法。 3. 掌握对象的概念和使用方法。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统,VC++6.0。
三、实验内容
1.编写程序,设计一个People类,数据成员包括编号、姓名、性别、身份证号。用成员函数实现对人员信息的录入和显示。
2.编写程序,定义一个Book类,数据成员包括书号、书名、作者、出版社,函数成员包括4个成员的输入和输出两个函数。在主函数中定义一个Book类对象,完成输入、输出函数的测试。
四、实验要求
1. 调试程序1,分析该程序的功能。 2. 调试程序2,分析类与结构体的异同。
五、报告要求
1.报告要求用专门的实验报告纸书写,字迹清晰,格式规范。
2.实验实验报告的格式形式应统一。封面应包括:课程名称、实验名称、名称、专业班级、姓名、学号、实验日期。
3.报告要规范,应包括:实验名称、实验目的、实验要求、实验内容、源程序、实验的运行结果、结果分析及心得体会。
4.实验报告中应书写源程序,且源程序中要有注释。
5.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果;如未调试通过或结果不正确,试分析原因。
6.报告最后包含实验总结和体会。
实验三 指针(一)
一、实验目的
1.掌握指针的概念及指针的定义和使用方法。 2.掌握指针与数组的关系。 3.掌握指针与函数的关系。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统,VC++6.0。
三、实验内容
1.调试并运行下面程序,写出运行结果。 1)void f (int *p)
{*p=10;} void main( ) {int x ; f (&x); cout<<x;}
2)void main( ) { int a,b; int p,p1,p2;
cin>>a>>b; p1=&a;p2=&b;
if(a<b) {p=p1;p1=p2;p2=p;} cout<< a<< \t << b<<endl; cout<< *p1<< \t << *p2<<endl; cout<< p1<< \t <<p2<<endl; }
3)void main( ) { int a,b;
void swap(int *p1,int *p2); cin>>a>>b;
if(a<b) swap(&a, &b ); cout<< a<< \t << b<<endl; }
void swap(int *p1,int *p2) {int *p;
p=p1;p1=p2;p2=p;
cout<< *p1<< \t << *p2<<endl; }
4)void main( ) { int a[ ]={1,2,3,4,5}; int y=0, i ,*p; p=&a[1]; for(i=0;i<3;i++) y+=*(p+i); cout<<y<<endl; }
5)void sub(char *s,char *t) {static int k=3; *t=s[k]; k++;} void main( )
{char str[80]=“ABCDEFGHI”,c; int i;
for(i=0;i<3;i++) {sub(str ,&c); cout<<c; } }
2.应用指针编程: 输出一维数组中元素的平均值。 3.编程测试下列各表达式的运算。
①*p++ ② *++p ③ (*p)++ ④ --*p++ 例如:用下面程序测试*p++。 void main( )
{ int a[ ]={1,2,3,4,5}; int *p; p=a;
cout<<*p<<endl; cout<<*p++<<endl; cout<<*p<<endl; }
四、实验要求
1.分析实验内容1中各程序的运行结果。 2.完成实验内容2的程序设计。 3.分析实验内容3中各表达式的结果。
五、报告要求
1.报告要求用专门的实验报告纸书写,字迹清晰,格式规范。
2.实验实验报告的格式形式应统一。封面应包括:课程名称、实验名称、名称、专业班级、姓名、学号、实验日期。
3.报告要规范,应包括:实验名称、实验目的、实验要求、实验内容、源程序、实验的运行结果、结果分析及心得体会。
4.实验报告中应书写源程序,且源程序中要有注释。
5.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果;如未调试通过或结果不正确,试分析原因。
6.报告最后包含实验总结和体会。
实验四 指针(二)
一、实验目的
掌握利用指针进行程序设计。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统,VC++6.0。
三、实验内容
应用指针编程:
1.输入10个整数,将其中最小的数与第一个数对换,最大的数与最后一个数对换。(要求写3个函数①输入函数;②处理函数;③输出函数。)
2.对字符串“abcdefghigk”逆置。 3.对输入的5个整数实现由小到大排序。
4.有一个整型二维数组,大小为m×n,计算各元素之和并找出最大值及其所在的行和列。(分别用sum和max函数实现)
5.有5个字符串: “JAPAN”, “CHINA”, “U.S.A”, “INDIA”“ENGLAND”,要求按字母由大到小的顺序输出这4个字符串 (用指针数组处理) 。
四、实验要求
⒈ 利用指针实现上述题目。
⒉ 体会指针与字符串、指针与数组的关系。
五、报告要求
1.报告要求用专门的实验报告纸书写,字迹清晰,格式规范。
2.实验实验报告的格式形式应统一。封面应包括:课程名称、实验名称、名称、专业班级、姓名、学号、实验日期。
3.报告要规范,应包括:实验名称、实验目的、实验要求、实验内容、源程序、实验的运行结果、结果分析及心得体会。
4.实验报告中应书写源程序,且源程序中要有注释。
5.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果;如未调试通过或结果不正确,试分析原因。
6.报告最后包含实验总结和体会。
实验五 链表
一、实验目的
1.掌握链表的定义和特点。
2.掌握先进先出链表和后进先出链表的建立方法。 3.掌握对于链表中各个结点的访问方法。 4.掌握链表的综合操作,实现链表的灵活应用。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统,VC++6.0。
三、实验内容
1.建立一个存放学生信息(学生的基本信息包括:学号,姓名,年龄,成绩)的链表A。
2.访问链表A中节点的信息。 3.实现链表A的逆置。
4.再建立一个与链表A结构相同的链表B,并将A和B合并为一个链表。
四、实验要求
⒈ 完成实验内容1和2。
⒉ 将实验内容3中的逆置操作定义为相应的子函数实现。
3. 验证实验内容4中链表合并的正确性。
五、报告要求
1.报告要求用专门的实验报告纸书写,字迹清晰,格式规范。
2.实验实验报告的格式形式应统一。封面应包括:课程名称、实验名称、名称、专业班级、姓名、学号、实验日期。
3.报告要规范,应包括:实验名称、实验目的、实验要求、实验内容、源程 序、实验的运行结果、结果分析及心得体会。 4.实验报告中应书写源程序 ,且源程序中要有注释。
5.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果;如未调试通过或结果不正确,试分析原因。
6.报告最后包含实验总结和体会。
实验六 输入输出流
一、实验目的
1.掌握流的概念。
2.掌握文件以及文件系统、文件指针的概念。 3.学会使用文件打开、关闭、读、写等文件操作函数。
二、实验环境
1.硬件:每个学生需配备计算机一台。 2.软件:Windows操作系统,VC++6.0。
三、实验内容
1.设计程序,把保存在磁盘中的一个C++源程序(类型名为.cpp)复制到一个同文件名,类型名为.txt的文本文件。
2.把一个5×5的矩阵数据写入到二进制文件ma1.dat中,然后从该文件中读出数据并输出到屏幕。
四、实验要求
1. 验证程序1的正确性。
2. 比较二进制文件与文本文件的异同。
五、报告要求
1.报告要求用专门的实验报告纸书写,字迹清晰,格式规范。
2.实验实验报告的格式形式应统一。封面应包括:课程名称、实验名称、名称、专业班级、姓名、学号、实验日期。
3.报告要规范,应包括:实验名称、实验目的、实验要求、实验内容、源程序、实验的运行结果、结果分析及心得体会。
4.实验报告中应书写源程序 ,且源程序中要有注释。
5.报告中应包含运行结果及结果分析。如调试通过,请注明‘通过’并写出输入的数据及运行结果;如未调试通过或结果不正确,试分析原因。
6.报告最后包含实验总结和体会。