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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

西安交大C++程序设计第七章作业.docx

1、西安交大C+程序设计第七章作业西安交通大学实验报告课程_计算机程序设计_实验名称_类与对象_第 1 页 共 18 页系 别_ _ _ 实 验 日 期 2014 年 5 月 2 日专业班级_ _组别_ 实 验 报 告 日 期 2014 年 5 月 2日姓 名_ _学号_*_ 报 告 退 发 ( 订正 、 重做 )同 组 人_ 教 师 审 批 签 字 一、实验目的理解类与对象的概念,掌握类的定义方法和使用方法。二、实验内容 (一)第一题:定义一个Dog类,包含name、age、sex、weight等属性以及对这些属性操作的方法。实现并测试这个类。1.源程序代码:#includeusing name

2、space std;class Dog/狗类private:/私有成员 char name20;/字符型数组用于存储名字 int age;/年龄,整型数 char sex;/性别 double weight;/体重,定义为双精度型public:/公有成员 void Register(char *Name,int Age,char Sex,double Weight);/输入函数 void print();/输出函数;void Dog:Register(char *Name, int Age, char Sex, double Weight)/输入函数,将各个参数导入到定义的类中相应元素 str

3、cpy(name,Name); age=Age; sex=(Sex=m?m:f); weight=Weight;void Dog:print()/输出函数 cout名字:namet年龄:aget性别:sext体重:weightendl;int main() Dog dog1,dog2,dog; char Name120,Sex1,Name220,Sex2; int Age1,Age2; double Weight1,Weight2; coutName1Age1Sex1Weight1; dog1.Register(Name1,Age1,Sex1,Weight1); coutName2Age2Se

4、x2Weight2; dog2.Register(Name2,Age2,Sex2,Weight2); cout第一条狗的信息如下:n;/信息显示 dog1.print(); cout第二条狗的信息如下:n; dog2.print(); dog=dog1;/交换dog1和dog2的内容 dog1=dog2; dog2=dog; cout二者交换以后信息为:n;/通过输出交换结果检验类的定义有作用 cout第一条狗:n; dog1.print(); cout第二条狗:n; dog2.print(); return 0;2.实验结果:3.问题分析:设计思路:首先输入两个狗的信息,然后显示输入的信息,

5、然后交换二者再次输出,通过再次输出的结果表明对其操作有效,从而表明类的定义是有效的。(二)第二题:设计并测试一个名为Ellipse的椭圆类,其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积。1.源程序代码:#include#includeusing namespace std;class Ellipse/定义椭圆类private: double x1,x2,y1,y2,S;public: void Register(double a,double b,double c,double d);/输入函数 double area();/面积计算函数 void feedback();

6、/输出函数;void Ellipse:Register(double a,double b,double c,double d)/输入函数 x1=a; x2=c; y1=b; y2=d;double Ellipse:area()/面积计算函数,用公式:S=pi*a*b(a、b为半长轴、半短轴长) S=3.1415*fabs(x1-x2)*fabs(y1-y2)/4; return S;/返回面积值void Ellipse:feedback()/输出函数,反馈输入值 cout您输入的点的坐标为:(x1,y1)和(x2,y2)n;void main() double a,b,c,d; coutab

7、cd; Ellipse ellipse; ellipse.Register(a,b,c,d); ellipse.feedback(); cout椭圆面积为:ellipse.area()endl;2.实验结果:(1)中心在原点:(2)中心不在原点: (三)第三题:仿照Date类设计一个Time类,按照各种可能的格式输出时间。1.源程序代码: #includeusing namespace std;class Time int h,m,s;public: void init(int,int,int);/输入函数 void print_hms();/时分秒 void print_hsm();/时秒分

8、 void print_msh();/分秒时 void print_mhs();/分时秒 void print_shm();/秒时分 void print_smh();/秒分时;void Time:init(int a,int b,int c) h=(a=0&a=0&b=0&c60)?c:0;void Time:print_hms() cout时分秒:h-m-sendl;void Time:print_hsm() cout时秒分:h-s-mendl;void Time:print_msh() cout分秒时:m-s-hendl;void Time:print_mhs() cout分时秒:m-h

9、-sendl;void Time:print_shm() cout秒时分:s-h-mendl;void Time:print_smh() cout秒分时:s-m-hendl;void main() int a,b,c; coutabc; Time time; time.init(a,b,c); time.print_hms(); time.print_hsm(); time.print_mhs(); time.print_msh(); time.print_shm(); time.print_smh();2.实验结果:对多种超出范围的情况进行了检测:(1)正常输入:(2)24点会被作为0点:(

10、3)分超过60:(4)秒超过60:(5)时超过24:(四)实验题目四:(必做题)设计定义一个三角形类,成员函数应有输入三角形初始数据函数、求三角形面积函数、输出面积函数。并编写主函数加以测试。1.程序源代码:#includeusing namespace std;class triangle double h,l,S;public: void Register(double a,double b);/输入函数 int examine();/检验是否合理的函数 void area();/计算面积 void print();/输出计算结果函数;void triangle:Register(doub

