c++上机实验报告

上传人:re****.1 文档编号:508412699 上传时间:2023-05-07 格式:DOCX 页数:8 大小:39.49KB
返回 下载 相关 举报
c++上机实验报告_第1页
第1页 / 共8页
c++上机实验报告_第2页
第2页 / 共8页
c++上机实验报告_第3页
第3页 / 共8页
c++上机实验报告_第4页
第4页 / 共8页
c++上机实验报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《c++上机实验报告》由会员分享,可在线阅读,更多相关《c++上机实验报告(8页珍藏版)》请在金锄头文库上搜索。

1、c+上机实验报告XX大学 上机实验报告学 院:XX学院 班 级:XXX 姓 名:XXX 学 号:1111111 指导老师:XXX 日 期:年月日 C+ 实验三 类的定义和使用 一实验目的 1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2.掌握类对象的定义; 3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 5.掌握友元函数的含义,友元函数和成员函数的区别。 二实验内容及要求 1、定义一个圆类,计算圆的面积和周长。

2、要求:分别用成员函数和友元函数来求圆的面积和周长。 2、定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。 要求: 1)使用成员函数实现对输出的输入、输出; 2)使用构造函数和析构函数实现对数据的输入、输出。 3、定义日期类型Date。要求有以下面成员: 1)可以设置日期; 2)日期加一天操作; 3)输入函数,输入格式为“XXXX年XX月XX日”。 三实验要求 1)写出程序,并调试程序,要给出测试数据和实验结果。 2)整理上机步骤,总结经验和体会。 3)完成实验日志和上交程序。 四算法思想 1.圆类 程序中,用Circ

3、le构造函数和Length友元函数分别计算圆的的面积和周长。再通过主函数调用: Date d; coutm; Circle p(m); Length(p); 实现输入半径r并输出相关计算值。 2.学生类 根据要求分别用构造函数Student(double n,int o,char c50)和析构函数Student,实现学生信息的录入与输出。 于是,当在主程序中,定义学生类Student s(n,o,c)是调用构造函数录入信息,所在作用范围结束时,系统会自动调用析构函数输出信息。 同时外加for循环操作以实现学生信息的多次录入。 3.日期类 根据要求,分别再类中定义以下成员函数实现相应功能: v

4、oid Set(int y,int m,int d); /设置时间 void Add; /日期加一 int Print; /输出当前日期 int Isleapyear; /判断是否为闰年 private: /私有成员 int year,month,day; 其中,比较困难的部分是“日期加一”函数,它需要调用其他的成员函数,同时由于,每个月的日期没有规律,因此只能一一分情况讨论,因此很自然想到利用switch语句。另外,2月份十分特殊,应拿出来单独先讨论。 思路如下: 1. 先建立外部大循环:2月和非2月 2. 2月中: 先判断是否为闰年:若为闰年,则29号为上限,否则28号是上限。到达上限的日

5、期,month+=1,day=1。 3. 非2月中: 类似2月,不用判断闰年,直接根据月末30号,31号和30号三种情况讨论即可,中间用switch语句,分月份讨论即可。 五源程序代码 #include #include class Circle /1.定义圆类 public: Circle(double x); friend double Length(Circle &a); private: double r; ; Circle:Circle(double x) r=x; cout圆的面积为:3.14*r*rendl; double Length(Circle &a) cout圆的周长为:

6、a.r*2*3.14endl; return 1; class Student /2.定义学生类 public: Student(double n,int o,char c50); Student; private: int old; double number; char name50; ; Student:Student(double n,int o,char c50) number=n; old=o; for(int i=0;i50;i+) namei=ci; Student:Student cout该生姓名/学号/年龄依次为:name oldendl; class Date /3.定义

7、日期类 public: void Set(int y,int m,int d); void Add; int Print; int Isleapyear; private: int year,month,day; ; void Date:Set(int y,int m,int d) year=y; month=m; day=d; int Date:Print coutyear年month月day日endl; return 1; int Date:Isleapyear if(year%4=0&year%100!=0)|(year%400=0) cout设置时间是闰年!endl; number r

8、eturn 1; else cout设置时间不是闰年!29) cout输入错误!endl; exit(1); else if(day28) cout输入错误!endl; exit(1); else if(day28) day+=1; else if(day=30) /月末特殊,拿出来单独考虑,先考虑30号 switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: day+=1; break; case 4: case 6: case 9: case 11: month+=1; day=1; break; de

9、fault: cout输入错误!endl; exit(1); else if(day=31) switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: month+=1; /再考虑31号 day=1; break; case 4: case 6: case 9: case 11: cout输入错误!endl; exit(1); break; default: cout输入错误!30)|(day0)|(month0)|(year0) /考虑不实际情况 cout输入错误!endl; exit(1); else i

10、f(day30) /最后剩下的情况统一定义 day+=1; void main /主函数 double m=0; int i=0; int t=0; double n; int o; int a,b,q; int w=0; Date d; coutm; Circle p(m); Length(p); for(;i!=8;) cout欢迎进入,日期设置系统!请输入选择:i; if(i=8) break; coutabq; d.Set(a,b,q); cout设置的时间为:; d.Print; d.Add; cout日期加一后时间为:; d.Print; for(;t!=8;) int n,o;

11、char c50; coutt; if (t=8) cout程序结束,谢谢!endl; exit(1); coutcno; Student s(n,o,c); 六验证结果 六心得与感想 这次上机实验的过程中,我遇到了许多困难。一方面,这说明了我的上机实践能力还需进一步加强;另一方面,我收到了老师和同学们的帮助。通过交流,我对自己的程序有了更加深刻的理解。同时,对于同一个问题的看法,大家的看法都不相同,在讨论中我们的交换了思想,开拓了思维,提升了技能。 总之,编程不仅考验的是耐心和细心,更是思维和方法。想要提高自己的编程能力,只有通过不断实践才能有进步。通过此次的上机实验,我收获颇丰,会争取下次更快更好地完成任务!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号