



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.2 职员档案管理程序 是这一个简化了的雇员档案管理程序。其中把雇员的档案数据和对这些数据的设置、修改、删除等操作组成一个程序模块。程序通过这个模块-类的公有部分对档案数据进行处理,实现了面向对象程序设计的“封装”功能。 / program 6_2.cpp #include #include class employee char *name; / 雇员姓名 short age; / 年龄 float salary; / 工资 public: employee(); void set_name(char *); void set_age(short a)age=a; void set_salary(float s)salary=s; void print(); employee()deletename; ; employee:employee() name=0; age=0; salary=0.0; void employee:set_name(char *n) name=new charstrlen(n)+1; strcpy(name,n); void employee:print() coutName: name; coutAge: age; coutSalary: salaryendl; void main() char *na=0; short ag=0; float sa=0; na=new char10; employee emp5; for(int i=0;ina; cinag; cinsa; empi.set_name(na); empi.set_age(ag); empi.set_salary(sa); empi.print(); emp3.set_salary(5100.0); emp3.print(); emp1.employee(); cinna; emp1.set_name(na); emp1.set_age(23); emp1.set_salary(2000.0); emp1.print(); 说明: 这是一个简化的雇员档案管理程序,其中533行定义了一个employee类,它包含了一个雇员的档案数据,及对这些数据的若干处理函数。 构造函数employee,它在进行结象说明时被自动调用。这时创建的是一个雇员的空档案。 第39行说明的是一个对象数组,一次建立了五个雇员的空档案。 set_name(),set_age(),set_salary()三个函数可用来为雇员档案填 入姓名、年龄、工资。其中填 入姓名时要创建一个长度为该姓名字符串长度+1的字符数组,以便以字符串形式存放该雇员的姓名。 print()函数的功能是输出该雇员的档案内容。 析构函数employee()的功能是当某雇员档案撤消或改成另一姓名时,把原占用的字符串空间释放掉。 - 9.3 在平面上用直线和圆画图 编一个程序,以直线段、矩形和圆为基本图元组成一图形。 我们采用面向对象的编程方法,把直线line,矩形rectangle和圆circle设计为三个类,它们各有自己的数据和函数成员。用线、矩形和圆组合成图形,就是对这三个类的对象进行操作。 程序代码如下: / program 6_3.cpp #include #include #include #include class Line int startx,starty,endx,endy; public: Line(int sx,int sy,int ex,int ey) startx=sx; starty=sy; endx=ex; endy=ey; void draw(); ; class Rectangle int uplx,uply,lowrx,lowry; public: Rectangle(int ulx,int uly,int lrx,int lry) uplx=ulx; uply=uly; lowrx=lrx; lowry=lry; void draw(); ; class Circle int centx,int centy,radius; public: Circle(int cx,int cy,int r) centx=cx; centy=cy; radius=r; void draw(); ; void Line:draw() _moveto(startx,starty); _lineto(endx,endy); / 画一条直线 void Rectangle:draw() _rectangle(_GBORDER,uolx,uply,lowrx,lowry); / 画一个空心矩形 void Circle:draw() _ellipse(_GBORDER,centx-radius,centy-radius,centx+radius,centy+radius); / 画一个圆 void main() short centx,centy; cincentxcenty; Rectangle fram1(centx-60,centy-60,centx+60,centy+60), fram2(centx-62,centy-62,centx+62,centy+62); Circle disk(centx,centy,55); Line poin1(centx,centy,centx+25,centy+25), poin2(centx,centy,centx+12,centy+40), bar1(centx,centy+50,centx,centy+42), bar2(centx,centy-42,centx,centy-50), bar3(centx-50,centy,centx-42,centy), bar4(centx+42,centy,centx+50,centy); if(!_setvideomode(_MAXRESMODE) exit(1); fam1.draw(); fram2.draw(); disk.draw(); bar1.draw(); bar2.draw(); bar3.draw(); bar4.draw(); poin1.draw(); poin2.draw(); getch(); _setvideomode(_DEFAULTMODE); 程序说明: 1) 这是一个利用基本图形对象直线段、矩形和圆来组成一个简单的表形的程序。从这个程序的设计过程(虽然它比实际程序简化了许多)可以了解面向对象程序设计的基本方式和特征。在5579行的main函数中首先根据需要说明若干个图元对象:两个矩形,一个圆,六个直线段,它们正是组成显示的图形的各基本图元。最后分别调用各自的draw函数,完成了显示任务。 2) 程序中采用了在图形模式下进行屏幕显示的操作方式。系统的屏幕显示可有两种基本模式:文本模式:这是系统平时工作的模式。 图形模式:当程序需要输出图形时,应把系统设为图形模式。 用setvideomode()函数把系统由文本模式转为图形模式。 在各个类的draw()函数中,利用图形库函数完成基本图元的生成显示。 在616和4144行,定义了一个Line类,它由四个私有成员和两个公有成员的函数成员组成,这完全是为了简化程序。例如,还可以为该直线段设置颜色。查阅坐标。修改数据等等操作。 在1828行和4648行,定义了Rectangle类。 在3039行和5051行,定义了Circle类。 三种类的定义,只是说明了类。在5866行的对象说明中才有了类的具体内容,同时按照 给出的不同参数,决定了这些实际的图元的位置和尺寸。对于Line,Rectangle,Circle这三个类,用户可以对其进行的操作只有两种: 1) 通过构造函数 创建具有指定参数的对象; 2) 调用公有成员函数,显示这一图元。 从这里可以感受到类和对象对于其数据封装的含义。 从这个例子中,我们指出了把程序以类的形式组织起来的方法才优越性,但也应从中发现一些问题和不足的地方。例如: 三个类是互不相关的,但仔细观察会发现类Line和类Rectangle之间本来是有内在联系的,一个矩形实际上是由两条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三单元 第五章第一节 植物种子的萌发2025-2026学年七年级上册生物同步说课稿(苏教版)
- 虚拟知识资源生命周期管理研究
- 护理研究生理论知识题库及答案解析
- 生态环境保护企业社会责任报告模板
- 红酒市场营销策划方案模板
- 质量安全排查整改问题库及答案解析
- 河北安全b考试题库及答案解析
- 省高中学业考试语文试题解析
- 新员工职业礼仪培训教程
- 网络安全政治道德答题题库及答案解析
- 瓦楞纸箱包装项目可行性分析报告
- 冷链仓储物业管理费及增值服务合同
- 轮胎店转让协议书
- 2025-2030中国氢燃料电池行业市场发展分析及发展趋势与投资前景研究报告
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- DG∕TJ 08-206-2002 住宅建筑围护结构节能应用技术规程
- 2024年江西省进贤县事业单位公开招聘警务岗笔试题带答案
- 传承人经纪合同10篇
- 微电子器件(4-13)SPICE 中的 MOFET 模型
- DB51∕T 2615-2019 机关周转房管理服务规范
- 图书管理员职位面试常见问题试题及答案
评论
0/150
提交评论