11、le a,double b) h=a; l=b;int triangle:examine() if(h=0|l=0) return 0; return 1;void triangle:area() S=h*l/2;void triangle:print() cout面积为:Sendl;int main() triangle s; double a,b; coutab; s.Register(a,b); while(s.examine()=0) coutab; s.Register(a,b); s.area(); s.print(); return 0;2实验结果:(1)输入有误时:(2)输入合

12、理:五、第五题: (必做题)定义一个二元一次方程组类,成员函数应有输入6个系数的函数、求二元一次方程组的根的函数,输出该方程组的函数,即输出格式如下: AX + BY = C DX + EY = F 并编写主函数加以测试。1.源程序代码:#includeusing namespace std;class equation/定义方程类 double a,b,c,d,e,f; double x,y;public: void Register(double A,double B,double C,double D,double E,double F);/输入函数 int examine();/检验函

13、数,检查系数是否能够确定唯一解 void result();/计算函数 void print();/输出函数;void equation:Register(double A,double B,double C,double D,double E,double F) a=A; b=B; c=C; d=D; e=E; f=F;int equation:examine() if(a*e-b*d=0) return 0; return 1;void equation:result() x=(c*e-b*f)/(a*e-b*d); y=(a*f-c*d)/(a*e-b*d);void equation:

14、print() cout计算结果为:x=x,y=yendl;int main() double A,B,C,D,E,F; equation test; coutABCDEF; test.Register(A,B,C,D,E,F); while(test.examine()=0)/若系数不符合要求,提示重新输入 coutABCDEF; test.Register(A,B,C,D,E,F); test.result(); test.print(); return 0;2.实验结果:(1)正常输入:(2)输入有误:六、第六题:6、(必做题)定义一个计算器类,成员函数有加法、减法、除法、乘法、SIN(

15、double x)共5个功能性函数,当然还必须有初始化数据成员的函数、修改数据成员的函数、输出数据成员的函数。并编写主函数加以测试。1.源程序代码:/6、(必做题)定义一个计算器类,成员函数有加法、减法、除法、乘法、SIN(double x)共个功能性函数,/当然还必须有初始化数据成员的函数、修改数据成员的函数、输出数据成员的函数。并编写主函数加以测试。#include#includeusing namespace std;class calculateprivate: double a,b,s;public: void Register(double x,double y); void pl

16、us(); void minus(); void chufa(); void chengfa(); void SIN(); void print();void calculate:Register(double x,double y) a=x; b=y;void calculate:plus() s=a+b;void calculate:minus() s=a-b;void calculate:chufa() s=a/b;void calculate:chengfa() s=a*b;void calculate:SIN() s=sin(a);void calculate:print() cou

17、tsendl;int main() char m; double x,y; coutx; couty; calculate cal; cal.Register(x,y); coutm; switch(m) case +: cal.plus(); break; case -: cal.minus(); break; case *: cal.chengfa(); break; case/: cal.chufa(); break; case s: cal.SIN(); break; default: coutERROR!n; break; cal.print(); return 0;2.实验结果:(

18、1)加法:(2)减法:(3)乘法:(4)除法:(5)sin:(6)输入有误:3.问题分析:本程序的优点:能够实现对计算类型的选择;对于输入不符合要求的能够输出error并结束程序;对sin的计算,能够实现与直接计算进行对比以检测是否正确。七、第七题:(选做题)设计定义100位的十进制正整数类,成员函数至少应有输入初始数据函数、加法函数和输出函数,并编写主函数加以测试。(提示:在类中定义int num100。输入一个大正整数字符串,如23112333298789876559998,再将该字符串转换成大整数放入num数组中)1.源程序代码:#include#includeusing namespa

19、ce std;class number/定义number类 int num100;/私有成员整型数组 int l;/整型数l,为输入的字符的长度public:/公有成员 void Register(char a100);/用于将输入的字符转换为整型数组元素并储存的函数 void plus(char b100);/加法函数,将b所储存的数加到a上 void print();/输出函数;void number:Register(char a100)/转换函数 int i; l=strlen(a); for(i=0;il;i+) numl-i-1=ai-0; void number:plus(cha

20、r b100)/加法函数 int i; int numb100; int lb=strlen(b); for(i=0;ilb) for(i=lb;il;i+) numbi=0; if(llb) for(i=l;ilb;i+) numi=0; numl=0; numblb=0; int m=0; for(i=0;i=l|i=0;i-) coutnumi;int main() number w; char a100,b100; couta; w.Register(a);/检验程序具有输入功能 coutb; cout计算结果是:n; w.plus(b);/程序具有加法功能 w.print();/程序

21、具有输出功能 coutendl; return 0;2.实验结果:(1)位数相同,不进位:(2)位数不同,无进位:(3)进位:(4)开头含0:(5)能处理长数字:3.问题分析:(1)需要解决的主要问题:将字符转换为数组储存下来,在储存的时候,为了便于解决进位的问题,故将其个位为num0,以便在最高位置后再加元素。开头0的处理:输出的时候将开头的0避开。进位的处理:将低一位的两个对应数字以及上一个m加起来之后求其除以10的商,然后加到高位数字上;将所得的余数作为低位的结果。考虑到最高位位数会变化,所以将最高位之上的一位初始为0,若最后结果没有导致最高位进位,则由于是0,输出时被避开。(2)不足:仍有一些问题没有完善,存在一些漏洞。

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

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