《C++程序设计》实现环节考核规定_第1页
《C++程序设计》实现环节考核规定_第2页
《C++程序设计》实现环节考核规定_第3页
《C++程序设计》实现环节考核规定_第4页
《C++程序设计》实现环节考核规定_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 程序设计程序设计 实现环节考核规定实现环节考核规定 2 1 实践环节考核大纲实践环节考核大纲 一 考核类型 上机考核 二 目的要求 C 语言程序设计 是计算机科学与应用专业 信息管理专业 本科 的必修课 是培养学生实践动手能力的一门重要的专业课程 是为满足计算机应用领域与计算机应用 人才的需要而设计的 C 语言是一种面向对象的编程语言 它集抽象性 封装性 继承 性和多态性等面向对象特征于一体 可以帮助人们开发出具有较高数据抽象程度 能够充 分体现信息隐蔽 软件重用 易修改 易扩充等特征的大型软件 C 语言程序设计 的实验采用 Microsoft Visual C 6 0 通过上机实践 加深对 课程的理解 更好地掌握程序设计的基本方法 增强实践动手能力 三 考核环境 硬件 586 以上的 PC 系列机 主频大于 166MHz 内存大于 256MB 硬盘空间大于 500MB 软件 中文 Windows2000 NT XP 操作系统 Microsoft Visual C 6 0 四 考核方法 考生抽取试题后 在 45 分钟内 完成试卷中所要求的全部内容 并作必要的记录 考 试结束后 考生上交试卷 上机考核成绩由现场老师初评 经考点负责人审核签名 报主 考院校核定 成绩分合格 不合格两类 五 考核内容 掌握 Microsoft Visual C 6 0 集成开发环境的使用 新建工程 编辑含有类 C 源文件 存取文件 编译文件 调试程序和运行程序 模板 包括 函数模板 类模板 练习编制函数模板和类模板 熟悉面向对象编程思想和多文件编程规范 掌握公有继承的赋值兼容性规则 构造函数 复制构造函数和析构函数的设计方 法 练习各类运算符的重载 熟悉使用文件的基本方法 熟悉继承和包含以及虚函数的多态性 六 参考书目 1 刘振安主编 C 程序设计 机械工业出版社 2008 年 2 雪万鹏译 C 程序设计教程 机械工业出版社 2005 年 3 钱能 C 程序设计教程 清华大学出版社 2006 年 2 2 C 程序设计程序设计 上机考核指导上机考核指导 C 语言程序设计 是一门实践性很强的课程 必须通过反复上机练习 深入领悟面 向对象程序设计的基本思想 通过实验教学加深理解和巩固课堂和教材所学的内容 提高 实践动手能力 实验一 Microsoft Visual C 6 0 集成开发环境的使用 一 实验目的与要求 了解并初步掌握 Microsoft Visual C 6 0 集成开发环境的使用 二 实验内容 1 创建项目 Project 1 启动 VC6 0 2 从主菜单中选择 文件 新建 命令 打开 新建 对话框 单击 工程 标签 从项目列表中单击 Win32 Console Application 选项 在 工程 文本框中输入项目的名字 如 hello 系统将自动为用户 的项目分配一个默认的目录 3 如果是 Visual C 6 0 系统将显示一个询问项目类型的程序向导 选择 an empty project 空项目 选项 单击 完成 按钮 显示新建项目 信息 单击 确定 按钮结束 2 添加程序代码 1 从主菜单中选择 文件 新建 命令 打开 新建 对话框 2 在 新建 对话框中打开 文件 选项卡 单击 C Source File 选择 建立源文件 选择 添加工程 复选框 在右边的 文件 文本框中为 文件指定一个名字 如 hello 3 编辑源文件 在 工作区 窗口中单击 FileVIEW 标签 选择并打开该窗 口中 SourceFiles 下的文件 如 hello app 在打开的 文件 窗口中输 入源文件 4 在项目文件中增加文件 若在已有的项目文件中增加一个新文件 如 C 源文件 cpp 或头文件 h 需要执行以下操作 打开相应的项目 文件 选择 新建 文件 命令 选择 C 编辑栏 Source 选择 可增 加 C 源文件 或选择 C C Head File 选项增加 C C 头文件 在 文 件 文本框输入文件名 单击 确定 按钮 3 编译源文件 先激活相应的源文件窗口 选择 编译 编译 命令或按 Ctrl F7 键来编 译源文件 形成目标文件 生成 obj 文件 若该项目中有多个源文件 可依 次激活并编译 4 连接目标文件 形成可执行文件 选择 编译 连接 命令或快捷键 F7 连接程序 并形成可执行文件 此命 令也可直接将项目中的所有源文件进行编译并连接形成可执行文件 使编译和 连接的过程结合在一起 5 运行程序 选择 编译 执行 命令或使用快捷键 Ctrl F5 运行该程序 将显示一个 类似于 DOS 的窗口 在窗口中第一行输出程序计算结果 第二行输出 Press any key to continue 提示用户按任意键回到开发环境 三 程序练习 定义一个关于日期的类 然后声明对象 判断该日期是否为闰年并输出 本题练习的 是定义类和使用类的方法 include using namespace std class TDate public void SetDate int y int m int d int isLeapYear void Print private int year month day void TDate SetDate int y int m int d year y month m day d int TDate isLeapYear return year 4 0 void TDate Print cout year month day endl void main TDate date1 date2 date1 SetDate 2004 5 4 date2 SetDate 2005 4 9 int leap date1 isLeapYear date1 Print if leap 1 cout 是闰年 endl else cout 不是闰年 endl date2 Print leap date2 isLeapYear if leap 1 cout 是闰年 endl else cout 不是闰年 endl 四 实验要求 按要求编写实验程序 将实验程序调试运行 写出程序的运行结果 并提交实验报告 写出调试运行的分析和体会 实验二 类和对象的使用 一 实验目的和要求 1 熟悉类的定义格式和类中成员的访问权限 2 掌握对象的定义以及对象的初始化和赋值的操作 3 掌握构造函数和析构函数的使用 二 实验内容 1 编写一个程序 定义类 CPeople 包含个人信息名称 年龄 薪水 并在类中定义 构造函数 析构函数 题目分析 注意构造函数 析构函数的定义规则 源程序代码 include include using namespace std 类 Cpeople 的定义 class CPeople int m nAge float m fSalary char m pstrName public CPeople 缺省构造函数 CPeople int age float salary char name 带参数的构造函数 CPeople const CPeople 拷贝构造函数 CPeople 析构函数 char GetName float GetSalary void SetSalary float int GetAge void SetAge int age CPeople CPeople m nAge 20 m fSalary 3000 00f m pstrName new char 20 strcpy m pstrName 无名氏 CPeople CPeople int age float salary char name m nAge age m fSalary salary m pstrName new char 20 strcpy m pstrName name CPeople CPeople const CPeople m fSalary AnotherPeople m fSalary m pstrName new char 20 strcpy m pstrName AnotherPeople m pstrName CPeople CPeople if m pstrName NULL delete m pstrName char CPeople GetName return m pstrName int CPeople GetAge return m nAge void CPeople SetAge int age if age 0 cout 设置的年龄不合法 endl else m nAge age float CPeople GetSalary return m fSalary void CPeople SetSalary float num if num 0 cout 设置的薪水数目不合法 endl else m fSalary num void main CPeople ZhangSan 65 2000 00f 张 三 cout 以下为个人信息 n 姓名 年龄 薪水 endl cout n cout ZhangSan GetName cout ZhangSan GetAge cout ZhangSan GetSalary endl endl CPeople A A SetAge 34 A SetSalary 4000 00f cout A GetName cout A GetAge cout A GetSalary endl endl CPeople B ZhangSan cout B GetName cout B GetAge cout B GetSalary endl endl 三 实验和要求 按要求编写实验程序 将实验程序调试运行 写出程序的运行结果 并提交实验报告 写出调试运行的分析和体会 实验三 继承与派生 一 实验目的和要求 1 掌握派生类的定义方法和派生类构造函数的定义方法 2 掌握不同继承方法的情况下 基类成员函数在派生类中的访问权限 3 了解派生类的构造函数和析构函数的执行顺序 了解多重继承的定义方法 多重 继承的构造函数和析构函数的使用 二 实验内容 在类 CPeople 的基础上 派生出学生类 CStudent 并实现对学生成绩的统计和输出 源程序代码 include include define MAXNUM 10 using namespace std class CPeople int m nAge public char m pstrName CPeople int age char name CPeople int GetAge void SetAge int age void CopyPeople CPeople pAnother CPeople CPeople int age char name m nAge age m pstrName new char 20 strcpy m pstrName name CPeople CPeople if m pstrName NULL delete m pstrName int CPeople GetAge return m nAge void CPeople SetAge int age m nAge age void CPeople CopyPeople CPeople pAnother m nAge pAnother m nAge strcpy m pstrName pAnother m pstrName class CStudent public CPeople float m ArrayScore MAXNUM 用来存放成绩的数组 protected int m stuNo 学号 int m courseNum 课程数目 float m aScore 平均成绩 public CStudent int age int No int Num char pName no name CPeople age pName m stuNo No m courseNum Num m aScore 0 0f 初始化成绩数组 cout 请输入学生 m pstrName m courseNum 门课的成绩 endl for int i 0 i m ArrayScore i void CaculateAverageScore float SUM 0 0f for int i i m courseNum i SUM m ArrayScore i m aScore SUM m courseNum float GetM aScore return m aScore friend ostream ostream for int i 0 i s m courseNum i out s m ArrayScore i endl out 平均成绩 s m aScore endl endl return out void main CStudent stu1 16 29 3 张三 stu1 CaculateAverageScore cout stu1 注意 VC 6 0 不支持插入操作符和提取操作符作为友元运算符重载 故改造如下 include include define MAXNUM 10 using namespace std class CPeople int m nAge public char m pstrName CPeople int age char name CPeople int GetAge void SetAge int age void CopyPeople CPeople pAnother CPeople CPeople int age char name m nAge age m pstrName new char 20 strcpy m pstrName name CPeople CPeople if m pstrName NULL delete m pstrName int CPeople GetAge return m nAge void CPeople SetAge int age m nAge age void CPeople CopyPeople CPeople pAnother m nAge pAnother m nAge strcpy m pstrName pAnother m pstrName class CStudent public CPeople float m ArrayScore MAXNUM 用来存放成绩的数组 protected int m stuNo 学号 int m courseNum 课程数目 float m aScore 平均成绩 public CStudent int age int No int Num char pName no name CPeople age pName m stuNo No m courseNum Num m aScore 0 0f 初始化成绩数组 cout 请输入学生 m pstrName m courseNum 门课的成绩 endl for int i 0 i m ArrayScore i void CaculateAverageScore float SUM 0 0f for int i 0 i m courseNum i SUM m ArrayScore i m aScore SUM m courseNum float GetM aScore return m aScore ostream ostream for int i 0 i m courseNum i out m ArrayScore i endl out 平均成绩 m aScore endl endl return out void main CStudent stu1 16 29 3 张三 stu1 CaculateAverageScore stu1 cout 三 实验和要求 按要求编写实验程序 将实验程序调试运行 写出程序的运行结果 并提交实验报告 写出调试运行的分析和体会 实验四 模板的使用 一 实验目的和要求 了解函数模板 类模板的概念 练习编制函数模板和类模板 二 实验内容 编写一个程序 使用类模板对数组进行排序 查找和求元素和的程序 要求 设计一个类模板 template class Array 用于对 T 类型的数组进行 排序 查找和求元素和 然后由此产生模板类 Array和 Array 源程序代码 include include using namespace std template class Array T set int n public Array T data int i set data n i Array void sort 排序 int seek T key 查找指定的元素 T SUM 求和 void disp 显示所有的元素 template void Array sort int i j T temp for i 1 i i j if set j 1 set j temp set j 1 set j 1 set j set j temp template int Array seek T key int i for i 0 i n i if set i key return i return 1 template T Array SUM T s o int i for i 0 i n i s set i return s template void Array disp int i for i 0 i n i cout set i cout endl void main int a 6 3 8 1 9 4 7 5 2 double b 2 3 6 1 1 5 8 4 6 7 3 8 Arrayarr1 a 9 Arrayarr2 b 6 cout arr1 endl cout 原序列 arr1 disp cout 8 在 arr1 中的位置 arr1 seek 8 endl arr1 sort cout 排序后 arr1 disp cout arr2 endl cout 原序列 arr2 disp cout 8 4 在 arr2 中的位置 arr2 seek 8 4 endl arr2 sort cout 排序后 arr2 disp 三 实验和要求 按要求编写实验程序 将实验程序调试运行 写出程序的运行结果 并提交实验报告 写出调试运行的分析和体会 实验五 使用向量 一 实验目的和要求 练习使用向量解决实际问题 二 实验内容 利用向量编写程序 出圈游戏 假设有人为 n 的一个小组 他们顺时针方向围坐一圈 一开始任选一个正整数作为报数的上限值 m 从第一个人开始按顺时针方向自star开 始顺序报数 报到 m 时停止报数并出列 如此下去 直到所有人全部出列为止 要求 按他们出列的顺序输出他们的名字 源程序代码 include include include using namespace std void fun vector unsigned j 1 报数 while j rc size 到终点 返回到第一个位置计数 ri 0 j cout rc ri rc size ri 0 到终点 返回到第一个位置计数 void main unsigned length 0 m star i cout length vector c length cout 请输入报数上限值m m m while m 20 cout m cout 从第几个人的位置开始报数 不能大于 c size star while star c size cout star cout 准备输入名字 endl for i 0 i c size i cout 第 i 1 c i i star 1 计数位置初始值 while c size 1 fun c m i cout c i endl 三 实验和要求 按要求编写实验程序 将实验程序调试运行 假设参加游戏的人数为 5 人 间隔数选 10 从第三个人的位置开始报数 5 个人的名字依次为 李红 王强 李四 王五 写出 程序的运行结果 并提交实验报告 写出调试运行的分析和体会 实验六 多态性和虚函数 一 实验目的和要求 熟悉继承和包含以及虚函数的多态性 二 实验内容 建立工程文件 类在头文件 employee hemployee h 中声明 类在源文件 empfun cppempfun cpp 实现 在源文件 sy10 4 cppsy10 4 cpp 中编写主程序 程序实现的基本功能 小公司人员管理信息 某小公司主要有 3 类人员 经理 兼职技术人员 兼职销售员 这些人员分别具有以 下属性 经理 姓名 编号 固定工资 当月薪水 计算月薪 显示信息 兼职技术人员 姓名 编号 工作小时 每小时工资额 当月薪水 计算月薪 显示信息 兼职销售员 姓名 编号 销售额 销售额提成 当月薪水 计算月薪 显示信息 要求 人员编号基数为 1000 每输入一个人员信息编码加 1 月薪计算办法是经理固定月薪 8000 元 兼职技术人员按 100 元 小时领取月薪 兼职销售员按当月销售额的 4 提成 根据题目要求 设计一个基数 emplyee 然后派生出 technician 兼职技术人员 类 manager 经理 类和 salesman 兼职销售员 类 源程序代码 employee h employee h 头文件头文件 include include using namespace std class employee 定义职员类 protected char name 定义姓名 int EmpNo 个人编号 double SUMPay 月薪总额 static int employeeNo 本公司职员编号目前最大值 public employee employee virtual void pay 0 计算月薪函数 解决 虚函数 void displayStatus 显示人员信息 class technician public employee 兼职技术人员类 公有派生 protected float hourlyRate 每小时酬金 int workHours 当月工作时数 public technician void pay 计算月薪 void displayStatus 显示人员信息 class salesman public employee 兼职销售员类 公有派生 protected double CommRate 提成百分比 double sales 当月销售额 public salesman void pay 计算月薪 void displayStatus 显示人员信息 class manager virtual public employee 经理类 公有派生 protected float monthlyPay 固定月薪 public manager void pay 计算月薪 void displayStatus 显示人员信息 empfun cpp empfun cpp include include using namespace std include employee h int employee employeeNo 1000 员工编号基数 employee employee char str 20 cout str name new char strlen str 1 动态申请 strcpy name str EmpNo employeeNo 新员工编号自动生成 SUMPay 0 0 月薪总额初始 0 employee employee delete name 释放空间 void employee displayStatus cout name 编号 EmpNo 本月工资 SUMPay endl technician technician hourlyRate 100 每小时酬金 100 元 void technician pay cout workHours SUMPay hourlyRate workHours void technician displayStatus cout 兼职技术人员 employee displayStatus salesman salesman CommRate 0 04 提成比例 void salesman pay cout sales SUMPay sales CommRate 月薪 销售提成 void salesman displayStatus cout 销售员 employee displayStatus manager manager monthlyPay 8000 void manager pay SUMPay monthlyPay 月薪总额 固定月薪 void manager displayStatus cout 经理 employee displayStatus sy10 4 cpp sy10 4 cpp include include using namespace std include employee h void main 经理 manager m1 m1 pay m1 displayStatus 兼职技术人员 technician t1 t1 pay t1 displayStatus 兼职销售员 salesman s1 s1 pay s1 displayStatus cout n 使基类指针指向子类对象 endl employee ptr 4 for int i 0 idisplayStatus 三 实验和要求 按要求编写实验程序 将实验程序调试运行 写出程序的运行结果 并提交实验报告 写出调试运行的分析和体会 实验七 缺少 一 实验目的和要求 实验八 文件读写 一 实验目的和要求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论