实验4:选择结构程序设计 实验名称:_选择结构结构程序设计成绩: 实验日期 实验报告日期:年_月_日 实验目的 1、掌握关系运算符、逻辑运算符及其表达式的正确使用。 2、掌握i语句和 switch语句的使用。 3、了解程序调试的基本方法。 二、实验环境 安装了 Visual c++60的计算机系统 三、实验内容(或实验任务) 在Ⅴ isual c++60下完成程序题: 1、从键盘输入一个整数,如果该数是奇数,则输出“您输入的是一个奇数! 否则,输出“您输入的是一个偶数!”。程序正确编写后,参照实验1内容2 中介绍的单步调试的方法,对本程序进行单步调试,仔细观察程序的执行过程 理解二分支的程序结构 提示:这是一个典型的二分支结构,用if.else语句实现。 2、新建设一个工程,名字为4_2,在工程中创建一个文件,名为 myerrorl。在 文件中输入以下内容,并进行编译,尝试解释编译后显示的结果信息,找到出错 的原因,并记录在下面。 void maino Int x. flag scanf("%d",&x)
实验 4:选择结构程序设计 实验名称: 选择结构结构程序设计 成绩: 实验日期: 年 月 日 实验报告日期: 年 月 日 一、实验目的 1、掌握关系运算符、逻辑运算符及其表达式的正确使用。 2、掌握 if 语句和 switch 语句的使用。 3、了解程序调试的基本方法。 二、实验环境 安装了 Visual C++ 6.0 的计算机系统 三、实验内容(或实验任务) 在 Visual C++ 6.0 下完成程序题: 1、从键盘输入一个整数,如果该数是奇数,则输出“您输入的是一个奇数!”; 否则,输出“您输入的是一个偶数!”。程序正确编写后,参照实验 1 内容 2 中介绍的单步调试的方法,对本程序进行单步调试,仔细观察程序的执行过程, 理解二分支的程序结构。 提示:这是一个典型的二分支结构,用 if…else 语句实现。 2、新建设一个工程,名字为 4_2,在工程中创建一个文件,名为 myerror1.c。在 文件中输入以下内容,并进行编译,尝试解释编译后显示的结果信息,找到出错 的原因,并记录在下面。 void main() { int x, flag; scanf("%d", &x );
if(x>0) printf(这是一个正数m") else flag=0; printf("这不是一个正数n") 请记录出错信息与出错原因。 3、从键盘输入一个表示年份的数值(十进制数),判断其是否为闰年(闰年的 条件是:能被4整除但不能被100整除,或者能被400整除) 提示: (1)定义变量 (2)从键盘输入年份 (3)如果该年份是闰年 输出“这是一个闰年” 否则 输出“这不是一个闰年” 4、编写程序,求解如下所示的分段函数。从键盘输入一个x,求解y并在屏幕 上输出结果。 2x-1 5、编写程序,求解如下所示的分段函数。从键盘输入一个x,求解y并在屏幕 上输出结果 0≤x<10 10 6、编写一个简易的计算器程序,在屏幕上输出如图4-1所示字符界面菜单, 用户从键盘输入“+”、 /”4种字符之一。若用户输入
if(x>0) flag=1; printf("这是一个正数\n"); else flag=0; printf("这不是一个正数\n"); } 请记录出错信息与出错原因。 3、从键盘输入一个表示年份的数值(十进制数),判断其是否为闰年(闰年的 条件是:能被 4 整除但不能被 100 整除,或者能被 400 整除) 提示: (1)定义变量 (2)从键盘输入年份 (3)如果 该年份是闰年 输出“这是一个闰年” 否则 输出“这不是一个闰年” 4、编写程序,求解如下所示的分段函数。从键盘输入一个 x,求解 y 并在屏幕 上输出结果。 3x+5, x>0 y= 0, x=0 2x-1, x<0 5、编写程序,求解如下所示的分段函数。从键盘输入一个 x,求解 y 并在屏幕 上输出结果。 |x|, x<0 y= x2, 0≤x<10 logx, x≥10 6、编写一个简易的计算器程序,在屏幕上输出如图 4-1 所示字符界面菜单,由 用户从键盘输入“+”、“-”、“*”、“/”4 种字符之一。若用户输入“+
做加法a+b;若用户输入“”,做减法a-b;若用户输入“*”,做乘法a*b;若 用户输入“/”,做除法a/b;最后输出计算结果 叫“E:1C语言编程14_3 Debug14_3.exe 请输入运算符(+-* 图4-1计算器主菜单选择功能 7、编写实现实验3任务2的主菜单界面的选择功能的程序。即能够根据用户的 选择做岀相应的动作,例如当用户选择1时,能够录入学生成绩,选择2时,能 够修改学生成绩,选择3时,能够査询学生成绩等。由于目前只能实现主菜单选 择功能,而不能实现各菜单项的具体功能,因此该程序只能根据用户的选择,输 出对应菜单项的信息。程序运行效果如图4-2所示。 提示:实验3任务2用多个 printf I函数输出了主菜单界面。本题要求编写 个选择选项的程序,因此需要使用分支结构,而且这里是一个多分支问题,所以 使用 break的 switch语句来实现,具体流程图如图4-3所示
做加法 a+b;若用户输入“-”,做减法 a-b;若用户输入“*”,做乘法 a*b;若 用户输入“/”,做除法 a/b;最后输出计算结果。 图 4-1 计算器主菜单选择功能 7、编写实现实验 3 任务 2 的主菜单界面的选择功能的程序。即能够根据用户的 选择做出相应的动作,例如当用户选择 1 时,能够录入学生成绩,选择 2 时,能 够修改学生成绩,选择 3 时,能够查询学生成绩等。由于目前只能实现主菜单选 择功能,而不能实现各菜单项的具体功能,因此该程序只能根据用户的选择,输 出对应菜单项的信息。程序运行效果如图 4-2 所示。 提示:实验 3 任务 2 用多个 printf 函数输出了主菜单界面。本题要求编写一 个选择选项的程序,因此需要使用分支结构,而且这里是一个多分支问题,所以 使用 break 的 switch 语句来实现,具体流程图如图 4-3 所示
Cr"C: \Progran Files\microsoft Visual Studio\ly..-ox 学生成绩管理系统 录入学生成 4 6 退出 请输入选项:2 欢迎进入修改学生成绩界面 建设中,敬请期待… 请按回车键继续 图4-2学生成绩管理系统主菜单选择功能 开始 输出主菜单选择界面 请输入选项(0-6)
图 4-2 学生成绩管理系统主菜单选择功能 请输入选项(0-6) 开始 输出主菜单选择界面
F T
F T F T F T F T F T F T F T F
图4-3学生成绩管理系统主菜单的实现流程图 评分标准: 是否能正确编写C程序以实现各题要求(50分); 项目报告中,流程图和算法描述(20分),知识点描述(20分),难点及 解决办法或体会(10分)。 四、实验要求 1、实验前绘制程序框图,编制源程序、准备测试数据。 2、实验测试数据要求从键盘输入。应尽力追求程序的完美。比如要求输入数据, 应当显示提示字符串,提示用户输入;输出时要求有文字说明 3、在 Visual c++60下完成程序的编辑、编译、运行,获得程序结果。如果结 果有误,应找出原因,并设法更正之。 4、实验中可以采用Ⅴ isual c++60程序调试基本方法协助査找程序中的逻辑问 题 五、实验步骤、过程 1、编辑、编译、运行程序题1 2、编辑、编译、运行程序题2。 3、编辑、编译、运行程序题3。 4、第一步:参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中 新建win32 Console Application工程,取名为44。新建C++ Source file,添加 到工程44中,文件名为44c 第二步:main函数中的伪代码如下: 1)定义变量 2)喻出请用户输入x的提示信息 3)接收用户从键盘输入的x值 4)根据用户输入的x和分段函数进行相应的计算 5腧输出计算的结果
图 4-3 学生成绩管理系统主菜单的实现流程图 评分标准: 是否能正确编写 C 程序以实现各题要求(50 分); 项目报告中,流程图和算法描述(20 分),知识点描述(20 分),难点及 解决办法或体会(10 分)。 四、实验要求 1、实验前绘制程序框图,编制源程序、准备测试数据。 2、实验测试数据要求从键盘输入。应尽力追求程序的完美。比如要求输入数据, 应当显示提示字符串,提示用户输入;输出时要求有文字说明。 3、在 Visual C++ 6.0 下完成程序的编辑、编译、运行,获得程序结果。如果结 果有误,应找出原因,并设法更正之。 4、实验中可以采用 Visual C++ 6.0 程序调试基本方法协助查找程序中的逻辑问 题。 五、实验步骤、过程 1、编辑、编译、运行程序题 1。 2、编辑、编译、运行程序题 2。 3、编辑、编译、运行程序题 3。 4、第一步:参照实验 1 内容 2 的实现步骤,在当前工作空间“C 语言编程”中 新建 Win32 Console Application 工程,取名为 4_4。新建 C++ Source File,添加 到工程 4_4 中,文件名为 4_4.c。 第二步:main 函数中的伪代码如下: main() { 1)定义变量 2)输出请用户输入 x 的提示信息 3)接收用户从键盘输入的 x 值 4)根据用户输入的 x 和分段函数进行相应的计算 5)输出计算的结果
第三步:根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。本步 骤的结果如下: #include void maino 定义变量* float x,y /*输出请用户输入x的提示信息* printf("请输入x的值:mn") *接收用户从键盘输入的x值* scanf(%f",&x); /*根据用户输入的x值和分段函数进行相应的计算* if(x>0) else if(x=0) y=0; y=2* /*输出计算的结果*/ printf("y=%fn"y) 第四步:单击编译菜单中的执行选项,该功能快捷键为CtrH+F5,执行程序,分 别输入一个正数和一个负数,执行情况如图4-4及图45所示
} 第三步:根据伪代码构造对应的 C 语句,并将伪代码作为注释保留下来。本步 骤的结果如下: #include void main() { /* 定义变量 */ float x, y; /* 输出请用户输入 x 的提示信息 */ printf("请输入 x 的值:\n"); /* 接收用户从键盘输入的 x 值 */ scanf("%f", &x); /* 根据用户输入的 x 值和分段函数进行相应的计算 */ if(x>0) y=3*x+5; else if(x==0) y=0; else y=2*x-1; /* 输出计算的结果 */ printf("y=%f\n",y); } 第四步:单击编译菜单中的执行选项,该功能快捷键为 Ctrl+F5,执行程序,分 别输入一个正数和一个负数,执行情况如图 4-4 及图 4-5 所示
aN"F:\C语言编程\C语言编程\chap0 I Debug\chap0.回x 请输入x的值 F:C语言编程U语言编程ch404001 11. 000000 Press any key to continue 图4-4程序41exe运行的结果1 N“F:\C语言编程\C语言编程\chap00 I \ Debug\chap0.回 清输入x的值 F:Y言编程飞言编程飞h4 Press any key to continue PINyin 图45程序44eXe运行的结果2 5、编辑、编译、运行程序题5,分别使用数据-5,0,5,10,100做测试。 人工计算结果分别是 6、编辑、编译、运行程序题6。 第一步:参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建 Win32 Console Application工程,取名为46。新建C++ Source file,添加到工程 46中,文件名为46c。 第二步:main函数中的伪代码如下 void maino 1)定义变量 2)喻出计算器主菜单界面
图 4-4 程序 4_1.exe 运行的结果 1 图 4-5 程序 4_4.exe 运行的结果 2 5、编辑、编译、运行程序题 5,分别使用数据-5,0,5,10,100 做测试。 人工计算结果分别是 。 6、编辑、编译、运行程序题 6。 第一步:参照实验 1 内容 2 的实现步骤,在当前工作空间“C 语言编程”中新建 Win32 Console Application 工程,取名为 4_6。新建 C++ Source File,添加到工程 4_6 中,文件名为 4_6.c。 第二步: main 函数中的伪代码如下: void main() { 1)定义变量 2)输出计算器主菜单界面
3)输出请用户输入运算符的提示信息 4接收用户从键盘输入的运算符 5)根据用户输入的某种运算符进行相应的计算 6输出计算的结果 第三步:在main函数中根据伪代码构造对应的C语句,并将伪代码作为注释保 留下来。本步骤的结果如下: 定义变量* float a=5.0.b=3.0. result ch /用于保存用户输入的运算符 /*输出计算器主菜单界面* printf("++++++++++++++++++++++n"); printf("+ +:加法 ) printf("+ -:减法 +in"); printf("+ 乘法 +n") printf("+ 上:除法 +ln") printf(("+++++++++++++++++++n") 输出请用户输入运算符的提示信息*/ printf("请输入运算符(+-*∧n"), /*接收用户从键盘输入的运算符* op=getchar *根据输入的某种运算符进行相应的计算并输出计算结果,有4种不同运 算* switch(op)
3)输出请用户输入运算符的提示信息 4)接收用户从键盘输入的运算符 5)根据用户输入的某种运算符进行相应的计算 6)输出计算的结果 } 第三步:在 main 函数中根据伪代码构造对应的 C 语句,并将伪代码作为注释保 留下来。本步骤的结果如下: void main() { /* 定义变量 */ float a=5.0, b=3.0, result; char op; //用于保存用户输入的运算符 /* 输出计算器主菜单界面 */ printf("++++++++++++++++++++++++++++++++++\n"); printf("+ +: 加法 +\n"); printf("+ -: 减法 +\n"); printf("+ *: 乘法 +\n"); printf("+ /: 除法 +\n"); printf("++++++++++++++++++++++++++++++++++\n"); /* 输出请用户输入运算符的提示信息 */ printf("请输入运算符(+ - * /):\n"); /* 接收用户从键盘输入的运算符 */ op=getchar(); /* 根据输入的某种运算符进行相应的计算并输出计算结果,有 4 种不同运 算 */ switch(op)
case '+' result=atb break case ' - result=a-b break case *I result=a+b: break case '/ result=a+b: break default: printf("运算符输入错误!Ⅶn"); /*输出计算的结果* printi("结果是%rn" result), 注意:由于main函数中调用了 printf函数,故需要在程序开始处用# Include 来包含头文件 stdio.h e 第四步:单击组建菜单中的执行选项,该功能快捷键为CtrH+F5,执行程序,执 行情况如图46所示。若从键盘输入字符“+”,则输出加法运算的结果。 叫“E:C语言编程143 Debug14_3.exe 十十十十十十十十十十十十十十十十十十十十十十十十 请输入运算符(+-*/: 洁果是8.808 Press any key to continue 图46程序43exe运行的结果 至此,完成了实验任务6。 7、编辑、编译、运行程序题7。 第一步:参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建 Win32 Console Application工程,取名为4_7。新建C++ Source file,添加到工程 47中,文件名为47 第二步:main函数中的伪代码如下 maino
{ case '+': result=a+b;break; case '-': result=a-b;break; case '*': result=a+b;break; case '/': result=a+b;break; default: printf("运算符输入错误!\n"); } /* 输出计算的结果 */ printf("结果是%f\n",result); } 注意:由于 main 函数中调用了 printf 函数,故需要在程序开始处用#include 来包含头文件 stdio.h。 第四步:单击组建菜单中的执行选项,该功能快捷键为 Ctrl+F5,执行程序,执 行情况如图 4-6 所示。若从键盘输入字符“+”,则输出加法运算的结果。 图 4-6 程序 4_3.exe 运行的结果 至此,完成了实验任务 6。 7、编辑、编译、运行程序题 7。 第一步:参照实验 1 内容 2 的实现步骤,在当前工作空间“C 语言编程”中新建 Win32 Console Application 工程,取名为 4_7。新建 C++ Source File,添加到工程 4_7 中,文件名为 4_7.c。 第二步:main 函数中的伪代码如下: main()