




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五:数据的共享与保护1. 定义一个Cat类,拥有静态数据成员HowManyCats,记录Cat的个体数目;静态成员函数GetHowMany(),存取HowManyCats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。(1) 实验分析:本题的难点就是静态数据成员和静态成员函数的定义和使用。(2) 程序代码:#include #include using namespace std;class Catpublic:Cat(string name=Untitle,double age=0,double weight=0):name(name),age(age),weight(weight)HowManyCats+;Cat(Cat &c):name(),age(c.age),weight(c.weight)static int GetHowMany();void showCat();private:string name;double age,weight;static int HowManyCats;int Cat:HowManyCats=0;int Cat:GetHowMany()return HowManyCats;void Cat:showCat()for(int i=0;i30;i+)cout*;coutendl;coutThe name of this cat is: nameendl;coutThe age of this cat is(years): ageendl;coutThe weight of this cat is(kg): weightendl;for(i=0;i30;i+)cout*;coutendl;void outputwords();int main()outputwords();coutNow we input data of one catendl;Cat cat1; cat1.showCat();outputwords(); coutNow we input data of one catendl;Cat cat2(Jack,8.5,80.7); cat2.showCat();outputwords();coutNow we input data of one catendl;Cat cat3(哈哈,-100,0.5); cat3.showCat();outputwords();return 0;void outputwords()coutNow there are Cat:GetHowMany() catsendlendl;(3) 实验结果:2. 设计一个点(point)类, 1)在点类中设计友员函数,求两点间的距离。 2)设计一个线段(line)类。(1)实验分析:两点间的距离用普通函数dist来计算。(2)程序代码:#include#includeusing namespace std;class Pointpublic:Point(int X=0,int Y=0)x=X;y=Y; friend float dist(Point &po1,Point &po2);private:int x,y;float dist(Point &po1,Point &po2)double x=po1.x-po2.x;double y=po1.y-po2.y;return (sqrt(x*x+y*y);class linepublic:line(Point px1,Point px2)po1=px1,po2=px2;float length()return dist(po1,po2);private:Point po1,po2;void main()int x,y;coutxy;Point p1(x,y);coutxy;Point p2(x,y);line AB(p1,p2);coutThe distance is AB.length()endl;(3)实验结果:3、定义一个学生类,数据成员有:总人数、姓名、性别、成绩等,设计程序要求能统计学生的总人数、修改成绩并打印成绩。程序代码:#include #include using namespace std;class Studentpublic:int nAllNum;char cName5;char cSex2;int nScore;int nID;Student()nAllNum = 0;nScore = 0;protected:private:;void main()vector Stu;Student TmpStu;int nFlag = 1;do cout请输入学生学号:TmpStu.nID;cout请输入学生姓名:TmpStu.cName;cout请输入学生性别:TmpStu.cSex;cout请输入学生分数:TmpStu.nScore;Stu.push_back(TmpStu);cout继续输入?(1继续,0停止)nFlag; while (nFlag != 0);int nAllNum = Stu.size();int ChangeID;cout请输入想修改成绩的学生学号:ChangeID;int nFlag1 = 0;for (int i=0;inAllNum;i+)if (Stui.nID = ChangeID)cout输入修改后的分数。Stui.nScore;nFlag1 = 1;break;if (nFlag1 != 1)cout未找到该学生!endl;FILE *fp = fopen(Result.txt,w);fprintf(fp,总人数为:%dn,nAllNum);for (i=0;inAllNum;i+)fprintf(fp,%dt,Stui.nID);fprintf(fp,%st,Stui.cName);fprintf(fp,%st,Stui.cSex);fprintf(fp,%dn,Stui.nScore);cout统计结果在Result文件中!endl;fclose(fp);实验结果:4.设计一个类,要求类中至少有一个友员函数,然后在主程序中访问友员函数。程序代码:#include#includeclass Pointpublic: Point(int a,int b) x=a; y=b;int x, y;class Lineint a,b,c;public: Line(int x,int y,int z) a=x;b=y;c=z;friend double length( Line l,Point p)double d;d=abs( l.a * p.x*p.x + l.b* p.x +l.c)/sqrt(l.a* l.a+l.b*l.b);return d;void main()Point p(9,9);Line l(5,3,-4);cout长度为length(l,p)endl;实验结果:5. 设计一个用于人事管理的People(人员)类。要求具有如下属性:姓名char name11、编号char number7、性别char sex3、生日birthday、身份证号char id16。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数,拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。程序代码:#include#includeusing namespace std;class BIRTHDAY/*生日的BIRTHDAY类*/private:int Y,M,D;public: BIRTHDAY(int y=1900,int m=1,int d=1)/*构造函数*/Y=y;M=m;D=d;BIRTHDAY(BIRTHDAY & p)/*拷贝构造函数*/Y=p.Y;M=p.M;D=p.D; void Set(int y,int m,int d)/*生日设定*/Y=y;M=m;D=d;void Show()/*输出生日*/coutY年M月D日endl;int GetY()return Y;int GetM()return M;int GetD()return D;class PEOPLEprivate:char Name11; char Number7;char Sex3;char Id20;BIRTHDAY Birth;/*日期类的内嵌对象*/public:PEOPLE(char name=0,char number=0,char sex=0,char id=0)/*构造函数*/strcpy(Name,name);strcpy(Number,number);strcpy(Sex,sex);strcpy(Id,id);inline void Set()/*基本信息设定*/int y,m,d; cout请依次输入:endl; cout姓名:Name; cout编号:Number; cout性别:Sex; cout身份证号:Id;cout请输入生日:ymd;BIRTHDAY day1(y,m,d);/*初始化生日*/Birth=day1;void Show()/*输出信息*/cout姓名:Nam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度绿色能源项目采购合同范本
- 二零二五版仓储服务仓单质押合同范本
- 二零二五年度个人教育培训个人借款合同范本
- 二零二五版特色餐厅食品安全与质量管理体系建设合同
- 二零二五年度特色增值服务二手房分期付款买卖合同示范
- 2025年自动驾驶卡车在冷链物流中的应用与挑战报告
- 2024年连云港市海州区招聘社区工作者真题
- 2025年医用红外热像仪合作协议书
- 小区供暖管网改造协议
- 2024年天津西青区消防救援支队招录政府专职消防员真题
- 2025-2030中国辣椒酱行业供需趋势及投资风险研究报告
- 2025年度运输业安全生产知识竞赛试题(附答案)
- 光伏居间的合同8篇
- GB/T 45418-2025配电网通用技术导则
- 医疗风险防控培训课件
- 机械设计部绩效考核制度
- 诊疗规范培训课件
- 《KANO模型培训》课件
- 复苏室患者的交接流程
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 新能源集控中心建设方案
评论
0/150
提交评论