环境管理辽宁工程技术大学上机实验报告.docx

上传人:b****6 文档编号:6570313 上传时间:2023-01-08 格式:DOCX 页数:34 大小:168.65KB
下载 相关 举报
环境管理辽宁工程技术大学上机实验报告.docx_第1页
第1页 / 共34页
环境管理辽宁工程技术大学上机实验报告.docx_第2页
第2页 / 共34页
环境管理辽宁工程技术大学上机实验报告.docx_第3页
第3页 / 共34页
环境管理辽宁工程技术大学上机实验报告.docx_第4页
第4页 / 共34页
环境管理辽宁工程技术大学上机实验报告.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

环境管理辽宁工程技术大学上机实验报告.docx

《环境管理辽宁工程技术大学上机实验报告.docx》由会员分享,可在线阅读,更多相关《环境管理辽宁工程技术大学上机实验报告.docx(34页珍藏版)》请在冰豆网上搜索。

环境管理辽宁工程技术大学上机实验报告.docx

环境管理辽宁工程技术大学上机实验报告

成绩

 

辽宁工程技术大学

上机实验报告

 

课程名称

嵌入式程序设计(C++)

学院

软件学院

专业

班级

学号

姓名

日期

2013.12.21-2013.12.22

实验一

C++开发环境

实验

目的

(1)掌握用VC++集成开发环境编辑源程序的方法。

(2)掌握在VC++集成开发环境中编译、调试与运行程序的方法。

(3)理解数据类型、变量、运算符、表达式的概念。

(4)学会使用cin进行数据输入操作。

(5)学会用算术表达式、关系表达式、赋值表达式完成数据处理工作。

(6)学会使用cout进行数据输出操作。

实验

准备

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)写出运行结果。

实验

过程

实验

(1)设计一个C++程序,输出以下信息:

***************

Hello!

***************

实验

(1)程序:

#include

voidmain()

{cout<<"***************"<<'\n';

cout<<"Hello!

"<<'\n';

cout<<"***************"<<'\n';

}

实验

(2)设计一个程序,输入一个华氏温度值,要求输出其对应的摄氏温度值。

温度转换公式为:

c=(f-32)*5/9。

实验

(2)程序:

#include

voidmain()

{floatc,f;

cout<<"请输入华氏温度:

";

cin>>f;

c=(f-32)*5/9;

cout<<"摄氏温度是:

"<

}

实验(3)设计一个C++程序,输入三个职工的工资,求工资总额。

实验(3)程序:

#include

voidmain()

{intsa1,sa2,sa3,sum;

cout<<"请输入三个职工的工资:

";

cin>>sa1>>sa2>>sa3;

sum=sa1+sa2+sa3;

cout<<"\n工资总额是:

"<

}

结果

分析

实验

(1)结果:

实验

(1)分析:

编写程序,输入需要显示的字符,运行程序,得到运行结果。

实验

(2)结果:

实验

(2)分析:

编写程序,检查无误后运行程序,输入需要转换的华氏温度,得到转换后的摄氏温度。

实验(3)结果:

实验(3)分析:

编写程序,运行程序,输入三个职工的工资分别为3000、2500、3500,得到三个职工的工资总额是9000。

收获

体会

通过本次上机,我认识到了自身的不足。

在上机之前,觉得自己掌握的部分实际上并没有掌握,在编写程序的过程中,把我的问题不断的暴露出来。

比如丢三落四,偶尔少打一个分号、单词拼写错误、中英文的格式不同等。

好在经过同学的帮助下,将程序顺利的改正过来。

在今后的学习过程中,我一定要注意细节的部分,争取做的更好。

 

教师

评语

 

实验二

函数定义与调用

实验

目的

(1)初步掌握函数的定义方法,及函数的三种调用方法;

(2)理解参数传送过程中,值传送与传地址的过程与区别;

(3)初步学会用递归编写程序方法;

(4)学会用数组作为函数参数的编程方法。

实验

准备

(1)编写实验程序

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入测试数据进行程序测试;

(5)写出运行结果。

实验

过程

实验

