




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验4:选择结构程序设计实验名称: 选择结构结构程序设计 成绩: 实验日期: 年 月 日 实验报告日期: 年 月 日一、实验目的1、掌握关系运算符、逻辑运算符及其表达式的正确使用。2、掌握if语句和switch语句的使用。3、了解程序调试的基本方法。二、实验环境安装了Visual C+ 6.0的计算机系统三、实验内容(或实验任务)在Visual C+ 6.0下完成程序题:1、从键盘输入一个整数,如果该数是奇数,则输出“您输入的是一个奇数!”;否则,输出“您输入的是一个偶数!”。程序正确编写后,参照实验1内容2中介绍的单步调试的方法,对本程序进行单步调试,仔细观察程序的执行过程,理解二分支的程序结构。提示:这是一个典型的二分支结构,用ifelse语句实现。2、新建设一个工程,名字为4_2,在工程中创建一个文件,名为myerror1.c。在文件中输入以下内容,并进行编译,尝试解释编译后显示的结果信息,找到出错的原因,并记录在下面。void main() int x, flag; scanf(%d, &x ); if(x0) flag=1; printf(这是一个正数n); else flag=0; printf(这不是一个正数n); 请记录出错信息与出错原因。3、从键盘输入一个表示年份的数值(十进制数),判断其是否为闰年(闰年的条件是:能被4整除但不能被100整除,或者能被400整除)提示:(1)定义变量(2)从键盘输入年份(3)如果 该年份是闰年 输出“这是一个闰年” 否则 输出“这不是一个闰年”4、编写程序,求解如下所示的分段函数。从键盘输入一个x,求解y并在屏幕上输出结果。 3x+5, x0y= 0, x=0 2x-1, x05、编写程序,求解如下所示的分段函数。从键盘输入一个x,求解y并在屏幕上输出结果。 |x|, x0y= x2, 0x10 logx, x106、编写一个简易的计算器程序,在屏幕上输出如图4-1所示字符界面菜单,由用户从键盘输入“+”、“-”、“*”、“/”4种字符之一。若用户输入“+”,做加法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所示。图4-2 学生成绩管理系统主菜单选择功能MenuItem=?输入MenuItem值为5输出“欢迎进入浏览学生成绩界面!”值为4输出“欢迎进入删除学生成绩界面!”值为3输出“欢迎进入查询学生成绩界面!”值为2输出“欢迎进入修改学生成绩界面!”值为1输出“欢迎进入录入学生成绩界面!”请输入选项(0-6)开始输出主菜单选择界面值为6输出“欢迎进入排序学生成绩界面!”结束值为0输出“谢谢使用!” 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+ 6.0下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,应找出原因,并设法更正之。4、实验中可以采用Visual C+ 6.0程序调试基本方法协助查找程序中的逻辑问题。5、 实验步骤、过程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 main() /* 定义变量 */float x, y; /* 输出请用户输入x的提示信息 */ printf(请输入x的值:n); /* 接收用户从键盘输入的x值 */ scanf(%f, &x); /* 根据用户输入的x值和分段函数进行相应的计算 */ if(x0) y=3*x+5; else if(x=0) y=0; else y=2*x-1;/* 输出计算的结果 */ printf(y=%fn,y); 第四步:单击编译菜单中的执行选项,该功能快捷键为Ctrl+F5,执行程序,分别输入一个正数和一个负数,执行情况如图4-4及图4-5所示。 图4-4 程序4_1.exe运行的结果1图4-5 程序4_4.exe运行的结果25、编辑、编译、运行程序题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语句,并将伪代码作为注释保留下来。本步骤的结果如下: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=a+b;break; case -: result=a-b;break; case *: result=a+b;break; case /: result=a+b;break; default: printf(运算符输入错误!n);/* 输出计算的结果 */printf(结果是%fn,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() 1)定义变量 2)输出学生成绩管理系统主菜单界面 3)输出请用户输入选项的提示信息 4)接收用户从键盘输入的选项 5)根据用户输入的选项,输出对应菜单项的信息第三步:根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。本步骤产生的代码略。第四步:单击组建菜单中的执行选项,该功能快捷键为Ctrl+F5,程序运行情况如图4-2所示。例如,若从键盘输入“2”,则输出修改学生成绩的信息。8、尝试跟踪实验任务2运行。按下【F10】键或【F11】键单步运行,其中按下【F10】键时,系统会把函数当成一条语句执行,按下【F11】键时,遇到函数的调用,则进入函数内部,继续单步执行;按下【F9】键设置/取消断点;按下【F5】键,程序开始执行,当遇到第一个断点时,暂停执行,再次按下【F5】键,程序就从当前断点继续执行,直到遇到下一个断点,再次暂时中断运行。6、 源程序清单、测试数据、结果1、#include void main() int n;printf(请输入一个整数n:); scanf(%d, &n);if(n%2=0)printf(您输入的是一个偶数!n);elseprintf(您输入的是一个奇数!n);测试运行:请输入一个整数n:100您输入的是一个偶数!请输入一个整数n:99您输入的是一个奇数!2、修改错误之后的正确程序如下:#include void main() int x, flag; scanf(%d, &x ); if(x0) flag=1; printf(这是一个正数n); else flag=0; printf(这不是一个正数n); 3、#include void main() int year;int f1,f2,f3; /* fl,f2,f3存储年份能否被4、100、400整除的逻辑值 */ printf(请输入一个年份:); scanf(%d, &year); f1=(year%4)=0); /* 判断年份是否被4整除,将结果存入fl */ f2=(year%100)=0); /* 判断年份是否被100整除,将结果存入f2 */ f3=(year%400)=0); /* 判断年份是否被400整除,将结果存入f3 */ if(f1&(!f2)|f2&f3) /* 判断是否为闰年 */printf(%d年是闰年。nn,year);else printf(%d年不是闰年。nn,year);测试运行:请输入一个年份:20002000年是闰年。请输入一个年份:20042004年是闰年。请输入一个年份:21002010年不是闰年。4、#include void main() /* 定义变量 */float x, y; /* 输出请用户输入x的提示信息 */ printf(请输入x的值:n); /* 接收用户从键盘输入的x值 */ scanf(%f, &x); /* 根据用户输入的x和分段函数进行相应的计算 */ if(x0) y=3*x+5; else if(x=0) y=0; else y=2*x-1;/* 输出计算的结果 */ printf(y=%fn,y); 测试运行:-5y=-11.0000000y=0.0000005y=20.0000005、给定y=f(x)函数,要求输入x的值,求y的值。 #include void main() float x, y;printf(请输入x的值:n); scanf(%f, &x); if(x0) y=fabs(x); else if(x10) y=x*x; else y=log10(x); printf(y=%fn, y); 测试运行:-5y=5.0000000y=0.0000005y=25.00000010y=1.000000100y=2.0000006、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);/* 接收用户从键盘输入的运算符 */scanf(%c, &op);/* 根据输入的某种运算符进行相应计算并输出计算结果,有4种不同运算 */switch(op) case +: result=a+b;break; case -: result=a-b;break; case *: result=a*b;break; case /: result=a/b;break; default: printf(运算符输入错误!n);/* 输出计算的结果 */printf(结果是%fn,result);测试运行:请输入运算符(+ - * /):+结果是8.000000请输入运算符(+ - * /):-结果是2.000000请输入运算符(+ - * /):*结果是15.000000请输入运算符(+ - * /):/结果是1.6666677、编写实验3任务7的主菜单界面的选择功能的程序。 #include stdio.h #include stdlib.h void main() char MenuItem; /* 定义一个存取用户输入的字符变量 */ /*输出学生成绩管理系统主菜单界面*/ printf(n);printf(nt+n);printf(nt+ 学生成绩管理系统 +);printf(nt+ +);printf(nt+ 1 - 录入学生成绩 +);printf(nt+ 2 - 修改学生成绩 +);printf(nt+ 3 - 查询学生成绩 +);printf(nt+ 4 - 删除学生成绩 +);printf(nt+ 5 - 排序学生成绩 +);printf(nt+ 6 - 浏览学生成绩 +);printf(nt+ 0 - 退出系统 +);printf(nt+ +);printf(nt+n);printf(n 请输入选项(06):);fflush(stdin); /*清空缓冲区*/scanf(%c, &MenuItem);getchar();switch(MenuItem) case 1: printf(n 欢迎进入录入学生成绩界面!n); printf(n 建设中,敬请期待n); printf(n 请按回车键继续n); getchar(); break; c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家事业单位招聘2025中国极地研究中心(中国极地研究所)招聘应届毕业生(博士和船员岗)拟笔试历年参考题库附带答案详解
- 兼职业务员合同范文5篇
- 同安区2025福建厦门市同安区卫生事业单位招聘20人笔试历年参考题库附带答案详解
- 南昌市2025年江西九江经济技术开发区第二批次招聘雇员4人笔试历年参考题库附带答案详解
- 内蒙古2025内蒙古大学教辅岗位招聘10人笔试历年参考题库附带答案详解
- 三明市2025福建三明市交通运输局直属事业单位选聘1人笔试历年参考题库附带答案详解
- 2025重庆市退出消防员首次安置市级双向选择选岗18人笔试参考题库附带答案详解
- 2025盛威安全设备(浙江)有限公司招聘14人笔试参考题库附带答案详解
- 2025浙江省安全生产科学研究有限公司招聘19人(杭州市)笔试参考题库附带答案详解
- 2025江苏苏州市苏惠优达供应链管理有限公司紧急招聘4人笔试参考题库附带答案详解
- IDC机房机架装机管理作业指导书
- 2024年内蒙古人力资源和社会保障厅事业单位笔试真题
- 中医治未病健康宣教
- 食堂员工服务培训
- 提升心理抗压能力的技巧
- 中医医术确有专长人员(多年实践人员)医师资格考核申请表
- 低空飞行器设计
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 脑梗塞并出血护理查房
- 三对三篮球赛记录表
评论
0/150
提交评论