zjbonrace 2015-01-19 11:25 采纳率: 100%
浏览 1842
已采纳

link生成随机课程表,要求每天6节课

link生成随机课程表,要求每天6节课,每天都有语文数学英语,总共各7节,体育课2节,美术课1节,音乐课1节,劳动课1节,社会课1节,自然课1节,思想品德课1节,剩下都是自修课。

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-01-19 12:25
    关注
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[] courses = { "体育课", "体育课", "美术课", "音乐课", "劳动课", "语文课", "语文课", "语文课", "语文课", "语文课", "语文课", "语文课", 
                                       "数学课", "数学课", "数学课", "数学课", "数学课", "数学课", "数学课", "英语课", "英语课", "英语课", "英语课", "英语课",
                                   "英语课", "英语课"};
                var result = Enumerable.Range(0, 5).Select(_ => Enumerable.Range(0, 6).Select(__ => "").ToArray()).ToArray();
                var rndseq = Enumerable.Range(0, 30).OrderBy(_ => Guid.NewGuid()).Zip(courses, (x, y) => new { x, y }).ToArray();
                while (true && !result.All(x => x.Contains("语文课") && x.Contains("数学课") && x.Contains("英语课")))
                {
                    for (int i = 0; i < 5; i++)
                    {
                        for (int j = 0; j < 6; j++)
                        {
                            if (rndseq.Any(x => x.x == i * 6 + j))
                                result[i][j] = rndseq.First(x => x.x == i * 6 + j).y;
                            else
                                result[i][j] = "自修课";
                        }
                    }
                }
                for (int j = 0; j < 6; j++)
                {
                    for (int i = 0; i < 5; i++)
                    {
                        Console.Write(result[i][j] + "\t");
                    }
                    Console.WriteLine();
                }
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题