(1)编写一个函数px(floatx,intn)用递归的方法求下列级数前n项的和s。

实验

(1)程序:

#include

#include

voidmain(void)

{floatx;

intn;

floatpx(float,int);

cout<<"pleaseinputx,n:

";

cin>>x>>n;

cout<<"px="<

}

floatpx(floatx,intn)

{floatp;

if(n==1)

p=x;

else

p=px(x,n-1)-pow(-1,n)*pow(x,n);

returnp;

}

实验

(2)编写一个计算sin(x)的函数,在主函数中输入x,调用sin(x)函数计算并输出y值。

y=

实验

(2)程序:

#include

#include

#include

#defineN11

floatzsin(floaty)//定义计算K阶乘的函数fac()

{inti;

floats=0,p=1.0,t;

p=y;

for(t=1,i=1;fabs(1.0/t)>=0.00001;i+=2)

{s=s+p/t;

p=p*y*y;

t=-t*(i+1)*(i+2);

}

return(s);}

voidmain(void)

{floatx,sn;

cout<<"inputx:

";

cin>>x;

sn=zsin(x);

cout<

}

实验(3)编写计算组合数的函数cmn(intn,intm),实现杨辉三角形的输出。

实验(3)程序:

#include

#include

#defineN11

floatfac(intk)//定义计算K阶乘的函数fac()

{inti;

floatt=1.0;

for(i=1;i<=k;i++)

t=t*i;

return(t);

}

floatcmn(intm1,intn1)//定义计算组合数的函数cmn()

{floatp;

p=fac(m1)/(fac(n1)*fac(m1-n1));//调用求阶乘函数fac()

return(p);

}

voidmain(void)

