《C++程序设计》实践环节考核规定.doc
- 文档编号:4717531
- 上传时间:2023-05-07
- 格式:DOC
- 页数:22
- 大小:110KB
《C++程序设计》实践环节考核规定.doc
《《C++程序设计》实践环节考核规定.doc》由会员分享,可在线阅读,更多相关《《C++程序设计》实践环节考核规定.doc(22页珍藏版)》请在冰点文库上搜索。
《C++程序设计》实践环节考核规定
1.《C++程序设计》实践环节考核大纲
一、考核类型
上机考核
二、目的要求
《C++语言程序设计》是计算机科学与应用专业、信息管理专业(本科)的必修课,是培养学生实践动手能力的一门重要专业课程,是为满足计算机应用领域与计算机应用人才的需要而设置的。
C++语言是一种面向对象的编程语言,它集抽象性、封装性、继承性和多态性等面向对象特征于一体,可以帮助人们开发出具有较高数据抽象程度,能够充分体现信息隐蔽、软件重用、易修改、易扩充等特性的大型软件。
《C++程序设计》的实验采用MicrosoftVisualC++6.0。
通过上机实践,加深对课程的理解,更好地掌握C++面向对象程序设计的基本方法,增强实际动手能力。
三、考核环境
硬件:
586以上的PC系列机,主频大于166MHz,内存大于256MB,硬盘空间大于500MB。
软件:
中文Windows2000/NT/XP操作系统,MicrosoftVisualC++6.0。
四、考核方法
考生抽取试题后,在45分钟内,完成试卷中所要求的全部内容,并作必要的记录。
考核结束后,考生上交试卷。
上机考核成绩由现场老师初评,经考点负责人审核签名,报主考院校核定。
成绩分合格、不合格两类。
五、考核内容
l掌握MicrosoftVisualC++6.0集成开发环境的使用,新建工程,编辑含有类的C++源文件,存取文件,编译文件,调试程序和运行程序。
l模板。
包括:
函数模板、类模板,练习编制函数模板和类模板。
l熟悉面向对象编程思想和多文件编程规范。
l掌握公有继承的赋值兼容性规则、构造函数、复制构造函数和析构函数的设计方法。
l练习使用向量解决实际问题。
l熟悉各类运算符的重载。
l熟悉使用文件的基本方法。
l熟悉继承和包含以及虚函数的多态性。
六、参考书目
1.刘振安主编,《C++程序设计》,机械工业出版社2008年
2.薛万鹏译,《C++程序设计教程》,机械工业出版社,2005年
3.钱能,《C++程序设计教程》,清华大学出版社,2006年
2《C++程序设计》上机考核指导
《C++语言程序设计》是一门实践性很强的课程,必须通过反复上机练习,深入领悟面向对象程序设计的基本思想。
通过实验教学加深理解和巩固课堂和教材所学的内容,提高实践动手能力。
实验一MicrosoftVisualC++6.0集成开发环境的使用
一、实验目的与要求
了解并初步掌握MicrosoftVisualC++6.0集成开发环境的使用。
二、实验内容
(1)创建项目(Project)
l启动VC++6.0。
l从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。
单击【工程】标签,从项目列表中单击Win32ConsoleApplication选项;在【工程】文本框中输入项目的名字,如“hello”,系统将自动为用户的项目分配一个默认的目录.
l如果是VisualC++6.0,系统将显示一个询问项目类型的程序向导,选择anemptyproject选项,单击【完成】按钮,显示新建项目信息;单击【确定】按钮结束。
(2)添加程序代码
l从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。
l在【新建】对话框中打开【文件】选项卡,单击C++SourceFile选项,建立源文件;选中“添加工程”复选框;在右边的“文件”文本框中为文件指定一个名字,如“hello”。
l编辑源文件。
在【工作区】窗口中单击FileView标签,选择并打开该窗口中SourceFiles下的文件,如hello.cpp,在打开的【文件】窗口中输入源程序。
l在项目文件中增加文件。
若在已有的项目文件中增加一个新文件,如C++源文件“*.cpp”或头文件“*.h”需要执行以下操作。
打开相应的项目文件,选择【新建】|【文件】命令,选择C++编辑栏Source选项,可增加C++源文件;或选择C/C++HeadFile选项增加C/C++头文件。
在【文件】文本框输入文件名,单击【确定】按钮。
(3)编译源文件
先激活相应的源程序窗口,选择【编译】|【编译】命令或按Ctrl+F7键来编译源文件,形成目标文件(生成.obj文件),若该项目中有多个源文件,可依次激活并编译。
(4)链接目标程序,形成可执行文件
选择【编译】|【链接】命令或按快捷键F7链接程序,并形成可执行文件。
此命令也可直接将项目中的所有源文件进行编译并链接形成可执行文件,使编译和链接的过程结合在一起。
(5)运行程序
选择【编译】|【执行】命令或使用快捷键Ctrl+F5运行该程序,将显示一个类似于DOS的窗口,在窗口中第一行输出“hello,world!
”,第二行输出“Pressanykeytocontinue”,提示用户按任意键回到开发环境。
三、程序练习
定义一个关于日期的类,然后声明对象,判断该日期是否为闰年并输出。
本题练习的是定义类和使用类的方法。
源程序代码:
#include"iostream"
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"iostream" #include usingnamespacestd; //类CPeople的定义 classCPeople { int m_nAge; float m_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]; //用new操作符为字符指针m_pstrName分配空间 strcpy(m_pstrName,"无名氏"); } CPeople: : CPeople(intage,floatsalary,char*name) //带参数的构造函数 { m_nAge=age; m_fSalary=salary; m_pstrName=newchar[20]; //用new操作符为字符指针m_pstrName分配空间 strcpy(m_pstrName,name); } //复制构造函数,用已存在的对象来创建新的对象 CPeople: : CPeople(constCPeople&AnotherPeople) { m_nAge=AnotherPeople.m_nAge; m_fSalary=AnotherPeople.m_fSalary; m_pstrName=newchar[strlen(AnotherPeople.m_pstrName)+1]; strcpy(m_pstrName,AnotherPeople.m_pstrName); } CPeople: : ~CPeople() //析构函数,用来释放我们在构造函数中动态申请的内存空间 { if(m_pstrName! =NULL) deletem_pstrName; //释放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() { CPeople ZhangSan(65,2000.00f,"张三"); //创建一个对象ZhangSan cout<<"以下为个人信息: \n姓名,年龄,薪水"< cout<<"------------------\n"; cout< cout< cout< CPeople A; //创建一个对象A A.SetAge(34); //设置对象A的年龄 A.SetSalary(4000.00f); //设置对象A的工资 cout< cout< cout< CPeople B(ZhangSan); //用对象ZhangSan来创建对象B cout< cout< cout< } 三、实验要要求 按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。 实验三继承与派生 一、实验目的和要求 l掌握派生类的定义方法和派生类构造函数的定义方法。 l掌握不同继承方式的情况下,基类成员在派生类中的访问权限。 l了解派生类的构造函数和析构函数的执行顺序。 了解多重继承的定义方法,多重继承的构造函数和析构函数的使用。 二、实验内容 在类CPeople的基础上,派生出学生类CStudent,并实现对学生成绩的统计和输出。 源程序代码: #include #include #defineMAXNUM10 usingnamespacestd; classCPeople { protected: int m_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: int m_stuNo; //学号 int m_courseNum; //课程数目 float m_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;} 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< } 三、实验要要求 按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。 实验四模板的使用 一、实验目的与要求 了解函数模板、类模板的概念,练习编制函数模板和类模板。 二、实验内容 编写一个使用类模板对数组进行排序、查找和求元素和的程序。 要求: 设计一个类模板template 源程序如下: #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=0;inti; for(i=0;i s+=set[i]; returns; } template voidArray : disp() { inti; for(i=0;i cout< cout< } voidmain() { inta[]={6,3,8,1,9,4,7,5,2}; doubleb[]={2.3,6.1,1.5,8.4,6.7,3.8}; Array Array cout<<"arr1: "< cout<<"原序列: "; arr1.disp(); cout<<"8在arr1中的位置: "< arr1.sort(); cout<<"排序后: "; arr1.disp(); cout<<"arr2: "< cout<<"原序列: "; arr2.disp(); cout<<"8.4在arr2中的位置: "< arr2.sort(); cout<<"排序后: "; arr2.disp(); } 三、实验要求 按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。 实验五使用向量 一、实验目的和要求 练习使用向量解决实际问题 二、实验内容 利用向量编写程序: 出圈游戏。 假设有人数为n的一个小组,他们顺时针方向围坐一圈。 一开始任选选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。 报数m的人出列,然后从他原来所在地以顺时针方向的下一个人开始,重新从1报数,报到m时停止报数并出列。 如此下去,直至所有人全部出列为止。 要求按他们出列的顺序输出他们的名字。 源程序代码如下: #include #include usingnamespacestd; classSeqList { charname[10]; public: voidDispName() { cout< } voidSetName(charb[]) { strcpy(name,b); } voidJoseph(vector }; //Joseph函数 voidSeqList: : Joseph(vector { intm,star,i,j,k; cout<<"请输入间隔数m(m<=20)"; cin>>m; while(m>20) { cout<<"间隔太大,请重新输入: "; cin>>m; } cout<<"从第几个人的位置开始报数(不能大于"< "; cin>>star; while(star>c.size()) { cout<<"开始位置大于人数,重新输入: "; cin>>star;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计 C+ 程序设计 实践 环节 考核 规定
![提示](https://static.bingdoc.com/images/bang_tan.gif)