《程序设计与问题求解》实验指导书doc.docx
- 文档编号:634656
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:20
- 大小:174.81KB
《程序设计与问题求解》实验指导书doc.docx
《《程序设计与问题求解》实验指导书doc.docx》由会员分享,可在线阅读,更多相关《《程序设计与问题求解》实验指导书doc.docx(20页珍藏版)》请在冰豆网上搜索。
《程序设计与问题求解》实验指导书doc
程序设计与问题求解
实验指导书
《程序设计与问题求解》教改项目组
2015年9月
实验一熟悉上机环境和顺序结构编程
一、实验目的
1.了解和使用VC集成开发环境;
2.熟悉常用的功能菜单命令;
3.掌握C语言中的输入输出;
4. 掌握变量定义和使用;
5. 理解顺序结构程序设计方法。
二、实验内容和步骤
1.熟悉VC环境,练习自己的第一个程序
(1)启动VC环境
选择菜单“开始/程序/MicrosoftVisualStudio6.0/MicrosoftVisualC++6.0”,得到VisualC++6.0启动后的用户界面,如图所示。
(2)创建新文件
单击菜单“文件/新建”,显示对话框。
在此对话框的列表栏中,有“文件、工程、工作区、其他文档”4个选项。
注意系统进入的时候是“工程”一栏被选中,简单起见,我们要用鼠标选中“文件”,会弹出下拉式菜单。
在菜单里用鼠标选中“C++sourcefile”,然后在右边的文件框里填入你要创建的文件名,如eg1_1.cpp.然后点击确定。
(3)在“C++源程序编辑”窗口下编辑C++源程序。
在编辑窗口键入C/C++源程序。
如图所示,键入上面程序。
(4)编译连接和运行源程序
选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕最下方的“编译”窗口中。
所显示的错误信息中指出该错误所在行号和该错误的性质。
我们可根据这些错误信息进行修改。
编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件eg1-1.exe”选项。
“编译”窗口出现信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。
执行可执行文件的方法是选择“编译”菜单项中“执行eg1-1.exe”选项。
这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中。
(5)关闭工作区,为下个实验做准备。
单击菜单“文件”中的“关闭工作区”选项,关闭工作区。
注意:
这一步很重要,不然其他的程序做不了,所以建议同学们每做完一个实验都要关闭工作区,这样可以一次做多个实验!
!
2.简单的数据输入输出实验
(1)输入下面的程序,运行并分析结果。
(注意:
绝对值函数fabs(x)。
)
#include
#include
intmain(void)
{doublequestion=-45.35,answer;
answer=fabs(question);
printf("数%.2f的绝对值是%.2f\n",question,answer);
}
(2)分析并修改下面程序错误,使之能够正常运行。
错误代码一:
#include
voidmain()
{inta;
floatb;
scanf("%d%f",&a,&b);
doublec;
scanf("%lf",&c);
printf("a=%d,b=%f,c=%lf\n",a,b,c);
}
错误代码二:
#include
voidmain()
{inta,b;
intsum;
sum=a+b;
scanf("%d%d",&a,&b);
printf("sum=%d\n",sum);
}
3.编写程序实现以下功能
1).输入3个数,求他们的平均值并输出。
(保留2为小数)
2).计算的值,并输出结果(保留2为小数)
三、实验报告内容及要求
1.按实验报告要求(样板)撰写并打印实验报告;
2.给出2
(1)的实验结果,(如有和自己预期的结果不一致的要分析);
3.说明2
(2)错误原因,给出正确的源程序代码并运行结果输出数据;
4.实验中遇到的问题和解决问题的方法。
实验二选择结构程序设计
一、实验目的
1.正确使用关系表达式和逻辑表达式表示条件;
2.掌握选择语句if-else和switch语句的使用方法;
3.掌握分支结构程序设计。
二、实验内容
1.选择结构编程示例
year是闰年,即year能被4整除但不能被100整除,或year能被400整除。
从键盘读入一个年份,然后输出其是否为闰年。
具体代码如下:
#include
voidmain()
{
intyear;
printf("请输入年份:
");
scanf("%d",&year);
if((year%4==0&&year%100!
=0)||(year%400==0))
{
printf("闰年!
");
}
else
{
printf("不是闰年!
");
}
}
2.分析并修改下面程序错误,使之能够正常运行。
错误代码一:
下面的这个程序是当a和b的值相等的情况下输出“a和b相等”,而a与b的值不相等的话无输出。
#include
voidmain()
{
inta=5,b=6;/*或inta=5,b=5;*/
if(a==b);
{
printf("a和b相等\n");
}
}
错误的代码二:
下面的这个程序是当a和b的值相等的情况下a与b的值同时增加1,而a与b的值不相等的话,二者的值保持不变。
#include
voidmain()
{inta=5;/*或inta=6*/
intb=6;
if(a==b)
a++;
b++;
printf("a=%d,b=%d",a,b);
}
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.分析2中的程序错误,修改后运行并写出结果;
3.给出3中的源代码及输入输出结果截图;
4.实验中遇到的问题和解决问题的方法。
实验三循环结构程序设计
(一)
一、实验目的
1.掌握循环程序设计思想;
2.掌握三种循环结构程序的写法;
2.能熟练适当使用三种循环结构进行循环程序的编写。
二、实验内容
1.循环结构编程示例
要求编程计算1到100的和并输出,具体代码如下:
#include
voidmain()
{
inti;
intsum=0;//和的初值很重要
for(i=1;i<=100;i++)
{
sum+=i;
}
printf("sum=%d\n",sum);
}
2.分析并修改下面程序错误,使之能够正常运行。
错误代码如下:
该程序用于求从1到100的整数和。
#include
voidmain()
{
inti=1;
intsum=0;
while(i<=100);
{
sum+=i;
}
printf("sum=%d\n",sum);
}
3.编写程序实现以下功能
1).请用三种结构实现从1到100之间的偶数累加,奇数相乘,并将偶数累加的结果输出,奇数相乘的结果输出。
2).从键盘输入一批学生的成绩(以负数为结束标志),计算平均分,并统计不及格成绩的个数。
3).从键盘输入任意字符(直到输入字符q或Q时退出),分别统计输出一共有多少个数字,多少个小写字母,多少个大写字母及多少个除上述以外的其他字符的个数。
(注意:
这里最后一个q或Q也要计算在内!
)
三、实验报告内容及要求
1.按实验报告要求(样板)撰写并打印实验报告;
2.分析2中的程序错误,修改后运行并写出结果;
3.给出3中的源代码及输入输出结果截图;
4.实验中遇到的问题和解决问题的方法。
实验四循环结构程序设计
(二)
一、实验目的
1.学习和掌握二重循环结构编程;
2.学习和使用基础算法--枚举算法
二、实验内容
1.二重循环结构编程示例
要求按如下数字形状输出,代码有错误,请修改正确。
1
123
12345
1234567
代码如下:
#include
intmain()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=i;j++)
{
printf(“%d”,j);
}
printf(“\n”);
}
}
2.编写程序实现以下功能
1)编写程序,打印99乘法表
2)将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面值都要有)。
输入要换的面额(如10元),输出所有可能的换法(如2种)。
进阶:
若希望换出来的零钱数量越少越好,怎么修改程序可以很快得到最优方案?
3)输入一行字符,统计其中单词的个数。
各单词之间用空格分隔,空格数可以是多个。
输入输出示例
Inputwords:
Thesumoftheoddnumbers.
Count=6
三、实验报告内容及要求
1.按实验报告要求(样板)撰写并打印实验报告;
2.分析1中的程序错误,修改后运行并写出结果;
3.给出2中的源代码及输入输出结果截图;
4.实验中遇到的问题和解决问题的方法。
实验五有序数据程序设计
一、实验目的
1.掌握数组的定义、赋值和输入输出方法
2.学习使用数组实现相关算法
二、实验内容
1.改正下列程序错误,使之完成规定的功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计与问题求解 程序设计 问题 求解 实验 指导书 doc