C++实验报告.docx
- 文档编号:4978230
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:12
- 大小:62.24KB
C++实验报告.docx
《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
C++实验报告
实验1-1过程化编程
【实验目的】
理解、掌握过程化编程程序设计思想。
【实验内容】
1.程序填空,练习类、对象、继承的定义和实现方法。
2.根据程序运行结果,补充完整程序。
【实验要求】
我们在进行英语阅读的时候,会发现一个有趣的现象:
有些字串是左右对称的,如madam。
我们把这种字串称为symmetrytext即“对称文”。
现在有若干航字串,每一行可以由数字、标点符号、空格符以及英文字符(包括大小写)组成。
要你帮忙编程判断是否是对称文,否则,就不能最大限度地发现有趣现象了。
输入说明
每个字串为一行,每行结束以回车符为标志,可能有上百上千行业说不定。
当字串为“000000”时,输入结束。
英文字符不区分大小写,即Madam亦为对称文。
不要忘了“{<([”与“])>}”也是互为对称的。
输出说明
如果是对称文,则输出“Symmetry”,否则输出“Notsymmetry”。
每个结论占一行。
图1
图2
【程序代码】
#include
#include
usingnamespacestd;
boolisMatch(strings);
intmain(){
strings;
while
(1){
cin>>s;
if("000000")==0){
break;
}
if(isMatch(s)){
cout<<"Symmetry"< } else{ cout<<"Notsymmetry"< } } return0; } boolisMatch(strings){ intlen=(); for(inti=0;i if((s[i]>='a'&&s[i]<='z')&&(s[len-i-1]>='A'&&s[len-i-1]<='Z')){ if(s[i]! =(s[len-i-1]+('a'-'A'))){ returnfalse; } } elseif((s[i]>='A'&&s[i]<='Z')&&(s[len-i-1]>='a'&&s[len-i-1]<='z')){ if(s[i]! =(s[len-i-1]-('a'-'A'))){ returnfalse; } } elseif(((s[i]=='{'&&s[len-i-1]=='}'))){ continue; } elseif(((s[i]=='<'&&s[len-i-1]=='>'))){ continue; } elseif(((s[i]=='['&&s[len-i-1]==']'))){ continue; } elseif(((s[i]=='('&&s[len-i-1]==')'))){ continue; } else{ if(s[i]! =s[len-i-1]){ returnfalse; } } } returntrue; } 【运行结果】 图3实验一运行结果 实验1-2面向对象编程技术 (1) 【实验目的】 理解面向对象的的程序设计思想。 【实验内容】 定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,要求包括定义时间对象,设置时间,输出该对象提供的时间。 并请将类定义作为界面,用多文件结构实现之。 【程序代码】 isplay();”使之不会产生内存泄漏。 【实验程序】 n"; exit (1); } v=newint[s]; } Vector: : Vector(constVector&s) { inti; sz=; v=newint[sz]; for(i=0;i { v[i]=[i]; } } Vector: : ~Vector() { delete[]v; } int&Vector: : operator[](inti)n"; exit (1); } returnv[i]; } voidVector: : display() { inti; for(i=0;i cout< cout<<"\n"; } classMatrix { int*m; intszl,szr; public: Matrix(int,int); Matrix(constMatrix&m); ~Matrix(); intsizeL(){returnszl;} intsizeR(){returnszr;} int&elem(int,int); }; Matrix: : Matrix(inti,intj) { szl=i;szr=j; if(i<=0||j<=0) { cerr<<"badMatrixsize.\n"; exit (1); } m=newint[i*j]; } Matrix: : Matrix(constMatrix&s) { inti,j; szl=; szr=; m=newint[szl*szr]; for(i=0;i { for(j=0;j { m[i*szr+j]=[i*szr+j]; } } } Matrix: : ~Matrix() { delete[]m; } int&Matrix: : elem(inti,intj)n"; exit (1); } returnm[i*szr+j]; } Vectormultiply(Matrix&m,Vector&v) {n"; exit (1); } Vectorr());isplay(); } 【实验结果】 图5实验三运行结果 实验4面向对象程序设计(3) 【实验要求】 请在程序中的日期类的基础上,实现一个可以进行加天数操作获得另一个日期,以及进行日期减日期操作获得相隔天数的日期类,并进行应用程序设计: 创建和两个日期,并计算中间相隔的天数,前者加上300天会是什么日子呢 【实验程序】 一、头文件部分 #pragmaonce _str()); month=atoi(5,2).c_str()); day=atoi(8,2).c_str()); } voidDate: : i2ymd(intabsDay){ year=absDay/Y400*400; inty=absDay%Y400; intoperator-(WDate&wd)const{returnymd2i()-();} friendostream&operator<<(ostream&o,constWDate&wd); }; 三、 _str()); month=atoi(5,2).c_str()); day=atoi(8,2).c_str()); } voidDate: : i2ymd(intabsDay){ year=absDay/Y400*400; inty=absDay%Y400;"< case1: returno<<"Mon."< case2: returno<<"Tue."< case3: returno<<"Wed."< case4: returno<<"Thr."< case5: returno<<"Fri."< case6: returno<<"Sat."< } } 五、 // //usingWDateclass #include"" #include usingnamespacestd; intmain(){ WDated1(2005,8,21); WDated2(2008,8,8); cout< cout< } 【实验结果】 学生实验心得 通过这次实验,我也着实又感受了一次编程的乐趣,从中也学到了不少知识。 虽然都说“程序=数据结构+算法”,但我在学习运用数据结构编程之前,并没能深刻体会到这一点,直到这次C++的实验。 我感受最深的一点是: 以前用C语言编程,只注重如何编写函数能够完成所需要的功能,没有明确的战术,只是单纯凭借意识和简单的语句来堆砌出一段程序,只要能完成任务就行。 但现在感觉完全不同,在编写程序之前,自己能够综合考虑各种因素,首选自己需要的数据结构,然后选定一种或几种存储结构来具体决定后面的函数的主要风格。 最后在编写每一个函数之前,可以仔细斟酌对比,挑选出最适合当前状况的算法。 这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。 这样无形中就提高了自己编写的程序的质量。 学生(签名): 2016年04月13日 指导 教师 评语 成绩评定: 指导教师(签名): 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告