C实验报告剖析.docx
- 文档编号:476582
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:25
- 大小:68.74KB
C实验报告剖析.docx
《C实验报告剖析.docx》由会员分享,可在线阅读,更多相关《C实验报告剖析.docx(25页珍藏版)》请在冰豆网上搜索。
C实验报告剖析
实验1-1过程化编程
【实验目的】
理解、掌握过程化编程程序设计思想。
【实验内容】
1.程序填空,练习类、对象、继承的定义和实现方法。
2.根据程序运行结果,补充完整程序。
【实验要求】
我们在进行英语阅读的时候,会发现一个有趣的现象:
有些字串是左右对称的,如madam。
我们把这种字串称为symmetrytext即“对称文”。
现在有若干航字串,每一行可以由数字、标点符号、空格符以及英文字符(包括大小写)组成。
要你帮忙编程判断是否是对称文,否则,就不能最大限度地发现有趣现象了。
输入说明
每个字串为一行,每行结束以回车符为标志,可能有上百上千行业说不定。
当字串为“000000”时,输入结束。
英文字符不区分大小写,即Madam亦为对称文。
不要忘了“{<([”与“])>}”也是互为对称的。
输出说明
如果是对称文,则输出“Symmetry”,否则输出“Notsymmetry”。
每个结论占一行。
图1symmetry.in
图2symmetry.out
【程序代码】
#include
#include
usingnamespacestd;
boolisMatch(strings);
intmain(){
strings;
while
(1){
cin>>s;
if(pare("000000")==0){
break;
}
if(isMatch(s)){
cout<<"Symmetry"< } else{ cout<<"Notsymmetry"< } } return0; } boolisMatch(strings){ intlen=s.length(); 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,能提供和设置由时、分、秒组成的时间,并编出应用程序,要求包括定义时间对象,设置时间,输出该对象提供的时间。 并请将类定义作为界面,用多文件结构实现之。 【程序代码】 //Time.h #include classTime { public: inth; intm; ints; voidinputT(); voidchangeT(); voidoutputT(); }; //Time.cpp #include"Time.h" #include voidTime: : inputT() { begin: inta,b,c; std: : cout<<"Inputtime(H: M: S)\n"; std: : cin>>a>>b>>c; if(c>60||c<0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin; } else { if(b>60||b<0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin; } else { if(a>24||a<0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin; } elseif(a==24) { if(b! =0||c! =0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin; } else { h=a; m=b; s=c; } } else { h=a; m=b; s=c; } } } } voidTime: : changeT() { charp; std: : cout<<"Doyouwannachangetime? (Y/N): \n"; std: : cin>>p; if(p=='n'||p=='N') { std: : cout<<"Thankyouforyourusing! \n"; } else { begin1: inta,b,c; std: : cout<<"Inputtime(H: M: S)\n"; std: : cin>>a>>b>>c; if(c>60||c<0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin1; } else { if(b>60||b<0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin1; } else { if(a>24||a<0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin1; } elseif(a==24) { if(b! =0||c! =0) { std: : cout<<"Wrongtime! Pleasesetagain! \n"; gotobegin1; } else{ h=a; m=b; s=c; } } else { h=a; m=b; s=c; } } } } } voidTime: : outputT() { std: : cout<<"Outputtime(H: M: S)\n"< "< "< } //testmain.cpp #include"Time.h" #include voidmain(void) { Timetime1; time1.inputT(); time1.outputT(); time1.changeT(); time1.outputT(); } 【运行结果】 图4实验二运行结果 实验3面向对象程序设计 (2) 【实验要求】 改写程序f0815.cpp,使之含有构造函数,拷贝构造函数和析构函数。 并对主函数和矩阵向量的乘法也进行改写。 对于第91和92行,合并成“multiply(ve,ma).display();”使之不会产生内存泄漏。 【实验程序】 //实验三 //改写f0815.cpp #include #include #include usingnamespacestd; classVector { int*v;//指向一个数组,表示向量 intsz; public: intsize(){returnsz;} Vector(int); Vector(constVector&s); int&operator[](int); voiddisplay(); ~Vector(); }; Vector: : Vector(ints) { sz=s; if(s<=0) { cerr<<"badVectorsize.\n"; exit (1); } v=newint[s]; } Vector: : Vector(constVector&s) { inti; sz=s.sz; v=newint[sz]; for(i=0;i { v[i]=s.v[i]; } } Vector: : ~Vector() { delete[]v; } int&Vector: : operator[](inti)//引用返回的目的是返回值可以做左值 { if(i<0||i>=sz) { cerr<<"Vectorindexoutofrang.\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&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验报告剖析 实验 报告 剖析