院系:化学与环境学院
实验课程:高级语言程序设计
实验项目:设计C++基础程序
指导老师:曹阳
开课时间:2014 ~ 2015 年度第一学期专业:新能源材料与器件勷勤创新班
班级:1班
姓名:
学号:20
日期:2014.11.28
华南师范大学教务处
实验一:
实验任务及目的:
在键盘上输入华氏温度,根据华氏温度转换为摄氏温度:C=5/9*(F-32)的公式,求出摄氏温度。调试下列程序,并进行纠错。(f=100,
c=37.7778)
#include
using namespace std;
int main( )
{
float f,c,temp;
cout<<"Input: F= ";
cin>>f;
temp=5/9.0;
c=temp*(f-32);
cout<<"\n The temperature is "< return 0; } 实验主要硬件软件环境:vc6.0 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 输入f=100,输出结果为0. 可知错误为temp=5/9;因为系统默认整形,所以结果为0,应改为 temp=5/9.0。改后输出结果为37.778。 结论:通过此次实验,初步掌握了调试程序的基本方法。 实验二: 实验任务及目的: 计算1+22+333+4444+……的前几项的和,其中n由用户输入(约定 n<10)。调试下列程序,并进行纠错。(n=5, sum=60355) #include using namespace std; int main( ) { long long sum,t; long long n,i,j; cout<<"Please input how many terms you want the computer to calculate(1-9):"; cin>>n; while (n<1||n>=10) { cout<<"Overflow! \n"; cout<<"Please input how many terms you want the computer to calculate(1-9):"; cin>>n; } sum=0; for (i=1; i<=n; i++) { t=i; for (j=0; j { t=10*t+i; } sum+=t; } cout<<"Sum="< return 0; } 实验主要硬件软件环境:vc6.0 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 输入5 输出994991929 依据调试结果可知:t的第十一与第十二个中间结果分别为 -1661567444,564194749. 经分析可知,该程序缺乏语句t=i;且int容易导致溢出;整体程序应改为long long型 结论:通过此次实验,进一步掌握了调试的方法。 实验三: 实验任务及目的: 编写函数求表达式X2+4X-5的值,X作为函数的参数。 实验主要硬件软件环境:vc6.0 实验主要数据结构: #include using namespace std; double f(double x); int main() {double x,b; cin>>x; b=f(x); cout< return 0; } double f(double) {double x,y; y=x*x+4*x-5; return x; } 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 输入1 输出0 实验过程产生的主要问题及解决办法: 结论;经过此次编程,初步学会了函数的使用方法。 实验四 实验任务及目的: 读入一个正整数,统计并输出该数各位数码中包括某个数字的个数。如统计543567589中数字5的个数。 实验主要硬件软件环境:vc6.0 实验主要数据结构:不会做 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 结论:通过此次编程,进一步了解了函数的使用方法。 实验五: 实验任务及目的: 将学生成绩分为5个等级:90~100为“A”;80~90为“B”;70~80为“C”;60~70为“D”;60以下为“E”。要求: (1)编写一个计算成绩等级的函数,其参数为学生成绩,其返回值为对应等级。 (2)编写一个主函数,先从键盘输入一个学生的成绩,然后调用以上函数计算对应等级,最后在屏幕上输出其等级。 实验主要硬件软件环境:dev c++ 实验主要数据结构: #include using namespace std; long fac(int); int main() {int n; long y; cout<<"please input the score."; cin>>n; y=fac(n); return 0; } long fac(int n) {long f,E; if(n>=90) {cout<<"A"< f=-1;} else if(n>=80) {cout<<"B"< f=-1;} else if(n>=70) {cout<<"C"< f=-1;} else if(n>=60) {cout<<"D"< f=-1;} else cout<<"E"< return f; } 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 输入99 输出A 结论:通过此次编程,进一步加深了函数的理解。 实验六: 实验任务及目的: 利用递归算法,将输入的5个字符,以相反顺序打印出来。 实验主要硬件软件环境:vc6.0 结论:不会做 实验七: 实验任务及目的: 求写一个判别素数的函数,在主函数中输入一个整数输出是否为素数的信息。 实验主要硬件软件环境:Dev c++ 实验主要数据结构: 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 结论:不会做 实验八: 实验任务及目的: 利用递归算法求: f(x)=Σi^2 实验主要硬件软件环境:Dev c++ 实验主要数据结构: #include using namespace std; long fac(int); int main() {int n; long y; cout<<"please input an integar."; cin>>n; y=fac(n); cout<<"!="< return 0; } long fac(int n) {long f; if(n<0||n==0) {cout<<"data error!"< f=-1;} else if(n==1) f=1; else f=fac(n-1)+n*n; return f; } 实验界面设计、输入的数据、产生的中间结果、最终输出结果: 输入1输出:1 输入2,输出:5 结论:通过此次编程,初步对递归函数有所了解。