分析该程序的每一个步骤谢谢

分析该程序的每一个步骤谢谢,第1张

对这个程序做一下总的分析说明:这是一个饭店的自助服务系统程序,功能就是自助预定房间和退订房间。无论是预定还是退订,都需要先输入身份z来登陆系统,房间有4种:单人间、双人间、标准间、总统套房,选择需要的房间类型以及预定或退定的天数,就会计算花费。这个程序只是提供了这样一个查询的功能,至于其他比如收费或者退钱就不关这个程序的事了~~(把程序分块后再看就比较简单啦~~lz看下)

#include<stdioh>

#include<windowsh>

void search();

main() //这个是主程序

{

int f; //定义整型变量f

printf(" \n"); //输出(即屏幕显示,作提示用)“”并换行

Sleep(1000);

printf(" 欢迎来到新疆大饭店 \n" ); //输出“ 欢迎来到新疆大饭店 ”并换行

Sleep(1000);

printf(" \n");

Sleep(1000);

printf("1进入 2退出\n"); //输出1进入 2退出并换行

scanf("%d",&f); //输入一个整数赋值给f

if(f==1)

search(); //如果输入的f为1,运行程序void search(),也就是进入了系统,要预定或者退订房间

else

printf("输入错误"); //否则,输出“输入错误”

}

void search() //以下都是void search()程序内容

{

int d[15],g[3],a,b,c,x,y,h,l; //定义整型变量d[15],g[3],a,b,c,x,y,h,l(前两个为数组)

printf("请选择您需要的号码:\n1预定房间\n2退定房间\n"); //输出“请选择您需要的号码:”并换行,再输出“1预定房间”并换行,再输出“2退定房间”并换行

scanf("%d",&a); //输入一个整数并赋值给a

if(a>=3 || a<1)

printf("您输入有误请您重试!\n"); //如果a>=3或者a<1,输出“您输入有误请您重试!”并换行

else switch(a)

{

case 1: //如果输入的a=1(即选择了1预定房间),执行下列语句

{

printf("请您输入您的身份z号码\n"); //输出“请您输入您的身份z号码”并换行

scanf("%d",&d[15]); //输入15位整数赋值给d[15]

printf("您已登陆成功^-^\n"); //输出“您已登陆成功^-^”并换行

printf("请您选择退定种类:\n"); //输出“请您选择退定种类:”并换行

printf("1单人间/夜150元\n2双人间/夜200元\n3标准间/夜300元\n4总统套房/夜600元\n"); //输出“1单人间/夜150元”并换行,输出“2双人间/夜200元”并换行,输出“标准间/夜300元”并换行,输出“4总统套房/夜600元”并换行

scanf("%d",&b); //输入一个整数并赋值给b

switch(b)

{

case 1:printf("请输入预定天数\n"); //如果b=1(即选择了1单人间/夜150元),执行下列语句

scanf("%d",&x); //输入一个整数并赋值给x(这里x表示天数)

printf("请预交款为%d元\n",x150); //输出“请预交款为x150元”(输出时,x150是一个具体的数字)

printf("1确定 2返回"); //输出“1确定 2返回”

scanf("%d",&h); //输入一个整数并赋值给h

printf("您已预定成功 房间号码为202\n");break; //输出“您已预定成功 房间号码为202”并换行;跳出switch(b)语句,即选定好了房间类型和天数

case 2:printf("请输入预定天数\n"); //下面三种b=2、3、4同b=1时

scanf("%d",&x);

printf("请预交款为%d元\n",x200);

printf("1确定 2返回");

scanf("%d",&h);

printf("您已预定成功 房间号码为305\n");break;

case 3:printf("请输入预定天数\n");

scanf("%d",&x);

printf("请预交款为%d元\n",x300);

printf("1确定 2返回");

scanf("%d",&h);

printf("您已预定成功 房间号码为208\n");break;

case 4:printf("请输入预定天数\n");

scanf("%d",&x);

printf("请预交款为%d元\n",x600);

printf("1确定 2返回");

scanf("%d",&h);

printf("您已预定成功 房间号码为306\n");break;

default :printf("您的输入有错请您重试"); //如果b不是1、2、3、4的任何一个,输出“您的输入有错请您重试”

}

}break; //跳出switch(a)语句,即退出预定房间的程序

case 2: //如果输入的a=2(即选择了1退订房间),执行下列语句 (具体意义参见case 1的部分)

{

printf("请您输入您的身份z号码\n");

scanf("%d",&d[15]);

printf("您已登陆成功^-^\n");

printf("请您选择退订服务种类:\n");

printf("1单人间/夜150元\n2双人间/夜200元\n3标准间/夜300元\n4总统套房/夜600元\n");

scanf("%d",&c);

switch(c)

{

case 1:printf("请您输入要退定的房间号码\n");

scanf("%d",&g[3]);

printf("请您输入要退订的天数\n");

scanf("%d",&y);

printf("我们将退您%d元\n",y150);

printf("您退定成功: 谢谢您的光临 !\n");break;

case 2:printf("请您输入要退定的房间号码\n");

scanf("%d",&g[3]);

printf("请您输入要退订的天数\n");

scanf("%d",&y);

printf("我们将退您%d元\n",y200);

printf("您退定成功谢谢您的光临 !");break;

case 3:printf("请您输入要退定的房间号码\n");

scanf("%d",&g[3]);

printf("请您输入要退订的天数\n");

scanf("%d",&y);

printf("我们将退您%d元\n",y300);

printf("您退定成功:谢谢您的光临 !\n");break;

case 4:printf("请您输入要退定的房间号码\n");

scanf("%d",&g[3]);

printf("请您输入要退订的天数\n");

scanf("%d",&y);

printf("我们将退您%d元\n",y600);

printf("您退定成功:谢谢您的光临 !\n");break;

default:printf("您的输入有错请您重试");

}

}break; //跳出switch(a)语句,即退出预定退订房间的程序

}

{

int n; //定义整型变量n

printf("谢谢光顾\n是否要再预定 1是2否"); //输出“谢谢光顾”并换行,输出“是否要再预定 1是2否”

scanf("%d",&n); //输入一个整数并赋值给n

if(n==1)

search(); //如果n=1,运行程序void search()

else

printf("再见"); //如果n不是1,输出“再见”

} //这部分是最后给顾客做确认用的~保证顾客不再需要其他服务了

}

uint8_t ptr uint8_t len 这是传入参数。 len可能是长度,ptr可能指向的是一个数组。

^= 按位异或后赋值。

crc ^= ptr++; //首先将数组第一位异或后复制给Crc。之后ptr再向前一步,简单理解就是指向数组的下一位。

for(i = 0;i < 8;i++) { if(crc & 0x01) crc = (crc >> 1) ^ 0x8C; else crc >>= 1; }

//将取到数组第一位值,与0x01上。如果非零,crc就需要右移一位,再与0x8C异或。否则右移1位。每位数组值要做8次。

while(len--) //表示要判断数组内len个值。或则说是取得数组内len长度的元素个数。

return crc; //len个数组值都作完以后,将Crc返回。

我想你需要了解一下 0x01的意义,0x8C的意义。

0x01 = 0000 0001

0x8c = 1000 1100

没看到啊,已经有人答完了。哎,早知道就不写这么多字了。

以上就是关于分析该程序的每一个步骤 谢谢全部的内容,包括:分析该程序的每一个步骤 谢谢、单片机C语言程序分析、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9337050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存