C言語のプログラミング実験レポート
名前:周Manjie
実験場所:ホーム
実験時間:2020年3月26日
パイロットプロジェクト:
- 4.3.1:if文
- 4.3.2:スイッチケースのアプリケーション
- 4.3.3:スイッチの場合if文を入れ子に
- 4.3.4:入れ子構造のスイッチケースアプリケーション
- 4.3.5:解析プログラム
- 研修プロジェクト:達成電卓
1、実験目的と要件
(「真」0「偽」のために、1)1マスターC言語表現の論理値。
関係および論理式の適切な使用を学び2。
if文の構文および使用方法の習得3.様々な形、if文とelseステートメント場合と同様に、ネストされた場合の関係に一致します。
4.ネストされたマスタースイッチ文の構文と使用法、switch文、使用状況やswitch文の注目休憩。
コンテンツ実験
1、ラボ演習:if文
問題の簡単な説明:3つのボックスを読み取る整数値の長さ、幅と高さを表し、ボックスの出力は立方体または直方体であるかを判断します。
2実験コード:
#include<stdio.h>
int main()
{
int l,w,h;
printf("请输入箱子的长、宽、高,中间用空格隔开:\n");
scanf("%d%d%d",&l,&w,&h);
if(l==w&&w==h)
printf("该箱子是正方体。\n");
else
printf("该箱子是长方体。\n");
}
3つの分析:あなたが入力したとき、あなたが使用する必要があります&&
2、演習:スイッチケースのアプリケーション
問題の簡単な説明は以下の機能を実現するプログラムを作成:プリントショップの紙(18元/本)、インクカートリッジ(132元/月)、CD(4.5元/張)販売店が割引バーゲン活動を運ぶが。特定のルールは以下の通りである:総顧客100元、5%割引にわたって商品を購入するために、200以上の元、6%の割引; 300以上の元、7%の割引; 8%の400以上の元の割引を、500以上の元、10%の割引。購入金額に応じて、借入金が計算されます。
2実験コード:
#include<stdio.h>
main()
{
int x,y,a,b,c,temp; /*x,y分别为打印纸、墨盒的单价,a,b,c分别为购买的数量*/
double z,sum,t; /*z为光盘的单价,sum为实际付款数,t为应付款数*/
printf("请输入打印纸,墨盒,光盘的数量:\n");
scanf("%d,%d,%d",&a,&b,&c);
x=18;y=132;z=4.5;
sum=a*x+b*y+c*z;
if(sum<=100)
temp=0;
else if(100<sum&&sum<=200)
temp=1;
else if(200<sum&&sum<=300)
temp=2;
else if(300<sum&&sum<=400)
temp=3;
else if(400<sum&&sum<=500)
temp=4;
else if(sum>500)
temp=5;
switch(temp)
{
case 0:t=sum;
break;
case 1:t=sum*0.95;
break;
case 2:t=sum*0.94;
break;
case 3:t=sum*0.93;
break;
case 4:t=sum*0.92;
break;
case 5:t=sum*0.9;
break;
}
printf("应付款数为:%lf\n",sum);
}
3つの分析:コンマ入力エラーをもたらす、上のテキストを入力するときに入力方式を切り替える時間がありません。数パーセントは小数として表現されなければなりません。
3、ラボ演習:スイッチケースならばネストされたステートメント
問題の簡単な説明:与えられた年での入力値、月、月の日数の出力。
2実験コード:
#include<stdio.h>
main()
{
int year,month,days;
printf("Please enter year and month:\n");
scanf("%d,%d",&year,&month);
switch(month)
{
case 2:
if(year%4==0&&year%100!=0||year%400==0)
days=29;
else
days=28;
break;
case 1:days=31;break;
case 3:days=31;break;
case 5:days=31;break;
case 7:days=31;break;
case 8:days=31;break;
case 10:days=31;break;
case 12:days=31;break;
case 4:days=30;break;
case 6:days=30;break;
case 9:days=30;break;
case 11:days=30;break;
}
printf("%d",days);
}
3つの分析:なし
4、演習:ネストされた構造のスイッチケースアプリケーション
問題の簡単な説明:自動販売機のプログラムを書きます。このプログラムは、次の機能があります。2つの2つのメニューを、1つのメニューは、商品の種類を選択され、2つの特定のメニュー項目が選択されています。顧客は最初の品物の種類を選択して、商品を選択し、購入数を入力します。商品と入力の選択、計算および表示選択された商品の合計金額の数に基づいて、自動販売機。
2実験コード:
#include<stdio.h>
int main()
{
int x,n,y;
float sum=0.0;
printf("请选择:1.日用品 2.文具 3.食品\n");
scanf("%d",&x);
switch (x)
{
case 1:printf("请选择:1.牙刷(3.5元/支) 2.牙膏(6.2元/支)\n");
printf(" 3.肥皂(2元/块) 4.毛巾(8.6元/条)\n");
scanf("%d",&y);
printf("数量?");
scanf("%d",&n);
switch (y)
{
case 1:sum=3.5*n;break;
case 2:sum=6.2*n;break;
case 3:sum=2*n;break;
case 4:sum=8.6*n;break;
}
break;
case 2:printf("请输入:1.笔(3元/支) 2.笔记本(1.2元/个)\n");
printf(" 3.文件夹(12元/个) 4.文具盒(8.6元/个)\n");
scanf("%d",&y);
printf("数量?");
scanf("%d",&n);
switch (y)
{
case 1:sum=3*n;break;
case 2:sum=1.2*n;break;
case 3:sum=12*n;break;
case 4:sum=8.6*n;break;
}
break;
case 3:printf("请输入:1.白糖(3.6元/包) 2.盐(1元/包)\n");
printf(" 3.饼(2元/个) 4.方便面(3.6元/包\n");
scanf("%d",&y);
printf("数量?");
scanf("%d",&n);
switch (y)
{
case 1:sum=3.6*n;break;
case 2:sum=1*n;break;
case 3:sum=2*n;break;
case 4:sum=3.6*n;break;
}
break;
}
printf("总计:%.2f元\n",sum);
return 0;
}
3つの分析:コードは半分の幅英語のテキスト、注意を払うが含まれています
5、ラボ演習:解析プログラム
問題の簡単な説明:変更エラーコード
2実験コード:
ソースコード:
#include<stdio.h>
int main()
{
int num=20;
if(5<sum<10)
printf("%d in rangd (5,10)!\n",num);
else
printf("%d out of range (5,10)!\n",num);
}
コードを変更した後:
#include<stdio.h>
int main()
{
int num=20;
if(5<num&&num<10)
printf("%d in rangd (5,10)!\n",num);
else
printf("%d out of range (5,10)!\n",num);
}
3つの分析:元のコードの入力エラーの条件が、元のコードの場合には、唯一の判定が真であるか偽です。結果は、このように出力が0または1であり、その結果、エラーです。論理演算子は、それらを接続するために使用されなければなりません。
研修プロジェクト:達成電卓
フローチャート:
コード:
#include<stdio.h>
main()
{
int e;
double a,b,c,d;
char op;
for(;c>0;c!=1)
{
printf("请输入一个算式:\n");
scanf("%lf%c%lf",&a,&op,&b);
getchar();
switch(op)
{
case'+':
printf("%lf+%lf=%lf\n",a,b,d=a+b);
break;
case'-':
printf("%lf-%lf=%lf\n",a,b,d=a-b);
break;
case'*':
printf("%lf*%lf=%lf\n",a,b,d=a*b);
break;
case'/':
if(b!=0)
printf("%lf/%lf=%lf\n",a,b,d=a/b);
else
printf("除数不能为0!\n");
break;
}
printf("结果为:\n",d);
printf("继续计算请输入不为1的正数,退出请输入1:\n");
scanf("%d",&e);
if(e==1)
break;
}
}
分析:ループの問題の発生した無限ループを使用して
実験概要:
if文とswitch文で主に馴染み、この実験では。コードセクションの簡単な計算で遭遇する主な問題は、学生だけの助けを借りて解決する、またはそれ以上、それを操作するを使用して、特にループ!