【高分】C#小程序编一个程序

编一个程序,输入一个代表身份证号码的字符串,判断字符串长度是否正确(18位),还要判断输入的每个字符是否为数字。否则要求重新输入。不用验证身份证号码规则,只要是18为数字就行了,求完整代码。

控制台程序还是窗体程序?


// 下面是控制台程序

using System;


namespace ConsoleApplication1
{
    class Program
    {
        static bool IsDigits(char n)
        {
            char[] dig = new char[10] {'0','1','2','3','4','5','6','7','8','9'};
            
            for (int i = 0; i < dig.Length; i++)
            {
                if (Convert.ToChar(n) == dig[i]) return true;
            }
            return false;
        }
        static void Main(string[] args)
        {
            char[] ID = new char[18];
            int i;
            bool YES=true;

            string aa;
            
            while (true)
            {
                Console.Write("请输入身份证号码:");
                for (i = 0; i < 18; i++) // 保证输入的字符有18个(暂且不管它是否为数字)
                {
                    ID[i] = (char)Console.Read();
                }

                // 判断它是不是全部都为数字
                for (i = 0; i < 18; i++)
                {
                    if (Program.IsDigits(ID[i])) continue;
                    else
                    {
                        YES = false;
                        break;
                    }
                    
                }
                
                if (YES)
                {
                    Console.WriteLine("身份证号码符合要求");
                    break;
                }
                else
                { // 不符合要求
                    Console.WriteLine("不符合要求");
                    Console.ReadKey(true);
                    Console.Clear();
                    continue;
                } 
                
                
                
            }
           
        }
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-24

身份证号最后一位可以是字母的,如果你要的确实只是18位数字,如下

static Boolean CheckID(string id)
        {
            string card = id.Trim();
            if (card.Length != 18) return false;
            foreach (char c in card)
                if (!(c >= '0' && c <= '9')) return false;
            return true;
        }
        static void Main(string[] args)
        {
            Console.Write("请输入18位数字:");
            while (true)
            {
                string input = Console.ReadLine();
                if (CheckID(input)) { Console.WriteLine("输入有效"); break; }
                else Console.Write("无效数字,请重新输入:");
            }            
            Console.ReadKey();
        }

第2个回答  2013-12-24

判断字符串是否为数字:

 

            string str ="123s";            
            try
            {
                int i = Convert.ToInt32(str);
                return false;
            }
            catch
            {
                return true;
            }

长度:

            string str ="123";
            if (str.Length != 18)
            {
                //Length是长度 长度是3不等于18
            }
            else
            {
                //等于18
            }

第3个回答  2013-12-24
        string shenfenzheng = text1.Text;

if(shenfenzheng.Length != 18)
{//输入长度不等于18
return false;
}

if(CheckInputChar(shenfenzheng))
{//检查是否全数字
return true;
}
else
{
return false;
}

/// <summary>
        /// 验证用户输入
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        internal static bool CheckInputChar(string str)
        {
            for (int i = 0; i < str.Length; i++)
            {
                char a = str[i];
                if ((a >= '0' && a <= '9'))
                {

                }
                else
                {
                    return false;
                }
            }
            return true;
        }

第4个回答  2013-12-24

有个问题就是身份证不全数字的,有得结尾是x

这个小程序!!!c#的!麻烦懂的朋友给我讲讲好吗?
这个程序是用来求1+2+3+……+100的和

请教怎么弄C#一个超小程序:编写一个控制台程序,要求用户输入2个int值...
int i=0,j=0;\/\/先定义两个变量接受输入的值 if(int.TryParse(Console.ReadLine(),out i){ if(int.TryParse(Console.ReadLine(),out j)){ Console.WriteLine(string.Format("{0}*{1}={2}",i,j,i*j));Console.ReadKey();} }

求C#编写的小程序,查询数据,急!!!
private List<Entity> _data = new List<Entity>();\/\/\/ \/\/\/ 获取hk_data_5s数据 \/\/\/ internal void Fill() { SqlConnection conn = null;SqlCommand cmd = null;SqlDataAdapter SqlDataAdapter =null;DataTable dataTable = null;try { \/\/MySQL连接 \/\/从配置文件读取 conn = new SqlConnec...

用c#做一个CS模式的小程序,想安装到几台电脑上,共用一个数据库,数据库...
然后右击左边的"应用程序文件夹"打开属性对话框:将属性中的"DefaultLocation"的路径中的"[Manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"C:\\Program Files\\你的用户名\\安装解决方案名称";然后打开解决方案管理器,右击你的解决方案名称,选择属性:打开的属性页中,选择"系统必备", 在...

请教哪位高手,用C#做个计算时长的小程序
public static double getTimeDiff(string start,string end,string mode="m"){ DateTime d1,d2;mode=mode.Trim().ToLower();if (DateTime.TryParse(start,out d1)&& DateTime.TryParse(end,out d2)){ if (mode == "m")return (d2 - d1).TotalMinutes;else if (mode == "h")return ...

我用C#做了个小程序,我想让他点退出键输入密码才能退出,而且不能用任...
能实现。做成系统服务的形式可以不被Kill。具体实现我也不懂,老兄要查到相关资料共享下啊。

一道C#小程序,各位高手请进!!
StringBuilder first = new StringBuilder();前面 StringBuilder 是声明,后面new StringBuilder()才是实例化 。由于之前已经对first 声明,故 first = new StringBuilder("goodbye"); 前面不需要加StringBuilder ,但此时的first 已经重新实例化了,跟之前的first已经无关。

求c#小程序一段,要交作业滴,最好有界面,有算法滴,有的给个现成的就行...
1.vs2005或vs2008新增winform工程。2.工程建好后,默认有个Form1的窗体。3.拖进一个Label控件,把Name属性设置为lbl4.然后双击Form1的窗体,进入后台代码,开始写code了,当然我帮楼主已经写好了,是个小学生的99乘法口诀表,虽然简单,但也有算法噢^-^private void Form1_Load(object sender, EventArgs e) { this...

c# 小游戏代码
Application.Exit();\/\/关闭程序 } } private void button1_Click(object sender, EventArgs e) { i = true; \/\/开关为真 afood.F_point = afood.getpoint();\/\/产生一个食物的随机坐标 pictureBox1.Refresh();\/\/刷新picturebox timer1.Enabled = true;\/\/开启timer控件 timer1.Interval = 100; \/\/时...

帮忙修改C#小程序!急!!!高分!!在线等!!
帮忙修改C#小程序!急!!!高分!!在线等!! 模拟一个通信录,可以实现一下功能(1)增加新联系人信息(2)删除指定联系人信息(3)修改指定联系人信息(4)查询联系人信息(5)增加新群组信息(6)删除指定群组信息(7)修改群组... 模拟一个通信录,可以实现一下功能(1)增加新联系人信息(2)删除指定联系人信息(3)修改...

相似回答