实验一 类和对象.doc_第1页
实验一 类和对象.doc_第2页
实验一 类和对象.doc_第3页
实验一 类和对象.doc_第4页
实验一 类和对象.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原工业学院计算机工程系实 验 报 告课程名称C+程序设计A2班级1420561实验日期2015.03.23姓 名刘翔翔学号142056121实验成绩实验名称实验一 类与对象的创建实验目的及要求1掌握类的定义,根据具体需求设计类。2深入理解C+中类的封装性。3会根据类创建各种对象。4掌握对象的各种成员的使用方法。实验环境VC+6.0实验内容1.有以下程序:Class Time/定义Time类public:/数据成员为公用的int hour;int minute;int sec;void main()Time tl;/定义t1为Time类对象cint1.hour;/输入设定的时间cint1.minute;cint1.sec;coutt1hourl”:”t1minute”:”t1secendl;改写程序,要求:将数据成员改为私有的;将输入和输出的功能改为由成员函数实现;在类体内定义成员函数。然后编译和运行程序。请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好在类外定义?2.分别给出如下的3个文件:含类定义的头文件student.h,在此文件中进行类的声明;Class Student/类声明public:/公用成员函数原型声明void display();private:int num;char name20;char sex;包含成员函数定义的源文件studentCpp,在此文件中进行函数的定义;void Student:display()/在类外定义display类函数 cout”num:”numendl;cout”name:”nameendl;cout”sex:”sexendl;包含主函数的源文件main.cpp。为了组成一个完整的源程序,应当有包括主函数的源文件:/将类声明头文件包含进来#include“student.h”void main()Student stud;/定义对象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) 主要代码void input(int h,int m,int s) hour=h; minute=m; sec=s; void output() couthour:minute:sechms; t1.input(h,m,s); t1.output(); return 0;2.Student类 (1) 算法描述a) 在Student.h中定义Student类,增加set_value()函数。b) 在Student2.cpp中定义display()及set_value()c) 在主函数中定义num,name,sex及对象stud。d) 对stud赋值及进行输出。(2) 程序流程图(3)主要代码 void Student:set_value(int n,char *na,char s) num=n; strcpy(name,na); sex=s;void Student:display() coutnum:numendl; coutname:nameendl; coutsex:sexendl;3.Date类 (1) 算法描述a) 在Date.h中声明Date类,声明void Display(),void AddOneDay(),void SetDay(int y,int m,int d), bool Legal(int y, int m, int d),bool IsLeapYear(int y)。在Date2.cpp中定义它们。b) 主函数中定义对象d,赋值输出,加一天后输出。(2) 程序流程图调试过程及实验结果1.Time类出现的问题:在类中使用了中文的“;”;在建立工程时选了空工程,不会使用VC6.0;改正结果:2.Student类 出现的问题: 因为没有把stdafx.h头文件放在第一行,而导致编译报错; 因为没有预编译头文件而导致无法编译; 因为在main函数文件中包含了Student2.cpp,导致函数重定义,编译不成功。 改正后成功,结果:3Date类 编译成功总结1 要注意输入,中英文的切换。2 在所有非main函数的.cpp文件中都要包含stdafx而且必须放在文件的第一行。3. 在写程序时VC6.0使用预编译头文件,必须先对头文件进行预编译,才能让整个程序完成编译。4. 要注意编译器对文件的编译过程,不要重复使用一个文件,让编译器对其重复编译,这样也会报错。附录 3.代码如下:class Datepublic: void Display(); void AddOneDay(); void SetDay(int y,int m,int d);protected: bool Legal(int y, int m, int d); bool IsLeapYear(int y); int year; int month; int day;void Date:Display() cout day / month / year 9999|y1|d1|m12) return false; int dayLimit=31; switch(m) case 4: case 6: case 9: case 11: dayLimit-; if(m=2) dayLimit = IsLeapYear(y) ? 29 : 28; return (ddayLimit)? false : true;bool Date:IsLeapYear(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论