09考试批次《面向对象程序设计》结课作业讲课讲稿.docx

上传人:b****5 文档编号:6131892 上传时间:2023-01-04 格式:DOCX 页数:16 大小:24.89KB
下载 相关 举报
09考试批次《面向对象程序设计》结课作业讲课讲稿.docx_第1页
第1页 / 共16页
09考试批次《面向对象程序设计》结课作业讲课讲稿.docx_第2页
第2页 / 共16页
09考试批次《面向对象程序设计》结课作业讲课讲稿.docx_第3页
第3页 / 共16页
09考试批次《面向对象程序设计》结课作业讲课讲稿.docx_第4页
第4页 / 共16页
09考试批次《面向对象程序设计》结课作业讲课讲稿.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

09考试批次《面向对象程序设计》结课作业讲课讲稿.docx

《09考试批次《面向对象程序设计》结课作业讲课讲稿.docx》由会员分享,可在线阅读,更多相关《09考试批次《面向对象程序设计》结课作业讲课讲稿.docx(16页珍藏版)》请在冰豆网上搜索。

09考试批次《面向对象程序设计》结课作业讲课讲稿.docx

09考试批次《面向对象程序设计》结课作业讲课讲稿

201709考试批次

《面向对象程序设计》结课作业

 

学生姓名学习中心

学号

专业年级层次

 

北京语言大学网络教育学院

《面向对象程序设计》结课作业

注意:

本学期所布置的结课作业,请同学一律按照以下要求执行:

1)结课作业提交起止时间:

2017年8月2日--9月11日。

(届时平台自动关闭,逾期不予接收。

2)结课作业课程均需通过“离线作业”栏目提交电子版,学院不收取纸介的结课作业,以纸介回寄的作业一律视为无效;

3)截止日期前可多次提交,平台只保留最后一次提交的文档,阅卷时以最后一次提交的结课作业为准,截止日期过后将关闭平台,逾期不交或科目提交错误者,按0分处理;

4)提交文档要求:

提交的文档格式为doc、rar,大小10M以内;

5)必须严格按照每门课程的答题要求完成作业,没有按照学院要求来做的结课作业,将酌情扣分。

一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)

1、#include

voidmain()

{

inti,s=0;

for(i=2;i<=30;i+=2)s+=i*i;

cout<<"s="<

}

答:

计算并输出2^2+4^2+6^2+....+30^2的值

2、ints1(intn)

{

intx;

if(n==1)x=1;

elsex=s1(n-1)+n*n;

returnx;

}

答:

函数的功能是:

通过递归调用函数S1求得1^2+2^2+3^2+….+n^2的值

3、voidfun5(char*a,constchar*b)

{

while(*b)*a++=*b++;

*a=0;

}

答:

实现字符串系统函数strcpy的功能把b所指的字符串拷贝到a所指的字符数组空间中

4、voidfun3(inta[][N],intm,intn,int&row,int&col)

