给2年级的小朋友出的练习题。我在想,对于一个昨天才开始接触可视化编程的童靴来说,这个题的要求是不是有点过于复杂了。
■Lieo, 2010年9月11日
题目名称:注册码验证程序
题目难度:Easy(容易)
题目类别:控件使用、数值计算
有效期:2010年9月18日前
一、问题描述
请设计一个验证用户输入的用户号和注册号是否匹配的小程序,包括界面和代码。
用户号是一个5位的非负整数,注册码包括三个部分,每个部分是一个2位的非负整数。请根据下面叙述的算法,根据用户号计算出相应的注册码,并验证用户的输入是否正确。
我们假设用户输入的用户号为abcde,根据该用户号计算出来的注册码为uv-xy-zw,其中的字母都为0到9的整数,则根据abcde计算uv-xy-zw的算法为:
·u=b, v=d,即注册码的前两位分别等于机器号的第二位和第四位;
·xy = abcde % 77,即注册码的第二部分是用户号对77取余,如果取余的结果不足10,则要在前面添0;
·zw = (xy*u*v) % 100,即注册码的第三部分是根据上面计算出的 b、d、xy 而定的,如果取余结果不足10,要在前面添0。
例如,用户号为12345,则按照上面的算法计算注册码过程如下:
·u=b, v=d,则uv = 24;
·xy = abcde % 77,由于 12345 % 77 = 25,故xy=25;
·zw = (xy*u*v),由于 (25*2*4) % 100 = 0,则zw=00。
故计算出来的注册码为:24-25-00,用户将这三个部分24、25、00分别填入三个文本框中。
程序的界面布局如下图所示:
程序运行后,用户在“用户号”文本框中填入一个5位非负整数,比如“12345”,在“注册码”文本框中分别输入uv-xy-zw的三个部分,例如第一个文本框填入“24”,第二个文本框填入“25”,第三个文本框填入“00”,之后单击“验证”按钮。
如果程序根据用户号计算出的注册码与用户填入的一致,则弹出对话框“输入正确”,否则弹出对话框“输入错误”。
运行效果如下图:
二、可能要用到的知识
1. 将字符串转换成整数。设x是一个整型变量,str是要转换的字符串:
x = Convert.ToInt32(str) ;
2. 将整数转换成字符串。设x是一个整数,str是转换后的字符串:
str = x.ToString() ;
3. 获取用户在文本框中输入的内容要用文本框的Text属性。
三、备注
1. 保证用户的输入正确,不必验证用户是否输入的是5位非负整数;
2. 如果你觉得本题有难度,请回想一下C语言中是怎样获取3位数中个、十、百位上的数字的。本题只需要进行简单的计算,然后验证即可。