面向对象程序设计C++实验指导.docx

上传人:b****0 文档编号:9830127 上传时间:2023-05-21 格式:DOCX 页数:71 大小:39.67KB
下载 相关 举报
面向对象程序设计C++实验指导.docx_第1页
第1页 / 共71页
面向对象程序设计C++实验指导.docx_第2页
第2页 / 共71页
面向对象程序设计C++实验指导.docx_第3页
第3页 / 共71页
面向对象程序设计C++实验指导.docx_第4页
第4页 / 共71页
面向对象程序设计C++实验指导.docx_第5页
第5页 / 共71页
面向对象程序设计C++实验指导.docx_第6页
第6页 / 共71页
面向对象程序设计C++实验指导.docx_第7页
第7页 / 共71页
面向对象程序设计C++实验指导.docx_第8页
第8页 / 共71页
面向对象程序设计C++实验指导.docx_第9页
第9页 / 共71页
面向对象程序设计C++实验指导.docx_第10页
第10页 / 共71页
面向对象程序设计C++实验指导.docx_第11页
第11页 / 共71页
面向对象程序设计C++实验指导.docx_第12页
第12页 / 共71页
面向对象程序设计C++实验指导.docx_第13页
第13页 / 共71页
面向对象程序设计C++实验指导.docx_第14页
第14页 / 共71页
面向对象程序设计C++实验指导.docx_第15页
第15页 / 共71页
面向对象程序设计C++实验指导.docx_第16页
第16页 / 共71页
面向对象程序设计C++实验指导.docx_第17页
第17页 / 共71页
面向对象程序设计C++实验指导.docx_第18页
第18页 / 共71页
面向对象程序设计C++实验指导.docx_第19页
第19页 / 共71页
面向对象程序设计C++实验指导.docx_第20页
第20页 / 共71页
亲,该文档总共71页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象程序设计C++实验指导.docx

《面向对象程序设计C++实验指导.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计C++实验指导.docx(71页珍藏版)》请在冰点文库上搜索。

面向对象程序设计C++实验指导.docx

面向对象程序设计C++实验指导

面向对象程序设计(C++)实验指导

一、实验环境

本实验基于当前主流的面向对象开发平台,编码规范遵循主流的参考规范。

二、编程语言和开发工具

C++语言,开发工具不限,建议使用VisualC++6.0版本

三、编码规范(编码规范的要求)

要求遵循良好的的程序设计习惯来设计实验和编写代码。

(注:

如果你将程序的很多功能全部放在一个长长的main()主函数中实现,这样的程序设计和编码风格会被扣分,请将不同的功能模块分别用函数来实现。

1.在实验过程中应注意培养规范的编码风格:

2.标识符的命名应要求达到顾名思义的程度,一看就知道用来做什么;

3.提供足够的注释,注释文字清晰明了;

4.程序排版的要求:

a)不同功能模块用空行分隔,使功能块一目了然;

b)基本上一条语句一行;

同一层次的语句统一缩进对齐。

四、实验

见后文……

五、注意事项

所有实验要求独立完成,同学之间可以讨论,但严禁抄袭,若发现雷同,抄袭者和被抄袭者此次实验成绩均记零分。

实验一C++基础(2课时)

实验目的和要求:

1.掌握C++程序的基本格式与规范,学会编写简单的C++程序。

2.理解C++程序结构的特点。

3.熟悉C++程序的基本输入输出操作。

4.掌握内联函数的使用方法。

5.掌握函数重载的定义和使用方法。

6.掌握C++内存的动态分配与释放方法。

7.理解引用的概念,掌握引用的使用方法。

预习内容:

cin/cout的使用;new和delete的使用;函数重载;const常量。

实验内容:

1、用内联函数编写Fibonacci级数,使用if语句判断函数的出口,在程序中用cout语句输出提示信息,Fibonacci级数的公式为:

内联函数inlineintfib(intn)。

#include

usingnamespacestd;

inlineintfib(intn)

