《C程序设计实验指导书》.docx

上传人:b****6 文档编号:6094272 上传时间:2023-01-03 格式:DOCX 页数:14 大小:29.22KB
下载 相关 举报
《C程序设计实验指导书》.docx_第1页
第1页 / 共14页
《C程序设计实验指导书》.docx_第2页
第2页 / 共14页
《C程序设计实验指导书》.docx_第3页
第3页 / 共14页
《C程序设计实验指导书》.docx_第4页
第4页 / 共14页
《C程序设计实验指导书》.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

《C程序设计实验指导书》.docx

《《C程序设计实验指导书》.docx》由会员分享,可在线阅读,更多相关《《C程序设计实验指导书》.docx(14页珍藏版)》请在冰豆网上搜索。

《C程序设计实验指导书》.docx

《C程序设计实验指导书》

C程序设计实验指

导书

〈〈C++g序设计实验指导书》

市级精品课程〈〈VC++W面向对象技术》课程组

-9-1

实验一顺序与分支结构程序设计错误!

未定义书签

实验二循环结构程序设计错误!

未定义书签

实验三一维数组及应用错误!

未定义书签

实验四指针及应用错误!

未定义书签

实验五结构体及应用错误!

未定义书签

实验六类的定义及使用错误!

未定义书签

实验七类的继承和派生错误!

未定义书签

实验八多态性及应用错误!

未定义书签

实验一顺序与分支结构程序设计

一、实验目的

1、了解和使用VC集成开发环境;

2、熟悉VC环境的基本命令和功能键;

3、熟悉常见的功能菜单命令;

4、掌握顺序结构程序设计;

5、掌握分支结构程序设计。

二、实验内容

1.使用VisualC++6.0集成环境来编辑、编译并运行程序:

#include

intmain()

{/*定义部分和执行部分分开*/

doubler=1.57,pi=3.1415926;

printf("area=%f\n",pi*r*r);/*输出圆面积*/

printf("circumference=%f\n",2*pi*r);

return0;

}

2.输入一个年份,判断该年份是否闰年,如果是就输出YES否则

输出NO。

3.输入3个数a,b,c,要求按由小到大的顺序输出

三、实验步骤

/MicrosoftVisualStudio6.0/MicrosoftVisualC++6.0得到Visual

 

1、创立新工程

(1)单击菜单“文件/新建”,显示新建:

对话框,如图1-2所示。

(2)在此对话框的列表栏中,选择“Win32ConsoleApplication

(Win32控制台应用程序”)。

在工程”栏中输入一个工程名,如

实验一。

在位置文本框中选择工程所在的路径,如图中所示H:

\C++实验实验一。

单击确定”按钮。

(3)在强击的“Win32ConsolApplication-Step1ofT对话框中选

择Anemptyproject单选项。

然后单击“Finis成钮,如图1-3所

过程。

2、创立C++源程序文件

(1)编辑C++源程序编辑C++源程序时,选择文件”菜单项,出

现一个下拉式菜单,如图1-4所示,再选择该菜单中的新建”选

项(热键为Ctrl+N)。

打开新建”窗口,在新建”窗口。

(2)选择攵件”,在它的下拉列表框中选择“C++SourceFile如

图1-4所示,再按击确定”,出现编辑屏幕,如图1-5所示

(3)在“C+源程序编辑”窗口下编辑C++源程序。

在编辑窗口键

3.编译连接和运行源程序

(1)选择菜单项编译”,出现编译”的下拉菜单,在该下拉式菜

单中选择编译eg1-1.cpp'菜单项,这时系统开始对当前的源程序

进行编译,在编译过程中,将所发现的错误显不■在屏幕下方的编

译”窗口中。

所显示的错误信息中指出该错误所在行号和该错误的

性质。

用户可根据这些错误信息进行修改。

上述程序的编译”窗

口,如图1-7所示。

(2)编译无错误后,可进行连接生成可执行文件(.exe),这时

选择编译”下拉菜单中的构件eg1-1.exe'选项。

编译”窗口出现

如图1-8所示的信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。

列Configuratiom:

rg11Vin3ZDebug三

』Linking...

-exe-Serrorts]rAwarining(s)

