在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例桌面应用界面/GUI → C# [中华民国身份证字号(第七代)-验证及产生器]

C# [中华民国身份证字号(第七代)-验证及产生器]

桌面应用界面/GUI

下载此实例
  • 开发语言:C#
  • 实例大小:0.26M
  • 下载次数:22
  • 浏览次数:1029
  • 发布时间:2016-08-13
  • 实例类别:桌面应用界面/GUI
  • 发 布 人:jim197911
  • 文件格式:.rar
  • 所需积分:2
 相关标签: c d t check

实例介绍

【实例简介】TaiwanIdentificationCardCheck [中華民國身分證字號(第七代)-驗證及產生器]

【实例截图】

【核心代码】

public partial class Form1 : Form
    {
        int D1, D2, D3, D4, D5, D6, D7, D8, D9; //身分證後面9位數字        
        string L1; //身分證第一個字母
        int n1, n2; //身分證第一個字母轉換字元
        string res;
        int iStartIndex;

        int[] id = new int[11];
        string[] address = new string[] { "A.台北市","B.台中市","C.基隆市","D.台南市",
        "E.高雄市","F.新北市","G.宜蘭縣","H.桃園縣","I.嘉義市","J.新竹縣","K.苗栗縣",
        "M.南投縣","N.彰化縣","O.新竹市","P.雲林縣","Q.嘉義縣","T.屏東縣","U.花蓮縣",
        "V.台東縣","W.金門縣","X.澎湖縣","Z.連江縣" };

        private void produce()
        {
            if (comboBox1.Text == address[0]) { id[0] = 10; id[10] = 65; }
            else if (comboBox1.Text == address[1]) { id[0] = 11; id[10] = 66; }
            else if (comboBox1.Text == address[2]) { id[0] = 12; id[10] = 67; }
            else if (comboBox1.Text == address[3]) { id[0] = 13; id[10] = 68; }
            else if (comboBox1.Text == address[4]) { id[0] = 14; id[10] = 69; }
            else if (comboBox1.Text == address[5]) { id[0] = 15; id[10] = 70; }
            else if (comboBox1.Text == address[6]) { id[0] = 16; id[10] = 71; }
            else if (comboBox1.Text == address[7]) { id[0] = 17; id[10] = 72; }
            else if (comboBox1.Text == address[8]) { id[0] = 34; id[10] = 73; }
            else if (comboBox1.Text == address[9]) { id[0] = 18; id[10] = 74; }
            else if (comboBox1.Text == address[10]) { id[0] = 19; id[10] = 75; }
            else if (comboBox1.Text == address[11]) { id[0] = 21; id[10] = 77; }
            else if (comboBox1.Text == address[12]) { id[0] = 22; id[10] = 78; }
            else if (comboBox1.Text == address[13]) { id[0] = 35; id[10] = 79; }
            else if (comboBox1.Text == address[14]) { id[0] = 23; id[10] = 80; }
            else if (comboBox1.Text == address[15]) { id[0] = 24; id[10] = 81; }
            else if (comboBox1.Text == address[16]) { id[0] = 27; id[10] = 84; }
            else if (comboBox1.Text == address[17]) { id[0] = 28; id[10] = 85; }
            else if (comboBox1.Text == address[18]) { id[0] = 29; id[10] = 86; }
            else if (comboBox1.Text == address[19]) { id[0] = 32; id[10] = 87; }
            else if (comboBox1.Text == address[20]) { id[0] = 30; id[10] = 88; }
            else if (comboBox1.Text == address[21]) { id[0] = 33; id[10] = 90; }
        }


        public Form1()
        {
            InitializeComponent();
        }
        
        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 22; i )
            {
                comboBox1.Items.Add(address[i]);
            }

            //ColorLabel label = new ColorLabel();
            //label.Size = new Size(150, 20);
            //label.Location = new Point(465, 200); ;
            //label.Text = "驗證結果:";
            //label.AppendText(" 格式正確", Color.Red);
            //this.Controls.Add(label);
        }

        private void CheckID(int N)
        {
            if ((N % 10) == 0)
            {
                //MessageBox.Show("格式正確");
                labValid.Text = "驗證結果: 格式正確";
            }
            else
            {
                //MessageBox.Show("格式錯誤");
                labValid.Text = "驗證結果: 格式錯誤";
            }
        }

        /// <summary>
        /// 初次登記的戶籍地編號
        /// </summary>
        /// <param name="value">編號</param>
        /// <returns>戶籍地</returns>
        static string IsCounties(string value)
        {
            string[] stringArray = new string[1];
            switch (value)
            {
                case "A": return "10,臺北市";
                case "B": return "11,臺中市";
                case "C": return "12,基隆市";
                case "D": return "13,臺南市";
                case "E": return "14,高雄市";
                case "F": return "15,新北市";
                case "G": return "16,宜蘭縣";
                case "H": return "17,桃園市";
                case "I": return "34,嘉義市";
                case "J": return "18,新竹縣";
                case "K": return "19,苗栗縣";
                case "M": return "21,南投縣";
                case "N": return "22,彰化縣";
                case "O": return "35,新竹市";
                case "P": return "23,雲林縣";
                case "Q": return "24,嘉義縣";
                case "T": return "27,屏東縣";
                case "U": return "28,花蓮縣";
                case "V": return "29,臺東縣";
                case "W": return "32,金門縣";
                case "X": return "30,澎湖縣";
                case "Z": return "33,連江縣";

                default:
                    return "";
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string ID = textBox1.Text;
            int X2 = 0;
            L1 = ID.Substring(0, 1).ToUpper();//將輸入身分證字號的第一個字母換成大寫
            ID = L1 ID.Substring(1, 9);//取得大寫字母後,再將後面的數字取出來 接在L1後面變成ID
            textBox1.Text = ID;

            //將每一個位數放入D1~D9
            D1 = int.Parse(ID.Substring(1, 1));
            D2 = int.Parse(ID.Substring(2, 1));
            D3 = int.Parse(ID.Substring(3, 1));
            D4 = int.Parse(ID.Substring(4, 1));
            D5 = int.Parse(ID.Substring(5, 1));
            D6 = int.Parse(ID.Substring(6, 1));
            D7 = int.Parse(ID.Substring(7, 1));
            D8 = int.Parse(ID.Substring(8, 1));
            D9 = int.Parse(ID.Substring(9, 1));


            string searchWithinThis = "ABCDEFGHIJKMNOPQTUVWXZ";
            string searchForThis = L1;
            int firstCharacter = searchWithinThis.IndexOf(searchForThis);
            firstCharacter = firstCharacter 1;

            #region 檢查D1(第一個數字),依此判斷性別
            if (D1 == 1)
                tbGender.Text = "男";
            else if (D1 == 2)
                tbGender.Text = "女";
            else
                tbGender.Text = "未知"; 
            #endregion


            #region Method1
            string[] Country = IsCounties(L1).Split(',');

            tbCensusRegister.Text = Country[1];

            var Arr = Country[0].ToCharArray();
            n1 = Convert.ToInt32(Arr[0].ToString());
            n2 = Convert.ToInt32(Arr[1].ToString());

            int sum;
            sum = n1 * 1 n2 * 9 D1 * 8 D2 * 7 D3 * 6 D4 * 5 D5 * 4 D6 * 3 D7 * 2 D8 * 1 D9 * 1; 
            #endregion


            #region Method2
            //將第一個字母所對應的第一位數(X1)和第二位數(X2)做處理
            //int X1=0;
            //if (L1.Equals("A") || L1.Equals("B") || L1.Equals("C") || L1.Equals("D") ||
            //    L1.Equals("E") || L1.Equals("F") || L1.Equals("G") || L1.Equals("H") ||
            //    L1.Equals("I") || L1.Equals("J") || L1.Equals("K"))
            //    X1 = 1;
            //else if (L1.Equals("L") || L1.Equals("M") || L1.Equals("N") || L1.Equals("P") ||
            //    L1.Equals("Q") || L1.Equals("R") || L1.Equals("S") || L1.Equals("T") || 
            //    L1.Equals("U") || L1.Equals("V"))
            //    X1 = 2;
            //else if (L1.Equals("X") || L1.Equals("Y") || L1.Equals("W") || L1.Equals("Z") ||
            //    L1.Equals("I") || L1.Equals("O"))
            //    X1 = 3;

            //if (firstCharacter - 1 == 0 || firstCharacter - 1 != 0)
            //{
            //    X2 = firstCharacter - 1;
            //}
            //else if (firstCharacter - 1 == -1)
            //    X2= 0;

            //int sum;
            //sum = X1 9 * X2 8 * D1 7 * D2 6 * D3
            //      5 * D4 4 * D5 3 * D6 2 * D7 D8 D9; 
            #endregion
            CheckID(sum);
        }

        private void btnCreate_Click(object sender, EventArgs e)
        {
            int rnd, remainder; //remainder為身分證產生時的餘數
            textBox1.Text = "";
            Random rnd1 = new Random();
            rnd = rnd1.Next(0, 100000000); //決定身分證字號A1XXXXXXXX中,8個X的數字

            produce();

            if (radioButton1.Checked == true) { id[1] = 1; } //判斷第二碼點選是男生or女生
            else if (radioButton2.Checked == true) { id[1] = 2; }
            else if (radioButton3.Checked == true) { id[1] = (rnd % 2) 1; }

            for (int i = 2; i <= 9; i )
            {
                id[i] = Convert.ToInt16(rnd.ToString("D8").Substring(i - 2, 1));
                //id[i]=Convert.ToInt16(rnd.ToString().PadLeft(8,'0').Substring(i-2, 1));
                //以上兩種,皆可將未滿8個字元的rnd亂數補至8字元(以0增加)
                //ex:rnd=238則會變成00000238
            }

            remainder = (id[0] / 10 id[0] % 10 * 9 id[1] * 8 id[2] * 7
            id[3] * 6 id[4] * 5 id[5] * 4 id[6] * 3 id[7] * 2
            id[8] * 1 id[9] * 1) % 10;

            if (remainder == 0)
            {
                textBox1.Text = textBox1.Text.Replace(" ", "") id[10].ToString().Replace(id[10].ToString(), Convert.ToChar(id[10]).ToString());
                for (int i = 1; i <= 9; i )
                { textBox1.Text = id[i].ToString().Replace(" ", ""); }
            }
            else if (remainder > 0)
            {
                id[9] = (id[9] (10 - remainder)) % 10; //檢查碼還原

                textBox1.Text = textBox1.Text.Replace(" ", "") id[10].ToString().Replace(id[10].ToString(), Convert.ToChar(id[10]).ToString());

                for (int i = 1; i <= 9; i )
                {
                    //按下身分證產生按鈕,產生的身分證號碼會顯示在textbox上面
                    textBox1.Text = id[i].ToString().Replace(" ", "");
                }
            }
        }
    }

标签: c d t check

实例下载地址

C# [中华民国身份证字号(第七代)-验证及产生器]

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警