C++程序设计结课论文_第1页
C++程序设计结课论文_第2页
C++程序设计结课论文_第3页
C++程序设计结课论文_第4页
C++程序设计结课论文_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩 中国农业大学 课程论文 (2014-2015学年秋季学期)论文题目:C+程序设计期末大作业实验报告课程名称: C+程序设计 任课教师: 班级: 学号: 姓名: C+程序设计期末大作业实验报告目录目录1C+程序设计期末大作业实验报告2CTest12源代码:2CTest1_main.cpp(主函数):2CTest1_function.cpp(函数):3程序测试结果及说明:6CTest211源代码:11CTest2_main.cpp(主函数):11CTest2_class.cpp(类):13CTest2_function.cpp(函数):15程序测试结果及说明:16学习心得和建议1817C+程

2、序设计期末大作业实验报告CTest1源代码:CTest1_main.cpp(主函数):#include using namespace std;void circle ();void rectangle ();void trangle ();double readch();void result(double l,double s);void main () char n=a; cout*endl; cout*endl; cout*欢迎使用周长面积计算器!*n; cout*endl; cout*endl; coutendlendl;/欢迎界面 cout使用说明:endlendl; cout请您

3、根据菜单提示使用本软件,每次只能输入一个数据,以回车作为结束,endl; cout 多余字符将被舍弃。endl; cout请估计确认您的计算结果不会过于庞大,结果有效范围是(0,1.7*10308。endl; cout我们提供的计算结果将保留3位小数。endlendlendl;/使用说明 do cout我们可以为您提供三种图形的计算,请您输入您要计算图形的代码:n; cout1圆形;n; cout2长方形;n; cout3直角三角形;n; cout0退出程序;n; coutn;/读取代码,标号loop fflush(stdin);/清空输入缓冲区,多余的输入将被舍弃,防止出现非法输入造成程序故

4、障,因此使用说明中提示舍弃多余输入 coutendl; switch (n) case 0: cout$n; cout$感谢您的使用!$n; cout$ 再见! $n; cout$n; exit(0);/代码0,退出程序,出现退出界面,退出程序 case 1: circle();/代码1,进入圆形计算函数 break; case 2: rectangle();/代码2,进入长方形计算函数 break; case 3: trangle();/代码3,进入直角三角形计算函数 break; default: cout您输入的代码不能识别,代码只能是菜单中所列(0-3),请您重新输入:; goto l

5、oop;/用户输入非菜单中所列代码程序报错,请求重新输入,跳转标号loop所在位置,再次读取输入 while(n!=0); CTest1_function.cpp(函数):#include #include /包含该头文件,使用setprecision、setw函数#include /包含该头文件,使用数学计算函数,如sqrt函数using namespace std;double readch()/读数据函数,功能包括判断输入数据类型正误、数据取值是否符合要求double t;reputin:while(!(cint)/判断输入类型是否正确,标号reputin cin.sync();/清空c

6、in缓冲区里面未读取的信息 cin.clear();/清除错误状态 cout您输入的数据类型不能识别,请输入大于零的数字:endl;/提示用户重新输入 doif(t=0)/判断输入数据数值是否大于零 cout您输入的数字小于等于零,请输入大于零的数字,请重新输入:endl;/提示用户重新输入 goto reputin;/转向标号reputin,重新获取输入,判断数据是否符合要求while(t=0);fflush(stdin);/清空输入缓存区,多余输入被舍弃,防止在不知情的情况下多余数据流入下一次运算,因此使用说明中提示一次只能输入一个数据,多余数据被舍弃return t;void resul

7、t(double l,double s)/数据输出函数,进行周长和面积4位有效数字输出 coutsetiosflags(ios:fixed)setprecision(3)周长(l)=setw(5)lendl; coutsetiosflags(ios:fixed)setprecision(3)面积(s)=setw(5)sendl;/设置域宽为5,超出自动突破,保留3为小数 coutresetiosflags(ios:fixed);/取消固定格式输出 coutendl; coutendl; cout#endl; coutendlendl;void circle () double pi,r,l,s

8、; cout您选择了“圆形”,请您输入它的半径(r):endl; coutr=; r=readch();/利用读数据函数读取正确的r值 coutendl; pi=3.1415926; l=2*pi*r; s=pi*r*r;/圆形相关计算公式 cout您给出的“圆形”的计算结果如下:endl; result(l,s);/利用数据输出函数按固定格式输出结果void rectangle () double a,b,l,s; cout您选择了“长方形”,请您分别输入它的长(a)和宽(b):endl; couta=; a=readch(); coutb=; b=readch();/读数据 coutend

9、l; l=2*(a+b); s=a*b;/长方形公式 cout您给出的长方形的计算结果如下:endl; result(l,s);/写数据void trangle () double b,h,l,s,x2,x; cout您选择了“直角三角形”,请您分别输入它的底边(b)和高(h):endl; coutb=; b=readch(); couth=; h=readch();/读数据 coutendl; x2=b*b+h*h; x=sqrt(x2); l=b+h+x; s=0.5*b*h;/直角三角公式 cout您给出的直角三角形的计算结果如下:endl; result(l,s);/写数据程序测试结果

10、及说明:1. 测试菜单选择(测试主函数),进行非法的输入,程序提示重新输入,会提示重新输入的情况有:1) 输入一个字符串;2) 出入单个任意字符;3) 输入一个菜单中没有的数;4) 按Enter、tab键,程序会继续等待有效输入;5) 以菜单中含有的字符开头进行输入会被识别,有效字符后的字符会被忽略舍弃。2.在圆形模式下(测试circle函数),正确输入合法数据,测试是否得到保留3位小数的有效结果(测试result函数)。3.正常进入长方形模式(测试rectangle函数),测试数据输入是否正常(测试readch函数),不能正确录入的原因有二:1)数据类型不正确 除数字外其他字符开头(数字开头

11、为合法,后面字符被舍弃)。2)数据类型正确,但取值不符合要求 小于等于零的数均不合法,大于零实数为合法。4.不断选择不同模式进行计算,测试主函数是否正常,菜单是否循环出现。5.直角三角形模式下(测试trangle函数),输入两个整数,进一步测试result函数保留3位小数稳定性。6.再次回到长方形模式,进行数据边界测试,输入两个较大的数,面积溢出,这是double型取值范围限定的,因此在使用说明中提示估计计算值是否超出边界,否则有溢出结果不准的危险。7.测试数据边界,输入两个大小合适的数,结果正确表达。8.测试数据边界,输入两个接近零的数,由于保留小数位的限制,结果近似为零,但依然体现精度。9

