集美大学机电专业C++实验程序Word下载.docx
- 文档编号:17639831
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:63
- 大小:34.23KB
集美大学机电专业C++实验程序Word下载.docx
《集美大学机电专业C++实验程序Word下载.docx》由会员分享,可在线阅读,更多相关《集美大学机电专业C++实验程序Word下载.docx(63页珍藏版)》请在冰豆网上搜索。
//键盘输入三角形三条边长
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
”area:
”<
area<
endl;
2
}
3.编译和链接程序
1)执行VC++菜单“编译”项,屏幕出现“询问是否创建默认项目工作区”对话框;
2)单击“是”按钮,出现“询问是否保存文件”对话框;
3)单击“是”按钮保存文件后,系统开始对源程序进行编译。
4)若有语法错误,将在输出区窗口中显示错误信息。
双击某条错误信息,文件编辑窗
口的对应程序行的左边将出现一个箭头。
依据提示信息修改程序,然后重新编译程序,直到
没有错误为止。
5)执行VC++菜单“编译”→“构建”项,系统将对编译好的程序进行链接。
若出现链
接错误,依据错误信息修改程序后,再进行编译和链接,直到正确。
4.执行目标程序
1)执行VC++菜单“编译”→“执行”项,程序开始执行,执行到键盘输入语句时,系
统显示“输入数据和输出结果”窗口,等待用户输入数据。
2)依题输入3个实数,作为三角形的三条边的边长,程序继续执行,显示计算结果。
3)若运行时出现错误,分析出错原因,是运行时输入的数据有误,还是程序代码有错?
(均非语法错误),依据需要修改程序、重新编译、链接和执行程序。
7.关闭程序项目
执行菜单“文件”→“关闭工作区”项,将关闭程序项目。
8.打开已有项目。
执行菜单“文件”→“打开”项,可打开已有程序项目。
[例1-2]在C++Builder集成开发环境中,完成上例的程序编辑、调试和运行。
1.启动C++Builder开发环境
通过执行菜单“开始”→“程序”→“BorlandC++Builder6”→“C++Builder6”项,启
动C++Builder开发环境。
2.创建应用程序项目
本例需要建立一个控制台应用程序,执行菜单【File】→【CloseAll】关闭当前项目,再
执行菜单【File】→【New】→【ConsoleWizard】项,或单击工具栏上的Newitems快捷钮
打开的对话框来创建控制台应用程序项目。
3
在ConsoleWizard对话框中,做如上图所示的选择后确定。
系统自动创建项目和初始化源程
序文件。
3.编辑程序
在代码编辑窗口中,编写实现功能要求的程序。
在C++Builder中,可以省略std命名空间的引用声明,系统自动引用和链接。
4.保存程序项目
执行菜单【File】→【SaveProjectAs…】项,或执行菜单【File】→【SaveAll】项,或
单击SaveAll快捷钮,在打开的保存源程序文件对话框中输入文件名,确认保存源文件(扩
展名cpp);
在打开的保存项目文件对话框中,选择项目保存位置,编辑项目文件名,确认保
存项目(扩展名bpr)。
5.编译、和执行和调试程序
单击Run快捷钮,或按F9键,编译和执行程序。
也可以先执行【Project】→【Compile
Unit】编译命令,再运行程序。
C++Builder的集成环境的调试命令与TurboC的相似,Borland公司一脉相承,可以方便
地设置断点、跟踪运行、监视表达式的值等。
[例1-3]创建和编写一个控制台应用程序:
程序执行时,分别输入被除数和除数,计算
后输出商,若除数为0,程序给出提示。
1.新建Win32ConsoleApplication程序项目
2.在文件编辑区窗口编写如下程序代码:
doublea,b;
”被除数:
cin>
a;
”除数:
b;
if(b)
”商是:
a/b<
else
”除数为0,无意义。
3.编译、链接和执行程序
[例1-4]新建一个程序。
程序运行后,输入百分制的成绩,输出“优”、或“良”、或“合
格”、或“不合格”等对应的等级。
4
{intscore;
”输入百分制成绩:
score;
switch(score/10)
{case10:
case9:
cout<
”优”;
break;
case8:
”良”;
case7:
case6:
”合格”;
default:
”不合格”;
实验习题
1.编写一个控制台应用程序,程序实现输入圆的半径,输出圆的周长和面积。
2.编写一个程序,其中声明和定义如下函数:
doublemax(doublex,doubley);
函数返回2个参数中的较大值。
编写主函数,调用max函数,验证程序运行结果。
3.设计一个C++程序,实现运行时,输入X的值,单击“计算”按钮则按下式计算,
并显示Y的值:
12
−XX≥0
Y=
X−1X<0
4.编写一个C++程序,实现计算和输出一元二次方程的解,3个系数在程序运行时输入。
提示:
输入a、b、c三个系数后,分下列情况处理:
b=0→无意义
a=0,b?
否则→输出解:
-c/b
a?
d>
=0→输出解:
0.5*(-b+sqrt(d))/a
和0.5*(-b-sqrt(d))/a
否则,d:
=sqr(b)-4*a*c
否则→无实数解
5.编写一个C++控制台应用程序,实现判断按键的类型是数字、字母或其它。
5
实验二循环处理程序设计与数组应用
�掌握循环语句:
for…
do…while…
while…
�掌握跳转语句:
break和contitue
�理解数组的概念
�掌握数组的定义和数组元素的访问方法
�理解运用数组的一些算法
[例2-1]设计一个控制台应用程序:
实现计算和输出3到100之间的所有素数,以及素
数的个数。
解题思路:
所谓素数,即仅能被1和自身整除的数。
判定n是否为素数,可以用n相继(循环)除
于2到n/2之间的整数,若出现余数为0,即n被其中某个数整除,则n非素数,中断循环
判断;
否则,直到n除于n/2的余数非0,则n为素数。
intn,j,s;
s=0;
//素数个初始为0
for(n=3;
n<
=100;
n++)
for(j=2;
j<
=n/2;
j++)
if(n%j=0)break;
//n被某数i整除,退出循环判断
if(j>
n/2)
s++;
n<
”,”;
}6
”共有”<
s<
”个素数\n”;
[例2-2]设计一个控制台应用程序,实现计算任意输入的两个正整数的最大公约数。
求解m和n的最大公约数,采用欧几里德的算法如下:
①以n除m,令余数为r;
②若
r为0,则n为解,输出并结束;
③否则,令m为n,n为r,重复步骤①继续进行。
intm,n,r;
”输入一个正整数:
m;
”输入另一个正整数:
n;
do
r=m%n;
m=n;
n=r;
}while(r);
”最大公约数是:
m<
endl;
或参考以下代码:
while(r)
}7
[例2-3]设计一个控制台应用程序:
随机产生并显示10个1到100之间的整数,排序
后再输出这10个整数。
定义一个数组变量,元素为int类型;
利用随机数函数rand()循环初始化数组的每一个
元素并输出。
排序时采用直接选择排序算法:
设有n个元素需按从小到大的次序排列,可用如下n-1趟的选择过程完成:
第1趟,从第1~第n的n个元素中,选择出最小的与第1个元素交换;
第2趟,从第2~第n的n-1个元素中,选择出最小的与第2个元素交换;
...
第n-1趟,从第n-i~第n的2个元素中,选择出最小的与第n-1个元素交换;
排序结束。
最后循环一遍输出每个元素。
time.h>
inti,j,k,temp;
inta[10];
srand(time(0));
//初始化随机系列
for(j=0;
10;
temp=rand();
//rand()返回一个1到32767之间的随机整数
a[j]=temp%100+1;
a[j]<
for(i=0;
i<
9;
i++)//9趟的选择排序
k=i;
//设k为第i趟选择的最小元数的初始下标
for(j=i+1;
j++)ifa[j]<
a[k]k=j;
if(k!
=j)
temp=a[k];
a[k]=a[j];
a[j]=temp;
}8
j++)cout<
[例2-4]设计一个控制台应用程序:
由键盘任意输入一串字符,统计这个字符串中字母
字符、数字字符和其它字符的个数。
定义一个字符数组,用于保存输入的字符串;
利用循环识别字符串中每个字符(数组元
素),并统计各类字符的个数。
{chars[300];
intj,a=0,b=0,c=0;
"
连续按键,直到回车为止"
s;
for(j=0;
strlen(s);
if(((s[j]>
='
A'
)&
&
(s[j]<
Z'
))||((s[j]>
a'
z'
)))a++;
else{
if((s[j]>
0'
9'
))b++;
elsec++;
字母;
"
a<
数字;
b<
其他;
c<
[例2-5]设有如下数列:
0、1、1、2、3、5、8、13、…。
除第1项和第2项外,数列
的任一项是其前2项的和。
编写一控制台应用程序,输出数列的前30项及其总和。
利用整型数组存储数列的各项,初始化数组的前2个元素,从第3个元素开始循环递推
计算其余元素的值,最后输出。
9
intfib[30];
intj,sum=1;
fib[0]=0;
fib[1]=1;
for(j=2;
30;
fib[j]=fib[j-2]+fib[j-1];
sum+=fib[j];
for(j=0;
fib[j]<
endl<
”前30项的和:
sum<
1.设计一个C++控制台应用程序,运行时,输入两个正整数,计算并输出这两个数之
间所有不能被3和7整除的数的和。
2.设计一个利用下列公式计算圆周率π的C++程序,要求精度控制在0.0000001内。
π=4×
(1/1-1/3+1/5-1/7+…)
括号中是一个数列的和,数列的第n项是1/(2n-1),奇数项为正,偶数项为
负。
利用循环逐项求和,直到该项的绝对值小于0.0000001为止。
3.编写一个控制台应用程序,运行时输入10个整数,输出其中的最大数和次大数。
以数组存储逐个输入的10个整数,查找其中的2个最大的数时,首先将数组的
前2个元素的较大者初始为最大数,较小的初始为次大数,然后从第3个数开始逐个与最大
数和次大数比较,比较时仅有两种情形需考虑:
①当前元素比最大数大,则原最大数成为
次大数,当前数为最大数;
②当前元素仅比次大数大,则当前数为次大数。
4.编写一个控制台应用程序,输出一个6行的杨辉三角形。
以二维数组存储杨辉三角形的每个元,初始化其第1行第1列、第2行第1列、
第2行第2列等3个元素的值为1,之后从第3行开始逐行计算各列元素的值,计算方法为:
第1列和最后一列(第i行有i列)的值为1,其余元素的值是上一行前一列和上一行上一列
的数值的和。
最后逐行输出显示。
10
实验三指针、引用与函数
�掌握指针的定义和依据指针访问数据的方法
�掌握引用的概念和用法
�掌握函数的声明、定义和调用
�掌握函数中指针或引用类型参数的用法
[例3-1]编写一个C++控制台应用程序,将某个位数不确定的正整数进行三位分节后输
出,例如输入1234567,则输出1,234,567。
自定义一个函数,其中实现将传递的整数转换成字符串,再定义另一个函数将字符串由
后向前进行分节,即每3个字符插入一个逗号,利用指针的运算寻找插入的位置。
malloc.h>
char*separate(int);
char*inttostr(int);
intn;
char*p;
p=separate(n);
”分节输出:
p<
char*separate(intnum)
char*p1,*p2=inttostr(num),*p3,*pt;
intcount=1;
p1=p2;
11
while(*p2++!
=’\0’);
p3=p2-1;
//p3指向最后一个字符
p2=p2-2;
while(p2>
p1)//由后向前
if(count==3)
pt=p3++;
while(pt>
=p2)*(pt+1)=*pt--
*p2=’,’;
count=0;
count++;
p2--;
returnp1;
char*inttostr(intnum)//将整数转换成对应数字字符串
char*p,*p1,*p2,temp;
p=p1=p2=newchar[30];
while(num)
*(p2++)=num%10+’0’;
num/=10;
*(p2--)=’\0’;
p1)
temp=*p2;
*p2--=*p1;
*p1++=temp;
returnp;
[例3-2]编写程序,实现两个字符串变量的交换。
使用引用来交换两个字符串指针的值。
12
string.h>
voidswap(char*&
x,char*&
y)
char*temp;
temp=x;
x=y;
y=temp;
char*ap,*bp;
”输入一个字符串:
ap;
”输入另一个字符串:
bp;
swap(ap,bp);
”第一个字符串:
ap<
”第二个字符串:
bp<
[例3-3]例4-3的斐波那契数列:
除第1项为0和第2
项为1外,数列的任一项是其前2项的和。
编写计算数列的第n项的函数,调用函数输出数
列的第30项。
斐波那契数列可以如下形式的函数表示:
0当n=1时,
f(n)=1当n=2,
f(n-1)+f(n-2)其它
自定义一个递归函数,返回参数n指定的数列项,计算方法是:
当n=1时,函数返回0;
当n=2时,函数返回1;
否则,返回用参数n-1调用自身函数的值与用参数n-2调用自身函
数的值的和。
intFib(intn)
switch(n)
{13
case1:
return0;
case2:
return1;
returnFib(n-1)+Fib(n-2);
//递归调用函数
”数列的第30项是:
Fib(30)<
1.编写一个控制台应用程序,运行时输入一个字符串,然后逆序输出该字符串。
2.将实验四习题1中查找n个元素的一维数组中的最大值和次大值的算法定义成一个
函数,改造并完成该题。
14
实验四类与对象
�掌握类和对象的概念、定义和访问方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 机电 专业 C+ 实验 程序