编写食堂读卡器刷卡C语言程序

来源:百度知道 编辑:UC知道 时间:2024/09/26 13:29:34
题目:编写食堂读卡器刷卡程序:
假设读卡器读取RFID卡的卡号是从键盘输入的。数据的格式为:
起始位(0x02)+10位的数据位(10进制表示如0 1 2 3 4 5 6 7 8 9 )+CR(回车ASCII码:0x0d)
程序首先判断起始位,如果有效起始位则进行数据接收,接收完10位的卡号数据后,再接收回车符号,数据保存起来,并将该数据转换成16进制显示到显示器上。
急急急急!!!!!!!!!
考试中 还有追分

我写了一个,不过我有个疑问:起始位及卡号是在一行里么?

试试吧:
/* ----------程序开始---------- */
/* Copyright (C) 2009 Tung Cheng <tungcheng2008@gmail.com> */
#include <stdio.h>
#include <stdlib.h>

int main()
{
char data[20];
int i;
int number = 0;
scanf("%s", data);
int result[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
char charset[20] = "0123456789ABCDEF";
if (data[0] == 0x02) {
/* 转换成数字 */
for (i = 1; i <= 10; i ++) {
number *= 10;
number += (int)(data[i] - '0');
}
i = 0;
/* 转换成十六进制 */
do
{
result[i] = number % 16;
number /= 16;
i ++;
} while (number != 0);
/* 输出 */
for (i --; i >= 0; i --)
printf("%c", charset[result[i]]);
printf("\n");
}
return 0;
}

/* ----------程序结束---------- */

P.S. 你考试中最