新手想实现这样个需求,不知道怎么写比较好,谢谢

pandarsok2000 2020-05-13 03:34:08
在做个抽签程序,一共有300人,要保证先到的二波人(N*2)先参加考试(也就是先抽的二批人),就是座位号会落在(1,2N)的区间里,N为每一批的人数,其他后来的人随机分配批次。打算在数据库中新建表ramdomList,这个表中有index字段、seat字段与ramdom字段。index代表抽签的顺序,seat代表座位号,ramdom代表随机数,请问我用什么方式建表比较好,SQL中写存储过程还是c#直接写?能否提供下代码?谢谢。
...全文
74 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你记得结帖给分就好了,其实,,,
pandarsok2000 2020-05-22
  • 打赏
  • 举报
回复
谢谢楼上啊~
qq_28414943 2020-05-22
  • 打赏
  • 举报
回复
不好意思,代码比较渣,但是功能实现了
qq_28414943 2020-05-22
  • 打赏
  • 举报
回复
public class Student
{
/// <summary>
/// 抽签顺序
/// </summary>
public int index { get; set; }
public int seat { get; set; }
/// <summary>
/// 号码
/// </summary>
public int random { get; set; }

}


static void Main(string[] args)
{

SortedList<int,Student> students = new SortedList<int,Student>();
for (int i = 1; i <= 300; i++)
{
students.Add(i,new Student() { index = i, seat = new Random().Next(0, 3000), random = new Random().Next(0, 3000) });
}
var pagesize = 10;
var firstCount = 2 * pagesize;
Console.WriteLine("抽取最先到达的俩批");
var firstList=students.Skip(0).Take(firstCount).Select(t=>t.Value).ToList();
List<Student> list = students.Skip(firstCount).Take(students.Count).Select(t => {
return t.Value;
}).ToList();
var remainCount= list.Count / pagesize;
List<List<Student>> gruopList = new List<List<Student>>();
for (int i = 0; i < remainCount; i++)
{
List<Student> item = new List<Student>();
for (int j = 0; j < pagesize; j++)
{
var student = list[new Random().Next(0, list.Count)];
list.Remove(student);
item.Add(student);
}
gruopList.Add(item);
}

Console.ReadKey();
}

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