欢迎光临散文网 会员登陆 & 注册

题目 作业1:抽奖

2023-04-03 15:56 作者:温柔的烟火  | 我要投稿

题目为:

产生40个330200开头、出生年份为2000-2010的身份证号。如果出现重复身份证号,则丢弃,重新生成

口从生成的身份证中抽取1个一等奖,2个二等奖,4个三等奖

口 按年龄从大到小输出身份信息,每项信息用逗号分开,每个人信息占一行,信息项如下:

身份证号

美国点日期色内名个

出生日期:样式为“2023-03-15”

年龄:样式为“10岁”

性别

奖项:样式为“一等奖”












代码如下:


// See https://aka.ms/new-console-template for more information

//身份证411425200201260056  总共有330200-2000-0126-xxxx

using System;

using System.Reflection.Emit;

using System.Text;

using static System.Net.Mime.MediaTypeNames;


struct people

{

    public int year;

    public int month;

    public int day;

    public int four_wei;//最后四位

    public string win;//奖项  1(1)  2(2)  3(4)

    public string sex;//看第17位,也就是倒数第二位,奇数为难,偶数为女

};

class program

{

    //生成2000-2010年份

    public static int generateYear()

    {

        StringBuilder bu = new StringBuilder();

        Random rd = new Random();

        int year = rd.Next(2000,2010);

        bu.Append(year);

        return int.Parse(bu.ToString());

    }

    //生成2位随机数  表示出生月

    public static int generateTwo_month()

    {

        Random rad = new Random();

        int value = rad.Next(1, 12);

        return value;


    }

    //生成2位随机数  表示出生日

    public static int generateTwo_day(int year,int month)

    {

        //依据年与月来决定上限下限

        


        int limit_day = DateTime.DaysInMonth(year,month);

        Random rad = new Random();

        int value = rad.Next(1, limit_day);

        return value;


    }

    //生成2位随机数  表示出生月

    public static int generateFour()

    {

        Random rad = new Random();

        int value = rad.Next(0,9999);

        return value;


    }

    static void Main(string[] args)

    {

        //随机生成7个数(1-40),

        //

        int[] win_sum=new int[7]; 

        for(int i=0;i<7;i++)

        {

            Random rad = new Random();

            int value = rad.Next(1, 40);

            //检查?

            win_sum[i] = value;

            for(int j=0;j<i;j++)

            {

                if(win_sum[i] == win_sum[j])

                {

                    value = rad.Next(1, 40);

                    win_sum[i] = value;

                }

            }

           // Console.WriteLine(win_sum[i]);

        }

        

        people[] peo = new people[40];


        //初始化

        for (int i = 0; i <40; i++)

        {

            peo[i].year= generateYear();

            peo[i].month= generateTwo_month();

            peo[i].day = generateTwo_day(peo[i].year, peo[i].month);

            peo[i].four_wei = generateFour();

            //检查性别  取第2位

            if(((peo[i].four_wei / 10) % 10)%2==0)

            {

                peo[i].sex = "女";

                

            }

            else

            {

                peo[i].sex = "男";

            }

            //奖项分配

            int k;

            for (k=0;k<7;k++)

            {

                if (win_sum[k]==i+1)

                {

                    //分配奖项

                    if(k==0)

                    {

                        peo[i].win = "一等奖";

                        break;

                    }

                    if(k>=1&& k<=2)

                    {

                        peo[i].win = "二等奖";

                        break;

                    }

                    if(k>=3&& k<7)

                    {

                        peo[i].win = "三等奖";

                        break;

                    }

                }

            }

            if(k>=7)

            {

                peo[i].win = "没有奖";

            }


            Console.WriteLine("身份证号:330200"+peo[i].year+peo[i].month + peo[i].day+ peo[i].four_wei + " 出生日期:"+peo[i].year+"-" + peo[i].month+"-" + peo[i].day +"年龄"+(2023 - peo[i].year) +"性别:"+peo[i].sex+"奖项:" + peo[i].win) ;


        }

        //查重?如果完全一样则将该peole重新赋值

        int reduce_people = 0;

        //重新生成

    }

}



运行示例:


题目 作业1:抽奖的评论 (共 条)

分享到微博请遵守国家法律