C++语言程序设计上机实验Word格式.docx

上传人:b****5 文档编号:16958597 上传时间:2022-11-27 格式:DOCX 页数:27 大小:20.93KB
下载 相关 举报
C++语言程序设计上机实验Word格式.docx_第1页
第1页 / 共27页
C++语言程序设计上机实验Word格式.docx_第2页
第2页 / 共27页
C++语言程序设计上机实验Word格式.docx_第3页
第3页 / 共27页
C++语言程序设计上机实验Word格式.docx_第4页
第4页 / 共27页
C++语言程序设计上机实验Word格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C++语言程序设计上机实验Word格式.docx

《C++语言程序设计上机实验Word格式.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计上机实验Word格式.docx(27页珍藏版)》请在冰豆网上搜索。

C++语言程序设计上机实验Word格式.docx

Pressanykeytocontinue

/*2、用一个函数名编写几个分别计算圆、矩形、梯形和三角形面积的函数。

(注释:

(1)对于三角形,可以直接通过三角形的底边长和高来求三角形面积;

(2)在默认情况下,圆的半径值为1;

矩形的边长为1;

三角形的底边长为2,高为1;

梯形的上底长为1,下底长为2,高为1)*/

doubleyuan(intr)

{doubles;

s=3.14*r*r;

returns;

doublejuxing(inta,intb)

s=a*b;

doubleadd(inta,intb,inth)

s=(a+b)*h/2.0;

doubleadd(inta,inth)

s=a*h/2;

{cout<

圆面积"

yuan

(1)<

矩形面积"

juxing(1,1)<

梯形面积"

add(1,2,1)<

三角形面积"

add(2,1)<

圆面积3.14

矩形面积1

梯形面积1.5

三角形面积1

实验二

/*1、编写程序,其中包含三个重载的min()函数:

min函数带有三个参数。

第一个min函数输出它的三个double型参数中的最小值;

第二个min函数输出它的三个char型参数中的最小值;

第一个min函数输出它的三个int型参数中的最小值;

在主函数中,分别通过键盘输入三个int型数、三个double型数和三个char型数,

并通过min函数求出其中的最小值。

*/

intmin(intx,inty,intz)

ints;

s=(x>

y)?

y:

s=(s>

z)?

z:

s;

doublemin(doublex,doubley,doublez)

doubles;

charmin(charx,chary,charz)

chars;

inta,b,c;

doublea1,b1,c1;

chara2,b2,c2;

请输入inta,b,c"

a>

b>

c;

最小值为"

min(a,b,c)<

请输入doublea1,b1,c1"

a1>

b1>

c1;

min(a1,b1,c1)<

请输入chara2,b2,c2"

a2>

b2>

c2;

min(a2,b2,c2)<

请输入inta,b,c

261

最小值为1

请输入doublea1,b1,c1

2.31.23.6

最小值1.2

请输入chara2,b2,c2

aw5

最小值为5

/*2、将上题改用函数模板的方法来解决。

template<

classT>

Tmin(Tx,Ty,Tz)

Ts;

doublea,b,c;

inta1,b1,c1;

请输入三个double数"

请输入三个int数"

请输入三个char数"

实验三

/*1、编写程序,从键盘分别输入十个int型数据、

十个double型数据和十个char型数据,

对其分别进行冒泡方法和选择方法的排序,

并输出排序后的结果。

(要求用函数模板来实现)*/

voidfun(Tb[])

inti,j;

for(i=0;

10;

for(j=i+1;

j<

j++)

if(b[i]<

b[j])

Tt;

t=b[i];

b[i]=b[j];

b[j]=t;

//选择排序法

b[i]<

\t"

;

inti;

inta1[10];

doublea2[10];

chara3[10];

请输入十个int数据"

a1[i];

fun(a1);

请输入十个double数据"

a2[i];

fun(a2);

请输入十个char数据"

a3[i];

fun(a3);

请输入十个int数据

0123456789

9876543210

请输入十个double数据

1.22.33.44.55.66.77.88.99.110.2

10.29.18.97.86.75.64.53.42.31.2

请输入十个char数据

ielsaopnms

ssponmliea

将fun()函数换成如下格式,结果一样:

for(j=0;

9-i;

if(b[j]<

b[j+1])

{t=b[j];

b[j]=b[j+1];

b[j+1]=t;

}//冒泡排序法

实验四

/*1、编写程序,输入三个整数,将它们按由大到小的顺序输出。

要求形参分别使用变量的引用和变量的指针。

voidfun1(int&

a,int&

b,int&

c)

intt,y;

if(a<

b)

{t=b;

b=a;

a=t;

{t=c;

c=a;

if(b<

{y=c;

c=b;

b=y;

voidfun2(int*a,int*b,int*c)

if(*a<

*b)

{t=*b;

*b=*a;

*a=t;

*c)

{t=*c;

*c=*a;

if(*b<

{y=*c;

*c=*b;

*b=y;

voidmain()

inta,b,c,x,y,z;

请输入三个整数"

引用法:

fun1(a,b,c);

a<

"

b<

c<

x>

y>

z;

指针法:

fun2(&

x,&

y,&

z);

x<

y<

z<

请输入三个整数

254512

452512

996975

997569

/*2、编写一程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。

复制时,'

\0'

也要复制过去。

'

后面的字符不复制。

inti,j,k,w;

chars1[5],s2[5];

请输入字符串:

s1[5]="

for(w=0;

w<

5;

w++)

cin>

s1[w];

s2[5]="

for(k=0;

k<

k++)

s2[k];

将s2中字符复制s1中后s1变为"

s2[i]!

='

s1[i]=s2[i];

s1[i+1]='

cout<

s1[j];

请输入字符串:

s1[5]=abcde

s2[5]=12345

将s2中字符复制s1中后s1变为

12345

/*3、编写一程序实现将用户输入的字符串中所有的字符"

c"

删除,并输出结果。

iostream.h>

voidfun(chara[])

{

inti,j;

for(i=0;

a[i]!

i++)

if(a[i]=='

c'

for(j=i;

a[j]!

j++)

a[j]=a[j+1];

=0;

i++)

cout<

a[i];

inti;

chara[20];

a;

fun(a);

Abcdeci2345ccjk

Abdei2345jk

实验五

实验目的

1.掌握类与对象的定义与使用方法

2.掌握类中不同访问权限的成员的使用方法。

/*

(1)定义一个三角形类Ctriangle,求三角形面积和周长。

cmath>

classCtriangle

private:

doublea,b,c;

public:

voidlongth(doublea,doubleb,doublec)

{

周长为"

(double)(a+b+c)<

}

voidarea(doublea,doubleb,doublec)

doublep,q;

//l为二分之周长

p=(a+b+c)/2;

q=sqrt(p*(p-a)*(p-b)*(p-c));

面积为"

q<

};

请输入三边边长"

Ctrianglem;

m.longth(a,b,c);

m.area(a,b,c);

请输入三边边长

5.62.96.8

周长为15.3

面积为7.95727

/*

(2)设计一个学生类Cstudent,该类

包括学生学号、姓名以及数学、英语、c语言成绩等数据成员;

包括设置学生每门课成绩的函数setScore;

计算三门课程平均成绩的函数average;

计算三门课程总成绩的函数sum;

显示学生数据信息的函数print。

编写主函数,完成对类的使用。

方法一

classCstudent

intm;

charn[4];

voidsetScore(intx,inty,intz)

a=x;

b=y;

c=z;

voidaverage()

三门课平均成绩为"

(double)(a+b+c)/3;

voidsum()

三门课程总成绩"

(double)(a+b+c);

voidprint(intno,charn0[])

m=no;

4;

n[i]=n0[i];

学号"

m;

姓名"

n[i];

数学"

:

英语"

C语言"

intx,y,z,i,no;

charn0[4];

no;

for(i=0;

cin>

n0[i];

三科成绩"

Cstudentw;

w.setScore(x,y,z);

w.average();

w.sum();

w.print(no,n0);

方法二

intnum;

charname[10];

voidsetScore()

cout<

输入学生学号:

num;

姓名:

name;

数学、英语、C语言成绩依次为"

;

(double)(a+b+c)/3<

voidprint()

《学生信息》"

num<

姓名:

name<

c语言"

average();

sum();

w.setScore();

w.print();

输入学生学号:

33

姓名:

任我行

数学,英语,c语言成绩依次为948784

三门课平均成绩为88.3333

三门课程总成绩265

《学生信息》

学号33姓名:

数学94英语87c语言84

实验六(类的定义与构造函数的使用)

实验目的:

2.掌握类的构造函数、析构函数、拷贝构造函数的使用方法。

(1)设计一个学生类,包括学生学号、数学、英语、c语言成绩等数据成员;

包括设置学生每门课成绩的函数setScore();

计算三门课程平均成绩的函数average();

计算三门课程总成绩的函数sum;

显示学生数据信息的函数print()。

编写主函数,完成对类的使用。

(2)针对上一个程序中建立的类,加入两个构造函数,分别用来创建带参对象和无参对象;

加入一个拷贝构造函数,用来完成同类对象的初始化工作。

(3)针对上一个程序中建立的类,再加入一个析构函数,然后在程序中建立两个全局对象,建立两个局部对象,观察构造函数与析构函数的调用顺序。

实验七

1.掌握组合类的定义与使用方法

2.掌握组合类的构造函数的使用方法

1#include<

classClock

intH,M,S;

voidShowTime()

H<

M<

S<

voidSetTime(intH=0,intM=0,intS=0)

this->

H=H,this->

M=M,this->

S=S;

Clock(intH=0,intM=0,intS=0)

intGetH()

returnH;

intGetM()

returnM;

intGetS()

returnS;

classTrainTrip

private:

char*TrainNo;

ClockStartTime;

ClockEndTime;

public:

TrainTrip(char*TrainNo,ClockS,ClockE)

TrainNo=TrainNo;

StartTime=S;

EndTime=E;

ClockTripTime()

inttH,tM,tS;

intcarry=0;

ClocktTime;

(tS=EndTime.GetS()-StartTime.GetS())>

0?

carry=0:

tS+=60,carry=1;

(tM=EndTime.GetM()-StartTime.GetM()-carry)>

tM+=60,carry=1;

(tH=EndTime.GetH()-StartTime.GetH()-carry)>

tH+=24;

tTime.SetTime(tH,tM,tS);

returntTime;

ClockC1(8,10,10),C2(6,1,2);

ClockC3;

TrainTripT1("

K16"

C1,C2);

C3=T1.TripTime();

C3.ShowTime();

21:

50:

52

实验八

1.掌握类静态成员的定义与使用方法

2.掌握公有派生类的定义与使用方法

1、参考教材p226例7-9,验证类的静态数据成员的共享性。

例7-9使用静态成员维护内存中Student类对象的个数(对象计数器)

classStudent

char*Name;

intNo;

staticintcountS;

staticintGetCount()

returncountS;

Student(char*="

int=0);

Student(Student&

);

~Student();

Student:

Student(char*Name,intNo)

Name=newchar[strlen(Name)+1];

strcpy(this->

Name,Name);

No=No;

++countS;

constructing:

Name<

r)

Name=newchar[strlen(r.Name)+1];

strcpy(Name,r.Name);

No=r.No;

copyconstructing:

r.Name<

~Student()

destructing:

delete[]Name;

--countS;

intStudent:

countS=0;

GetCount()<

//使用类调用静态成员函数

Students1("

Antony"

///

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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