欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C 程序设计实验指导书.docx

    • 资源ID:15710236       资源大小:29.20KB        全文页数:23页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C 程序设计实验指导书.docx

    C+程序设计实验指导书前言C+ 语言是目前程序设计的主流语言,熟练掌握C+ 软件是工程技术人员开发软件的必备素质。本课程主要阐述 C+ 程序设计的基本原则及面向对象技术程 序设计的基本原理和方法,使学生深刻理解面向对象技术所带来的观念改革,掌 握一种面向对象程序设计语言和面向对象设计的思维方式、规则与基本方法,了 解面向对象程序设计技术的发展趋势。通过本课程学习,使学生掌握面向对象程 序设计的基本方法、规则,并能用面向对象的方法,对客观事物进行分析、建立 模型,初步掌握 C+ 面向对象编程语言。程序设计是一门实践性很强的课程,必须以实践为重,许多实践知识不是靠 听课和看书学到的,而是通过长时间的实践积累起来的,切忌只看书,不上机实 践。C+ 实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编写的程序正确与否。其目的更在于:1、加深对讲授内容的理解,尤其是一些语法规定,只靠课堂讲授,不足于 掌握理解。通过多次上机,就能自然地、熟悉地掌握,所谓熟能生巧。2、熟练掌握并使用 C+ 程序开发的环境。3、学会独立调试和运行程序。任何程序都不是一蹴而就的,需要多次的更改调试,对初学者来说更是如此。因此,要在调试过程中积累经验,再利用经验 高效、快速地调试程序。调试程序的能力是每个程序设计人员应当掌握的一项基 本功。4、养成良好的编程习惯,编写良好风格的代码。编写程序应遵循良好的编程规范,使程序具有良好的可读性、可维护性。正如写文章一样,不仅要写得一 手好字,更要格式规范,段落分明,思路清晰。5、培养独立编写程序的能力。程序设计最终的目的是使用计算机解决实际 问题,问题是什么,如何解决,解决方法是什么,如何编写程序解决问题才是核 心。因此,在做实验的时候应多问为什么,多观察,多分析,多动手。确立以上原则为指导思想,认真的实践才能真正掌握 C+。实验一数据类型和表达式【实验目的】1、熟悉并学习使用 C+ 程序编译平台 VC6.0 ;2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的 C+ 程序;3、掌握 C+ 语言基础数据类型,熟悉变量及常量的定义和赋值方法;4、 学会使用 C+ 算术运算符和算术表达式;5、 掌握 C+ 程序的赋值和输入输出语句的使用方法;6、 掌握简单 C+ 程序的编写和调试【实验内容】1、从键盘上输入两个 int型数,比较其大小,并输出显示其中较小的数;2、从键盘上输入一个 int型数,一个浮点数,比较其大小,将输出其中较大的数;3、输入一摄氏温度,编程输出华氏温度。已知;华氏温度转换为摄氏温度的计算公式如下:C = (F32)5/9其中,F 表示华氏温度,C 表示摄氏温度。4、 编程实现输入千米数,输出显示其英里数。已知:1 英里=1. 60934千米(用符 号常量)5、 输入一个 int型数,将它的低 4 位(右四位)都置为 1;【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3实验报告中总结 cin和 cout的使用方法;4、把4 小题的符号常量改成宏定义的方式;实验二预处理和语句【实验目的】1、熟悉并掌握使用文件包含命令;2、熟悉并学习使用条件编译命令;3、掌握选择语句;4、 掌握循环语句;【实验内容】1、编写一个程序,输入某雇员的每周工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员周工作小时超过 40 小时,则超过部分按原工资的1.5倍的加班工资来计算。若雇员每周工作小时超过 60 小时,则超过 60 的部分按原工资的 3 倍的加班工资来计算,而 40 到 50 小时的工资仍按照原工资的 1.5倍的加班工资来计算。要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以提示:“Please input employees work time and wage_per_hour:,输出时,提示:The employee?swage:” ;2、编写一个程序,提示用户输入一个年份及这一年的一天是星期几,输出每个月的一天是星期几。例如,如果用户输入 2005 和6,表示 2005 年1 月1 日是星 期六,程序应输出如下内容:January 1, 2005 is SaturdayDecember 1, 2005 is Thursday用函数int ComputeDay(int year, int 计d 算 ay 星 )期;在 main 函数完成用户输入和输出工作;3、编写贷款分期偿还程序。一笔贷款的月还款包含偿还本金和偿还利息。月利息可以通过月利率乘以余额(剩余本金)来计算,于是月偿还金额就等于月还款额 减去月利息。要求用户输入贷款额、贷款年限和利率,程序输出分期还款的计划。如果输入贷款额度 10000 美元、期限 1 年和利率 7%,程序应该输出:Load Amount: 10000Number of Years: 1Annual Interest Rate: 7 %Monthly Payment: 865.26T otal Payment: 10381.21Payment#InterestPrincipal158.33806.93253.62811.64Balance9193.078381.43860.21110.0125.01855.26860.2570.01【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3把2 小题的 ComputeDay(int year, int函 da数 y)的声明和实现分别放在同一工程项目下的不同文件中;4、总结文件包含编译命令的特点;实验三指针和数组【实验目的】1、掌握指针的概念、学会定义和使用指针变量;2、学习使用指针数组和指向数组的指针;【实验内容】1、一个班有 5 名学生,每个学生修了五门课,求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值。求某门课程的平均分;实现要求:分别编写 2 个函数实现以上 2 个要求,1 个函数用数组名作参数,2个 函数用指针用参数,并在函数体内用指针对数组操作。2、编写一个程序,实现矩阵运算,具体要求如下:用函数 addMatrix( int aCOLUMN_SIZE, int bCOLUMN_SIZE, intcCOLUMN_SIZE, int rowSize实) 现矩阵相加运算;用函数 multiplyMatrix( int aCOLUMN_SIZE, int bCOLUMN_SIZE, intcCOLUMN_SIZE, int rowSize实) 现矩阵相乘运算;矩阵 a 和矩阵 b 的数据从键盘输入;输出矩阵相乘或相加结果即c 矩阵的数据;【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;实验函数和作用域【实验目的】1、掌握函数的定义和说明方法;2、掌握函数调用时的传值调用、传址调用和引用调用方法;3、掌握函数重载的方法;4、 学习使用指向字符串的指针变量;5、 掌握作用域的种类和范围;【实验内容】1、编写一个极坐标转换为直角坐标的程序,具体要求如下:在 main 函数中读入极坐标半径和相角;使用函数 conver实现极坐标和直角坐标之间的转换;分别用传址调用和引用调用的方式调用 conver函数;2、编写一个程序,实现浮点类型数据和复数类型数据的相乘;具体要求如下:用结构体定义复数类型数据;,编写浮点类型数据乘法运算函数 product;重载函数 product实现复数类型数据相乘;在mian 函数中通过键盘输入一对浮点数和一对复数,分别对这两对数据进 行相乘计算,并输出结果;3、编写程序计算一个人的生物节律指数,它是生理、智力和情绪指数之和。情绪周期 y = f(x 是 )一个正弦曲线,其振幅为 1, 周期为 28天,在给定的一天内,一个人的情绪指数是f(age),age是他的年龄(以天计算)类似地,生理和智力周期也是正弦曲线,振幅为 1,周期分别是 23 天和 33 天。编写输入年月日计算天输的函数 computeday;编写计算生理指数的函数compute_physiological_ind ; ex编写计算情绪指数的函数compute_emotional_inde;x编写计算智力指数的函数compute_mentality_ind;ex在主程序中输入年月日,计算生物节指数并输出;【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、在实验报告中回答如下问题:传址调用和引用调用有何不同?函数重载时可以除了参数的类型不同,其他都相同吗 ?4、 总结作用域的种类和使用范围;实验五类与对象(一)【实验目的】1、 掌握类的概念以及定义类的方法;2、 学习简单面向对象程序的编写;【实验内容】1、 设计一个名为 Fan 的类,表示一个风扇,该类满足下述要求:,具有描述风扇转速的成员 speed;,具有描述风扇是否开启的成员 on;,具有描述风扇半径的成员 radiu;s,具有描述风扇颜色的成员 color以上所有成员的访问和更改函数;输出风扇所有信息的函数displa;y在main 函数中创建 2 个 Fan 的对象,将一个风扇的转速、半径和颜色分别 设置为 3、10 和yellow并, 将它打开。二个风扇的转速、半径和颜色分别设置 为 2、5 和blue并, 将它关闭。输出以上 2 个风扇的所有信息。2、 设计一个名为 Account的类,该类满足下述要求:,一个名为 id的 int型成员,表示账户的身份号;一个名为 balance的 double型成员,表示账户余额;一个名为 annuallntere stR的atedouble型数据域,保存当年利率;以上所有成员的访问和更改函数; 名为 getMonthlyInterestRat的 e(函 )数,返月利率;月利率为年利率/12;一个名为withDraw 的函数,从账户中支取指定金额;一个名为 deposit 的函数,向账户中存入指定金额;在 mian 函数中,创建一个 Account对象,其 ID 为1122,账户余额为 20000,年利率为 4. 5%,使用withDraw 函数取出 2500 美元,使用 deposit 函数存入 3000美 元,然后输出账户的余额、月利率。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、在报告中答以下问题:,定义类时,那些成员数据和成员函数是必须的,那些不是?publicprotected priv 分 at 别 e表示什么意思?能否对类的成员数据在定义时初始化?在实验内容的2 小题中,账户余额变量 balance是否必须定义为静态变量? 为什么?实验六类与对象(二)【实验目的】1、掌握类的构造函数和析构函数的概念和使用方法;2、 掌握对象数组、对象指针的定义和使用方法;3、 掌握 new 和 delete 的使用方法;【实验内容】1、 设计描述平面坐标上的点 CPoint类,该类满足下述要求:具有 x, y 坐标信息;具有带默认形参值的构造函数,参数分别用于初始化x 和 y 坐标信息;具有获取 x、y 信息的 GetX 和 GetY 函数,具有设置 x、y 信息的 SetX 和SetY 函 数;2、 设计一个矩形类 CRectangle该 ,类满足下述要求:具有矩形的左下角和右上角两个点的坐标信息,这两个点的数据类型是CPoint;具有带参数的构造函数 CRectangle(const CPoint &, const CPoi参nt数 &分 ) ,别用于设置左下角和右上角两个点的坐标信息;具有设置左下角和设置右上角的两个点坐标的功能 SetLPoint(const CPoint&)和 SetRPoint(const CPoi&n)t;具有获得周长 (GetPerimete和r)获得面积(GetArea)的功能。3、 在 main 函数中,完成以下工作:动态创建一个 CRectangle类的对象 a_rectagnl其e,初始的左下角和右上角坐标分别为(2,5) 、 (6,8);调用 GetPerimeter 和 GetArea获得矩形周长和面积, 并将周长和面积显示在屏幕上;调用 SetLPoint设置 a_rectagnl的 e 左下角为(4, )6 ,调用 SetRPoint 设置a_rectagnl的 e 右上角为(7, )9 ;调用 GetPerimeter 和 GetArea获得矩形周长和面 积,并将周长和面积显示在屏幕上;销毁该动态创建的对象。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、总结类的构造函数和析构函数的特点;实验七继承与派生【实验目的】1、理解继承在面向对象程序设计中的重要作用;2、理解继承和派生的概念;3、掌握通过继承派生出一个新类的方法;4、进一步学习简单面向对象程序的编写;【实验内容】1.设计一个 Person类,它有两个派生类 Student和 Employee, Employee有两个派 生类 Faculty和 StaffoPerson 类有一个 strin类g 型的名字 name, strin型g 的身份号 id,strin型g 的电话 号码 phonenumber,Per son 类构造函数的对应 name 的参数不能有默认形参值。Student 类有一个年级 grade属性(Freshman、Sophomore Junior或 Senior),将属性值定义为常量;Employee类有一个 string 型的办公地点 office,一个 double 型的月薪水salary 和一个 MyDate 型的雇佣日期 dateHire;dFaculty 类有一个级另 hank 属性(Professor= 3、AssociateProfesso=r2、AssistantProfess=o1r),属性值也定义成常量。教师的薪水的计算方式为“薪水 =基本工资 X 级别”;Staff 类有一个职务 position 属性,为 string 类型,教工的薪水计算方式为“薪 水=基本工资+津贴 X 工作年数”。工作年数算到 2010 年 1 月 1 日为止,基本工资 Basic Wages 津贴 Allowance定义为常量。上述5 个类都有一个 print成员函数来输出该类对象除薪水外的基本信息。MyDate 类有 year、month、day 三个数据成员,有一个计算两个 MyDate 对象 间年差的成员函数 diffYear(MyDate&),年差计算只精确到月;三个数据成员的 获取器函数。3.定义上述类,并合理地补充构造函数和其它需要的函数。在 main 函数中,定义一个 Person 类对象,一个 Student类对象和一个Employee 类对象一个 Faculty类对象和一个 Staff类对象。输出 Person类及其派生类对象的基 本信息,并输出 Faculty类对象和 Staff类对象的薪水。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、总结基类中 public protected pri成va员te在不同的继承方式下在派生类中的访问权限;实验八多态实现【实验目的】1、 了解继承和多态的作用和实现方式,掌握动态联编方法;2、 掌握使用 C+ 语言的抽象类和派生类实现继承性;【实验内容】1、 设计一个立体形类(CStereoShape类),并满足如下要求:CStereoShape类有一个纯虚函数 GetArea,能够获取立方体的表面积;CStereoShape类有一个纯虚函数 Get Volume,能够获取立方体的体积;2、 设计一个立方体类(CCube 类),该类继承于 CStereoShape类,并满足如下 要求:CCube 类有一个带参数的构造函数,其参数分别对应于立方体的长、宽、高。用一个成员函数来实现对立方体长、宽、高的设置。重载 CStereoShape类的 GetArea和 GetVolume,分别完成立方体的表面积和体积的计算。3、 设计一个球体类(CSphere),该类继承于 CStereoShape类,并满足如下要求:CSphere 类有一个带参数的构造函数,其参数对应于球体的半径。用一个成员函数来实现对球体半径的设置。重载 CStereoShape类的 GetArea和 GetVolume,分别完成球体的表面积和体积的计算。4、 实现一个 main 函数,在 main 函数中至少完成如下工作:实例化一个 CCube 类的对象 a_cube和 CSphere 类的对象 c_sphere;定义一个 CStereoShape类的指针 p;将 a_cube的长、宽和高分别设置为 4、5 和6;将 p 指向 a_cube,通过p 将a_cube的表面积和体积打印到屏幕上;将 c_sphere的半径设置为 7;将 p 指向 c_sphere通 ,过p 将c_sphere的表面积和 体积打印到屏幕上。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、总结静态联编和动态联编的区别;4、 总结抽象类的特点及作用;实验九友元与运算符重载【实验目的】1、 掌握友元函数的使用方法;2、 掌握使用运算符重载方法;【实验内容】1、 定义一个复数类,重载“-=”运算符,使这个运算符能直接完成复数的 运算。分别用成员函数与友元函数编写运算符重载函数;在主函数中定义复数对象 cl(10,20、 )c2(15,30) 进 ,行c2-=cl的复数运算,并输出 cl、c2 的复数值。2、 定义一个数组类 Array:其私有数据成员为整型一维数组a10;通过构造函数给数组赋初值;,用 show 函数显示数组的元素值;用成员函数重载运算符“ + ”,直接实现两个一维数组对应元素相加的运算。在主函数中定义数组 a、b 分别为:int a10=( 1,2,3,4,5,6,7, ; 8,9 i, n1 t0) b10=4,5,6,7,8,9,10,ll ; ,12,13用Array定义三个数组对象 arrl(、a)arr2(b、 )算,输出 arr3的数组元素值。arr3执 ,行 arr3=arrl+ar运r2类似地,用友元函数重载运算符“+=”,实现复合赋值运算: arrl+=arr2,并输出 arrl 的元素值。3定义一个人民币类 Money ;类中数据成员为元、角、分 ;用成员函数与友元函数重载“一一”运算符,实现人民币对象的减 1 运算;在主函数中定义人民币对象 ml=10 元 8 角5 分及对象 m2 、m3,对 ml 作前置- 并赋给 m2 。对 ml 作后置 - ”并赋给 m3 。显示 ml、m2 、m3的结果。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、总结友元函数的作用;4、 总结运算符重载时的注意事项;实验+I/O流库【实验目的】1、 理解流、流类、流类体系的概念;2、 学会用预定义格式控制函数设置输出格式(数制、宽度、小数点等);3、 掌握文本文件的使用方法;4、 初步掌握二进制文件的使用方法。【实验内容】1、定义描述职工工资的类 Laborage,数据成员为职工号(No)、姓名(Name8)应发工资(Ssalary )社保金(Security)实发工资(Fsalary 。 ),定义公有成员函数 Input() 在 ,Input 。函数内输入职工号、姓名(用 getline函数)、应发工资、社保金,实发工资由公式:Fsalary=Ssalary-Secur计it算y ;,定义输出职工工资的成员函数 Show()o 在显示函数 Show 。中,职工号、姓 名的输出域宽为 8、左对齐,其余数据的输出域宽为 10、右对齐、保留小数点后 两位,输出格式均用预定义格式控制函数设置;在主函数中用Laborage类定义职工对象数组 a3。用Input 。输入职工工资, 用 Show()显示每个职工的工资。(提示:用 getlin输e车结束 姓名输入); 实验数据:1001ZhoZhi30002入姓名后,必须用1002uCheHua4000004n001003WanFan50005g002、 将一个源文件复制为两个不同名目的文件,源文件与目的文件均用构造函数打开,使用成员函数 get与 put复制一个目的文件,使用 getlin与e 插入运算符复制二个目的文件。(提示:用 get函数将输入文件流对象的指针指向文件尾后,无法将该指针移到文件首位置。所以只能定义两个输入文件流对象打开同 一源文件,用于两种方式的文件复制。)实验数据:源文件:e:exa.t文 xt件, 内容为souce file目的文件 1: e:exb.txt目的文件 2: e:exc.txt3、将存放在源文件(e:exarrayl. 中 tx 学 t)生成绩读入二维整型数组a35中 ,数组 a 的0 列存放学号,4 列存放平均成绩。计算出每个学生的平均成绩,用擂台法对数组 a 按平均成绩升序排序后,存放在目的文件(e:exarray2. 中 tx。 t)学生的学号与成绩如实验数据所示。编写程序实现上述要求。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;实验报告模版如下(无需封面):实验X X XXXXXXXXXXXXXXXXXXXXXXXXXX选课时间:xxxx学号xxxx姓名XXX【实验目的】1、XXXXXXXXXXXXXXXXXXXXXXXXXXXXx;2、 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;【源程序】XXXXXXXXXXXXXXXXXXXX(程序关键语句加上注释)【错误及解决办法】1、 XXXXXXXXXXXXXXXX2、(此部分记录在程序编写中的遇到的问题和解决方法,如果问题太多,可择要记录)【实验总结】XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (此部分用来答实验要求中的问题)

    注意事项

    本文(C 程序设计实验指导书.docx)为本站会员(暗伤)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开