甘肃学院
本科生实验报告
(一)
姓名: 学院: 专业: 班级:
实验课程名称: 面向对象程序设计(Visual C++) 实验日期: 2013年 3 月 24 日 指导教师及职称: 实验成绩:
开课时间:2012-2013 学年 第 二 学期
甘肃学院实验管理中心印制
实验题目 姓名 函数和预处理 小组合作 学 号 班级 一、实验目的 1.程序Ex-AreaFunc:已知三角形的三边a、b、c,则三角形的面积为: area=√ ̄s(s-a)(s-b)(s-c) 其中s=(a+b+c)/2。需要说明的是,三角形三边的边长由cin输入,需要判断这三边是否构成一个三角形,若是,则计算其面积并输出,否则输出“错误,不能构成三角形!”。编写一个完整的程序,其中需要两个函数,一个函数用来判断,另一个函数用来计算三角形的面积。 2.在内容(1)的基础上,改用带参数的宏编写程序Ex-AreaMacro求三角形的面积。 3.程序Ex-NumToStr:用递归法将一个整数n转换成字符串,例如输入1234,应输出字符串“1234”。n的位数不确定,可以是任意位数的整数。 二.实验环境 Visual c++ 三、实验内容与步骤 1. 创建工作文件夹 2. 输入并运行程序Ex-AreaFunc.cpp 3. 输入并运行程序Ex-AreaMacro.cpp 4. 输入并运行程序Ex-NumToStr.cpp 5. 退出Visual c++ 6.0 6. 写出实验报告 四、实验过程与分析 1.#include \"stdafx.h\" #include #include bool Validate(double a,double b,double c); void CalAndOutputArea(double a,double b,double c); int main() { double a,b,c; cout<<\"请输入三角形的三边长度:\"; cin>>a>>b>>c; if(Validate(a,b,c)) CalAndOutputArea(a,b,c); else cout<<\"错误:不能构成三角形!\"<0)&&(b>0)&&(c>0)) { if((a+b)<=c)return 0; if((a+c)<=b)return 0; if((c+b)<=a)return 0; return 1; //true }else return 0; //false } void CalAndOutputArea(double a,double b,double c) { double s=(a+b+c)/2.0; double area=sqrt(s*(s-a)*(s-b)*(s-c)); cout<<\"三角形(\"< #include #define AREA(s,a,b,c) sqrt((s)*((s)-a)*((s)-b)*((s)-c)) bool Validate(double a,double b,double c); int main() { double a,b,c; cout<<\"请输入三角形的三边长度:\"; cin>>a>>b>>c; if(Validate(a,b,c)) cout<<\"三角形(\"<0)&&(b>0)&&(c>0)) { if((a+b)<=c)return 0; if((a+c)<=b)return 0; if((c+b)<=a)return 0; return 1; //true }else return 0; //false } 3.#include \"stdafx.h\" #include void convert(int n) { int i; if((i=n/10)!=0) convert(i); cout<<(char)(n%10+'0'); } int main() { int nNum; cout<<\"请输入一个整数:\"; cin>>nNum; cout<<\"输出的是:\"; if(nNum<0) //负数的处理 { cout<<'-'; nNum=-nNum; } convert(nNum); cout<