예제 #1
0
        public static void Main(string[] args)
        {
            Console.WriteLine("输入创建用户名,例如:FREEstrikerABbo");
            //string userName = Console.ReadLine();
            string userName = "******";

            Console.WriteLine("输入创建密码,例如:1236zccg99326TEST");
            //string password = Console.ReadLine();
            string password = "******";

            Console.WriteLine(UserLogic.CreateUser(userName, password).Prompt);
            var userOR = UserLogic.LogInUser(userName, password);

            Console.WriteLine(userOR.Prompt);
            var userInfoOR = UserInfoLogic.GetUserInfo(userOR.Result);

            Console.WriteLine(userInfoOR.Prompt);
            var judgeInfoOR = JudgeInfoLogic.GetJudgeInfo(userOR.Result);

            Console.WriteLine(judgeInfoOR.Prompt);
            ExerciseOption exerciseOption = new ExerciseOption(IntervalType.LE10,
                                                               //OperationType.Plus |
                                                               //OperationType.Sub |
                                                               //OperationType.Mul |
                                                               //OperationType.Div |
                                                               OperationType.DivWithRemainder, QuantityType.E10);
            var exerciseOR = ExerciseLogic.GetExercise(exerciseOption);

            Console.WriteLine(exerciseOR.Prompt);
            for (int i = 0; i < exerciseOR.Result.ExerciseUnits.Length; i++)
            {
                Console.WriteLine(exerciseOR.Result.ExerciseUnits[i].Topic);
            }
            Console.WriteLine("输入答案:");
            ExerciseResult exerciseResult = new ExerciseResult()
            {
                ExerciseResultUnit = new ExerciseResultUnit[exerciseOR.Result.ExerciseUnits.Length]
            };

            for (int i = 0; i < exerciseOR.Result.ExerciseUnits.Length; i++)
            {
                exerciseResult.ExerciseResultUnit[i].Remainder = 0;
                exerciseResult.ExerciseResultUnit[i].Result    = Convert.ToInt32(Console.ReadLine());
            }
            var judgeResultOR = ExerciseLogic.JudgeExercise(exerciseOR.Result, exerciseResult, userOR.Result);

            Console.WriteLine(judgeResultOR.Prompt);
            userInfoOR = UserInfoLogic.GetUserInfo(userOR.Result);
            Console.WriteLine(userInfoOR.Prompt);
            judgeInfoOR = JudgeInfoLogic.GetJudgeInfo(userOR.Result);
            Console.WriteLine(judgeInfoOR.Prompt);
            Console.WriteLine(UserLogic.DeleteUser(userOR.Result).Prompt);
            Console.ReadKey();
        }
예제 #2
0
        public static OperationResult <Exercise> GetExercise(ExerciseOption exerciseOption)
        {
            Exercise exercise = null;

            try
            {
                exercise = ExerciseGeneratorFactory.DriveGenerator().GetExercise(exerciseOption);
            }
            catch (Exception e)
            {
                return(new OperationResult <Exercise>("生成失败!" + e.Message, true, null));
            }
            return(new OperationResult <Exercise>("生成成功!", true, exercise));
        }
예제 #3
0
        public Exercise GetExercise(ExerciseOption exerciseOption)
        {
            var quantites     = QuantityParser.GetQuantity(exerciseOption.QuantityType, exerciseOption.OperationType);
            var exerciseUnits = new ExerciseUnit[quantites[0]];
            int index         = 0;
            int enumIndex     = 1;

            for (int i = 1; i < quantites.Length; i++)
            {
                OperationType t = (OperationType)enumIndex;
                for (int j = 0; j < quantites[i]; j++)
                {
                    GeneratorParser.GetGenerator(exerciseOption.OperationType & (OperationType)enumIndex, exerciseOption.ResultIntervalType).Generate(ref exerciseUnits[index++]);
                }
                enumIndex *= 2;
            }
            return(new Exercise(DateTime.Now, exerciseOption.OperationType, exerciseOption.ResultIntervalType, exerciseOption.QuantityType, exerciseUnits));
        }
