




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(一) 第一次实验1. (1)用do-while语句编程,求自然数1100之和。程序正确运行之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。(2)do-while语句用for语句代替,完成(1)中相同的功能。(1)#include using namespace std; int main() int i(1), sum(0); do sum+=i; i+; while(i=100); coutsum=sumendl; (2)#includeusingnamespacestd;intmain()inti,sum=0;for(i=0;i=100;i+)sum+=i;coutsum=sumendl;2. 编写程序计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积后将其显示出来。#includeconstfloatPI=3.1416;intmain()intiType;floatradius,a,b,area;coutiType;while(iType!=4)switch(iType)case1:coutradius;area=PI*radius*radius;cout面积为:areaendl;break;case2:couta; coutb;area=a*b; cout面积为:areaendl;break;case3:couta;area=a*a; cout面积为:areaendl;break;default: cout不是合法的输入值!endl; coutiType;(二) 第二次实验1.声明一个CPU类,在该类中包括数据成员rank(等级),frequency(频率),voltage(电压)。其中为rank字符型,可以取P1,P2等,frequency为整形(单位MHZ),voltage为浮点型;还包括成员函数GetRank(),GetFrequency(),GetVoltage()用来获取等级,频率,电压的值。SetRank(),SetFrequency(),SetVoltage()用来设置等级,频率,电压的值。Run(),Stop()中,Run()要求输出“开始运行!”,Stop()要求输出“停止运行!”。构造函数需要输出“构造一个CPU”,析构函数需要输出“析构一个CPU”。观察构造函数和析构函数的调用顺序。编写主函数使用这个类,实现对数据的赋值和输出。#include#includeusing namespace std;class CPUprivate:string rank;int frequency;float voltage;public:string GetRank()return rank;int GetFrequency()return frequency;float GetVoltage()return voltage;CPU()cout构造一个CPUendl;voidrun()coutCPU开始运行!endl;void SetRank()string m;coutm;rank=m;void SetFrequency()int n;coutn;frequency=n;void SetVoltage()float l;coutl;voltage=l;void stop()coutCPU停止运行!endl;CPU()cout析构一个CPUendl;void main()CPUw;w.run();w.GetRank();w.SetRank();w.GetFrequency();w.SetFrequency();w.GetVoltage();w.SetVoltage();w.stop();2. 声明一个Student类,在该类中包括一个数据成员score(分数),两个静态数据成员total_score(总分)和count(学生人数);还包括一个成员函数account()用于设置分数,累计学生成绩之和累计学生人数,一个静态成员函数sum()用于返回学生的成绩之和,另一个静态成员函数average()用于求全班成绩的平均值,在主函数中,输入某班同学的成绩,并调用上述函数求出全班学生的成绩之和和平均值。#includeusing namespace std;class Studentpublic:void account(double s);static double sum();static double average();private:double score;static double total_score;static double count;double Student:total_score=0;double Student:count=0;void Student:account(double s)score=s;total_score=total_score+score;count=count+1;double Student:sum()cout所有的学生成绩之和是:;return total_score;double Student:average()cout学生的平均成绩是:;return total_score/count;int main()Student stud20;int n;double s;coutn;for(int i=0;in;i+)cout请输入i+1s;studi.account(s);coutStudent:sum()endl;coutStudent:average()endl;return 0;3. 声明一个Car类,在该类中包括数据成员color(颜色),speed(速度),和成员函数Input()用于输出color和speed,利用友元函数输出Car类对象数据。#include#includeusing namespace std;class carpublic:car(char*c,int d)color=new char strlen(c)+1;strcpy(color,c);speed=d;friend void disp(car&);car()delete color;private:char*color;int speed;void disp (car &x)cout车的颜色是:x.color,车速:x.speedendl;int main ()car c1(白色,100);disp(c1);return 0;4. 声明日期Date类,包括数据成员year(年),month(月),day(日);人员Person类,包括数据成员id(编号),name(姓名),sex(性别),birthday(出生日期),其中birthday定义为Date类内嵌子对象。用成员函数实现对人员信息的录入和显示。#include#include using namespace std;class Datepublic:Date(int y=0,int m=0,int d=0);void show();private:int year;int month;int day;Date:Date(int y,int m,int d)year=y;month=m;day=d;void Date:show()coutn 出生所属年:year;coutn 出生所属月:month;coutn 出生所属日:day;class Personprivate:string name;string sex;string id;Date date1;public:Person(string name1,string sex1,string id1,int s1,int s2,int s3);void show();Person:Person(string name1,string sex1,string id1,int s1,int s2,int s3):date1(s1,s2,s3)name=name1;sex=sex1;id=id1;void Person:show()coutn 姓名:name;coutn性别:sex;coutn编号:id;date1.show();int main()Person pers1(李大仁,男,001,1996,12,23);pers1.show();coutendl;Personpers2(程又青,女,002,1996,7,19);pers2.show();return 0;(三)。第三次实验1. 编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。#includeusing namespace std;#includeclass personpublic: void input() coutid; coutname; coutsex; coutage; void output() cout编号:idendl; cout姓名:nameendl; cout性别:sexendl; cout年龄:ageendl; private: int id; string name; string sex; int age;class student:public personpublic: void input1() person:input(); coutdepartment; coutscore; void output1() person:output(); cout系别:departmentendl; cout成绩:scoreendl; private: int score; string department;class teacher:public personpublic: void input2() person:input(); coutsection; coutprof; void output2() person:output(); cout部门:sectionendl; cout职称:profendl; private: string prof; string section;int main() student s1; teacher t1; cout请输入一个学生数据; s1.input1(); cout请输入一个教师数据; t1.input2(); cout请输出一个学生数据:; s1.output1(); cout请输出一个教师数据; t1.output2(); return 0;2. 声明Point类,有坐标x、y两个成员变量;对类重载+和-运算符,实现坐标值的改变。#includeusing namespace std;class Pointprivate:int x;int y;public:Point (int a,int b)x=a;y=b;Point &operator +(int); Point &operator -(int);Point &operator +(); Point &operator -(); void print();Point &Point:operator+(int)return Point(x+,y+);Point &Point:operator-(int)return Point(x-,y-);Point &Point:operator+()return Point(+x,+y);Point &Point:operator-()return Point(-x,-y);void Point:print()coutx=xty=yendl;int main() Point a1(2,3);Point b1(11,12);a1.print();b1.print(); a1+; a1.print();+a1;a1.print();b1-;b1.print();-b1;b1.print();return 0;3. 声明一个车Vehicle基类,有run、stop等成员函数,由此派生出自行车Bicycle类、汽车Motorcar类,从Bicycle、Motorcar类派生出摩托车Motorcycle类,它们都有run、stop等成员函数,观察虚函数的作用。 #includeusing namespace std;class Vehiclepublic:virtual void Run()coutVehicle:Run calledn;virtual void Stop()coutVehicle:Stop calledn;class motorcar:public Vehiclepublic: void Run()coutmotorcar:Run calledn;virtual void Stop()coutmotorcar:Stop calledn;class bicycle :public Vehiclepublic:virtual void Run()coutbicycle:Run calledn; void Stop()coutbicycle:Stop calledn;class motorcycle:public bicycle,public motorcarpublic: void Run()coutmotorcycle:Run calledn; void Stop()coutRun();pclass-Stop();pclass=&bi;pclass-Run();pclass-Stop();pclass=&mo;pclass-Run();pclass-Stop();4. 声明一个People(人员)类,具有属性如下:number(编号)、name(姓名)、sex(性别)、birthday(出生日期)、id(身份证号)。其中“出生日期”是一个子对象(请自行设计日期类)。用成员函数实现对人员信息的录入和显示。在测试程序中声明People类的对象数组,录入数据并显示。同时为People重载运算符“=”,运算符“=”为判断两个People对应的id属性是否相同。#include #include using namespace std; class people private: char *name;char *id; char *number;char *sex;char *birthday; public: people(char *n= ,char *i= ,char *nu= ,char *s= ,char *b=):name(n),id(i),number(nu),sex(s),birthday(b) bool operator =(people); people operator =(people); void show() coutname:name ididendl; coutsex:sexendl; coutnumber:numberendl; coutbirthday:birthdayendl; ; bool people:operator =(people a) bool flag=false; if(!strcmp(id ,a.id )&(number,a.number)&(sex,a.sex)&(birthday,a.birthday) flag=true; return flag; people people:operator = (people a) name= ; id=a.id ; number=a.number; sex=a.sex; birthday=a.birthday; return *this; int main() people a(王启霖,123,001,male,1992年3月19日); a.show(); people b=a; b.show(); if(a=b) couta and b ,ids are the s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧园区建设智能化系统规划方案
- 2025年教师资格证考试(中学科目二)教育知识与能力高分突破试卷
- 【语文】浙江省9+1联盟2024-2025学年高二下学期期中考试试题(解析版)
- 医学三基《耳鼻咽喉科》模拟试卷三
- 2025年武器装备科研生产许可证考试专项练习含答案
- 1.1集合的概念课件-高一上学期数学人教A版(1)-1
- 2025全面的汽车租赁合同模板
- 2025年全国电信网络基础设施共建共享合同
- 2025关于制定保姆服务合同协议书
- 2025关于商业建筑租赁的合同范本
- 厨房消防安全培训
- 小陈 税务风险应对常见指标与答复思路
- 2025年《中华人民共和国档案法》知识培训试题及答案
- 2026年高考政治一轮复习:必修2《经济与社会》知识点背诵提纲
- 2025至2030年中国建筑膜行业市场调查研究及发展趋势预测报告
- 2025年急诊急救试题(附答案)
- 会所会议室管理制度
- 2025年北京市中考语文试卷(含答案与解析)
- 中科海光:2025年深算智能:海光DCU行业实战手册
- 信息服务费 合同
- 2025年医师节临床知识竞赛题库
评论
0/150
提交评论