C++实验二报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

-1-北京电子科技学院(BESTI)实验报告课程:面向对象程序设计班级:姓名:学号:成绩:指导教师:徐日实验日期:2013.10.29实验密级:预习程度:实验时间:15:30~18:00仪器组次:901机房F32必修/选修:选修实验序号:2实验名称:C++基础编程实验目的与要求:1、使学生掌握内联函数、输入输出流控制编程;2、培养学生具有运用C++语言编程解决问题的能力,提高学生的计算机编程能力;3、引导和培养学生具有认真严谨的实验态度和勇于时间的学习精神。实验仪器:名称型号数量微机LenovoThinkVision1-2-一、实验内容第一题1.计算显示立方值关键提要:内联函数,输出流控制用内联函数编程,计算并显示0.5,1,1.5,2,3,…..,19.5,20,……的立方值。所能处理的最大值应由用户输入,且所能处理的最大值应35.5,请尽可能处理更大的值,例如能处理到45.5,甚至超过55.5,并且注意紧凑对齐,尽量在纵列对齐而且在显示明晰的情况下实现一行能容纳多列注意做多个结果以展示程序对不同大小数据的处理能力要求:主函数中输出提示信息,主函数输出计算结果,每行输出3个立方值。输出计算结果时要设定输出格式,各列数据要紧凑对齐,样式为:0.5立方值=0.125||1立方值=1||……计算立方值的函数用内联函数编程实现。为便于理解题意,程序执行结果可参考下图。编程设计思想:使用setprecision()函数来实现一定的输出格式,输出立方值的时候,定义好内联函数直接代入就可以了。使用if循环,使打出来的式子的数量是3的倍数的时候,换行。程序如下:#includeiostream#includeiomanipusingnamespacestd;-3-inlinedoublelifang(doublex){returnx*x*x;}intmain(){intn,i;cout请输入一个大于35.5的数:;cinn;coutendl;cout下面程序输出0.5,1,1.5,......,n的立方值:endl;for(i=1;i=2*n;i++){coutresetiosflags(ios::left)setiosflags(ios::right)setw(5)0.5*i的立方值=;coutresetiosflags(ios::right)setiosflags(ios::left)setw(9)setprecision(8)lifang(0.5*i);if(i%3)cout||;elsecoutendl;-4-}}二、第二题2.字符串中找数字关键提要:输入输出流控制编写程序,将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来,例如输入“asd12345rt456,fg9crp”,则产生的数字分别是12345,456和9输出这些数字字符。要求:连续的数字字符在同行输出,不连续的数字字符在不同输出。为便于理解题意,程序执行结果可参考下图。编程设计思想:先输入一串字符,然后分别判断这些字符串是不是数字,如果是数字用整型数组计数,然后再把它存到字符数组当中,然后比较计数谁最大,在打印前面的空格的时候,就把最大的数字减去一连串数字的个数就等于打印空格的数目。三、第三题3.学生成绩排名(选做)-5-关键提要:动态内存分配,输入输出流控制采用动态内存分配方法(要求用NEW和DELETE,不用MALLOC和FREE)设计一个学生成绩处理程序,要求程序提示用户输入任意数量学生的学号,姓名和四门课的成绩(INT型),并按平均成绩由高到低顺序输出每个学生的学号,姓名,四门课的成绩,总成绩,平均成绩(保留1位小数),名次。要求:相同平均分的名次应相同,例如:knife,tiger,trigger,tank的平均成绩分别为95.3,95.3,87,100,则他们的名次依次为2,2,4,1.输出数据时模仿表格方式。有行标题,列标题,每名学生的数据保持在同一行,同意列,输出的每个数据应与相应的行标题,列标题相符,设置列宽以满足显示需要,用空格和适当字符填充在相邻数据间以行测表格单元间的显示分隔。控制输出格式,使输出的输出的数据行,列正对齐(setw()).输出数据由贬值的输出函数完成,主函数调用该输出函数。生成的程序执行结果,应有6-8名学生的信息。为便于理解题意,程序执行结果可参考下图。编程设计思想:设计一个student的结构体,然后用NEW给STUDENT的结构体给赋给相应的内存,然后输入数据的时候,把数据分别存储到student结构体-6-的相应的数据成员当中。在排名的时候先把总分算出来,再用冒泡排序把名次排出来,如果有相同分数的则往后面退一位,然后在分别打印出相应的数据。二.实验体会经过实验2的训练,让我熟悉了内联函数的运用,从字符串中提取字符,更加理解了动态内存分配的使用方法。在做字符串提取数字串的实验当中,遇到了很多困难,在最后给每个数字串添加空格的时候,由于循环用的不恰当,使得结果一直差几个空格,在做实验2的那个选作的时候,发现自己对指针和二位数组用的特别不好,需要多看看例子和定义。编程不懂就要问,不是询问所有的代码,而是一点点的提醒。这次实验,在做选作的时候,发现自己没思路,小朱同学给我指点了一下,然后思绪一下子就豁然开朗了。三.思考题1.请结合实验,说明模仿表格的输出控制。答:在用COUT的时候,SETW所取的值先自己顶一个,然后根据实验的结果,再调整SETW的值,一步一步的调正就能把表格的输出的值正好跟上面的项目对齐。2.举例或结合实验,说明内联函数的工作机制及作用。答:内联函数在调用过程不存在程序流程的跳转和返回问题。对于一个简单的函数,提高了程序的运行速度,节省了开销。3.请举例或结合实验,说明动态内存的分配的工作机制。-7-答:动态内存分配,就是用户能够指定虚拟操作系统启动的RAM容量,并将平台可用的内存最大化。当不用的时候,又可以用DELETE释放内存。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功