{

if(n==1||n==2)return1;

elseif(n>2)returnfib(n-1)+fib(n-2);

}

main()

{

intx,y;

cout<<"请输入一个数:

"<

cin>>x;

y=fib(x);

cout<<"输出结果是:

"<

}

2、程序Ex_Swap实现数据交换。

分别用指针和引用作为函数mySwap的形参,并通过重载int、double型变量值的交换。

#include

usingnamespacestd;

voidmyswap(int&x,int&y)

{

intnum;

num=x;

x=y;

y=num;

}

voidmyswap(int*x,int*y)

{

int*num;

num=x;

x=y;

y=num;

}

voidmyswap(double&n,double&m)

{

doublenum;

num=n;

n=m;

m=num;

}

voidmyswap(double*n,double*m)

{

double*num;

num=n;

n=m;

m=num;

}

main()

{

intx,y;

doublei,j;

cout<<"请输入要交换的两个整数:

"<

cin>>x>>y;

myswap(x,y);

cout<<"引用交换后结果是:

"<

cout<<"请输入要交换的两个整数:

"<

cin>>x>>y;

myswap(x,y);

cout<<"指针交换后结果是:

"<

cout<<"请输入要交换的两个小数:

"<

cin>>i>>j;

myswap(i,j);

cout<<"引用交换后结果是:

"<

cout<<"请输入要交换的两个小数:

"<

cin>>i>>j;

myswap(i,j);

cout<<"指针交换后结果是:

"<

}

3、设计一个函数,形参是引用类型,要求输入三个整数(cin输入,cout提示输入),按从小到大排序后输出,编程完整的程序并测试。

#include

usingnamespacestd;

voidorder(int&a,int&b,int&c)

{

intm;

if(a>b)

{

m=a;

a=b;

b=m;

if(b>c)

{

m=b;

b=c;

c=m;

if(a>b)

{

m=a;

a=b;

b=m;

}

}

}

else

{

if(b>c)

{

m=b;

b=c;

c=m;

if(a>b)

{

m=a;

a=b;

b=m;

}

}

}

}

voidmain()

{

intp[3],&a=p[0],&b=p[1],&c=p[2];//实验-3

cout<<"inputabcnumber"<

cin>>p[0]>>p[1]>>p[2];

cout<

order(a,b,c);

cout<

}

4、程序Ex-Number实现下述功能:

由17人围成一个圈,编号1~17,从第1号开始报数,报到3的倍数的人离开,一直数下去,直到最后只剩下1个人,求此人的编号(要求用new和delete来分配、释放所需内存空间)。

#include

usingnamespacestd;

#defineNUM17

structPersonInfo{

intNum;

boolflagInCircle;

};

intEx_Number()

