程序设计与问题求解I实验指导书《程序设计与问题求解》教改项目组2010年11月实验一熟悉上机环境和顺序结构编程一、实验目的1.了解和使用VC集成开发环境;2.熟悉常用的功能菜单命令;3.学习使用VC++环境的帮助;4.学习完整的C++程序开发过程;5.理解简单的C++程序结构。二、实验内容和步骤1.熟悉VC环境,练习自己的第一个程序使用VisualC++6.0集成环境来编辑、编译并运行下面简单C++程序:#includeiostream.hintmain(){couthaha,myfirstCprogram.endl;return0;}2.实验步骤(1)启动VC环境选择菜单“开始/程序/MicrosoftVisualStudio6.0/MicrosoftVisualC++6.0”,得到VisualC++6.0启动后的用户界面,如图所示。(2)创建新文件单击菜单“文件/新建”,显示对话框。在此对话框的列表栏中,有“文件、工程、工作区、其他文档”4个选项。注意系统进入的时候是“工程”一栏被选中,简单起见,我们要用鼠标选中“文件”,会弹出下拉式菜单。在菜单里用鼠标选中“C++sourcefile”,然后在右边的文件框里填入你要创建的文件名,如eg1_1.cpp.然后点击确定。(3)在“C++源程序编辑”窗口下编辑C++源程序。在编辑窗口键入C++源程序。如图所示,键入上面程序。(4)编译连接和运行源程序选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕最下方的“编译”窗口中。所显示的错误信息中指出该错误所在行号和该错误的性质。我们可根据这些错误信息进行修改。编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件eg1-1.exe”选项。“编译”窗口出现信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。执行可执行文件的方法是选择“编译”菜单项中“执行eg1-1.exe”选项。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中。(5)关闭工作区,为下个实验做准备。单击菜单“文件”中的“关闭工作区”选项,关闭工作区。注意:这一步很重要,不然其他的程序做不了,所以建议同学们每做完一个实验都要关闭工作区,这样可以一次做多个实验!!3.简单的数据输入和运算实验(1)输入下面的程序,然后运行并分析结果。#includeiostream.hvoidmain(){intx=6,y;coutx=xendl;y=++x;coutx=xy=yendl;x=6;y=x++;coutx=xy=yendl;x=6;y=x--;coutx=xy=yendl;x=6;y=--x;coutx=xy=yendl;}(2)输入下面的程序,然后运行并分析结果。#includeiostream.hvoidmain(){inta=20,b=6;a+=a;coutaendl;a=20;a-=a;coutaendl;a=20;a*=a;coutaendl;a=20;a/=b;coutaendl;a=20;a%=b;coutaendl;a=20;a=a-b;coutaendl;a=10;b=4;a+=a*=a-=a/b;coutaendl;}a=10,b=4a+=a*=a-=a/b=?(3)编写一个程序,要求:提示输入3个数;显示这3个数,求他们的平均值并输出。三、实验报告内容及要求1、要用专用实验报告纸书写;2、给出二中的3(1)(2)的实验结果,(如有和自己预期的结果不一致的要分析);3、给出二中的3(3)的源程序代码,(关键代码行要有精要的注释),运行结果,输入和输出数据并分析;4、实验中遇到的问题和解决问题的方法。实验二选择结构程序设计一、实验目的1.正确使用关系表达式和逻辑表达式表示条件2.掌握选择语句if和switch语句的使用方法3.学会用选择语句构成的选择结构程序设计二、实验内容1.身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为男性成人时身高=(faHeight+moHeight)×0.54cm女性成人时身高=(faHeight×0.923+moHeight)/2cm此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。编程要求:有用户输入输出提示信息。2.简单的计算器用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1运算符op操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。编程要求:程序能进行浮点数的算术运算,有用户输入输出提示信息。提示:因为除法中的除数不能为0,因此关键在于如何比较浮点变量data2和常数0是否相等。作为整型变量跟0的比较,简单的==就可以解决。而浮点型等实型变量需要用if(fabs(data2)=1e-7)进行判断(即判断其是否足够小)。若使用函数fabs,需要包含头文件cmath.h三、实验报告内容及要求1、要用专用实验报告纸书写;2、给出二中的1、2源程序代码,(关键代码行要有精要的注释),运行结果,输入和输出数据并分析;3、实验中遇到的问题和解决问题的方法。实验三循环结构程序设计一、实验目的1.学习循环语句的使用方法2.学习用循环语句编写程序3.学习和使用基础算法--枚举算法二、实验内容1.请用三种结构实现从1到100之间的偶数累加,奇数相乘,并将偶数累加的结果输出,奇数相乘的结果输出。2.编写程序,不断随机地从键盘输入字符,直到输入字符q或Q时退出,分别统计输出一共有多少个数字,多少个小写字母,多少个大写字母及多少个除上述以外的其他字符的个数。(注意:这里最后一个q或Q也要计算在内!)三、实验报告内容及要求1、要用专用实验报告纸书写;2、给出二中的1、2源程序代码,(关键代码行要有精要的注释),运行结果,输入和输出数据并分析;3、实验中遇到的问题和解决问题的方法。实验四控制结构综合程序设计一、实验目的1.熟练掌握分支结构、循环结构的综合应用。2.掌握结构化程序设计的思想及方法。二、实验内容1.一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。2.输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。输入输出示例Inputwords:Thesumoftheoddnumbers.Count=6三、实验报告内容及要求1、要用专用实验报告纸书写;2、给出二中的1、2源程序代码,(关键代码行要有精要的注释),运行结果,输入和输出数据并分析;3、实验中遇到的问题和解决问题的方法。实验五数组的使用一、实验目的1.掌握数组的定义、赋值和输入输出方法2.学习使用数组实现相关算法二、实验内容1.编写程序,输入一个正整数(110n),再输入n个整数(存入数组a中),输出a中的最大值,最小值及平均值(保留两位小数)注释:这里要定义数组中的元素个数至少为10个,即inta[10];2.餐饮服务质量调查打分在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。GradeCountHistogram15*****210**********37*******...提示:–定义数组score存放打的分数–定义数组count为计数器(count[0]不用)–计算统计结果:设置一个循环,依次检查数组元素值score[i],是1则将数组元素count[1]加1,是2则将数组元素count[2]加1,依此类推for(i=0;iSTUDENTS;i++){count[score[i]]++;}–打印统计结果,设置一个循环,按count数组元素的值,打印相应个数的符号’*’提示:输入40个数据太多,进行测试的时候,可以让计算机生成随机数代替手工输入数据。3.检验并打印魔方矩阵在下面的5×5阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。17241815235714164613202210121921311182529三、实验报告内容及要求1、要用专用实验报告纸书写;2、给出二中的1、2、3源程序代码,(关键代码行要有精要的注释),运行结果,输入和输出数据并分析;3、实验中遇到的问题和解决问题的方法。实验六函数的使用一、实验目的1.掌握函数的定义和调用方法2.掌握通过参数在函数间传递数据的方法二、实验内容1.编写简单编程题(1)输入两个数,输出其中较大的数。要求定义和调用函数intmax(inta,intb);找出并返回a,b中较大的数(2)求1!2!3!...!n,其中n的值由键盘输入。要求:定义和调用函数doublefact(inta);求取a!并返回结果。注:此题仅作为自定义函数练习使用,这个程序用函数实现效率会很低。2.给小学生出加法考试题编写一个程序,给学生出加法运算题,然后判断学生输入的答案对错与否,可以按下列要求以循序渐进的方式编程。程序1通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!Tryagain!”,程序结束。程序2通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!Tryagain!”,直到做对为止。程序3通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Notcorrect!Tryagain!”,最多给三次机会,如果三次仍未做对,则显示“Notcorrect!Youhavetriedthreetimes!Testover!”,程序结束。程序4连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。编程要求:(1).较好的用户输入输出提示(2).使用子函数实现两个数