ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:196.98KB ,
资源ID:4697813      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4697813.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(西安交大C程序设计作业.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

西安交大C程序设计作业.docx

1、西安交大C程序设计作业西安交通大学实验报告课程_计算机程序设计_实验名称_继承_第 1 页 共 页系 别_ _ 实 验 日 期 2014 年 5 月 日专业班级_ _组别_ 实 验 报 告 日 期 2014 年 月 日姓 名_ _学号_ _ 报 告 退 发 ( 订正 、 重做 )同 组 人_ 教 师 审 批 签 字 一、实验目的熟练继承的用法,进一步训练类的编程,并练习不同继承方式下对基类的成员的访问的控制。二、实验内容 (一)第一题:从类Person中派生出一个教师类,新增的属性有:专业、职称和主讲课程(一门),并为这些属性定义相应的方法。1.源程序代码: #includeusing nam

2、espace std;class Personprotected: char *Name; char Sex; int Age;public: Person() Name=csj; Sex=M; Age=18; Person(char *name,char sex,int age) Register(name,sex,age); Person() delete Name; void Register(char *name,char sex,int age) int m=strlen(name); Name=new charm+1; strcpy(Name,name); Sex=sex; Age

3、=age; void print() cout姓名:Namet性别:Sext年龄:Ageendl; ;class Teacher:public Personprotected: char *zhuanye; char *zhicheng; char *course;public: Teacher(); Teacher(char*,char,int,char*,char*,char*); void Register(char*,char,int,char*,char*,char*); Teacher(); void print(); ;Teacher:Teacher() Person:Regis

4、ter(罗先觉,M,61); strcpy(zhuanye,电气工程及其自动化); strcpy(zhicheng,教授); strcpy(course,电路);Teacher:Teacher(char *name,char sex,int age,char *zy,char *zc,char *cor) Register(name,sex,age,zy,zc,cor);void Teacher:Register(char *name,char sex,int age,char *zy,char *zc,char *cor) Person:Register(name,sex,age); zhu

5、anye=new charstrlen(zy)+1; strcpy(zhuanye,zy); zhicheng=new charstrlen(zc)+1; strcpy(zhicheng,zc); course=new charstrlen(cor)+1; strcpy(course,cor); Teacher:Teacher() delete zhuanye; delete zhicheng; delete course;void Teacher:print() cout姓名:Namet性别:Sext年龄:Aget专业zhuanyet职称:zhichengt主讲课程:courseendl;i

6、nt main() Person person; person.Register(csj,M,18); person.print(); Teacher teacher(lll,M,56,math,jiaoshou,gaoshu); teacher.print(); teacher.Register(某某,M,58,数学,教授,高等数学); teacher.print(); return 0;2.实验结果:(二)第二题:第二题:许多研究生既有学生的属性,又有教师的属性。试通过多重继承说明一个研究生类。1.源程序代码:/许多研究生既有学生的属性,又有教师的属性。试通过多重继承说明一个研究生类。#i

7、ncludeusing namespace std;class Personprotected: char Name10; /姓名 int Age; /年龄 char Sex; /性别public: Person() strcpy(Name,人某某); Age=34; Sex=m; Person(char *name,int age,char sex) Registerper(name,age,sex); void Registerper(char *name,int age,char sex) /设置数据成员 strcpy(Name,name); Age = age; Sex=(sex=m?

8、 m:f); void printper() /输出数据成员 cout姓名:Namet年龄:Aget性别:Sex; ;class Student:public Personprotected: char Classname20; char Number20; char Zhuanye20;public: Student() Registerper(学生某某,18,f); strcpy(Classname,钱学森); strcpy(Number,2130405000); strcpy(Zhuanye,电气); Student(char *name,int age,char sex,char *c

9、lassname,char *number,char *zhuanye) Registerstu(name,age,sex,classname,number,zhuanye); void Registerstu(char *name,int age,char sex,char *classname,char *number,char *zhuanye) Registerper(name,age,sex); strcpy(Classname,classname); strcpy(Number,number); strcpy(Zhuanye,zhuanye); void printstu() pr

10、intper(); coutt班级:Classnamet学号:Numbert专业:Zhuanye; ;class Teacher:public Personprotected: char Zhicheng20; char Keti20; char Kecheng20;public: Teacher() Registerper(老师某某,45,m); strcpy(Zhicheng,教授); strcpy(Keti,新型计算机开发); strcpy(Kecheng,计算机基础); Teacher(char *name,int age,char sex,char *zhicheng,char *k

11、eti,char *kecheng) Registertea(name,age,sex,zhicheng,keti,kecheng); void Registertea(char *name,int age,char sex,char *zhicheng,char *keti,char *kecheng) Registerper(name,age,sex); strcpy(Zhicheng,zhicheng); strcpy(Keti,keti); strcpy(Kecheng,kecheng); void printtea() printper(); coutt职称:Zhichengt课题:

12、Ketit课程:Kecheng; ;class Graduate:public Student,public Teacherpublic: Graduate() Registerstu(研究生某某 ,23 ,f ,电气某班,1130506060,电气); strcpy(Keti,电力系统研究); strcpy(Kecheng,电路); Graduate(char *name,int age,char sex,char *classname,char *number,char *zhuanye,char *keti,char *kecheng) Registergra(name,age,sex,

13、classname,number,zhuanye,keti,kecheng); void Registergra(char *name,int age,char sex,char *classname,char *number,char *zhuanye,char *keti,char *kecheng) Registerstu(name,age,sex,classname,number,zhuanye); strcpy(Keti,keti); strcpy(Zhuanye,zhuanye); void printgra() printstu(); coutt课题:Ketit课程:Kechen

14、g; ;int main() Person person; cout显示结果:t; person.printper(); person.Registerper(王某某,34,m); coutn初始化后显示结果:n; person.printper(); Student student; coutn显示结果:t; student.printstu(); student.Registerstu(张某某,18,m,qianxuesheng66,1234500034,dianqigongcheng); coutn初始化后显示结果:n; student.printstu(); Teacher teach

15、er; coutn显示结果:t; teacher.printtea(); teacher.Registertea(刘某某,56,m,教授,陶艺历史研究,中国传统文化); coutn初始化后显示结果:n; teacher.printtea(); Graduate graduate; coutn显示结果:n; graduate.printgra(); graduate.Registergra(勒某某,23,f,21班,1120303030,电气,高压输电系统,信号与系统); coutn初始化后显示结果:n; graduate.printgra(); coutendl; return 0; 2.实验

16、结果:(三)第三题:修改例9-5,从Point类中派生出一个Line类。Line类增加一个数据成员EndPoint计算线的长度。试比较一下与直接使用Point类来构造Line类的不同之处。1.源程序代码:(用了三个文件) /Point.h文件Point类#ifndef POINT_H#define POINT_Husing namespace std;class Point/Point类中定义内容:x,y为坐标;setpoint为录入坐标函数; /GetX,GetY是为了将x,y这两个私有成员能够用于line类而定义的,print为输出函数。 int x,y;public: Point() x

17、=0; y=0; Point(int a,int b) SetPoint(a,b); void SetPoint(int a,int b) x=a; y=b; void Print() coutx,y; int GetX() return x; int GetY() return y; ;#endif/line.h文件line类#ifndef CIRCLE_H#define CIRCLE_H#include#includeusing namespace std;#includepoint.hclass Line:public Point double length;public: Point

18、point1,point2; Line() point1.SetPoint(0,0); point2.SetPoint(0,0); Line(int a,int b,int c,int d) SetLine(a,b,c,d); void SetLine(int a,int b,int c,int d) point1.SetPoint(a,b); point2.SetPoint(c,d); void EndPoint() int x1=point1.GetX(),y1=point1.GetY(),x2=point2.GetX(),y2=point2.GetY(); length=sqrt(x1-

19、x2)*(x1-x2)*1.0+(y1-y2)*(y1-y2)*1.0); void Print() coutlength; ;#endif/main文件执行测试#include#includepoint.h#includeline.husing namespace std;int main() Point p(30,50); Line l(12,34,56,78); coutPoint p:; p.Print(); coutnThe location of Line l:; couttPoint 1:; l.point1.Print(); couttPoint 2:; l.point2.Pr

