c++实验三16.docx
- 文档编号:8175628
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:13
- 大小:151.90KB
c++实验三16.docx
《c++实验三16.docx》由会员分享,可在线阅读,更多相关《c++实验三16.docx(13页珍藏版)》请在冰豆网上搜索。
c++实验三16
实验报告
专业:
计算机科学与技术班级:
11科技2班学号:
201124131216姓名:
课程名称:
C++面向对象程序设计教程2013-2014学年度第1学期
课程类别:
必修实验时间:
2013年10月18日
实验名称:
实验三类的定义及使用
实验目的和要求:
实验目的:
(1)熟悉类的定义格式与类中成员的访问;
(2)熟悉成员函数的定义及调用;
(3)掌握对象的定义及使用。
(4)理解public、private和protected这三种属性成员的访问方式。
实验要求:
(1)程序格式规范,程序运行正确;
(2)算法要求缜密、严谨、复杂度小等;
(3)认真书写实验报告,如实填写各项实验内容,尤其是调试信息;
(4)完成任务后,继续验证其他程序(书或资料上的)。
实验软硬件要求:
硬件:
电脑软件:
VisualC++6.0编译系统
实验内容、实验过程、所遇问题及其解决方法
实验内容:
(1)定义一个类,要求:
能完成计算三角形的面积和结果输出的操作;
(2)定义一个类,分别统计一串字符的大写字母、小写字母、空格、数字和其他字符的个数。
(3)定义一个类,要求:
能计算一个n×n数据方阵的两条对角线元素之和。
(4)定义一个描述学生基本情况的类,数据成员包括姓名,学号,操作系统、计算机网络和数据库原理等课程成绩。
成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求每个学生的平均成绩。
(5)定义一个日期类,要求:
能设置日期;能以“年/月/日”格式输出日期;能对某日期进行加一天的操作;能对某日期进行减一天的操作。
(选做)
实验过程:
在背面
所遇到的问题:
对于问题想得不够全面,对象的使用不熟练,
及其解决方法:
上网查与同学的交流
实验总结及心得体会:
(1)更加熟悉类的定义;
(2)更加了解成员函数的定义和使用。
评定成绩:
批阅教师:
年月日
实验程序如下:
(1)定义一个类,要求:
能完成计算三角形的面积和结果输出的操作;
#include
#include
usingnamespacestd;
classTriangle
{private:
floata,b,c,p,s;
public:
Triangle(floatA,floatB,floatC)//构造函数;
{a=A;b=B;c=C;}
voidShow();//函数声明;
};
voidTriangle:
:
Show()//求三角形面积的函数
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));//三角形求面积公式;
cout<<"三角形的面积s="<
}
voidmain(){
floata,b,c,p,s;
cout<<"请输入三角形的三边a,b,c";
cin>>a;
cin>>b;
cin>>c;
while(a+b<=c&&a-b>=c)//若输入的便不符合要求将重新输入
{cout<<"这不是一个三角形,请重新输入a,b,c"< cin>>a>>b>>c; } Triangleaa(a,b,c);//定义对象 aa.Show(); } (2)定义一个类,分别统计一串字符的大写字母、小写字母、空格、数字和其他字符的个数。 #include usingnamespacestd; classCalculate { private: doublelowercase;doublealphabe;doublespace;doublenume;doubleother; public: chara[30]; Calculate(chara[30]) { lowercase=0;alphabe=0;space=0;nume=0;other=0; for(inti=0;i<30;i++) { if(a[i]=='\0') break; if(a[i]>='0'&&a[i]<='9')//判断字符为数字 nume++; elseif(a[i]>='a'&&a[i]<='z')//判断字符为小写字母 lowercase++; elseif(a[i]>='A'&&a[i]<='Z')//判断字符为大写字母 alphabe++; elseif(a[i]=='')//判断字符为空格符号 space++; else other++; } } voidshow()//显示各个字符个数结果 { cout<<"数字的个数是: "< cout<<"小写字母个数是: "< cout<<"大写字母个数是: "< cout<<"空格字符个数是: "< cout<<"其他个数是: "< } }; intmain() { chara[30]; cout<<"请输入一串字符"< gets(a);//输入字符串 Calculatec(a); c.show(); system("PAUSE"); return0; } (3)定义一个类,要求: 能计算一个n×n数据方阵的两条对角线元素之和。 #include usingnamespacestd; classdjx { private: inti,j,I,J,n; floatsum; floatsum1; floatsum2; floata[30][30]; public: voidqiudjx();//定义函数 }; voiddjx: : qiudjx() {sum1=0; sum2=0; sum=0; cout<<"请输入n: "; cin>>n; cout<<"情输入这个n*n矩阵: "; for(i=0;i for(j=0;j cin>>a[i][j]; for(i=0;i sum1=sum1+a[i][i];//求第一条对角线的和 for(i=n-1,j=0;i>0,j sum2=sum2+a[i][j];//求第二条对角线的和 if(n%2==0)//如果输入的n为奇数, {sum=sum1+sum2;} elseif(n%2! =0)//如果输入的n为偶数 {sum=sum1+sum2-a[n/2][n/2];} cout<<"对角线之和"< } intmain()//主函数 { djxaa; aa.qiudjx(); return0; } //(4)定义一个描述学生基本情况的类,数据成员包括姓名,学号,操作系统、 //计算机网络和数据库原理等课程成绩。 成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求每个学生的平均成绩。 #include usingnamespacestd; classStudent { private: charname[18]; intnum; floatcourse[3]; floatavg; inti; public: voidset(); voidshow(); }; voidStudent: : set() { cout<<"请输入学生的姓名"; cin>>name; cout<<"请输入学生学号"; cin>>num; cout<<"请依次输入学生操作系统,计算机网络,数据库的成绩"; for(i=0;i<3;i++) { cin>>course[i]; } } voidStudent: : show() { cout<<"姓名: "< cout<<"学号"< cout<<"操作系统成绩: "< cout<<"计算机网络成绩: "< cout<<"数据库系统原理成绩: "< avg=(course[0]+course[1]+course[2])/3; cout<<"平均成绩: "< } intmain() { Studenta; a.set(); a.show(); return0; } //(5)定义一个日期类,要求: 能设置日期;能以"年/月/日"格式输出日期;能对某日期进行加一天的操作;能对某日期进行减一天的操作。 (选做) #include usingnamespacestd; classDate {private: intyear; intday; intMons; intmons[12]; inti; public: voidset();//函数声明 voidshow();//函数声明 voidadd();//函数声明 voidreduce(); }; voidDate: : set()//输入日期函数 { cout<<"请输入年/月/日: "; cin>>year>>Mons>>day; } voidDate: : show()//显示日期函数 {cout<<"你输入的日期是: "< cout< } voidDate: : add() {intmons[12]={31,28,31,30,31,30,31,31,30,31,30,31};//将每个月的最后一天放进数组里 if(Mons==12&&day==31)//如果输入的日期是一年中的最后一天 {year=year+1; Mons=1; day=1; } elseif(Mons! =2)//如果输入的月份不是2月,则不用考虑润年的问题 {i=Mons-1;//将当前输入月份-1,作为数组mons[]的下标 if(Mons==mons[i])//如果当前输入的日期是本月的最后一天; {Mons=Mons+1; day=1;} else day=day+1; } elseif(year%4==0&&year%100! =0||year%400==0)//判读是否为闰年; {if(day==29) {day=1; Mons=3;} else day=day+1;} else if(Mons==2) { if(day==28) {Mons=3; day=1;} else day=day+1;} cout< voidDate: : reduce()//减少一天 {intmons[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(Mons==1&&day==1)//如果输入的是本年的第一天; { year=year-1; Mons=12; day=31; } elseif(Mons! =3) {if(day==1) {Mons=Mons-1; day=mons[i]; } else day=day-1; } elseif(year%4==0&&year%100! =0||year%400==0) { if(day=1) {Mons=2; day=29; } else day=28; } cout< } intmain()//主函数; {intf; Dateaa;//定义对象; aa.set(); aa.show(); while (1) {cout<<"请选择操作: "<<"(0: 增加一天"<<"1: 减少一天"<<"2: 重置日期: )"< cin>>f; switch(f) {case0: cout<<"加一天后是: ";aa.add();break; case1: cout<<"减一天后是: ";aa.reduce();break; case2: aa.set();break; } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 实验 16