12、.测试数据边界,输入两个小数位较多的数,由于保留小数位的限制,结果为一具有一定精度的近似值。10.测试程序退出机制和退出页面,输入菜单代码零,页面显示如图,程序测试完毕。CTest2源代码:CTest2_main.cpp(主函数):#include #include CTest2_class.cpp/包含类所在文件using namespace std;double readch();void result(double l,double s);void main () Circle yuan; Rectangle changfang; trangle sanjiao;/声明对象 double

13、 r,chang,kuan,di,gao; double l,s; char n=a; cout*endl; cout*endl; cout*欢迎使用周长面积计算器!*n; cout*endl; cout*endl; coutendlendl;/欢迎界面 cout使用说明:endlendl; cout请您根据菜单提示使用本软件,每次只能输入一个数据,以回车作为结束,endl; cout 多余字符将被舍弃。endl; cout请估计确认您的计算结果不会过于庞大,结果有效范围是(0,1.7*10308。endl; cout我们提供的计算结果将保留3位小数。endlendlendl;/使用说明 do

14、 cout我们可以为您提供三种图形的计算,请您输入您要计算图形的代码:n; cout1圆形;n; cout2长方形;n; cout3直角三角形;n; cout0退出程序;n; coutn;/读取代码,标号loop fflush(stdin);/清空输入缓冲区,多余的输入将被舍弃,防止出现非法输入造成程序故障,因此使用说明中提示舍弃多余输入 coutendl; switch (n) case 0: cout$n; cout$感谢您的使用!$n; cout$ 再见! $n; cout$n; exit(0);/代码0,退出程序,出现退出界面,退出程序 case 1: cout您选择了“圆形”,请您输

15、入它的半径(r):endl; r=readch(); coutendl; yuan.Set(r);/赋值 l=yuan.Perimeter(); s=yuan.Area();/调用函数成员 cout您给出的“圆形”的计算结果如下:endl; result(l,s);/利用数据输出函数按固定格式输出结果 break; case 2: cout您选择了“长方形”,请您分别输入它的长(a)和宽(b):endl; couta=; chang=readch(); coutb=; kuan=readch(); coutendl; changfang.Set(chang,kuan); l=changfang

16、.Perimeter(); s=changfang.Area(); cout您给出的长方形的计算结果如下:endl; result(l,s); break; case 3: cout您选择了“直角三角形”,请您分别输入它的底边(b)和高(h):endl; coutb=; di=readch(); couth=; gao=readch(); coutendl; sanjiao.Set(di,gao); l=sanjiao.Perimeter(); s=sanjiao.Area(); cout您给出的直角三角形的计算结果如下:endl; result(l,s); break; default: c

17、out您输入的代码不能识别,代码只能是菜单中所列(0-3),请您重新输入:; goto loop;/用户输入非菜单中所列代码程序报错,请求重新输入,跳转标号loop所在位置,再次读取输入 while(n!=0);CTest2_class.cpp(类):#include /包含该头文件,使用数学计算函数,如sqrt函数class Circle/类的定义private:/私有数据成员double r;public:/公有函数成员 void Set(double data)r=data;/double Area()/面积计算函数double s=0;s=3.14*r*r;return s;doubl

18、e Perimeter()/周长计算函数 double l=0;l=2*3.14*r;return l;Circle()/不带参数的构造函数r=0;Circle(double data)/带参数的构造函数r=data;Circle(Circle &c)/拷贝构造函数r=c.r;class Rectangleprivate :double length, width ;public :void Set( double a, double b ) length = a; width = b; double Area()double area;area = length * width ;retur

19、n area;double Perimeter() return 2*(length + width) ; Rectangle() length=0; width=0; Rectangle( double a, double b ) length=a; width=b; Rectangle( Rectangle &r )length=r.length; width=r.width; ;class trangleprivate :double di, gao;public :void Set( double b, double h ) di=b; gao=h; double Area()doub

20、le area;area=0.5*di*gao;return area;double Perimeter() double x2,x,l; x2=di*di+gao*gao; x=sqrt(x2); l=di+gao+x; return l;trangle() di=0; gao=0; trangle( double b, double h ) di=b; gao=h; trangle( trangle &r )di=r.di; gao=r.gao;CTest2_function.cpp(函数):#include #include /包含该头文件,使用setprecision、setw函数using namespace std;double readch()/读数据函数,功能包括判断输入数据类型正误、数据取值是否符合要求double t;reputin:while(!(cint)/判断输入类型是否正确,标号reputin ci

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论