Ready[Ln6.CollREC|tOLOVRREAD

图1-8编译连接信息

(3)执行可执行文件的方法是选择编译”菜单项中执行eg1-

1.exe选项。

这时,运行该可执行文件,并将结果显示在另外一个

4.关闭打开工作区、打开工作区

单击菜单“文件/关闭工作区”,关闭工作区单击菜单“文件/打开工作区”,在强出的对话框中选定

\C++实验实验一实验一.dsw”,单击打开”按钮,则可打开工作区,对已建立的工程文件进行修改。

5.根据实验步骤1-4,建立、编译并运行实验程序2。

四、实验要求

1.复习教材有关内容。

2.掌握VC控制台应用程序的开发、调试步骤。

3.完成实验报告。

实验二循环结构程序设计

一、实验目的

1、熟悉掌握for语句实现循环的方法。

2、熟悉掌握while语句实现循环的方法。

3、熟悉掌握do••while语句实现循环的方法。

4、掌握在程序设计中用循环的方法实现一些常见的算法。

二、实验内容

1、打印出如下图案。

*

***

******

********

******

***

*

2、古典问题:

有一对兔子,从出生后第3个月起每个月都生

一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔

子都不死,问前10个月的兔子总对数各为多少?

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

实验三一维数组及应用

一、实验目的

1、掌握一维数组的定义、赋值和输入输出。

2、掌握字符数组和字符串函数的使用。

3、掌握与数组有关的简单算法。

二、实验内容

1、求数组中小于零的数据之和,将程序补充完整并运行。

#include

voidmain()

intnum[]={2,-23,61,9,-15,7,57,100,-1,-36,94,6,77,-8,13};

inti,sum=0;

for(i=0;i<15;i++)

if()sum=;

printf("sum=%d\n",sum);

}

2、下面程序中的数组a包括10个整数元素,从a中第2个元

素起,分别将后项减前项之差存入数组b,并按每行3个元素输

出数组bo将程序补充完整并运行。

#include

voidmain()

