實驗專案名稱:選擇結構程式設計
實驗專案型別:驗證性
實驗日期: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中,我對關係運算子掌握不牢,分不清“==”和“=”的區別,查詢資料後才得知前者是等於後者是賦值。