20、int(); coutnThe length of line l:; l.EndPoint(); l.Print(); coutendl; return 0;2.实验结果: 四、第四题:从Date类和Time类派生出一个DateAndTime类,修改相应的成员函数,当时间递增到新的一天时,能够修改日期值。 1.程序源代码:#include#includeusing namespace std;class Dateprotected: int year,month,day;public: Date(int a,int b,int c) year=a; month=b; day=c; void i

21、nit(int yy,int mm,int dd); void print_ymd();void Date:init(int yy,int mm,int dd) month=(mm=1&mm=1900&yy=1&dd=31) ? dd:1;void Date:print_ymd() coutyear-month-day;class Time protected: int hour,minute,second;public: Time(int h,int m,int s) hour=h,minute=m,second=s; void Register(int h=0,int m=0,int s=

22、0) hour=h,minute=m,second=s; void Showme_hms() cout hour小时minute分钟second秒=60) n=second/60;second=second%60;minute=minute+n; if(second=60) n=minute/60;minute=minute%60;hour=hour+n; if(minute=24) n=hour/24;hour=hour%24;day=day+n; if(hour=30) n=day/30;day=day%30;month=month+n; if(day=12) n=month/12;mon

23、th=month%12;year=year+n; if(month0) n=month/12+1;month=month%12+12;year=year-n; void add(DateAndTime &d) year=year+d.year; month=month+d.month; day=day+d.day; hour=hour+d.hour; minute=minute+d.minute; second=second+d.second;void sub(DateAndTime&d) year=year-d.year; month=month-d.month; day=day-d.day

24、; hour=hour-d.hour; minute=minute-d.minute; second=second-d.second;void show() Normal(); print_ymd(); Showme_hms();void main() DateAndTime d1,d2; cout初始化:n; d1.show(); d2.show(); d1.input(2014,5,23,22,4,50); d2.input(0,0,0,6,58,29); cout第一个时间:n; d1.show(); cout第二个时间:n; d2.show(); cout 重载函数、输出生日祝词与蛋糕形状函数。并编写主函数测试各成员函数。继承方式如下:首先定义圆柱体形状蛋糕类,只有 3 个数据成员,半径、高、生日祝词。然后派生出圆柱体 _ 方柱体蛋糕类,即在圆柱体形状上增加方柱体形状。假定方柱体的正方形面积小于圆柱体的圆形面积,注意方柱体的高与正方形的边长不一定相等。再用圆柱体

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

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