您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > C程序设计实验指导书
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、输入一摄氏温度,编程输出华氏温度。已知;华氏温度转换为摄氏温度的计算公式如下:(32)5/9CF其中,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倍的加班工资来计算。•要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以提示:“Pleaseinputemployee’sworktimeandwage_per_hour:”输出时,提示:“Theemployee’swage:”;2、编写一个程序,提示用户输入一个年份及这一年的第一天是星期几,输出每个月的第一天是星期几。例如,如果用户输入2005和6,表示2005年1月1日是星期六,程序应输出如下内容:January1,2005isSaturday…December1,2005isThursday•用函数intComputeDay(intyear,intday)计算星期;•在main函数完成用户输入和输出工作;3、编写贷款分期偿还程序。一笔贷款的月还款包含偿还本金和偿还利息。月利息可以通过月利率乘以余额(剩余本金)来计算,于是月偿还金额就等于月还款额减去月利息。•要求用户输入贷款额、贷款年限和利率,程序输出分期还款的计划。•如果输入贷款额度10000美元、期限1年和利率7%,程序应该输出:LoadAmount:10000NumberofYears:1AnnualInterestRate:7%MonthlyPayment:865.26TotalPayment:10381.21Payment#InterestPrincipalBalance158.33806.939193.07253.62811.648381.43…1110.0855.26860.27125.01860.250.01【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、把第2小题的ComputeDay(intyear,intday)函数的声明和实现分别放在同一工程项目下的不同文件中;4、总结文件包含编译命令的特点;实验三指针和数组【实验目的】1、掌握指针的概念、学会定义和使用指针变量;2、学习使用指针数组和指向数组的指针;【实验内容】1、一个班有5名学生,每个学生修了五门课,求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值。求某门课程的平均分;实现要求:•分别编写2个函数实现以上2个要求,第1个函数用数组名作参数,第2个函数用指针用参数,并在函数体内用指针对数组操作。2、编写一个程序,实现矩阵运算,具体要求如下:•用函数addMatrix(inta[][COLUMN_SIZE],intb[][COLUMN_SIZE],intc[][COLUMN_SIZE],introwSize)实现矩阵相加运算;•用函数multiplyMatrix(inta[][COLUMN_SIZE],intb[][COLUMN_SIZE],intc[][COLUMN_SIZE],introwSize)实现矩阵相乘运算;•矩阵a和矩阵b的数据从键盘输入;•输出矩阵相乘或相加结果即c矩阵的数据;【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;实验四函数和作用域【实验目的】1、掌握函数的定义和说明方法;2、掌握函数调用时的传值调用、传址调用和引用调用方法;3、掌握函数重载的方法;4、学习使用指向字符串的指针变量;5、掌握作用域的种类和范围;【实验内容】1、编写一个极坐标转换为直角坐标的程序,具体要求如下:•在main函数中读入极坐标半径和相角;•使用函数conver实现极坐标和直角坐标之间的转换;•分别用传址调用和引用调用的方式调用conver函数;2、编写一个程序,实现浮点类型数据和复数类型数据的相乘;具体要求如下:•用结构体定义复数类型数据;•编写浮点类型数据乘法运算函数product;•重载函数product实现复数类型数据相乘;•在mian函数中通过键盘输入一对浮点数和一对复数,分别对这两对数据进行相乘计算,并输出结果;3、编写程序计算一个人的生物节律指数,它是生理、智力和情绪指数之和。情绪周期()yfx是一个正弦曲线,其振幅为1,周期为28天,在给定的一天内,一个人的情绪指数是()fage,age是他的年龄(以天计算)类似地,生理和智力周期也是正弦曲线,振幅为1,周期分别是23天和33天。•编写输入年月日计算天输的函数computeday;•编写计算生理指数的函数compute_physiological_index;•编写计算情绪指数的函数compute_emotional_index;•编写计算智力指数的函数compute_mentality_index;•在主程序中输入年月日,计算生物节指数并输出;【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、在实验报告中回答如下问题:•传址调用和引用调用有何不同?•函数重载时可以除了参数的类型不同,其他都相同吗?4、总结作用域的种类和使用范围;实验五类与对象(一)【实验目的】1、掌握类的概念以及定义类的方法;2、学习简单面向对象程序的编写;【实验内容】1、设计一个名为Fan的类,表示一个风扇,该类满足下述要求:•具有描述风扇转速的成员speed;•具有描述风扇是否开启的成员on;•具有描述风扇半径的成员radius;•具有描述风扇颜色的成员color•以上所有成员的访问和更改函数;•输出风扇所有信息的函数display;•在main函数中创建2个Fan的对象,将第一个风扇的转速、半径和颜色分别设置为3、10和yellow,并将它打开。第二个风扇的转速、半径和颜色分别设置为2、5和blue,并将它关闭。输出以上2个风扇的所有信息。2、设计一个名为Account的类,该类满足下述要求:•一个名为id的int型成员,表示账户的身份号;•一个名为balance的double型成员,表示账户余额;•一个名为annualInterestRate的double型数据域,保存当年利率;•以上所有成员的访问和更改函数;•一个名为getMonthlyInterestRate()的函数,返回月利率;月利率为年利率/12;•一个名为withDraw的函数,从账户中支取指定金额;•一个名为deposit的函数,向账户中存入指定金额;•在mian函数中,创建一个Account对象,其ID为1122,账户余额为20000,年利率为4.5%,使用withDraw函数取出2500美元,使用deposit函数存入3000美元,然后输出账户的余额、月利率。【实验要求】1、编写实验内容要求的程序、编译并调试通过;2、实验报告中记录编程过程中出现的错误与改正方法;3、在报告中回答以下问题:•定义类时,那些成员数据和成员函数是必须的,那些不是?public、protected、private分别表示什么意思?能否对类的成员数据在定义时初始化?•在实验内容的第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(constCPoint&,constCPoint&),参数分别用于设置左下角和右上角两个点的坐标信息;•具有设置左下角和设置右上角的两个点坐标的功能SetLPoint(constCPoint&)和SetRPoint(constCPoint&);•具有获得周长(GetPerimeter)和获得面积(GetArea)的功能。3、在main函数中,完成以下工作:•动态创建一个CRectangle类的对象a_rectagnle,其初始的左下角和右上角坐标分别为(2,5)、(6,8);调用GetPerimeter和GetArea获得矩形周长和面积,并将周长和面积显示在屏幕上;•调用SetLPoint设置a_rectagnle的左下角为(4,6),调用SetRPoin
本文标题:C程序设计实验指导书
链接地址:https://www.777doc.com/doc-2907578 .html