实验一类和对象Word文档格式.docx

上传人:b****4 文档编号:7746754 上传时间:2023-05-09 格式:DOCX 页数:16 大小:446.47KB
下载 相关 举报
实验一类和对象Word文档格式.docx_第1页
第1页 / 共16页
实验一类和对象Word文档格式.docx_第2页
第2页 / 共16页
实验一类和对象Word文档格式.docx_第3页
第3页 / 共16页
实验一类和对象Word文档格式.docx_第4页
第4页 / 共16页
实验一类和对象Word文档格式.docx_第5页
第5页 / 共16页
实验一类和对象Word文档格式.docx_第6页
第6页 / 共16页
实验一类和对象Word文档格式.docx_第7页
第7页 / 共16页
实验一类和对象Word文档格式.docx_第8页
第8页 / 共16页
实验一类和对象Word文档格式.docx_第9页
第9页 / 共16页
实验一类和对象Word文档格式.docx_第10页
第10页 / 共16页
实验一类和对象Word文档格式.docx_第11页
第11页 / 共16页
实验一类和对象Word文档格式.docx_第12页
第12页 / 共16页
实验一类和对象Word文档格式.docx_第13页
第13页 / 共16页
实验一类和对象Word文档格式.docx_第14页
第14页 / 共16页
实验一类和对象Word文档格式.docx_第15页
第15页 / 共16页
实验一类和对象Word文档格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验一类和对象Word文档格式.docx

《实验一类和对象Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验一类和对象Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。

实验一类和对象Word文档格式.docx

VC++6.0

1.有以下程序:

ClassTime//定义Time类

{

public:

//数据成员为公用的

inthour;

intminute;

intsec;

};

voidmain()

Timetl;

//定义t1为Time类对象cin>

>

t1.hour;

//输入设定的时间cin>

t1.minute;

cin>

t1.sec;

cout<

<

t1.hourl<

”:

”<

t1.minute<

t1.sec<

endl;

}

改写程序,要求:

①将数据成员改为私有的;

②将输入和输出的功能改为由成员函数实现;

③在类体内定义成员函数。

然后编译和运行程序。

请分析什么成员应指定为公用的?

什么成员应指定为私有的?

什么函数最好放在类中定义?

什么函数最好在类外定义?

2.分别给出如下的3个文件:

①含类定义的头文件student.h,在此文件中进行类的声明;

ClassStudent//类声明

public:

//公用成员函数原型声明

voiddisplay();

private:

intnum;

charname[20];

charsex;

};

②包含成员函数定义的源文件student.Cpp,在此文件中进行函数的定义;

voidStudent:

:

display()//在类外定义display类函数

{cout<

”num:

num<

”name:

name<

”sex:

sex<

③包含主函数的源文件main.cpp。

为了组成一个完整的源程序,应当有包括主函数的源文件:

//将类声明头文件包含进来

#include“student.h”

Studentstud;

//定义对象

stud.display();

//执行stud对象的display函数

请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value。

上机调试并运行。

3.定义一个满足如下要求的Date类。

(1)用下面的格式输出日期:

日/月/年

(2)可运行在当前日上加一天操作

(3)设置日期。

代码见附录。

1.Time类

(1)算法描述

a)先在Time.h中声明一个Time类,并在其中定义input()及output()成员函数,数据成员hour,minute和sec为private。

b)在主函数中定义对象t1,通过函数对t1赋值及输出t1。

(2)程序流程图

(3)主要代码

voidinput(inth,intm,ints)

{

hour=h;

minute=m;

sec=s;

}

voidoutput()

{

cout<

hour<

"

minute<

sec<

endl;

inthour;

//数据成员私有

intminute;

intsec;

intmain(intargc,char*argv[])

{

inth,m,s;

timet1;

cin>

h>

m>

s;

t1.input(h,m,s);

t1.output();

return0;

2.Student类

(1)算法描述

a)在Student.h中定义Student类,增加set_value()函数。

b)在Student2.cpp中定义display()及set_value()

c)在主函数中定义num,name,sex及对象stud。

d)对stud赋值及进行输出。

(3)主要代码

voidStudent:

set_value(intn,char*na,chars)

num=n;

strcpy(name,na);

sex=s;

display()

num:

name:

sex:

3.Date类

a)在Date.h中声明Date类,声明voidDisplay(),voidAddOneDay(),voidSetDay(inty,intm,intd),boolLegal(inty,intm,intd),boolIsLeapYear(inty)。

在Date2.cpp中定义它们。

b)主函数中定义对象d,赋值输出,加一天后输出。

出现的问题:

在类中使用了中文的“;

”;

在建立工程时选了空工程,不会使用VC6.0;

改正结果:

出现的问题:

因为没有把stdafx.h头文件放在第一行,而导致编译报错;

因为没有预编译头文件而导致无法编译;

因为在main函数文件中包含了Student2.cpp,导致函数重定义,编译不成功。

改正后成功,结果:

3.Date类

编译成功

 

1.要注意输入,中英文的切换。

2.在所有非main函数的.cpp文件中都要包含stdafx而且必须放

在文件的第一行。

3.在写程序时VC6.0使用预编译头文件,必须先对头文件进行预编译,才能让整个程序完成编译。

4.要注意编译器对文件的编译过程,不要重复使用一个文件,让编译器对其重复编译,这样也会报错。

3.代码如下:

classDate{

voidDisplay();

voidAddOneDay();

voidSetDay(inty,intm,intd);

protected:

boolLegal(inty,intm,intd);

boolIsLeapYear(inty);

intyear;

intmonth;

intday;

voidDate:

Display()

cout<

day<

/"

<

month<

year<

AddOneDay()

if(Legal(year,month,day+1))

day++;

elseif(Legal(year,month+1,1))

month++,day=1;

elseif(Legal(year+1,1,1))

day=1,month=1,year++;

SetDay(inty,intm,intd)

if(Legal(y,m,d))

day=d,month=m,year=y;

boolDate:

Legal(inty,intm,intd)

if(y>

9999||y<

1||d<

1||m<

1||m>

12)

returnfalse;

intdayLimit=31;

switch(m)case4:

case6:

case9:

case11:

dayLimit--;

if(m==2)dayLimit=IsLeapYear(y)?

29:

28;

return(d>

dayLimit)?

false:

true;

IsLeapYear(inty)

return!

(y%4)&

&

(y%100)||!

(y%400);

intmain()

Dated;

d.SetDay(2010,2,28);

d.Display();

d.AddOneDay();

system("

PAUSE"

);

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

当前位置:首页 > 初中教育 > 政史地

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

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