zoukankan      html  css  js  c++  java
  • 函数附加练习3

    1、写个函数完成:

    1)输入10个职工的职工号和姓名;

    2)按职工号由小到大顺序排序,姓名顺序也随之调整;

    3)要求输入一个职工号,用折半查找法找出该职工的姓名,输入要查找的职工号,输出该职工的姓名。

    主要代码:

            static void Main(string[] args)
            {
                Program function = new Program();
                function.workers();
                Console.ReadLine();
            }
            public void workers()
            {
                //输入职工号、职工姓名用二维数组装。
                string[,] worker = new string[10, 2];
                int[] num = new int[10];//记录职工号。
                for (int i = 0; i < 10; i++)
                {
                    Console.Write("请输入职工号:");
                    worker[i, 0] = Console.ReadLine();
                    Console.Write("请输入职工姓名:");
                    worker[i, 1] = Console.ReadLine();
                    num[i] = int.Parse(worker[i, 0]);
                }
                Console.WriteLine();
                Console.WriteLine("排序前:");
                Console.WriteLine("职工号	姓名");
                for (int i = 0; i < 10; i++)
                {
                    for (int j = 0; j < 2; j++)
                        Console.Write(worker[i, j] + "	");
                    Console.WriteLine();
                }
                Console.WriteLine();
                //用哈希表装数组中职工号和职工姓名
                Hashtable work = new Hashtable();
                for (int i = 0; i < 10; i++)
                {
                    work.Add(int.Parse(worker[i, 0]), worker[i, 1]);
                }
                //用ArrayList集合对哈希表键进行排序
                ArrayList w = new ArrayList(work.Keys);
                w.Sort();
                Console.WriteLine("排序后:");
                Console.WriteLine("职工号	姓名");
                for (int i = 0; i < w.Count; i++)
                {
                    Console.WriteLine("{0}	{1}", w[i], work[w[i]].ToString());
                }
                //用冒泡法对职工号数组进行排序
                int t;
                for (int j = 0; j < 9; j++)
                {
                    for (int i = 0; i < 9 - j; i++)
                    {
                        if (num[i] > num[i + 1])
                        {
                            t = num[i];
                            num[i] = num[i + 1];
                            num[i + 1] = t;
                        }
                    }
                }
                Console.WriteLine();
                //输入职工号输出职工姓名
                while (true)
                {
                    Console.Write("请输入职工号:");
                    int n = int.Parse(Console.ReadLine());
                    int min = 0, max = 10, mid;
                    //折半查找法
                    while (min + 1 != max)
                    {
                        mid = (max + min) / 2;
                        if (n > num[mid])
                        {
                            min = mid;
                        }
                        else if (n < num[mid])
                        {
                            max = mid;
                        }
                        else
                        {
                            Console.WriteLine("{0}号职工的姓名为{1}。", n, work[n].ToString());
                            break;
                        }
                    }
                    if (n == num[max])
                        Console.WriteLine("{0}号职工的姓名为{1}。", n, work[n].ToString());
                    else if (n == num[min])
                        Console.WriteLine("{0}号职工的姓名为{1}。", n, work[n].ToString());
                    else if (n != num[0] && n != num[1] && n != num[2] && n != num[3] && n != num[4] && n != num[5] && n != num[6] && n != num[7] && n != num[8] && n != num[9])
                        Console.WriteLine("{0}号职工不存在。", n);
                }
            }

    结果:

  • 相关阅读:
    搬运好文章->>>>>子网划分详解
    搬运好文章->>>>>子网掩码详解
    搬运好文章->>>>>IP地址和MAC地址详解
    搬运好文章->>>>>计算机中进制之间的关系和转换
    extend 与 append 的区别
    数据类型---字符串
    多引号的作用,字符串格式化
    列表复制的几种方法
    十六进制和二进制转换
    python奇偶数求和
  • 原文地址:https://www.cnblogs.com/bosamvs/p/5493392.html
Copyright © 2011-2022 走看看