C++程序设计实验指导书.doc





《C++程序设计实验指导书.doc》由会员分享,可在线阅读,更多相关《C++程序设计实验指导书.doc(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计实验指导书前前 言言C+程序设计是软件工程、网络工程专业的一门专业基础课程,是程序设计的基础。通过 C+程序设计实验课,巩固学生对课堂上学习的编程基础知识的理解,培养学生逐步建立编程思路,树立编程思想,同时加强逻辑思维能力和程序调试的实践能力的培养。该实验课主要进行 C+语言结构化程序设计、面向对象程序设计的编程实践。学生学习编写程序,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好C+程序设计的关键。为了更好地配合学生实验,特编写实验指导书。一、实验目的更好的理解 C+程序的基本语法,掌握常见的程序设计方法,能够利用 C+语言解决常见的问题,培养程序设计、程序调试能力
2、。二、实验要求1、每次实验前学生必须根据试验内容认真准备实验程序及调试时所需的输入数据及预期输出数据。2、独立完成或在指导教师的帮助下,完成实验项目,得出正确的实验结果。3、遵守实验室规章制度、不缺席、按时上、下机。4、实验学时内必须做数据结构的有关内容,不允许上网聊天或玩游戏,如发现上述现象,取消本次上机资格,平时成绩扣 10 分。5、实验项目有一次未完成,扣 5 分,两次以上未完成者,平时成绩以零分记,不允许参加期末考试。三、实验环境 VC+6.0 或其它 C+集成环境四、说明1、所有实验项目布置在在线评测系统平台(Online Judge System)上,校内访问IP:59.73.73
3、.133,每位学生需实名注册账号,并将完成的实验项目在平台上提交,平台能够实现自动评测。2、各个实验项目中列出的实验只是其中的一部分,要求学生必须完成。在线评测系统平台上的其它实验项目也必须完成 80%以上,否则实验不合格。 五、参考书目C+程序设计实验指导书,集体编写,辽宁科技大学软件学院C+程序设计,余苏宁主编,高等教育出版社,2004 年 1 月C+语言程序设计(第四版),郑莉,董江舟编著,清华大学出版社,2010 年 7 月C+面向对象程序设计,陈维兴,陈昕编著,人民邮电出版社,2010 年 10 月C+程序设计,谭浩强编著,清华大学出版社,2004 年 6 月C+语言程序设计教程,
4、杨进才,沈显君,刘蓉编著,清华大学出版社,2006 年 9 月目 录前 言.1实验一 控制语句(1).2实验二 控制语句(2).3实验三 控制语句(3).3实验四 数组编程.3实验五 指针编程.4实验六 函数编程(1).4实验七 函数编程(2).5实验八 类与对象编程(1).5实验九 类与对象编程(2).6实验十一 面向对象编程(2).7实验十二 类模板编程.7实验十三 I/O 流编程.8附录:在线评测系统练习题汇总.81 控制结构 .82 函数 .183 数组与指针 .214 面向对象部分练习 .255 继承与派生.29实验一实验一 控制语句(控制语句(1)实验类型:设计性 实验要求:必修实
5、验学时: 2 学时【实验目的】 1、熟悉集成开发环境 Visual C+,在此环境下能够创建 C+程序。 2、熟练使用 if 语句和 switch 语句编程,同时进一步学习基本数据类型的定义和使用。【实验内容】 1、已知分段函数:通过键盘任意输入一个 x,输出函数值的结果。 提示:C+函数 pow(x,y)表示数学表达式 xy2、输出任意一个年份及月份,输出该月的天数。 1,3,5,7,8,10,12 月份,每月 31 天;4,6,9,11 月份,每月 30 天;2 月份,若年份为闰年, 则 29 天,否则为平年 28 天。闰年的条件判断详见第二章例题。实验二实验二 控制语句(控制语句(2)实
6、验类型:设计性 实验要求:必修实验学时: 2 学时【实验目的】 1、 熟练掌握 while 循环和 for 循环语句的编程。 2、 进一步学习基本数据类型的定义和使用。 【实验内容】 1、输入一个算术表达式,可以实现求两个整数的加、减、乘、除和取余运算。提示: 可以利用 switch 语句实现。 2、输入一个数,判断是否为完数。提示:完数:一个数如果恰好等于除它本身外的因 子之和,这个数就称为完数。实验三实验三 控制语句(控制语句(3)实验类型:设计性 实验要求:必修实验学时: 2 学时【实验目的】 1、熟练掌握三种结构混合使用的复杂编程。 2、进一步学习基本数据类型的定义、使用和数据输出格式
7、的设计。 【实验内容】 1、求 1000 以内所有完数。 2、计算数列 1/1-1/2+1/3-+1/n,n 值由用户自己输入。实验四实验四 数组编程数组编程实验类型:设计性 实验要求:必修实验学时: 2 学时【实验目的】 1、掌握数组的概念,并弄清数组的存储结构。 2、掌握一维数组的定义、赋值和输入/输出的方法。 3、学会与数组有关的算法。 【实验内容】 1、输入一个字符串,求串长,要求自己编程实现,不允许使用求串长函数。 2、输入 10 个数,将指定数据 x 删除(x 由键盘输入)后在输出结果。 3、输入 10 名学生成绩,将最高分与最低分位置互换。 4、输入 3*3 矩阵的元素,然后求对
8、角线元素之和。实验五实验五 指针编程指针编程实验类型:设计性 实验要求:必修实验学时: 2 学时【实验目的】 1、掌握指针的概念、指针变量的定义、使用以及指针的运算。 2、学会使用数组的指针和指向数组的指针变量。 【实验内容】 1、输入 10 个数据存储于一维数组中,找到其中的最大值、最小值,然后将其位置互换后再输出结果。 2、在 10 整数的数组中查找一个指定的元素 x,存在则给出元素所在下标,否则给出 失败信息。 3、输入 10 个数,实现在指定下标 pos 处插入数据 x。实验六实验六 函数编程(函数编程(1)实验类型:设计性 实验要求:必修实验学时: 2 学时【实验目的】 1、掌握函数
9、的定义。 2、了解函数原型(函数声明)与函数定义的区别与联系。 3、掌握函数调用的基本方法和返回值的用法。 4、弄清值调用和引用调用在传递参数时的区别。 【实验内容】 1、主函数中输入 10 个成绩,编写函数求平均分,并在主函数中调用并输出结果。 2、主函数中输入一个整数,编写函数判断是否为素数,并在主函数中调用并输出结果。3、输入 10 个数据存储到数组中,实现查找一个指定数据 x 的数组下标,要求查找部 分写为函数形式实验七实验七 函数编程(函数编程(2)实验类型:设计性 实验要求:必修实验学时: 2 学时【实验目的】 1、掌握函数调用的基本方法和返回值的用法。 2、掌握用递归函数解决实际
10、问题。 3、掌握函数的参数传递。 【实验内容】 1、输入一个正整数,逆序输出它的各个数位。例如:输入 123,输出 321。要求利用 递归函数实现。 2、编写函数判断是否为素数,在主函数中利用该函数输出 100-200 之间所有素数。 3、用函数实现将一个数组中元素逆序存放并输出。 提示: (1)利用指针做逆序存放,可以定义两个指针变量*p,*q(2)令 p 指向数组的第 1 个元素,即 p=a (3)令 q 指向数组的最后一个元素,即 q=a+n-1 (4)在 p0,则 y=1;若 x=0,则 y=0;否则,y=-1。最后输出 y。 输入-5 输出-1 输入 0 输出 0 输入 4 输出 1
11、测试: 输入 50 输出 1选择 11:对号入座 有 4 种水果,单价分别是 3.1 元/公斤,2.50 元/公斤,4.10 元/公斤,10.20 元/公斤,编号分 别为 1,2,3,4。要求从键盘中输入水果的编号,输出该水果的单价。如果输入不正确的编号,显示单价为 0。 输入 1 输出 3.1 输入 2 输出 2.5 输入 3 输出 4.1 输入 4 输出 10.2 输入 5 输出 0测试: 输入 6 输出 0选择 12:第几天 编写一道程序,输入三个正整数,表示某年某月某日,判断这一天是这一年的第几天? 输入 2013 7 12 输出 193 输入 2012 5 15 输出 136测试:
12、输入 2012 3 5 输出 65选择 13:是否及格 输入一个学生的数学成绩(正整数) ,如果它低于 60,输出“Fail”,否则,输出“Pass”。 输入 65 输出 Pass 输入 50 输出 Fail测试: 输入 90 输出 Pass选择 14:最小值 输入四个整数,输出其中的最小值。输入 1 2 3 4 输出 1输入 2 1 4 3 输出 1输入 2 3 1 4 输出 1输入 3 2 4 1 输出 1测试:输入 13 12 14 11 输出 11选择 15:回文数 输入一个 5 位数,判断它是不是回文数。 输入 12321 输出 YES输入 12345 输出 NO测试: 输入 365
13、63 输出 YES选择 16:字母转换 编写程序,要求输入一个字母,若为大写字母,将其转换成相应小写字母输出,否则,原 样输出该字母。 输入 A 输出 a 输入 g 输出 g 输入 9 输出 9测试: 输入 T 输出 t选择 17:体重 编写一个程序,输入某人的身高(cm)以及体重(kg) ,按照以下标准对他(她)的体型 做测试:(1)标准体重=身高-110;(2)超过标准体重 5kg(不含 5kg)的为“过胖” ; (3)低于标准体重 5kg(不含 5kg)的为“过瘦” (3)既不超过标准体重多于 5kg,也不 低于标准体重多于 5kg 的为“标准” 输入 175 75 输出 过胖 输入 1
14、75 60 输出 标准 输入 175 55 输出 过瘦测试: 输入 180 80 输出 过胖选择 18:加法 从键盘上输入 2 个加数,再输入答案,如果正确,显示“right”,否则显示“error” 输入 3 5 8 输出 right 输入 3 5 9 输出 error测试 输入 13 15 28 输出 right选择 19:网费 编写一个程序来计算一个月的上网费用,计算方法如下:若上网时间50 小时,网费每 小时 2.5 元。要求输入该月上网小时数,显示该月总的上网费用。 输入 8 输出 30 输入 30 输出 90 输入 60 输出 150测试: 输入 50 输出 150循环 01:最大
15、数 写一个程序,可以输入一批正数,输入 0 时结束循环,并且输出最大的正数。 输入 39 28 5 63 18 27 0 输出 63 测试: 输入 153 26 963 28 75 90 156 0 输出 963循环 02:素数 输入正数 n,判断 n 是否为素数。若为素数则输出 1,否则输出 0。 (提示:素数是指只可 以被 1 和其本身整除的正数(1 除外) )输入 10 输出 0 输入 7 输出 1 测试: 输入 9 输出 0循环 03:数列求和 输入一个正整数 n,计算前 n 项之和:1+1/4+1/7+1/10.+1/(3*n-2)(保留 2 位小数) 。 输入 5 输出 1.57
16、输入 4 输出 1.49 测试 输入 10 输出 1.81循环 04:西瓜卖几天 n 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完? 输入:西瓜个数,输出:天数 输入 10 输出 2 输入 50 输出 4 测试 输入 120 输出 5循环 05:成绩判定 输入一个正整数 repeat (0=2),编写一个程序,输入 n(=0),如果 F(n)能被 3 整除则输出一个“yes”,否则输 出一个“no”。 输入 8 输出 yes 输入 6 输出 no测试 输入 12 输出 yes循环 16:计算奇偶数 求 N(3) ,调用 move 函数实现移动。 输入 1 2 3 4
17、 5 输出 4 5 1 2 3 测试 输入 1 2 3 4 5 6 7 8 输出 4 5 6 7 8 1 2 3编写一个函数 length,求一个字符串的长度。从键盘中多个一个字符串,调用 length()函数, 输出字符串长度的平均值(保留 1 位小数) 。输入格式,第一个整数 n 为字符串个数,后续 为 n 个字符串。 输入 3 world hello C+输出 4.3 测试 输入 4 University Science Technology LiaoNing 输出 8.8使用指针编写 strcat()函数,即实现两个字符串的首尾连接(将第二个字符串接到第一个字 符串的后面) ,函数返回
18、连接后的字符串。从键盘输入两个字符串,输出连接后和字符串。 输入 University Science 输出 UniversityScience 测试 输入 hello world 输出 helloworld编写一个字符串比较函数 strcmp,两个字符串相同时,函数返回 0;两个函数不同时,函 数返回第一个不同字符的 ASCII 码差值。如两个字符串 ad 和 abc,第一个不同的字符时 d 和 b,二者的差值为 100-98=2,函数返回值为 2。从键盘中输入两个字符串,调用 strcmp 进行函数比较,并输出比较后结果。 输入 hello helloworld 输出-126 测试 输入
19、hello world 输出-58编写一个函数,实现在字符串的每两个字符之间都插入一个字符,如原串为 abcd,插入字 符为 h 则新串为 ahbhchd。在主函数中输入原串及插入字符,调用该函数实现字符串转换, 并输出转换后的新串。 输入 hello w 输出 hwewlwlwo 测试 输入 world h 输出 whohrhlhd4 面向对象部分练习面向对象部分练习1、 定义一个 CPoint 类,私有数据成员为点坐标 x,y(double) ,成员函数为构造函数 CPoint(实现 x,y 值的初始化) ,输出点坐标的函数 Display,主函数中定义 Point 类 对象,输入点坐标值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 实验 试验 指导书

限制150内