C程序设计实践环节考核规定.docx
《C程序设计实践环节考核规定.docx》由会员分享,可在线阅读,更多相关《C程序设计实践环节考核规定.docx(34页珍藏版)》请在冰豆网上搜索。
C程序设计实践环节考核规定
《程序设计》实践环节考核规定
1.《程序设计》实践环节考核大纲
一、考核类型
上机考核
二、目的要求
《语言程序设计》是计算机科学与应用专业、信息管理专业(本科)的必修课,是培养学生实践动手能力的一门重要专业课程,是为满足计算机应用领域与计算机应用人才的需要而设置的。
语言是一种面向对象的编程语言,它集抽象性、封装性、继承性和多态性等面向对象特征于一体,可以帮助人们开发出具有较高数据抽象程度,能够充分体现信息隐蔽、软件重用、易修改、易扩充等特性的大型软件。
《程序设计》的实验采用6.0。
通过上机实践,加深对课程的理解,更好地掌握面向对象程序设计的基本方法,增强实际动手能力。
三、考核环境
硬件:
586以上的系列机,主频大于166,内存大于256,硬盘空间大于500。
软件:
中文2000操作系统,6.0。
四、考核方法
考生抽取试题后,在45分钟内,完成试卷中所要求的全部内容,并作必要的记录。
考核结束后,考生上交试卷。
上机考核成绩由现场老师初评,经考点负责人审核签名,报主考院校核定。
成绩分合格、不合格两类。
五、考核内容
●掌握6.0集成开发环境的使用,新建工程,编辑含有类的源文件,存取文件,编译文件,调试程序和运行程序。
●模板。
包括:
函数模板、类模板,练习编制函数模板和类模板。
●熟悉面向对象编程思想和多文件编程规范。
●掌握公有继承的赋值兼容性规则、构造函数、复制构造函数和析构函数的设计方法。
●练习使用向量解决实际问题。
●熟悉各类运算符的重载。
●熟悉使用文件的基本方法。
●熟悉继承和包含以及虚函数的多态性。
六、参考书目
1.刘振安主编,《程序设计》,机械工业出版社2008年
2.薛万鹏译,《程序设计教程》,机械工业出版社,2005年
3.钱能,《程序设计教程》,清华大学出版社,2006年
2《程序设计》上机考核指导
《语言程序设计》是一门实践性很强的课程,必须通过反复上机练习,深入领悟面向对象程序设计的基本思想。
通过实验教学加深理解和巩固课堂和教材所学的内容,提高实践动手能力。
实验一6.0集成开发环境的使用
一、实验目的与要求
了解并初步掌握6.0集成开发环境的使用。
二、实验内容
(1)创建项目()
●启动6.0。
●从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。
单击【工程】标签,从项目列表中单击32选项;在【工程】文本框中输入项目的名字,如“”,系统将自动为用户的项目分配一个默认的目录.
●如果是6.0,系统将显示一个询问项目类型的程序向导,选择选项,单击【完成】按钮,显示新建项目信息;单击【确定】按钮结束。
(2)添加程序代码
●从主菜单中选择【文件】|【新建】命令,打开【新建】对话框。
●在【新建】对话框中打开【文件】选项卡,单击C选项,建立源文件;选中“添加工程”复选框;在右边的“文件”文本框中为文件指定一个名字,如“”。
●编辑源文件。
在【工作区】窗口中单击标签,选择并打开该窗口中下的文件,如,在打开的【文件】窗口中输入源程序。
●在项目文件中增加文件。
若在已有的项目文件中增加一个新文件,如源文件“*”或头文件“*”需要执行以下操作。
打开相应的项目文件,选择【新建】|【文件】命令,选择编辑栏选项,可增加源文件;或选择选项增加头文件。
在【文件】文本框输入文件名,单击【确定】按钮。
(3)编译源文件
先激活相应的源程序窗口,选择【编译】|【编译】命令或按7键来编译源文件,形成目标文件(生成文件),若该项目中有多个源文件,可依次激活并编译。
(4)链接目标程序,形成可执行文件
选择【编译】|【链接】命令或按快捷键F7链接程序,并形成可执行文件。
此命令也可直接将项目中的所有源文件进行编译并链接形成可执行文件,使编译和链接的过程结合在一起。
(5)运行程序
选择【编译】|【执行】命令或使用快捷键5运行该程序,将显示一个类似于的窗口,在窗口中第一行输出“,!
”,第二行输出“”,提示用户按任意键回到开发环境。
三、程序练习
定义一个关于日期的类,然后声明对象,判断该日期是否为闰年并输出。
本题练习的是定义类和使用类的方法。
源程序代码:
""
;
{
:
(d);
();
();
:
;
};
(d)
{
;
;
;
}
()
{
(401000)(4000);
}
()
{
<<<<"."<<<<"."<<<<;
}
()
{
12;
1(2004,5,4);
2(2005,4,9);
1();
1();
(1)
<<"是闰年!
"<<;
<<"不是闰年!
"<<;
2();
2();
(1)
<<"是闰年!
"<<;
<<"不是闰年!
"<<;
}
四、实验要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验二类和对象的使用
一、实验目的和要求
(1)熟悉类的定义格式和类中成员的访问权限。
(2)掌握对象的定义方法以及对象的初始化和赋值的操作。
(3)掌握构造函数和析构函数的使用。
二、实验内容
1.编写一个程序,定义类包含个人信息姓名、年龄、薪水。
并在类中定义构造函数、析构函数。
题目分析:
注意构造函数、析构函数的定义规则。
源程序代码:
""
<>
;
类的定义
{
;
;
*;
:
();缺省构造函数
(,,*);带参数的构造函数
(&);拷贝构造函数
();析构函数
*();
();
();
();
();
};
()缺省构造函数,给创建的对象的每个成员赋默认值
{
=20;
=3000.00f;
=[20];用操作符为字符指针分配空间
(,"无名氏");
}
(,,*)带参数的构造函数
{
=;
=;
=[20];用操作符为字符指针分配空间
(,);
}
复制构造函数,用已存在的对象来创建新的对象
()
{
=;
=;
=[()+1];
(,);
}
()析构函数,用来释放我们在构造函数中动态申请的内存空间
{
()
;释放所占用的内存空间
}
*()
{
;
}
()
{
;
}
()
{
(<=0)
<<"设置的年龄不合法"<<;
=;
}
()
{
;
}
()
{
(<0)
<<"设置的薪水数目不合法"<<;
=;
}
()
{
(65,2000.00f,"张三");创建一个对象
<<"以下为个人信息:
\n姓名,年龄,薪水"<<;
<<"\n";
<<()<<"";输出对象的姓名
<<()<<"";输出对象的年龄信息
<<()<<<<输出对象的工资信息
A;创建一个对象A
(34);设置对象A的年龄
(4000.00f);设置对象A的工资
<<()<<"";输出对象A的姓名
<<()<<"";输出对象A的年龄信息
<<()<<<<;输出对象A的工资信息
B();用对象来创建对象B
<<()<<"";
<<()<<"";
<<()<<<<;
}
三、实验要要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验三继承与派生
一、实验目的和要求
●掌握派生类的定义方法和派生类构造函数的定义方法。
●掌握不同继承方式的情况下,基类成员在派生类中的访问权限。
●了解派生类的构造函数和析构函数的执行顺序。
了解多重继承的定义方法,多重继承的构造函数和析构函数的使用。
二、实验内容
在类的基础上,派生出学生类,并实现对学生成绩的统计和输出。
源程序代码:
<>
<>
10
;
{
:
;
:
*;
(,*);
();
();
();
(*);
};
(,*)
{
=;
=[20];
(,);
}
()
{
()
[];
}
()
{
;
}
()
{
=;
}
(*)
{
=->;
(,->);
}
{
[];用来存放成绩的数组
:
;学号
;课程数目
;平均成绩
:
(,,,*=""):
()
{
=;
=;
=0.0f;
初始化成绩数组
<<"请输入学生"<<<<<<"门课的成绩:
"<<;
(i=0;i<;)
>>[i];
}
()
{
=0.0f;
(i=0;i<;)
{
[i];
}
=;
}
(){;}
<<(,);
};
<<(,)
{
<<"学生姓名:
"<<<<",学号:
"<<
<<",成绩列表:
"<<;
(i=0;i<;)
{
<<[i]<<;
}
<<"平均成绩="<<<<<<;
;
}
()
{
1(16,29,3,"张三");
1();
<<1;
}
三、实验要要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验四模板的使用
一、实验目的与要求
了解函数模板、类模板的概念,练习编制函数模板和类模板。
二、实验内容
编写一个使用类模板对数组进行排序、查找和求元素和的程序。
要求:
设计一个类模板,用于对T类型的数组进行排序、查找和求元素和,然后由此产生模板类<>和<>。
源程序如下:
<>
<>
;
{
T*;
n;
:
(T*i)
{;;}
(){}
();排序
(T);查找指定的元素
T();求和
();显示所有的元素
};
()
{
;
T;
(1<)
(1>)
([1]>[j])
{
[1];[1][j];
[j];
}
}
(T)
{
i;
(0<)
([i])i;
-1;
}
T()
{
T0i;
(0<)
[i];
s;
}
()
{
i;
(0<)
<<[i]<<"";
<<;
}
()
{
a[]={6,3,8,1,9,4,7,5,2};
b[]={2.3,6.1,1.5,8.4,6.7,3.8};
<>1(a,9);
<>2(b,6);
<<"1:
"<<;
<<"原序列:
";
1();
<<"8在1中的位置:
"<<1(8)<<;
1();
<<"排序后:
";
1();
<<"2:
"<<;
<<"原序列:
";
2();
<<"8.4在2中的位置:
"<<2(8.4)<<;
2();
<<"排序后:
";
2();
}
三、实验要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验五使用向量
一、实验目的和要求
练习使用向量解决实际问题
二、实验内容
利用向量编写程序:
出圈游戏。
假设有人数为n的一个小组,他们顺时针方向围坐一圈。
一开始任选选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报数m的人出列,然后从他原来所在地以顺时针方向的下一个人开始,重新从1报数,报到m时停止报数并出列。
如此下去,直至所有人全部出列为止。
要求按他们出列的顺序输出他们的名字。
源程序代码如下:
<>
<>
;
{
[10];
:
()
{
<<;
}
(b[])
{
();
}
(<>&);
};
函数
(<>)
{
;
<<"请输入间隔数m(m<=20)";
>>m;
(m>20)
{
<<"间隔太大,请重新输入:
";
>>m;
}
<<"从第几个人的位置开始报数(不能大于"<<()<<"):
";
>>;
(>())
{
<<"开始位置大于人数,重新输入:
";
>>;
}
<<"准备输入名字"<<;
();消除回车干扰
输入参加游戏人的名字
s[10];
(0;i<())
{
<<"第"<<1<<"个人的名字:
";
(s);
c[i](s);
}
2;
<>p;
();
();
(1<)
{
0;报数
(j{
;
(())到终点,返回到第一个位置计数
0;
;
}
()
;
c[i]();输出出圈人的信息
<<",";
();删除出圈人的记录
;调整计数位置初始值
}
语句跳转至此处,输出最后出列的编号
c[i]();
<<;
}
()
{
0;
<<"请输入人数:
";
>>;
<>c();
;
(c);
}
三、实验要求
按要求编写实验程序,将实验程序调试运行,假设参加游戏的为5人,间隔数选10,从第三个人的位置开始报数,5个人的名字依次为:
李红、王强、张三、李四、王五,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验六多态性和虚函数
一、实验目的
熟悉继承和包含以及虚函数的多态性。
二、实验内容
程序实现的基本功能:
小型公司人员信息管理。
某小型公司主要有3类人员:
经理、兼职技术人员、兼职销售员。
这些人员分别具有
以下属性。
经理:
姓名、编号、固定工资、当月薪水、计算月薪、显示信息;
兼职技术人员:
姓名、编号、工作小时、每小时工资额、当月薪水、计算月薪、显示信息;
兼职销售员:
姓名、编号、销售额、销售额提成、当月薪水、计算月薪、显示信息;
要求:
人员编号基数为1000,每输入一个人员信息编号顺序加1;月薪计算办法是经理固定月薪8000元;兼职技术人员按100元/小时领取月薪;兼职推销员按当月销售额的4%提成。
根据题目要求,设计一个基类,然后派生出(兼职技术人员)类、(经理)类和(兼职销售员)类。
头文件
{定义职员类
:
*;定义姓名
;个人编号
;月薪总额
;本公司职员编号目前最大值
:
();
();
()=0计算月薪函数解决:
虚函数
();显示人员信息
};
兼职技术人员类(公有派生)
{
:
每小时酬金
;当月工作时数
:
();
();计算月薪函数
()显示人员信息
};
:
兼职推销员类
{
:
按销售额提取酬金百分比
;当月销售额
:
();
();计算月薪函数
()显示人员信息
};
经理类
{
:
固定月薪数
:
();
();计算月薪函数
()显示人员信息
};
**************************************************************
<>
<>
""
=1000员工编号基数
()
{
[20]<<"\n输入雇员姓名:
";
>>;
[()+1]动态申请
();
新员工编号自动生成
0.0;月薪总额初始0
}
()
{
[]释放空间
}
()
{
<<<<":
"<<"编号:
"<<
<<",本月工资"<<<<;
}
()
{
100;每小时酬金100元
}
()
{
<<"输入本月工作时数:
">>;
计算月薪
*;
}
()
{
<<"兼职技术人员:
";
();
}
()
{
0.04;提成比例
}
()
{
<<"输入本月销售额:
">>;
*月薪=销售提成
}
()
{
<<"推销员:
";
();
}
()
{
8000;
}
()
{
;月薪总额=固定月薪数
}
()
{
<<"经理:
";
();
}
10_4
<>
<>
;
()
{
经理:
;
m1;
m1();
m1();
兼职技术人员:
;
t1;
t1();
t1();
兼职推销员:
;
s1;
s1();
s1();
<<"\n使基类指针指向子类对象"<<;
*[4]={111};
(0<3)
[i]->();
}
三、实验要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验七运算符重载、使用多文件编程
一、实验目的
熟悉运算符重载的定义和使用方法,熟悉多文件编程规范。
二、实验内容
重载类的输出运算符和赋值运算符。
*********************************************
程序清单
**********************************************
类的定义
<>
;
{
;
;
:
*;
();
();
(,,*);
();
();
();
();
();
<<(,);
};
*********************************************
程序清单
**********************************************
类的实现
""
<>
;
()
{
=20;
=3000.00f;
=[20];
(,"无名氏");
}
(,,*)
{
=;
=;
=[20];
(,);
}
()
{
()
[];
}
()
{
;
}
()
{
=;
}
()
{
(<20)
0;
(()>60)
/2;
;
}
()
{
=;
}
赋值运算符重载的实现
()
{
()检查自赋值
*;
()
[];释放原有的内存资源
=;
=;
分配新的内存资源,并复制内容
=[()+1];
(,);
*;
}
输出运算符重载函数的实现
<<(,)
{
<<"姓名:
"<<<<","
<<"年龄:
"<<()<<","
<<"薪水:
"<<();
;
}
*********************************************
程序清单7
**********************************************
测试类
<>
""
;
()
{
(65,2000.00f,"张飞");
<<<<;输出对象的值
A,B;
(34);
(4000.00f);
<B=A;将对象A的值赋给对象B
<
}
三、实验要要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。
实验八文件读写
一、实验目的
熟悉使用文件的基本方法。
熟悉标准流对象和的使用方法,掌握系统提供的输入操作和输出操作函数。
二、实验内容
简单通讯录:
编写一个简单的通讯录程序,在文件中记录朋友的姓名、年龄和电话号码,允许用户向其中添加信息,根据姓名查询或显示所有的信息。
#<>
#<>
#<>
#<>
;
{
:
;
;
;
:
()
{
>>>>>>;
}
()
{<<<<(12)<<<<(8)<<<<(12)<<<<;
}
()
{
;
}
};
()
{("");
;
<<"输入数据:
"<<;
<<<<(12)<<"姓名"<<(8)<<"年龄"<<(12)<<"电话"<<;
((*)());
()
{
();
((*),());
}
();
}
()
{
;
;
;
("");
(0);
<<"输入要查询的姓名:
";
>>;
<<<<(12)<<"姓名"<<(8)<<"年龄"<<(12)<<"电话"<<;
(((*)()))
{(())
{
();
;
;
}
};
()
<<"对不起,没有找到!
"<<;
();
}
()
{
("");
;
<<"添加数据(姓名年龄电话):
";
();
((*)());
();
}
()
{
;
{<<"选择(1:
输出数据2:
按姓名查询3:
添加数据其他数字:
退出):
";
>>;
()
{1();;
2();;
3();;
;
}
}(1234);
}
三、实验要求
按要求编写实验程序,将实验程序调试运行,写出程序的运行结果,并提交实验报告,写出调试运行的分析和体会。