{

intx=a[0][0];

row=col=0;

for(inti=0;i

for(intj=0;j

if(a[i][j]>x){

x=a[i][j];row=i;col=j;

}

}

答:

函数的功能是:

找出数组中最大数所在的行和列

5、char*f8(char*str1,constchar*str2)

{

inti=0,j=0;

while(str1[i])i++;

while(str2[j])str1[i++]=str2[j++];

str1[i]='\0';

returnstr1;

}

答:

函数的功能是:

把str2链接到str1后面。

二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)

1、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。

55555

4444

333

22

1

答:

voidp(intn){

if(n!

=0){

for(inti=0;i

cout<

p(n-1);

}

}

2、按照函数原型语句“voidp(intn);”编写一个递归函数显示出如下图形,此图形是n=5的情况。

1

22

333

4444

55555

答:

voidp(intn)

{

if(n==1)

{

printf("1\n");

return;

}

else

{

p(n-1);

for(inti=1;i<=n;i++)

{

printf("%d",n);

}

printf("\n");

}

}

voidmain()

{

p(5);

}

3、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。

intf(inta[],intn);

答:

intf(inta[],intn)

{if(n<=0)return0;

elsereturn(f(a,n‐1)+a[n‐1]*a[n‐1]);

}

4、根据下面类中MaxMin函数成员的原型和注释写出它的类外定义。

classAA{

int*a;

intn;

intMS;

public:

voidInitAA(intaa[],intnn,intms){

if(nn>ms){cout<<"Error!

"<

(1);}

MS=ms;

n=nn;

a=newint[MS];

for(inti=0;i

}

intMaxMin(int&x,int&y);//从数组a的前n个元素中求出

//最大值和最小值,并分别由引用参数x和y带回,

//同时若n大于0则返回1,否则返回0。

};

答:

intAA:

:

MaxMin(int&x,int&y){

intmx,my;mx=my=a[0];

for(inti=1;i

if(a[i]>mx)mx=a[i];

if(a[i]

}

x=mx;y=my;

if(n>0)return1;elsereturn0;}

5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A==B。

试定义矩阵类,

对“==”运算符重载。

答:

#include

usingnamespacestd;

constintM=3;

constintN=3;

classMatrix{

private:

intX[M][N];

public:

friendintoperator==(Matrix&A,Matrix&B);

};

intoperator==(Matrix*A,Matrix*B){

inti,j;

for(i=0;i

for(j=0;j

{

if(A[i][j]!

=B[i][j])

return0;

}

return1;

}

三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误)

1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。

(用多态性实现)

答:

#include

#include

usingnamespacestd;

classShape{

private:

public:

virtualdoubleS()=0;

virtualdoubleC()=0;

};

classTri:

publicShape{

private:

doubler1,r2,r3;

public:

Tri(doubled1=0,doubled2=0,doubled3=0):

r1(d1),r2(d2),r3(d3){};

doubleS(){return(sqrt(0.5*(r1+r2+r3)*0.5*(r1-r2+r3)*0.5*(r1+r2-r3)*0.5*(-r1+

r2+r3)));}

doubleC(){return(r1+r2+r3);}

};

classQua:

publicShape{

private:

doubleside;

public:

Qua(doubless):

side(ss){};

doubleS(){return(ss*ss);}

doubleC(){return(4*ss);}

}

classCir:

publicShape{

private:

doublerad;

public:

Cir(doubledd):

rad(dd){};

doubleS(){return(3.14*rad*rad);}

doubleC(){return(2*3.14*rad);}

};

intmain(){

Shape*a=newTri(3,4,5);

Shape*b=newCir

(2);

Shape*d=newQua(4);

cout<C()<

cout<S()<

cout<C()<

cout<S()<

cout<C()<

cout<S()<

return0;

};

2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。

答:

#include

#include

classstudent

{

public:

intno;

char*name;

intdeg;

student();

~student();

voiddisplay();

};

staticintsum,num=3;

staticintavg(intsum);

voidmain()

{

intaver;

studentstu[3];

stu[0].no=1;

stu[0].name="li";

stu[0].deg=89;

stu[1].no=2;

stu[1].name="chen";

stu[1].deg=78;

stu[2].no=3;

stu[2].name="zheng";

stu[2].deg=94;

for(inti=0;i<3;i++)

{

stu[i].display();

sum+=stu[i].deg;

}

cout<<"thesumis:

"<

aver=avg(sum);

cout<<"theaverageis:

"<

}

student:

:

student()

{

no=0;

name=(char*)malloc(sizeof(char)*8);

deg=0;

}

student:

:

~student()

{

free(name);

}

voidstudent:

:

display()

{

cout<

}

staticintavg(intsum)

{

intaver;

aver=sum/num;

returnaver;

}

3、应用C++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的表面积和体积。

答:

#include

usingnamespacestd;

#definen3.14

classShuju{

public:

virtualvoidbiaomianji()=0;

virtualvoidtiji()=0;

};

classzhengfangti:

publicShuju{

public:

zhengfangti(inta){this‐>a=a;}

voidbiaomianji();

voidtiji();

private:

inta

};

voidzhengfangti:

:

biaomianji()

{

cout<<"正方形的表面积为"<<6*a*a<

}

voidzhengfangti:

:

tiji()

{

cout<<"正方形的体积为"<

}

classqiuti:

publicShuju{

public:

qiuti(intb){this‐>b=b;}

voidbiaomianji();

voidtiji();

private:

intb

};

voidqiuti:

:

biaomianji(){

cout<<"球体的表面积为"<<4*n*b*b<

}

voidqiuti:

:

tiji(){

cout<<"球体的体积为"<<(4.0/3.0)*n*b*b*b<

}

classyuanzhuti:

publicShuju{

public:

yuanzhuti(intr,intd){this‐>r=r;this‐>d=d;}

voidbiaomianji();

voidtiji();

private:

intr,d;

};

voidyuanzhuti:

:

biaomianji()

{

cout<<"圆柱体的表面积为"<<2*n*r*r+2*n*r*d<

}

voidyuanzhuti:

:

tiji()

{

cout<<"圆柱体的体积为"<

}

voidfun(Shuju*ptr)

{

ptr‐>biaomianji();

}

voidfun1(Shuju*ptr)

{

ptr‐>tiji();

}

voidmain()

{

zhengfangtizheng(3);

qiutiqiu(4);

yuanzhutiyuanzhu(3,4);

fun(&zheng);

fun1(&zheng);

fun(&qiu);

fun1(&qiu);

fun(&yuanzhu);

fun1(&yuanzhu);

}

4、编写一个程序,实现图书和杂志销售管理。

当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。

答:

#include

#include

usingnamespacestd;

intmain(){

stringbookName;

stringmagazineName;

stringa[100],b[100];

intbookNumber;

intmagazineNumber;

inti=0,j=0,c,d;

do{cout<<"请输入图书的名称:

"<

cin>>bookName;

cout<<"请输入图书销售的数量:

"<

cin>>bookNumber;

if(bookNumber>500)

{a[i]=bookName;

i++;}

cout<<"请问还有图书需要输入吗?

有请按1,没有请按0"<

cin>>c;

}while(c==1);

do{cout<<"请输入杂志的名称:

"<

cin>>magazineName;

cout<<"请输入杂志销售的数量:

"<

cin>>magazineNumber;

if(magazineNumber>2500)

{b[j]=magazineName;

j++;

}

cout<<"请问还有杂志需要输入吗?

有请按1,没有请按0"<

cin>>d;

}

while(d==1);

cout<<"销售良好的图书有:

"<

for(intk=0;k!

=i;k++)

cout<

cout<<"销售良好的杂志有:

"<

for(intx=0;x!

=j;x++)

cout<

return0;

system("pause");

}

5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。

为该兽医设计一个程序,要求记录狗的品种(breed),身高(height),体重(weight),颜色(color)等信息。

为斑点狗和不带斑点的狗设计不同的类。

下面的程序使用你设计的类。

voidmain()

{//定义一个白色的Dalmatian斑点狗,它身高24,体重60,

斑点为红色

spotted_dogredSpot("Dalmatian",24,60,"white","red");

//定义一个黄色的Labrador无斑点狗,它身高30,体重40

unspotted_dogrover("LabradorRetriever",30,40,"yellow");

redSpot.show_name();//显示狗名

redSpot.show_breed();//显示狗品种

redSpot.spot_info();//显示狗斑点信息

rover.show_name();//显示狗名

rover.show_breed();//显示狗品种

}

答:

#include

usingnamespacestd;

classunspotted_dog{

//定义无斑点的狗作为基类

charbreed[20],color[10];//定义字符数组,存放狗的品种和颜色

floatheight,weight;

public:

unspotted_dog(char*br,char*co,floathe,floatwe)//形参为字符型指针,对应实参为字符

串(字符数组)

{strcpy(breed,br);strcpy(color,co);height=he;weight=we;}//字符赋值得用

strcpyvoidshow_breed()

{cout<<"Breedis:

"<

//输出无斑点狗的品种

//还可定义其它函数输出身高、体重和颜色

};

classspotted_dog:

publicunspotted_dog{//定义有斑点狗为无斑狗的派生类

charspot_color[10];

public:

//斑点颜色为新增成员

§8-2购物环境与消费行为2004年3月20日spotted_dog(char*br,floathe,floatwe,char*co,char*sp_co):

unspotted_dog(br,he,we,co)

//初始化基类成员

{strcpy(spot_color,sp_co);}

据上述部分的分析可见,我校学生就达4000多人。

附近还有两所学校,和一些居民楼。

随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。

他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。

但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。

这给我们小组的创业项目提供了一个很好的市场机会。

voidspot_info()

4.WWW。

google。

com。

cn。

大学生政策2004年3月23日//初始化新增成员

300元以下918%{cout<<"spot_coloris:

"<

(二)大学生对DIY手工艺品消费态度分析};

intmain(void)

3、竞争对手分析{spotted_dogredSpot("Dalmatian",24,60,"white","red");//定义斑点狗类的对象

(五)DIY手工艺品的“价格弹性化”unspotted_dogrover("LabradorRetriever",30,40,"yellow");//定义无斑点狗类的对象

redSpot.show_name();//显示狗名

1、购买“女性化”redSpot.show_breed();//显示狗品种

可是创业不是一朝一夕的事,在创业过程中会遇到很多令人难以想象的疑难杂症,对我们这些80年代出生的温室小花朵来说,更是难上加难。

redSpot.spot_info();//显示狗斑点信息

rover.show_name();//显示狗名

我们熟练的掌握计算机应用,我们可以在网上搜索一些流行因素,还可以把自己小店里的商品拿到网上去卖,为我们小店提供了多种经营方式。

rover.show_breed();//显示狗品种

return0;}

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

当前位置:首页 > 求职职场 > 简历

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

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