当前位置:
搜档网 › 实验一 熟悉Visual C
实验一 熟悉Visual C
实验一熟悉V C++编程环境
一、实验目的
1.掌握Visual C++6.0集成开发环境的使用:进入和退出;菜单、工具栏的使用;用户窗口区的划分。
2.简单程序设计,掌握C++程序的基本结构,掌握C++基本数据类型与运算符,熟悉输入/输出方法。
3. 掌握结构化程序设计、函数,学会使用指针、引用编程。
二、实验内容
1.熟悉Visual C++6.0的界面、菜单及工具。
2. 给定程序,编辑、编译、运行、调试程序。
(1) 编程,求解一元二次方程ax2+bx+c=0的根。
#include
#include
void main()
{
float a,b,c,disc,x1,x2,p,q;
cin>>a>>b>>c; /*此处要求输入二次方程各项的系数*/
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a); /*调用c语言的库函数实现开方的操作*/
x1=p+q;
x2=p-q;
cout<}
}
(2) 求和:s=a+aa+aaa+…+aa…a,其中a是数字,a和n由键盘输入。} #include
void main()
{
int n,a,i,s,x;
cin>>a;
cin>>n;
s=0;
x=a;
for(i=0;i<=n-1;i++)
{ s=s+x; /*求和的值等于每次原值加上新得到的x值*/
x=x*10+a; /*利用循环*/
}
cout<<"the total is="<
三、实验报告
1. 写出实验目的。
2. 写出实验内容。
3. 写出程序清单,并加以注释,写出运行结果的分析、实验过程的难点、解决方法和体会。
#include
实验二利用函数编程
一、实验目的
1.熟练掌握函数的定义及调用,参数的传递,形参和实参的关系,变量的存储类型、作用域,全局变量与局部变量的比较。
2.掌握函数的嵌套调用、递归调用,内联函数、重载函数、带默认参数函数的定义与使用。
二、实验内容
1.找出一个4列5行的二维数组的“鞍点”,即该位置上的元素在该行最大,在该列最小,也可能没有鞍点。
2.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
3编写一个程序,含有名字相同的两个函数,第一个函数返回一个整数数组的平均值,另一个函数返回一个浮点数组的平均值。.#include void main ()
{
int m;
float n;
int ave(int a[],int n);
float ave(int n,float a[]);
float a[4]={2.3,8.5,4.3,5.6};
int b[4]={2,4,6,8};
m=ave(b,4);
n=ave(4,a);
cout<<"整数数组{2,4,6,8}平均值是:"<cout<<"小数数组{2.3,8.5,4.3,5.6}平均值是:"<}
int ave(int a[],int n)
{
int i,z;
z=0;
for(i=0;iz=z+a[i];
z/=n;
return z;
}
float ave(int n,float a[])
{
int i;
float z;
z=0;
for(i=0;iz=z+a[i];
z/=n;
return z;
}
三、实验步骤
1. 运用学过的知识,实验前在纸上写出程序。
2. 根据程序要求,先设计函数,在函数体内分析采用何种结构(选择、循环)或者算法,设计主函数进行调用。
3. 上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1. 写出实验目的。
2. 写出实验内容和程序清单。
3. 在实验报告中说明对编程分析、运行结果、难点、解决方法和体会。
#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
int a[5][4];
int i,j,k,m,n;
int flag=1;
// 用随机函数给数组赋值
srand(time(NULL));
for(i=0;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%5;
//输出数组
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
cout<cout<}
//寻找鞍点
for(i=0;i<5;i++)
{
for(m=0,j=1;j<4;j++)
if(a[i][m]for(k=0;k<4;k++)
if(a[i][k]==a[i][m]) //凡等于该行最大数者,都与所在列的元素比较,
{
for(n=i,j=0;j<5;j++)
if(a[n][k]>a[j][k]) {n=j;break;} //如果该元素所在列有小于它的元素,结束比较
//如果该元素所在列有元素都不大于它,则它是最小数,将其输出,并标记flag,以示有鞍点
if(n==i){flag=0; cout<
}
if(flag) cout<<"\n没有鞍点。"<return 0;
}
//在给数组元素赋值方面有许多方法,此处用随机函数赋值的方法
//因为赋值是随机的,程序运行到出现鞍点时快时慢,看运气吧
//改变a[i][j]=rand()%5; %后的数字,出现的快慢会改变(越小越快)
void checknum(unsigned int num)
{int i,n=sqrt(num);
for (i=2;i <=n;i++)
{
if(num%i==0)
{
printf( "这不是素数!");
return;
}
}
printf( "这是素数!");
system( "pause ");
return;
}
实验三指针与引用的编程
一、实验目的
1.掌握指针的概念,会定义和使用指针变量。
2.掌握指针与数组的关系,指针与函数的关系,指针与字符串的关系。
3.掌握引用的定义及其使用方法。
4.注意指针和引用的区别。
二、实验内容
事先编好程序,上机调试运行之。
1.在主函数中输入10个等长的字符串,用另一函数对它们排序,然后在主函数输出这10个已排好的字符串,要求用指针编程。#include
#include
using namespace std;
#define N 10 //字符串个数
//交换字符串内容
void change(char a[],char b[])
{
char t[81];
strcpy(t,a);
strcpy(a,b);
strcpy(b,t);
}
//对多个(ln个,即ln行)字符串从小到大排序
void str_sort(char str[][81],int ln)
{
int i,j;
for(i=0;ifor(j=0;jif(strcmp(*(str+j),*(str+j+1))>0) change(*(str+j),*(str+j+1));
}
int main()
{
int i;
char s[N][81];
//printf("请输入%d个字符串:\n",N);
cout<<"请输入N个字符串:"<for(i=0;igets(*(s+i)); //输入字符串
str_sort(s,N); //调用函数str_sort()排序
cout<<"从小到大排序::"<for(i=0;i{
printf("(%d) ",i+1);//显示顺序号
puts(*(s+i)); //排序后输出
}
return 0;
}
2. 编一程序,记录从键盘输入的字符串,计算字符串的长度,并用指针实现对字符串的逆向输出。#include
using namespace std;
//(4) 编一程序,记录从键盘输入的字符串,计算字符串的长度,并用指针实现对字符串的逆向输出。
int main()
{
char *p=new char[];
cin>>p;
cout<<"字符串长度是:"<for(int i=strlen(p)-1;i>=0;i--)
cout<<*(p+i);
return 0;
}
3.利用“引用形参”实现两个变量的值互换。#include
#include
void Swap(int&a,int&b)
{
int t;
t=a;
a=b;
b=t;
}
void main()
{
int x=20;
int y=30;
cout<<"before swap:"<cout<<"x="<Swap(x,y);
cout<<"after swap:"<cout<<"x="<}
三、实验步骤
1. 运用学过的知识,实验前在纸上写出程序。
2. 根据程序要求,定义指针指向那些变量,分析采用何种结构(选择、
循环)或者算法,用指针怎样处理。
3. 上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1. 写出实验目的。
2. 写出实验内容和程序清单。
3. 在实验报告中说明对编程分析、运行结果、难点、解决方法和体会。
实验四类与对象的编程
一、实验目的
1.掌握类与对象的定义,类和类成员的概念及对象的使用方法。2.学习类与对象的声明。
3.学习数据成员与成员函数的访问方式。
4.初步掌握用类和对象编制基于对象的程序。
二、实验内容
1.修改一个类,注意其中的成员访问权限,进行对比。
有以下程序:
#include
class Time
{private: /*数据成员改为私有的*/
int hour;
int minute;
int sec;
private: void input();
void output();
}; void Time ::input()
{cin>>hour>>minute>>sec;
}void ::output()
{cout<}
void main()
{ Time t1;
t1.input()
t1.output();
}
改写程序,要求:
1)将数据成员改为私有的;
2)将输入和输出的功能改为由成员函数实现;
3)在类体内定义成员函数。
然后编译和运行程序。请分析什么成员应指定为公有的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好在类外定义?
#include
using namespace std;
class Time
{
public :
void SetTime()
{
cout<<"请输入小时分秒"<cin>>hour>>minute>>sec;
}
bool GetTime()
{
if(sec==NULL)
return false;
else
{
cout<return true;
}
}
private:
int hour;
int minute;
int sec;
};
int main()
{
Time t;
t.SetTime();
t.GetTime();
return 0;
}
2. 求3个长方体的体积,请编一个基于对象的程序。数据成员包括
length(长)、width(宽)、height(高),要求用成员函数实现以下功能:1)由键盘分别输入3个长方体的长、宽、高;
2)计算长方体的体积;
3)输出3个长方体的体积。
#include
class Box /*此处定义了一个类名为class的类*/
{
private:
float length;float width;float height; /*私有数据成员*/
public:void input();
void volumn(); /* 共有数据成员函数*/
}; void Box::input()
{
cin>>length>>width>>height;
}
void Box::volumn()
{cout <<"体积是"<}
void main()
{
Box b1,b2,b3;
b1. input(); /*依次输出3个长方体的长、宽、高*/
b2. input();
b3. input();
b1.volumn(); /*依次输出3个长方体的体积*/
b2.volumn();
b3.volumn();
}
三、实验步骤
1. 运用学过的知识,实验前在纸上写出程序。
2. 根据程序要求,先设计类,设计此类的数据成员及成员函数。
3. 注意数据成员的类型,成员函数完成的功能。
4. 在主函数中创建对象,通过对象调用哪些成员函数。
5. 上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1. 写出实验目的。
2. 写出实验内容和程序清单。
3. 在实验报告中写出实验内容第1题答案。
4. 说明对编程分析、运行结果、难点、解决方法和编程体会。