实验项目名称:选择结构程序设计
实验项目类型:验证性
实验日期:2024年4月1日
一、实验目的
1.在熟练掌握if语句和switch语句的基础上,能灵活使用if语句和switch语句进行选择结构的程序设计
2.学习调试程序
二、实验硬、软件环境
Windows计算机、Dev c 6.0
三、实验内容及步骤
实验内容:
编写程序:
(1)对输入的大写字母循环移动6个位置后输出,如’A’变为’G’,’W’变为’C’。
(2)输入三个边长a、b、c,如果这三个边长能构成三角形,判断该三角形是等边三角形,等腰三角形,还是其他三角形。
(3)用switch结构编写一个处理四则运算的程序。
(4)综合训练:下图所示为某银行ATM机操作界面,图1-1为登录界面,当密码输入正确,进入图1-2服务项目选择界面。然后根据需要选择相应选项。假设密码为1234,请综合使用if-else、switch等语句,编程模拟该操作过程。
实验步骤:
项目1
解题思路:先声明字符型变量m,根据ASCII码值,当m<=84时,使其加6,反之使其减去20,最后用printf函数输出结果即可。
核心代码:
include <stdio.h>
int main()
{
char m;
printf("请输入一个大写字母:\n");
scanf("%c",&m);
if(m<=84)
m=m+6;
else
m=m-20;
printf("循环移动后的结果为:%c\n",m);
printf("15常发桂-项目1");
}
实验截图:
项目2
解题思路:先声明浮点型变量a,b,c,利用if函数,如果输入的三条边能构成三角形,进一步用if函数的嵌套判断输入的三条边所能构成三角形的类型,反之输入的三条边不能构成三角形。
核心代码:
include <stdio.h>
int main()
{
float a,b,c;
printf("请输入三个边长:\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&c+a>b)
{
if(ab&&bc)
{
printf("输入的三条边构成等边三角形\n");
}
else if(ab||ac||b==c)
{
printf("输入的三条边构成等腰三角形\n");
}
else
{
printf("输入的三条边构成其他三角形\n");
}
}
else
{
printf("输入的三条边不能构成三角形\n");
}
printf("15常发桂-项目2");
}
实验截图:
项目3
解题思路:先声明浮点型变量a,b,再声明字符型变量c,再利用Switch语句输入加减乘除四则运算,结尾加上break跳出Switch语句。
核心代码:
include <stdio.h>
int main()
{
int a,b;
char c;
scanf("%d %c %d",&a,&c,&b);
switch(c)
{
case'+':printf("a+b=%d\n",a+b);break;
case'-':printf("a-b=%d\n",a-b);break;
case'':printf("ab=%d\n",a*b);break;
case'/':printf("a/b=%d\n",a/b);break;
}
printf("15常发桂-项目3");
}
实验截图:
项目4
解题思路:先声明整型变量a,b,利用if函数,如果输入的密码a正确,则输入七种服务类型,再利用Switch语句输入后面内容,反之如果密码不正确,用printf输出密码错误。
核心代码:
include <stdio.h>
int main()
{
int a,b;
scanf("%d",&a);
if(a==1234)
{
printf("密码正确,请选择服务:\n");
printf("1.改密\n");
printf("2.转账\n");
printf("3.电子现金\n");
printf("4.查询\n");
printf("5.取款\n");
printf("6.存款\n");
printf("7.取卡\n");
scanf("%d",&b);
switch(b)
{
case 1:printf("正在进入【改密】服务界面,请稍后......\n");break;
case 2:printf("正在进入【转账】服务界面,请稍后......\n");break;
case 3:printf("正在进入【电子现金】服务界面,请稍后......\n");break;
case 4:printf("正在进入【查询】服务界面,请稍后......\n");break;
case 5:printf("正在进入【取款】服务界面,请稍后......\n");break;
case 6:printf("正在进入【存款】服务界面,请稍后......\n");break;
case 7:printf("正在进入【取卡】服务界面,请稍后......\n");break;
}
}
else
{
printf("密码错误");
}
printf("15常发桂-项目4");
}
实验截图:
四、实验结果及分析
在项目一中我因没有分情况而只对m加6导致在输入后6个字母时一直出现错误,经过同学提醒才得知输入后6个字母时要将m减去20,在项目2中,我对关系运算符掌握不牢,分不清“==”和“=”的区别,查找资料后才得知前者是等于后者是赋值。