搜档网
当前位置:搜档网 › 实验一 熟悉Visual C

实验一 熟悉Visual C

实验一 熟悉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;i

z=z+a[i];

z/=n;

return z;

}

float ave(int n,float a[])

{

int i;

float z;

z=0;

for(i=0;i

z=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;i

for(j=0;j

if(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;i

gets(*(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. 说明对编程分析、运行结果、难点、解决方法和编程体会。

相关主题