《C++程序设计》实现环节考核规定.doc
《《C++程序设计》实现环节考核规定.doc》由会员分享,可在线阅读,更多相关《《C++程序设计》实现环节考核规定.doc(22页珍藏版)》请在冰点文库上搜索。
![《C++程序设计》实现环节考核规定.doc](https://file1.bingdoc.com/fileroot1/2023-5/7/272cd426-ccc7-4ddf-94e0-f1cba54f9c90/272cd426-ccc7-4ddf-94e0-f1cba54f9c901.gif)
《C++程序设计》实现环节考核规定
2.1实践环节考核大纲
一、考核类型
上机考核
二、目的要求
《C++语言程序设计》是计算机科学与应用专业、信息管理专业(本科)的必修课,是培养学生实践动手能力的一门重要的专业课程,是为满足计算机应用领域与计算机应用人才的需要而设计的。
C++语言是一种面向对象的编程语言,它集抽象性、封装性、继承性和多态性等面向对象特征于一体,可以帮助人们开发出具有较高数据抽象程度,能够充分体现信息隐蔽、软件重用、易修改、易扩充等特征的大型软件。
《C++语言程序设计》的实验采用MicrosoftVisualC++6.0。
通过上机实践,加深对课程的理解,更好地掌握程序设计的基本方法,增强实践动手能力。
三、考核环境
硬件:
586以上的PC系列机,主频大于166MHz,内存大于256MB,硬盘空间大于500MB。
软件:
中文Windows2000/NT/XP操作系统,MicrosoftVisualC++6.0。
四、考核方法
考生抽取试题后,在45分钟内,完成试卷中所要求的全部内容,并作必要的记录。
考试结束后,考生上交试卷。
上机考核成绩由现场老师初评,经考点负责人审核签名,报主考院校核定。
成绩分合格、不合格两类。
五、考核内容
l掌握MicrosoftVisualC++6.0集成开发环境的使用,新建工程,编辑含有类C++源文件,存取文件,编译文件,调试程序和运行程序。
l模板。
包括:
函数模板、类模板,练习编制函数模板和类模板。
l熟悉面向对象编程思想和多文件编程规范。
l掌握公有继承的赋值兼容性规则、构造函数、复制构造函数和析构函数的设计方法。
l练习各类运算符的重载。
l熟悉使用文件的基本方法。
l熟悉继承和包含以及虚函数的多态性。
六、参考书目
1.刘振安主编,《C++程序设计》,机械工业出版社2008年
2.雪万鹏译,《C++程序设计教程》,机械工业出版社2005年
3.钱能,《C++程序设计教程》,清华大学出版社2006年
2.2《C++程序设计》上机考核指导
《C++语言程序设计》是一门实践性很强的课程,必须通过反复上机练习,深入领悟面向对象程序设计的基本思想。
通过实验教学加深理解和巩固课堂和教材所学的内容,提高实践动手能力。
实验一MicrosoftVisualC++6.0集成开发环境的使用
一、实验目的与要求
了解并初步掌握MicrosoftVisualC++6.0集成开发环境的使用。
二、实验内容
(1)创建项目(Project)
1、启动VC6.0
2、从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。
单击【工程】标签,从项目列表中单击Win32ConsoleApplication选项;在【工程】文本框中输入项目的名字,如“hello”,系统将自动为用户的项目分配一个默认的目录。
3、如果是VisualC++6.0,系统将显示一个询问项目类型的程序向导,选择anemptyproject(空项目)选项,单击【完成】按钮,显示新建项目信息;单击【确定】按钮结束。
(2)添加程序代码
1、从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。
2、在【新建】对话框中打开【文件】选项卡,单击C++SourceFile选择,建立源文件;选择“添加工程”复选框。
在右边的“文件”文本框中为文件指定一个名字,如“hello”。
3、编辑源文件。
在【工作区】窗口中单击FileVIEW标签,选择并打开该窗口中SourceFiles下的文件,如hello.app,在打开的【文件】窗口中输入源文件。
4、在项目文件中增加文件。
若在已有的项目文件中增加一个新文件,如C++源文件“*.cpp”或头文件“*.h”需要执行以下操作。
打开相应的项目文件,选择【新建】|【文件】命令,选择C++编辑栏Source选择,可增加C++源文件;或选择C/C++HeadFile选项增加C/C++头文件。
在【文件】文本框输入文件名,单击【确定】按钮。
(3)编译源文件
先激活相应的源文件窗口,选择【编译】|【编译】命令或按Ctrl+F7键来编译源文件,形成目标文件(生成.obj文件),若该项目中有多个源文件,可依次激活并编译。
(4)连接目标文件,形成可执行文件
选择【编译】|【连接】命令或快捷键F7连接程序,并形成可执行文件。
此命令也可直接将项目中的所有源文件进行编译并连接形成可执行文件,使编译和连接的过程结合在一起。
(5)运行程序
选择【编译】|【执行】命令或使用快捷键Ctrl+F5运行该程序,将显示一个类似于DOS的窗口,在窗口中第一行输出程序计算结果,第二行输出“Pressanykeytocontinue”,提示用户按任意键回到开发环境。
三、程序练习
定义一个关于日期的类,然后声明对象,判断该日期是否为闰年并输出。
本题练习的是定义类和使用类的方法
#include
usingnamespacestd;
classTDate
{
public:
voidSetDate(inty,intm,intd);
intisLeapYear();
voidPrint();
private:
intyear,month,day;
};
voidTDate:
:
SetDate(inty,intm,intd)
{
year=y;
month=m;
day=d;
}
intTDate:
:
isLeapYear()
{
return(year%4==0&&year%100!
=0)||(year%400==0);
}
voidTDate:
:
Print()
{
cout<}
voidmain()
{
TDatedate1,date2;
date1.SetDate(2004,5,4);
date2.SetDate(2005,4,9);
intleap=date1.isLeapYear();
date1.Print();
if(leap==1)
cout<<"是闰年!
"< else
cout<<"不是闰年!
"< date2.Print();
leap=date2.isLeapYear();
if(leap==1)
cout<<"是闰年!
"< else
cout<<"不是闰年!
"<}
四、实验要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验二类和对象的使用
一、实验目的和要求
(1)熟悉类的定义格式和类中成员的访问权限。
(2)掌握对象的定义以及对象的初始化和赋值的操作。
(3)掌握构造函数和析构函数的使用。
二、实验内容
1.编写一个程序,定义类CPeople包含个人信息名称、年龄、薪水。
并在类中定义构造函数、析构函数。
题目分析:
注意构造函数、析构函数的定义规则。
源程序代码:
#include
#include
usingnamespacestd;
//类Cpeople的定义
classCPeople
{
intm_nAge;
floatm_fSalary;
char*m_pstrName;
public:
CPeople();//缺省构造函数
CPeople(intage,floatsalary,char*name);//带参数的构造函数
CPeople(constCPeople&);//拷贝构造函数
~CPeople();//析构函数
char*GetName();
floatGetSalary();
voidSetSalary(float);
intGetAge();
voidSetAge(intage);
};
CPeople:
:
CPeople()
{
m_nAge=20;
m_fSalary=3000.00f;
m_pstrName=newchar[20];
strcpy(m_pstrName,"无名氏");
}
CPeople:
:
CPeople(intage,floatsalary,char*name)
{
m_nAge=age;
m_fSalary=salary;
m_pstrName=newchar[20];
strcpy(m_pstrName,name);
}
CPeople:
:
CPeople(constCPeople&AnotherPeople)
{
m_nAge=AnotherPeople.m_nAge;
m_fSalary=AnotherPeople.m_fSalary;
m_pstrName=newchar[20];
strcpy(m_pstrName,AnotherPeople.m_pstrName);
}
CPeople:
:
~CPeople()
{
if(m_pstrName!
=NULL)delete[]m_pstrName;
}
char*CPeople:
:
GetName()
{
returnm_pstrName;
}
intCPeople:
:
GetAge()
{
returnm_nAge;
}
voidCPeople:
:
SetAge(intage)
{
if(age<=0)
cout<<"设置的年龄不合法"< else
m_nAge=age;
}
floatCPeople:
:
GetSalary()
{
returnm_fSalary;
}
voidCPeople:
:
SetSalary(floatnum)
{
if(num<0)
cout<<"设置的薪水数目不合法"< else
m_fSalary=num;
}
voidmain()
{
CPeopleZhangSan(65,2000.00f,"张三");
cout<<"以下为个人信息:
\n姓名,年龄,薪水"< cout<<"-------------\n";
cout< cout< cout< CPeopleA;
A.SetAge(34);
A.SetSalary(4000.00f);
cout< cout< cout< CPeopleB(ZhangSan);
cout< cout< cout<}
三、实验和要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验三继承与派生
一、实验目的和要求
(1)掌握派生类的定义方法和派生类构造函数的定义方法。
(2)掌握不同继承方法的情况下,基类成员函数在派生类中的访问权限。
(3)了解派生类的构造函数和析构函数的执行顺序。
了解多重继承的定义方法,多重继承的构造函数和析构函数的使用。
二、实验内容
在类CPeople的基础上,派生出学生类CStudent,并实现对学生成绩的统计和输出。
源程序代码:
#include
#include
#defineMAXNUM10
usingnamespacestd;
classCPeople
{
intm_nAge;
public:
char*m_pstrName;
CPeople(intage,char*name);
~CPeople();
intGetAge();
voidSetAge(intage);
voidCopyPeople(CPeople*pAnother);
};
CPeople:
:
CPeople(intage,char*name)
{
m_nAge=age;
m_pstrName=newchar[20];
strcpy(m_pstrName,name);
}
CPeople:
:
~CPeople()
{
if(m_pstrName!
=NULL)delete[]m_pstrName;
}
intCPeople:
:
GetAge()
{
returnm_nAge;
}
voidCPeople:
:
SetAge(intage)
{
m_nAge=age;
}
voidCPeople:
:
CopyPeople(CPeople*pAnother)
{
m_nAge=pAnother->m_nAge;
strcpy(m_pstrName,pAnother->m_pstrName);
}
classCStudent:
publicCPeople
{
floatm_ArrayScore[MAXNUM];//用来存放成绩的数组
protected:
intm_stuNo; //学号
intm_courseNum; //课程数目
floatm_aScore; //平均成绩
public:
CStudent(intage,intNo,intNum,char*pName="noname"):
CPeople(age,pName)
{
m_stuNo=No;
m_courseNum=Num;
m_aScore=0.0f;
//初始化成绩数组
cout<<"请输入学生"<"< for(inti=0;i cin>>m_ArrayScore[i];
}
voidCaculateAverageScore()
{
floatSUM=0.0f;
for(inti;i {
SUM+=m_ArrayScore[i];
}
m_aScore=SUM/m_courseNum;
}
floatGetM_aScore(){returnm_aScore;}
friendostream&operator<<(ostream&out,constCStudent&s);
};
ostream&operator<<(ostream&out,constCStudent&s)
{
out<<"学生姓名"<"<"< for(inti=0;i {
out< }
out<<"平均成绩="< returnout;
}
voidmain()
{
CStudentstu1(16,29,3,"张三");
stu1.CaculateAverageScore();
cout<}
注意:
VC++6.0不支持插入操作符和提取操作符作为友元运算符重载,故改造如下:
#include
#include
#defineMAXNUM10
usingnamespacestd;
classCPeople
{
intm_nAge;
public:
char*m_pstrName;
CPeople(intage,char*name);
~CPeople();
intGetAge();
voidSetAge(intage);
voidCopyPeople(CPeople*pAnother);
};
CPeople:
:
CPeople(intage,char*name)
{
m_nAge=age;
m_pstrName=newchar[20];
strcpy(m_pstrName,name);
}
CPeople:
:
~CPeople()
{
if(m_pstrName!
=NULL)delete[]m_pstrName;
}
intCPeople:
:
GetAge()
{
returnm_nAge;
}
voidCPeople:
:
SetAge(intage)
{
m_nAge=age;
}
voidCPeople:
:
CopyPeople(CPeople*pAnother)
{
m_nAge=pAnother->m_nAge;
strcpy(m_pstrName,pAnother->m_pstrName);
}
classCStudent:
publicCPeople
{
floatm_ArrayScore[MAXNUM];//用来存放成绩的数组
protected:
intm_stuNo; //学号
intm_courseNum; //课程数目
floatm_aScore; //平均成绩
public:
CStudent(intage,intNo,intNum,char*pName="noname"):
CPeople(age,pName)
{
m_stuNo=No;
m_courseNum=Num;
m_aScore=0.0f;
//初始化成绩数组
cout<<"请输入学生"<"< for(inti=0;i cin>>m_ArrayScore[i];
}
voidCaculateAverageScore()
{
floatSUM=0.0f;
for(inti=0;i {
SUM+=m_ArrayScore[i];
}
m_aScore=SUM/m_courseNum;
}
floatGetM_aScore(){returnm_aScore;}
ostream&operator<<(ostream&out);
};
ostream&CStudent:
:
operator<<(ostream&out)
{
out<<"学生姓名"<"<"< for(inti=0;i {
out< }
out<<"平均成绩="< returnout;
}
voidmain()
{
CStudentstu1(16,29,3,"张三");
stu1.CaculateAverageScore();
stu1<}
三、实验和要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验四模板的使用
一、实验目的和要求
了解函数模板、类模板的概念,练习编制函数模板和类模板。
二、实验内容
编写一个程序,使用类模板对数组进行排序、查找和求元素和的程序。
要求:
设计一个类模板templateclassArray,用于对T类型的数组进行排序、查找和求元素和,然后由此产生模板类Array和Array。
源程序代码:
#include
#include
usingnamespacestd;
template
classArray
{
T*set;
intn;
public:
Array(T*data,inti){set=data;n=i;};
~Array(){};
voidsort();//排序
intseek(Tkey);//查找指定的元素
TSUM();//求和
voiddisp();//显示所有的元素
};
template
voidArray:
:
sort()
{
inti,j;
Ttemp;
for(i=1;i for(j=n-1;j>=i;j--)
if(set[j-1]>set[j])
{
temp=set[j-1];set[j-1]=set[j];set[j]=temp;
}
}
template
intArray:
:
seek(Tkey)
{
inti;
for(i=0;i if(set[i]==key)returni;
return-1;
}
template
TArray:
:
SUM()
{
Ts=o;
inti;
for(i=0;i s+=set[i];
returns;
}
template