• 年度单身舞会队列


    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    
    namespace TestOfQueueDancers
    {
        class Program
        {
            static void Main(string[] args)
            {
                Queue males = new Queue();
                Queue females = new Queue();
                
                FormLines(males,females);
                StartDancing(males,females);
    
                if (males.Count > 0 || females.Count > 0)
                {
                    HeadOfLine(males,females);
                }
    
                NewDancers(males,females);
    
                if (males.Count > 0 || females.Count > 0)
                {
                    HeadOfLine(males,females);
                }
    
                NewDancers(males,females);
                Console.WriteLine("Press Enter");
    
            }
    
            static void NewDancers(Queue male, Queue female)
            {
                Dancer m, w;
                m = new Dancer();
                w = new Dancer();
    
                if (male.Count > 0 && female.Count > 0)
                {
                    m.GetName(male.Dequeue().ToString());
                    w.GetName(female.Dequeue().ToString());
                }
                else if ((male.Count > 0) && (female.Count == 0))
                {
                    Console.Write("Wating for female dancer.");
                }
                else if ((female.Count > 0) && (male.Count == 0))
                {
                    Console.Write("Wating for male dancer.");
                }
            }
    
            public static void HeadOfLine(Queue male, Queue female)
            {
                Dancer w, m;
                w = new Dancer();
                m = new Dancer();
    
                if (male.Count > 0)
                {
                    m.GetName(male.Peek().ToString());
                }
                if (female.Count > 0)
                {
                    w.GetName(female.Peek().ToString());
                }
    
                if (!string.IsNullOrEmpty(m.name) &&
                    !string.IsNullOrEmpty(w.name))
                {
                    Console.WriteLine("Next in line are:" + m.name + "\t" + w.name);
                }
                else
                {
                    if (!string.IsNullOrEmpty(m.name))
                    {
                        Console.WriteLine("Next in line is:" + m.name);
                    }
                    else
                    {
                        Console.WriteLine("Next in line is:" + w.name);
                    }
                }
            }
    
            public static void StartDancing(Queue male, Queue female)
            {
                Dancer m, w;
                m = new Dancer();
                w = new Dancer();
                Console.WriteLine("Dance partners are:");
    
                Console.WriteLine();
                for (int i = 0; i < 4; i++)
                {
                    m.GetName(male.Dequeue().ToString());
                    w.GetName(female.Dequeue().ToString());
    
                    Console.WriteLine(w.name + "\t" + m.name);
                }
            }
    
            public static void FormLines(Queue male, Queue female)
            {
                Dancer d = new Dancer();
                StreamReader inFile;
                inFile = File.OpenText("dancers.dat");
                string line;
                while (inFile.Peek() != -1)
                {
                    line = inFile.ReadLine();
                    d.sex = line.Substring(0, 1);
                    d.name = line.Substring(2, line.Length - 2);
    
                    if (d.sex == "M")
                    {
                        male.Enqueue(d);
                    }
                    else
                    {
                        female.Enqueue(d);
                    }
                }
    
                
            }
        }
    
        public struct Dancer
        {
            public string name;
            public string sex;
    
    
            public override string ToString()
            {
                return name;
            }
    
            public void GetName(string n)
            {
                name = n;
            }
        }
    }


    dancers.dat文件类容:

    F Jennifer Ingram
    M Frank Optiz
    M Terrill Beckerman
    M Mike Dahly
    F Beata Lovelace
    M Raymond Williams
    F Beth Munson
    M Don Gundolf
    F Bernica Tackett
    M David Durr
    M Mike McMillan
    F Nikki Feldman


  • 相关阅读:
    SpringBoot+Vue+HIKVSION实现摄像头多选并多窗口预览(插件版)
    Vue+Video.js播放m3u8视频流(海康威视摄像头+RTMP服务+FFmpeg)
    Vue+Openlayers中实现地图旋转
    Vue中实现检测当前是否为IE模式(极速模式还是兼容模式)
    Vue+Openlayer使用overlay实现弹窗弹出显示与关闭
    Vue+Openlayers实现显示图片并分优先级多图层加载
    Vue+Openlayer使用Draw实现交互式绘制线段
    ActionScriopt 产生随机颜色
    在AS3中格式化日期
    ArcGis For Flex 之 QueryTask地理坐标展现【原创】
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671520.html
Copyright © 2020-2023  润新知