




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C 实验报告实验报告 姓姓 名 名 吕金石 学学 号 号 6100408024 学院专业 学院专业 数字媒体 081 班 二零一零年十二月二零一零年十二月 2 目目 录录 实验一实验一 熟悉熟悉 C 开发环境及简单程序设计和应用开发环境及简单程序设计和应用 3 实验二实验二 基本控制结构程序设计基本控制结构程序设计 6 实验三实验三 类与对象类与对象 12 实验四实验四 友元函数友元函数 15 实验五实验五 数组和指针数组和指针 19 实验六实验六 静态成员静态成员 25 实验七实验七 多态多态 27 3 南南昌昌大大学学实实验验报报告告 学生姓名 吕金石 学 号 6100408024 专业班级 数字媒体 081 班 实验类型 验证 综合 设计 创新 实验日期 实验成绩 实验实验 1 熟悉熟悉 C 开发环境及简单程序设计和应用开发环境及简单程序设计和应用 一 实验目的一 实验目的 1 初步了解 C 程序的编译 连接和运行的过程 2 掌握和理解 C 程序的结构 二 实验内容二 实验内容 1 使用 VC 2 运行一个简单的 C 程序 3 编程求出对任意输入的两个整数 求出该两个整数的最大公约数和最小公倍数 三 实验环境三 实验环境 PC 微机 Windows 操作系统 VC 程序集成环境 四 实验步骤四 实验步骤 1 启动 VC 如果用户计算机系统已经安装了 VC 编译系统 按下图所示进入 VC 集成环境 4 在该窗口 有 9 个菜单条目 熟悉每个菜单的意义和操作 2 输入程序 输入以下程序 include using namespace std void main int i 1 sum 0 do sum i i while i 10 cout sum sum 2 以上表达式的值 源程序如下 7 执行结果为 2 编程实现这样一个完整的程序 运行时向用户提问 你考试考了多少分 0 100 接受输入后判断其等级并显示出来 规则如下 等级范围 优 90 分数 100 良 80 分数 90 中 60 分数 80 差 0 分数 60 3 源程序为 include void main int n 8 loop cout 你考试考了多少分 请输入 n if n100 cout 你的输入有误 请重新输入 endl goto loop int m n 10 switch m case 10 cout 优 endl break case 9 cout 优 endl break case 8 cout 优 endl break case 7 cout 中 endl break case 6 cout 中 endl break default cout 差 2 fib 1 fib 2 1 观察递归调用的过程 源程序为 include int fib int fib int n 10 if n 1 n 2 return 1 if n 2 return fib n 1 fib n 2 void main int n cout 请输入 n 的值 n fib n cout Fibonacci 级数结果为 fib n endl endl 2 n cout 倒数第 n 2 次的调用为 endl cout fib n fib n 1 fib n 2 endl endl 执行结果为 n 1 n 2 11 n 6 五 五 思考题思考题 1 小结多重选择结构 答 多重选择结构是根据所指定的条件判断满足何种操作 从而选择其一 处理这类 问题的方法常用的是 if if else if else 嵌套和 switch 选择语句进行操作 2 递归调用如何才是有意义的 答 必须满足函数是自身调用自身才是有意义的 12 南南昌昌大大学学实实验验报报告告 学生姓名 吕金石 学 号 61004082024 专业班级 数字媒体 081 班 实验类型 验证 综合 设计 创新 实验日期 2010 10 7 实验成绩 实验实验 3 类与对象类与对象 一 实验目的一 实验目的 1 学会有关 C 语言够造函数和析构函数 拷贝构造函数 内联成员函数 带默认形 参值的成员函数 2 学会对象的使用 二 实验内容二 实验内容 设计一个用于人事管理的 人员 类 由于考虑到通用性 这里只抽象出所有类型人员都 具有的属性 编号 性别 出生日期 身份证号等 其中 出生日期 声明为一个 日期 类内嵌子对象 用成员函数实现对人员信息的录入和显示 要求包括 够造函数和析构函 数 拷贝构造函数 内联成员函数 带默认形参值的成员函数 类的组合 三 实验环境三 实验环境 PC 微机 Windows 操作系统 VC 程序集成环境 四 实验步骤四 实验步骤 源程序为 include class Birthday 定义出生日期类 public Birthday int y int m int d year y month m day d int year int month int day class Person 13 public Person Birthday b1 int N char S int I 带默认形参的成员函数 Person 析构函数 void SetNumber char N Number N void SetSex char S Sex S void SetID char I ID I inline int GetNumber 内联函数 return Number inline char GetSex 内联函数 return Sex inline int GetID 内联函数 return ID void Getbirthday cout birth year cout cout birth month cout cout birth day endl private int Number 定义编号 char Sex 定义性别 int ID 定义身份证号 Birthday birth 实现 日期 类内嵌对象 Person Person Birthday b1 int n char s int i birth b1 拷贝构造函数 类的组合 14 Number n Sex s ID i void main Birthday b0 1980 2 22 Person P b0 12345 M 100 cout 信息为 endl cout 编号 P GetNumber endl cout 性别 P GetSex endl cout 身份证号 P GetID endl cout 出生年月 P Getbirthday 运行结果 南南昌昌大大学学实实验验报报告告 学生姓名 吕金石 学 号 6100408024 专业班级 数字媒体 081 班 实验类型 验证 综合 设计 创新 实验日期 2010 10 18 实验成绩 实验实验 4 友元函数友元函数 15 二 实验目的 理解类的友元函数 友元类 三 实验基本原理 定义类 X Y Z 函数 h X 满足 类 X 的私有成员 i Y 的成员函数 g X 是 X 的 友元函数 实现对 X 的成员 i 加 1 类 Z 是类 X 的友元类 其成员函数 f X 实现对 X 的 成员 i 加 5 函数 h X 是类 X 的友元函数 实现对 X 的成员 i 加 10 在一个文件中定义 和实现类 在另一个函数中实现 main 函数 四 主要仪器设备及耗材 PC 微机 Windows 操作系统 VC 程序集成环境 五 实验步骤 include class X class Y public int g X class X public friend int Y g X x friend int h X friend class Z 16 int seti int i private int i int X seti int i cout 初始状态 i 的值为 0 endl return i 0 int Y g X x x i 1 cout 调用 g X 函数后 i 的值变为 i 1 endl return 0 class Z public int f X private X x 17 int Z f X x x i 5 cout 调用 f X 函数后 i 的值变为 i 5 endl return 0 int h X x x i 10 cout 调用 h X 函数后 i 的值为 i 10 endl return 0 void main X x x seti 0 Y y1 y1 g 0 Z z1 z1 f 0 h 0 18 六 实验数据及处理结果 七 参考资料 c 语言程序设计 南南昌昌大大学学实实验验报报告告 学生姓名 吕金石 学 号 6100408024 专业班级 数字媒体 081 班 实验类型 验证 综合 设计 创新 实验日期 2010 11 2 实验成绩 实验 5 数组和指针 一 实验目的一 实验目的 19 1 掌握数组的基本概念 包括 数组的定义 数组的类型 数组的初始化 数组的赋 值 数组元素下标的范围 数组元素的正确以及引用数组元素的输入 输出等 重点掌握对 象数组的使用 2 掌握指针的基本概念和基本用法 包括 变量的地址和变量的值 指针变量的说明 指针变量的初始化 指针的内容与定义格式 指针的基本运算等 重点掌握对象指针的使 用 二 实验内容二 实验内容 有关数组和指针的程序设计 三 实验环境三 实验环境 PC 微机 DOS 操作系统或 Windows 操作系统 Turbo C 程序集成环境 四 实验步骤四 实验步骤 1 编程实现 设计一个 Point 类 利用对象数组 进行点的线性拟合 要求能通过键盘输入对对象数组进行赋值 include include using namespace std class point public point float xx 0 float yy 0 X xx Y yy float getX return X float getY return Y friend float linefit point l point int n point private float X Y 20 float linefit point l point int n point float av x av y float l xx l yy l xy av x 0 av y 0 l xx 0 l yy 0 l xy 0 for int i 0 i n point i av x l point i X n point av y l point i Y n point for i 0 i n point i l xx l point i X av x l point i X av x l yy l point i Y av y l point i Y av y l xy l point i X av x l point i Y av y cout this line can be fitted by y ax b endl cout a l xy l xx endl cout b av y l xy av x l xx endl return float l xy sqrt l xx l yy int main int j n f point l p 10 for j 0 j 10 j cout Please enter the number endl cout n cout f 21 l p j point n f float r linefit l p 10 cout line coefficient r r endl 2 编程实现 利用指针 设计一个程序 对任意的一个浮点数 可以将其整数部分和 小数部分分别输出 include using namespace std void count float a int b float c b int a c a b 22 void main float x y int z cout x count x cout 整数部分 z endl cout 小数部分 y endl 3 编程实现 设计一个 Point 类 编程实现通过对象指针的方法访问 Point 类对象的 成员 通过成员函数指针的方法访问成员函数 动态创建和删除对象数组 include using namespace std class point public point int xx 0 int yy 0 X xx Y yy countp cout 构造函数调用 endl point point 23 point countp cout 析构函数调用 endl int getX return X int getY return Y void getxy int x int y X x Y y static void getp cout count number is countp endl private int X Y static int countp point point point Y p Y countp cout 拷贝构造函数被调用 endl int point countp 0 void main point a 10 20 point n 24 point p new point 2 n p 0 getxy 30 40 p 1 getxy 50 60 cout 利用指针访问对象成员 getX getY endl cout 利用对象访问对象成员 a getX a getY endl a getp point b a cout b getX b getY endl b getp delete p 南南昌昌大大学学实实验验报报告告 学生姓名 吕金石 学 号 6100408024 专业班级 数字媒体 081 班 实验类型 验证 综合 设计 创新 实验日期 2010 11 13 实验成绩 实验六实验六 静态成员静态成员 一 实验目的一 实验目的 25 学习静态成员数据和静态成员函数的用法 二 实验内容二 实验内容 声明一个 Cat 类 拥有静态数据成员 HowmanyCats 记录 Cat 的个体数目 声明静态 成员函数 GetHowMany 存取 HowManyCats 设计程序测试这个类 体会静态数据成员 和静态成员方法函数的用法 三 实验环境三 实验环境 PC 微机 Windows 操作系统 Microsoft Visual Studio 6 0 集成开发环境 4 实验步骤实验步骤 实验程序代码 实验程序代码 include using namespace std class cat public cat weight 0 age 0 cat howmanycats void getweight int w weight w howmanycats void getage int a age a int showweight return weight int showage return age static void gethowmany cout cat s count howmanycats endl cout 静态函数成员调用静态数据成员 endl 26 private int weight age static int howmanycats int cat howmanycats 0 void main cat c1 cat c2 c1 getweight 10 c1 getage 5 cout cat endl cout 第一只猫的 weight c1 showweight endl cout 第一只猫的 age c1 showage endl c1 gethowmany c2 getweight 18 c2 getage 8 cout 第二只猫的 weight c2 showweight endl cout 第二只猫的 age c2 showage endl c2 gethowmany 5 实验结果实验结果 南南昌昌大大学学实实验验报报告告 学生姓名 吕金石 学 号 6100408021 专业班级 数字媒体 081 班 实验类型 验证 综合 设计 创新 实验日期 2010 11 30 实验成绩 实验实验 7 多态多态 一 实验目的一 实验目的 1 理解继承的概念 了解面向对象设计中继承的合理性 27 2 掌握派生类的构造与析构 3 掌握在对象中使用类层次和继承思想进行设计 实现和测试 二 实验内容二 实验内容 用模板类实现双向链表 三 实验环境三 实验环境 PC 微机 Windows 操作系统 Microsoft Visual Studio 6 0 集成开发环境 4 实验步骤实验步骤 ifndef NODE CLASS define NODE CLASS template class Node private Node next public T data Node const T void InsertAfter Node p Node DeleteAfter void Node NextNode void const template Node Node const T template void Node InsertAfter Node p p next next 28 next p template Node Node DeleteAfter void Node tempPtr next if next NULL return NULL next tempPtr next return tempPtr endif ifndef LINKEDLIST CLASS define LINKEDLIST CLASS include include 动态分配内存函数的头文件 using namespace std ifndef NULL const int NULL 0 endif NULL include 9 5 h template class LinkedList private Node front rear 表头和表未指针 Node prevPtr currPtr 记录表当前遍历位置的指针 又插入和删除操作更新 int size 表中元素个数 int position 当前元素在表中的位置序号 由函数 Reset 使用 Node GetNode const T 生成新结点 void FreeNode Node p 释放结点 void CopyList const LinkedList 拷贝当前表 重载函数 使用 public LinkedList void 构造函数 29 LinkedList const LinkedList 拷贝构造函数 LinkedList void 析构函数 LinkedList 函数重载 int ListSize void const 返回元素中元素个数 size int ListEmpty void const size 0 时返回 TRUE 否则返回 FALSE void Reset int pos 0 将指针 currPtr 移动到序号为 pos 的结点 prevPtr 相应移动 position 记录当前结点序号 void Next void 使 prevPtr 和 currPtr 移动到下一结点 int EndOfList void const CurrPtr 等于 NULL 时返回 TRUE 否则返回 FALSE int CurrentPosition void const 返回数据成员 position void InsertFront const T 在表头插入结点 void InsertRear const T 在表尾添加结点 void InsertAt const T 在当前结点之前插入结点 void InsertAfter const T 在当前结点之后插入结点 T DeleteFront void 删除头结点 void DeleteAt void 删除当前结点 T 返回对当前结点成员 data 的引用 void ClearList void 清空链表 释放所有结点的内存空间 被析构函数 operator 调用 endif DLINK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化体育用品公司合伙协议书
- 幸福新山安全培训课件
- 巡湖安全培训方案课件
- 岩石课件X教学课件
- 输电线路巡视课件
- 输液通路疑难病例课件
- 小鸭子喝水课件
- 文化活动拱门空飘布置安装合同
- 供应链金融担保付款合作协议书
- 爆炸事故遇难者家属赔偿金合同
- 工行授权委托书模板
- 新人教版高一语文必修1第一单元测试试卷及答案
- 《电化学储能电站消防验收规范》
- 2022年海南省中考语文试卷
- 大学英语四级考试阅读理解真题及答案详解(全套)
- 干细胞治疗滑膜炎的有效性
- 工程预决算书
- 丰顺县乡镇集中式饮用水水源地基础状况调查和风险评估报告
- 2024石膏复合材料建筑楼板隔声保温工程技术规程
- 药学专业毕业论文4000字范文
- 卫生部妇产科诊疗规范及指南
评论
0/150
提交评论