{

inta[10],b[10],i;

for(i=0;;i++)scanf("%d”,&a[i]);

for(;i<10;i++)b[i]=a[i]-a[i-1];

for(i=1;i<10,i++)

{

printf("%3d”,b[i]);

if()printf("\n");

}

}

3、运行下面的程序,从键盘输入AhaNAAha表回

车),则程序运行结果是什么?

#include

#include

voidmain()

{

chars[100],c='a';

inti=0;

scanf("%s”,s);

while(s[i]!

='\0')

{

if(s[i]==c)s[i]=s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;

}

puts(s);

}

4、编程序并上机调试以下程序:

(1)采用“选择法”对任意输入的10个整数按由大到小的顺序排序。

(2)由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符。

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

完成实验报告和上交程序。

实验四指针及应用

一、实验目的

1、掌握指针变量的定义与引用。

2、熟练使用数组指针、字符串指针编写应用程序。

二、实验内容

1、写一函数,求一个字符串的长度。

实验步骤与要求:

⑴本部分练习要求全部用指针完成。

⑵在main函数中输入字符串,并输出其长度。

(3)本题不能用strlen()函数。

方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的

字符串的首地址赋值给pstr,然后调用求字符串长度的函数

strlenth(char*p),得到字符串的长度。

在函数strlenth(char*p)

中,判断*p是否为\0‘,则进行len++的操作,直到遇到\0'为止。

然后返回len值。

求字符串长度的函数strlenth(char*p)算法如下:

(1)定义intlen=0;

(2)当*p!

=‘\0'时,重复执行以下(3)和(4),否则转(5)。

(3)en=len+1

⑷P++

(5)return(len)

2、编写一个函数,将数组中n个数按反序存放。

实验步骤与要求:

⑴在主函数中输入10个数,并输出排好序的数。

⑵编写函数invert()将10个数按反序存放。

2、设计一个函数,调用它时,每次实现不同的功能:

(1)求两个数之和。

⑵求两个数之差。

⑶求两个数之积。

实验步骤与要求:

(1)在主函数中输入2个数a,b,并输出a,b的和,差和乘积。

⑵分别编写函数add()、sub()、mul()计算两个数的和、差、积。

(3)编写函数process。

,分别调用函数add()、sub()、mul()。

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

实验五结构体及应用

一、实验目的

1、掌握结构体、共用体类型说明和变量的使用方法。

2、掌握链表的操作。

3、学会使用typedef白定义数据类型。

二、实验内容

1、有8名学生,每个学生包括学号、姓名、语文成绩、数学

成绩、计算机成绩、平均分和总分,要求根据各科成绩计算总分

和平均分,并按总分递增排序并输出。

其中:

(1)学生信息的输入和输出在主函数中实现。

⑵按总分递增排序在sort_incr函数中实现。

2、某高校图书馆建立一个读者登记表,每个人都包括姓名、

性别、年龄和职业4部分,另外还包括一个变体部分,即对学生

包括班级,对教职工要包括单位。

试编写程序输入5个人的数据

信息,输出教职工的人数和每个学生的姓名和年龄。

3、建立一个链表,每个节点包括:

学号、姓名、性别、年

龄。

输入一个年龄,如果链表中的节点包含的年龄等于此年龄,

则将此节点删去。

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

实验六类的定义及使用

一、实验目的

1、掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;

2、掌握类对象的定义;

3、理解类的成员的访问控制的含义,公有、私有和保护成员

的区别;

4、掌握构造函数和析构函数的含义与作用、定义方式和实

现,能够根据要求正确定义和重载构造函数。

能够根据给定的要求定义类并实现类的成员函数。

二、实验内容

1、定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。

同时编写主函数使用这个类,实现对学生数据的赋值和输出。

要求:

(1)使用成员函数实现输入、输出;

(2)使用构造函数和析构函数实现对数据的输入、输出;

(3)编写主函数,定义对象,完成相应功能。

2、定义日期类型Date。

要求有以下面成员:

(1)能够设置日期;

(2)日期加一天操作;

(3)输入函数,输入格式为“XXXX年XX月XX日”;

(4)编写主函数,定义对象,完成相应功能。

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

实验七类的继承和派生

一、实验目的

1、理解继承的含义,掌握派生类的定义方法和实现;

2、理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;

3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员能够访问基类的部分非公开的成员;

4、条件编译的运用。

多文件结构的进一步使用。

二、实验内容

1、编写一个程序计算出球、圆柱和圆锥的表面积和体积。

要求:

(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;

(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数;

(3)编写主函数,求球、圆柱、圆锥的表面积和体积。

2、编写一个学生和教师数据输入和显示程序。

其中,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。

要求:

(1)将编号、姓名输入和显示设计成一个类person;

(2)设计类person的派生类:

学生类student和教师类

teacher;

(3)各个类的声明放在相应的头文件中(*.h),类的实现放在相应的实现文件中(*cpp):

person.h,person.cpp,student.h,student.cpp,teacher.h,teacher.cpp;

(4)编写一个主文件(SY4_2.cpp),在该文件中分别定义student、teacher的对象,完成相应功能。

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

实验八多态性及应用

一、实验目的

1、理解多态的概念。

2、理解函数的静态联编和动态联编。

3、掌握虚函数的定义。

4、理解虚函数在类的继承层次中的作用、虚函数的引入对程

序运行时的影响,掌握其使用。

二、实验内容

虚函数是在类中被声明为virtual的成员函数,当编译器看到经过指针或引用调用此类函数时,对其执行动态联编,即经过指针

(或引用)指向的类的类型信息来决定该函数是哪个类的。

一般此类指针或引用都声明为基类的,它能够指向基类或派生类的对象。

多态指同一个方法根据其所属的不同对象能够有不同的行为。

虚函数是C++中用于实现多态(polymorphism)的机制。

核心理念就是经过基类访问派生类定义的函数

1、录入下面程序,并分析结果:

#include

#include

usingnamespacestd;

classBase

public:

Base()(cout<<"Base-ctor"<

~Base(){cout<<"Base-dtor"<

virtualvoidf(int){cout<<"Base:

:

f(int)”<

virtualvoidf(double){cout<<"Base:

:

f(double)"<

virtualvoidg(inti=10){cout<<"Base:

:

g()”<

};

classDerived:

publicBase

{

public:

Derived。

{cout<<"Derived-ctor"<

~Derived(){cout<<"Derived-dtor"<

voidf(complex){

cout<<"Derived:

:

f(complex)"<

}

voidg(inti=20){

cout<<"Derived:

:

g()"<

}

};

intmain()

cout<

cout<

Baseb;

Derivedd;

Base*pb=newDerived;

b.f(1.0);

d.f(1.0);

pb->f(1.0);

b.g();

d.g();

pb->g();

deletepb;

return0;

}

2、录入下面程序,分析运行结果:

#include

usingnamespacestd;

classBase

{

public:

Base():

data(count)

cout<<"Base-ctor"<

++count;

}

~Base()

cout<<"Base-dtor"<

--count;

}

staticintcount;

intdata;

};

intBase:

:

count;

classDerived:

publicBase

public:

Derived():

data(count),data1(data)

cout<<"Derived-ctor"<

++count;

}

~Derived()

cout<<"Derived-dtor"<

--count;

}

staticintcount;

intdatal;

intdata;

};

intDerived:

:

count=10;

intmain()

cout<

cout<

Base*pb=newDerived[3];

cout<

cout<<((static_cast(pb))+2)->data1<

delete[]pb;

cout<

:

count<

cout<

:

count<

return0;

}

三、实验要求

1、写出程序,并调试程序,要给出测试数据和实验结果。

2、整理上机步骤,总结经验和体会。

3、完成实验报告和上交程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1