{intc[N][N],m,n;

for(n=0;n

for(m=0;m<=n;m++)

{c[n][m]=cmn(n,m);}

for(n=0;n

{for(m=0;m<=n;m++)

cout<

cout<

}

 

结果

分析

实验

(1)结果:

实验

(1)分析:

在主函数中定义变量x与n,用键盘输入x与n的值,调用px()函数计算并返回级数前n项和S。

最后输出S的值。

实验

(2)结果:

实验

(2)分析:

编写程序,实现在sin(x)函数内,将级数中各项值累加到和变量S中去,直到最后一项绝对值小于0.00001为止,并且将数值显示到显示器上。

实验(3)结果:

实验(3)分析:

编写程序,定义N=11,运行程序,得到一个底为11,高为11的杨辉三角形。

收获

体会

对于刚刚接触C++的人,觉得程序的编写是一件很困难的事情,完全没有头绪,根本不知道从哪里下手。

通过书上的例子,及同学的帮助,我现将一个程序分成多个部分来编写,每个部分完成各自的功能,然后再把它们都拼接到一起,最后得到一个完整的可运行的正确的程序。

编写程序不能急躁,需要一点一点的写,才能不出现错误,尽快的完成。

 

教师

评语

 

实验三

类和对象

实验

目的

(1)掌握类与对象的定义与使用方法;

(2)初步掌握构造函数、拷贝构造函数的定义与使用方法;

(3)初步掌握析构函数的定义与使用方法;

(4)理解构造函数与析构函数的调用过程。

实验

准备

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入实验测试数据,写出运行结果。

实验

过程

实验

(1)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。

定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。

在主函数中用Score类定义学生成绩对象数组s[3]。

用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。

实验

(1)程序:

#include

#include

classScore

{private:

intNo;

charName[8];

floatMath,Phi,Data,Ave;

public:

voidWrite(intno,charname[],floatmath,floatphi,floatdata)

{No=no;

strcpy(Name,name);

Math=math;

Phi=phi;

Data=data;}

voidAverage(void)

{Ave=(Math+Phi+Data)/3;}

voidDisplay()

{cout<

cout<

}

};

voidmain(void)

{inti,no;

charname[8];

floatmath,phi,data;

Scores[3];

cout<<"Input3studentdata"<<'\n';

for(i=0;i<3;i++)

{cin>>no>>name>>math>>phi>>data;

s[i].Write(no,name,math,phi,data);

s[i].Average();

}

cout<<"学号姓名数学物理数据结构平均分\n";

for(i=0;i<3;i++)

s[i].Display();

}

实验

(2)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。

用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=12+10i,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=12+10i。

用公有成员函数Dispaly()显示复数c1、c2与c3的内容。

实验

(2)程序:

#include

classComplex

{private:

floatReal,Image;

public:

Complex(floatr,floati)//定义有参构造函数

{Real=r;

Image=i;

}

Complex(Complex&c)//定义拷贝构造函数

{Real=c.Real;

Image=c.Image;

}

Complex()//定义无参构造函数

{Real=0;

Image=0;

}

voidDisplay()

{cout<

};

voidmain(void)

{Complexc1(12,10),c2,c3(c1);

c1.Display();

c2.Display();

c3.Display();

}

结果

分析

实验

(1)结果:

实验

(1)分析:

编写程序,运行程序,输入三个学生的学号、姓名、数学成绩、物理成绩、数据结构成绩,输出三个学生的学号、姓名、数学成绩、物理成绩、数据结构成绩以及每个人的平均分。

实验

(2)结果:

实验

(2)分析:

编写程序,运行程序,默认构造函数将c1初始化为c1=12+10i,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=12+10i,并且讲c1、c2、c3显示出来。

收获

体会

通过对这两个实验编写,我更加熟练的掌握类与对象的定义与使用方法,能够使用构造函数、拷贝构造函数进行程序的编写,掌握析构函数的定义与使用方法,理解构造函数与析构函数的调用过程。

教师

评语

 

实验四

数组与指针

实验

目的

(1)初步学会指针数组的定义与使用方法。

(2)了解指向一维数组的指针变量的概念,能用指向一维数组的指针变量按行处理二维数组的问题。

(3)理解返回指针值函数的概念、定义格式,学会用返回指针值函数处理字符串问题。

(4)理解函数指针与函数指针变量的概念,学会用函数指针变量处理不同函数数学计算问题。

实验

准备

(1)编写实验程序

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入测试数据进行程序测试;

(5)写出实验输入数据与运行结果。

实验

过程

实验

(1)定义一个二维字符数组s[3][80]及指针数组p[3],用cin.getline(s[i],80)输入3个字符串到二维数组3行中,然后用指针数组p对字符串进行降序排列(要求用擂台法),最后用指针数组p输出排序后的结果,用字符数组s输出排序前的三个字符串。

实验

(1)程序:

#include

#include

voidmain(void)

{chars[3][80];

char*p[3]={s[0],s[1],s[2]};

char*pc;

inti,j,k;

cout<<"Input3String:

"<

for(i=0;i<3;i++)

cin>>p[i];

for(i=0;i<2;i++)

{k=i;

for(j=i+1;j<3;j++)

if(strcmp(p[i],p[j])<0)

k=j;

if(k!

=i)

{pc=p[i];p[i]=p[k];p[k]=pc;

}

}

for(i=0;i<3;i++)cout<

for(i=0;i<3;i++)cout<

}

实验

(2)输入一个二维数组a[3][3],设计一个函数,用指向一维数组的指针变量和二维数组的行数作为函数的参数,求出平均值、最大值和最小值,并输出。

实验

(2)程序:

#include

floatave(float(*p)[3],float*max,float*min)

{floatsum=0;

inti,j;

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

{sum+=(*p)[j];

if(*max<(*p)[j])*max=(*p)[j];

if(*min>(*p)[j])*min=(*p)[j];

}

p++;

}

returnsum/9;}

voidmain(void)

{floata[3][3],max,min,average;

inti,j;

cout<<"InputData:

";

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>a[i][j];

max=min=a[0][0];

average=ave(a+0,&max,&min);

cout<<"ave="<

cout<<"max="<

cout<<"min="<

}

结果

分析

实验

(1)结果:

实验

(1)分析:

编写并运行程序,输入三个字符串“C++”、“string”、“basic”,对字符串进行降序排列,用指针数组p输出排序后的结果,用字符数组s输出排序前的三个字符串。

实验

(2)结果:

实验

(2)分析:

编写并运行程序,输入9个数字“40、20、30、15、2、45、60、4、36”,计算出9个数字的平均值、最大值、最小值。

收获

体会

通过对指针数组的学习,初步学会指针数组的定义与使用方法,了解指向一维数组的指针变量的概念,能用指向一维数组的指针变量按行处理二维数组的问题,理解返回指针值函数的概念、定义格式,学会用返回指针值函数处理字符串问题,理解函数指针与函数指针变量的概念,学会用函数指针变量处理不同函数数学计算问题。

 

教师

评语

 

实验五

继承与派生类

实验

目的

(1)理解继承与派生的概念;

(2)掌握派生类定义格式与使用方法;

(3)初步掌握派生类构造函数的定义与使用方法,理解构造函数的调用过程,及基类成员的初始化过程;

(4)理解冲突、支配规则与赋值兼容性原则的概念。

实验

准备

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入测试数据进行程序测试;

(5)写出运行结果。

实验

过程

实验

(1)定义个人信息类Person,其数据成员有姓名、性别、出生年月。

并以Person为基类定义一个学生的派生类Student,增加描述学生的信息:

班级、学号、专业、英语成绩和数学成绩。

再由基类Person定义一个职工的派生类Employee,增加描述职工的信息:

部门、职务、工资。

编写程序实现学生与职工信息的输入与输出。

实验

(1)程序:

#include

#include

classPerson

{private:

charName[8];

charSex;

charBirth[10];

public:

Person()

{}

Person(charname[],charsex,charbirth[])

{strcpy(Name,name);

Sex=sex;

strcpy(Birth,birth);

}

voidShow()

{cout<

cout<

}

};

classStudent:

publicPerson

{private:

charSclass[10];

intNo;

charMajor[10];

floatEng,Math;

public:

Student():

Person()

{}

Student(charname[],charsex,charbirth[],charsclass[],intno,charmajor[],floateng,floatmath):

Person(name,sex,birth)

{strcpy(Sclass,sclass);

No=no;

strcpy(Major,major);

Eng=eng;

Math=math;

}

voidPrint()

{Person:

:

Show();

cout<

cout<

}

};

classEmployee:

publicPerson

{private:

charDepartment[10];

charTitle[10];

floatSalary;

public:

Employee():

Person()

{}

Employee(charname[],charsex,charbirth[],chardepartment[10],chartitle[10],

floatsalary):

Person(name,sex,birth)

{strcpy(Department,department);

strcpy(Title,title);

Salary=salary;

}

voidPrint()

{Person:

:

Show();

cout<

cout<

}

};

voidmain(void)

{intno;

charname[8],sex,birth[10],major[10],class1[10],depa[10],title[10];

floateng,math,salary;

Student*s;

Employee*e;

cout<<"Inputastudentdata"<<'\n';

cin>>name>>sex>>birth>>class1>>no>>major>>eng>>math;

s=newStudent(name,sex,birth,class1,no,major,eng,math);

cout<<"Thestudentinformation:

\n";

s->Print();

cout<<"Inputanemployeedata"<<'\n';

cin>>name>>sex>>birth>>depa>>title>>salary;

e=newEmployee(name,sex,birth,depa,title,salary);

cout<<"Theemployeeinformation:

\n";

e->Print();

}

实验

(2)定义描述职工档案的类Archives,私有数据成员为职工号(No)、姓名(Name[8])、性别(Sex)、年龄(Age)。

成员函数有:

构造函数、显示职工信息的函数Show()。

再由职工档案类派生出职工工资类Laborage,在职工工资类Laborage中新增数据成员:

应发工资(SSalary)、社保金(Security)、实发工资(Fsalary),其成员函数有:

构造函数,计算实发工资的函数Count(),计算公式为:

实发工资=应发工资-社保金。

显示职工档案及工资的函数Display()。

实验

(2)程序:

#include

#include

classArchives

{private:

intNo;

charName[8];charSex;intAge;

public:

Archives(intn,charname[],chars,inta)

{No=n;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1