예제 #4
0
        //private System.Timers.Timer Timer;



        protected void Page_load(object sender, EventArgs e)
        {
            jssender = sender;
            jse      = e;

            {
                Username = Request.QueryString["user"];
                UserId   = Request.QueryString["id"];
                Time     = Request.QueryString["time"];
                Type     = Request.QueryString["type"];
                Quantity = Request.QueryString["quan"];
                Interval = Request.QueryString["intvl"];
                int inttime;

                switch (Interval)
                {
                case "A": IntervalTp = IntervalType.LE10; break;

                case "B": IntervalTp = IntervalType.LE20; break;

                case "C": IntervalTp = IntervalType.LE50; break;

                case "D": IntervalTp = IntervalType.LE100; break;

                default: break;
                }

                switch (Quantity)
                {
                case "A": QuantityTp = QuantityType.E10; break;

                case "B": QuantityTp = QuantityType.E30; break;

                case "C": QuantityTp = QuantityType.E50; break;

                case "D": QuantityTp = QuantityType.E100; break;

                default: break;
                }

                switch (Type)
                {
                case "A": ExerciseOp = new ExerciseOption(IntervalTp, OperationType.Plus | OperationType.Sub, QuantityTp); break;

                case "B": ExerciseOp = new ExerciseOption(IntervalTp, OperationType.Mul | OperationType.Div, QuantityTp); break;

                case "C": ExerciseOp = new ExerciseOption(IntervalTp, OperationType.Plus | OperationType.Sub | OperationType.Mul | OperationType.Div, QuantityTp); break;

                case "D": ExerciseOp = new ExerciseOption(IntervalTp, OperationType.DivWithRemainder, QuantityTp); break;

                default: break;
                }
                switch (Time)
                {
                case "A": inttime = 300; break;

                case "B": inttime = 600; break;

                case "C": inttime = 1800; break;

                case "D": inttime = 3600; break;

                default: inttime = 0; break;
                }
                jstime = inttime;

                if (!IsPostBack)
                {
                    ExerciseOR = ExerciseLogic.GetExercise(ExerciseOp);
                    Session["ExerciseORSession"] = ExerciseOR;
                    Session["UsernameSession"]   = Username;
                    Session["UseridSession"]     = UserId;
                    Debug.WriteLine("if");
                }
                else
                {
                    ExerciseOR = (OperationResult <Exercise>)Session["ExerciseORSession"];
                    Username   = Session["UsernameSession"].ToString();
                    //Debug.WriteLine("writtename" + Username);
                    UserId = Session["UseridSession"].ToString();
                    //Debug.WriteLine("else");
                }
                num = ExerciseOR.Result.ExerciseUnits.Length;
                Debug.WriteLine("106");

                for (int i = 0; i < num; i++)
                {
                    HtmlGenericControl li = new HtmlGenericControl("li");

                    TextBox t = new TextBox();
                    t.ID = "result" + i.ToString();
                    t.Attributes["class"] = "textbox";


                    Label l = new Label();
                    l.Attributes["class"] = "label";
                    l.Text = ExerciseOR.Result.ExerciseUnits[i].Topic;

                    Label rw = new Label();
                    rw.ID = "dynalabel" + i.ToString();
                    rw.Attributes["class"] = "rwlabel";



                    li.Controls.Add(l);
                    li.Controls.Add(t);
                    if (Type == "D")
                    {
                        TextBox trm = new TextBox();
                        trm.ID = "remainder" + i.ToString();
                        trm.Attributes["class"] = "rtextbox";
                        li.Controls.Add(trm);
                    }
                    li.Controls.Add(rw);

                    Exlist.Controls.Add(li);
                    Debug.WriteLine("135");
                }
            }
        }