{

PersonInfo*pf=newPersonInfo[NUM];

PersonInfo*pTmp=pf;

for(inti=0;i

{

pTmp->Num=i+1;

pTmp->flagInCircle=true;

pTmp++;

}

intpsnNum=NUM;

intcounter=0;

while(psnNum>1)

{

pTmp=pf;

for(inti=0;i

{

if(pTmp->flagInCircle)

{

counter++;

if(0==(counter%3))

{

pTmp->flagInCircle=false;

psnNum--;

}

}

pTmp++;

}

}

pTmp=pf;

for(i=0;i

{

if(true==pTmp->flagInCircle)

{

delete[]pf;

returni+1;

}

else

{

pTmp++;

}

}

 

delete[]pf;

return-1;

}

intmain()

{

inta=Ex_Number();

cout<

return0;

}

5、设计一个简单的计算器,能够进行加法、减法、乘法和除法功能(整数)。

格式是先输入一个数,然后输入运算符号,输入另一个数字,最后输出结果。

(选做)

#include

usingnamespacestd;

intfun(inta,intb,charfh)

{switch(fh)

{case'+':

return(a+b);

case'-':

return(a-b);

case'*':

return(a*b);

case'/':

if(b==0)

{cout<<"F"<

return0;}

else

{return(a/b);}

}

}

main()

{inta,b;

charfh;

cout<<"pleaseputunmber:

"<

cin>>a>>fh>>b;

cout<

}

实验二类与对象

(一)(2课时)

实验目的和要求:

1.掌握类、类的数据成员、类的成员函数的定义方式。

2.理解类成员的访问控制方式。

3.掌握对象的定义和操作对象的方法。

4.理解构造函数和析构函数的定义与执行过程。

5.掌握重载构造函数的方法。

6.了解拷贝构造函数的方法。

预习内容

类(数据成员和成员函数)的定义与访问权限设置;类的构造函数与析构函数的定义与使用。

实验内容:

1、定义一个score类,其中包括私有数据成员和公有成员函数,即

num学号

Math高等数学成绩

English英语成绩

Programming程序设计成绩

Average平均成绩

Inscore()输入学号和各科成绩,并计算平均成绩

showscore()输出学号和各科成绩

使用score类,输入某班n个学生的学号和各科成绩,然后求各个学生的平均成绩,并列表输出学生的学号、各科成绩和平均成绩。

#include

usingnamespacestd;

structStudentID

{

intnum;//学号较长的话,建议用字符串或者字符数组

//charnum[20];

doublemath;

doubleenglish;

doubleprogramming;

doubleaver_Score;

};

classScore{

private:

StudentIDStud;

public:

voidInscore();

voidshowscore();

};

voidScore:

:

Inscore()

{

cout<<"\n请输入学号,数学成绩,英语成绩和编程成绩"<

cin>>Stud.num>>Stud.math>>Stud.english>>Stud.programming;

Stud.aver_Score=(Stud.math+Stud.english+Stud.programming)/3;

}

voidScore:

:

showscore()

{

cout<<"学号:

"<

cout<<"数学成绩:

"<

cout<<"英语成绩:

"<

cout<<"编程成绩:

"<

cout<<"平均成绩:

"<

}

 

voidmain()

{

intn;//Studentnum

cout<<"请输入学生人数:

"<

cin>>n;

Score*pScore=newScore[n];

cout<<"下面将输入"<

"<

for(inti=0;i

{

pScore->Inscore();

pScore->showscore();

pScore++;

}

 

}

2、定义日期类型Date。

要求:

(1)包含年月日数据成员;提供默认构造函数、带年月日参数的构造函数、和拷贝构造函数;定义set成员函数可以设置日期(setYear,setMonth,setDay);定义addOneDay成员函数实现日期加一天操作;定义intput成员函数,输入日期信息,输入格式为“YYYY-MM-DD”;定义print成员函数输出对象的日期。

(2)编写一个可运行的完整程序,构造3个日期类型的对象,并输出相应的日期信息。

(3)实现日期类型的对象的加减法运算。

#include

usingnamespacestd;

classDate

{

private:

intm_year;

intm_month;

intm_day;

public:

Date(inty,intm,intd):

m_year(y),m_month(m),m_day(d){}

voidSetDate(inty,intm,intd);

voidDisplay();

voidDateAddOne();

boolIsLeapYear();

intDaysOfMonth(intmonth);

 

};

voidDate:

:

SetDate(inty,intm,intd)

{

m_year=y;

m_month=m;

m_day=d;

}

voidDate:

:

DateAddOne()

{

if(m_month<12)

{

if(m_day+1>DaysOfMonth(m_month))

{

m_day=1;

m_month=m_month+1;

}

else

m_day++;

}

if(m_month==12)

{

if(m_day+1>31)

{

m_year++;

m_month=1;

m_day=1;

}

else

m_day++;

}

}

boolDate:

:

IsLeapYear()

{

return((m_year%4==0&&m_year%100!

=0)||(m_year%400==0));

}

intDate:

:

DaysOfMonth(intmonth)

{

switch(m_month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

return31;break;

case2:

if(IsLeapYear())

{

return29;

break;

}

else

{

return28;

break;

}

case4:

case6:

case9:

case11:

return30;break;

default:

return0;break;

}

}

voidDate:

:

Display()

{

cout<

}

voidmain()

{

Datedate(1998,12,30);

intchoice;

do

{

cout<<"***************"<

cout<<"*1--设置日期*"<

cout<<"*2--日期加一天*"<

cout<<"*3--输出日期*"<

cout<<"*4--退出*"<

cout<<"***************"<

cout<<"请选择:

";

cin>>choice;

switch(choice)

{

case1:

intyear,month,day;

cout<<"输入日期(年,月,日之间用空格隔开):

";

cin>>year>>month>>day;

date.SetDate(year,month,day);

break;

case2:

date.DateAddOne();

break;

case3:

date.Display();

break;

case4:

exit(0);

default:

break;

}

}while(choice!

=4);

}

3、定义一个类Stock,记录一支股票交易的基本信息,信息包括交易日序号(表示本月的第几个交易日,用整数表示)、当日最高价、当日最低价、当日开盘价和当日收盘价。

尽量发挥想像力,为该类设计成员函数。

//stock.h

#ifndefSTOCK_H_

#defineSTOCK_H_

classStock{

private:

intnum;

inttodaymax;

inttodaymin;

inttodayopen;

inttodayclose;

public:

voidsetnum(intn);

voidsettodaymax(intmax);

voidsettodaymin(intmin);

voidsettodayopen(intopen);

voidsettodayclose(intclose);

intgettodaymax();

intgettodaymin();

voidgettodayopen();

voidgettodayclose();

voidgetnum();

Stock(intn,intmax,intmin,intopen,intclose);

Stock();

};

#endif

//stock.cpp

#include

usingnamespacestd;

#include"stock.h";

voidStock:

:

setnum(intn)

{

num=n;

}

voidStock:

:

settodaymax(intmax)

{

todaymax=max;

}

voidStock:

:

settodaymin(intmin)

{

todaymin=min;

}

voidStock:

:

settodayopen(intopen)

{

todayopen=open;

}

voidStock:

:

settodayclose(intclose)

{

todayclose=close;

}

intStock:

:

gettodaymax()

{

cout<<"todaymax:

"<

returntodaymax;

}

intStock:

:

gettodaymin()

{

cout<<"todaymin:

"<

returntodaymin;

}

voidStock:

:

gettodayopen()

{

cout<<"todayopen:

"<

}

voidStock:

:

gettodayclose()

{

cout<<"todayclose:

"<

}

voidStock:

:

getnum()

{

cout<<"num:

"<

}

Stock:

:

Stock(intn,intmax,intmin,intopen,intclose)

{

num=n;

todaymax=max;

todaymin=min;

todayopen=open;

todayclose=close;

}

Stock:

:

Stock()

{

num=0;

todaymax=0;

todaymin=0;

todayopen=0;

todayclose=0;

}

//mian.cpp

#include

usingnamespacestd;

#include"stock.h"

intmain()

{

Stocktoday;

today.setnum(000);

today.settodaymax(1200);

today.getnum();

today.gettodaymax();

return0;

}

4、在主函数中建立两个股票对象,分别存储该股票昨天和今天两天的信息,以当日收盘价计算该股票今天的涨幅。

#include

classStock

{public:

Stock(intn,doublema,doublemi,doubleb,doublee);

voidSet_Stock(intn,doublema,doublemi,doubleb,doublee);

doubleGet_End();

voidShow_Stock();

private:

intNumber;

doubleMax,Min,Begin,End;};

Stock:

:

Stock(intn,doublema,doublemi,doubleb,doublee)

{Number=n;

Max=ma;

Min=mi;

Begin=b;

End=e;}

voidStock:

:

Set_Stock(intn,doublema,doublemi,doubleb,doublee)

{Number=n;

Max=ma;

Min=mi;

Begin=b;

End=e;}

doubleStock:

:

Get_End()

{returnEnd;}

voidStock:

:

Show_Stock()

{cout<

cout<

cout<

cout<

cout<

voidmain()

{Stocks1(1,4.18,4.00,4.0

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2