Example #1
0
 public Student(int id,
     string firstName,
     string lastName,
     string email,
     Gender gender,
     StudentType studentType,
     int examResult,
     double hwSent,
     double hwEvaluated,
     double teamScore,
     double attendancies,
     double bonus)
 {
     this.Id = id;
     this.FirstName = firstName;
     this.LastName = lastName;
     this.Email = email;
     this.gender = gender;
     this.studentType = studentType;
     this.ExamResult = examResult;
     this.HwSent = hwSent;
     this.HwEvaluated = hwEvaluated;
     this.TeamScore = teamScore;
     this.Attendancies = attendancies;
     this.Bonus = bonus;
     this.Result = CalculateResult();
 }
Example #2
0
 public Student(string name, IPet pet, StudentType studentType, OtherCompetence otherCompetance, IKnowledge knowledge)
     : base(name, Student.StudentBaseHp)
 {
     this.studentType = studentType;
     this.otherCompetence = otherCompetance;
     this.Knowledge = knowledge;
     this.pet = pet;
     this.IsAlive = true;
 }
        private IKnowledge GenerateInitialKnowedge(StudentType studentType, OtherCompetence otherCompetence)
        {
            double initial = 0;

            if (studentType != StudentType.ThisYearStudent)
            {
                initial = 10;
            }
            initial = RandomProvider.Instance.Next(10, 21) + initial + (int)otherCompetence;

            IKnowledge knowledge = new KnowledgeStats(initial);

            return knowledge;
        }
Example #4
0
 public override double GetGPA(char letterGrade, StudentType studentType)
 {
     return(base.GetGPA(letterGrade, studentType));
 }
Example #5
0
 public Student(int id, string fname, string lname, string email, Gender gender, StudentType type, int exam,
                int homeworkSent, int homeworkEvaluated, double teamworkScore, int attendances, double bonus)
 {
     this.Id                = id;
     this.FirstName         = fname;
     this.LastName          = lname;
     this.Email             = email;
     this.StudentGender     = gender;
     this.Type              = type;
     this.ExamScore         = exam;
     this.HomeworkSent      = homeworkSent;
     this.HomeworkEvaluated = homeworkEvaluated;
     this.TeamworkScore     = teamworkScore;
     this.Attendances       = attendances;
     this.Bonus             = bonus;
     this.Result            = CalculateResult();
 }
Example #6
0
        HandleResult OnReceive(IClient sender, byte[] bytes)
        {
            // 数据到达了
            if (isSendFile == true)
            {
                // 如果发送了文件,并接收到了返回数据
                isSendFile = false;
                MyFileInfo myFile  = client.BytesToStruct <MyFileInfo>(bytes);
                int        objSize = Marshal.SizeOf(myFile);
                // 因为没有附加尾数据,所以大小可以用length - objSize
                byte[] contentBytes = new byte[bytes.Length - objSize];
                Array.ConstrainedCopy(bytes, objSize, contentBytes, 0, contentBytes.Length);

                string txt = Encoding.Default.GetString(contentBytes);
                string msg = string.Empty;
                if (txt.Length > 100)
                {
                    msg = txt.Substring(0, 100) + "......";
                }
                else
                {
                    msg = txt;
                }

                AddMsg(string.Format(" > [{0},OnReceive] -> FileInfo(Path:\"{1}\",Size:{2})", client.ConnectionId, myFile.FilePath, myFile.FileSize));
                AddMsg(string.Format(" > [{0},OnReceive] -> FileContent(\"{1}\")", client.ConnectionId, msg));
            }
            else if (studentType != StudentType.None)
            {
                switch (studentType)
                {
                case StudentType.Array:
                    Student[] students = client.BytesToObject(bytes) as Student[];
                    foreach (var stu in students)
                    {
                        AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", client.ConnectionId, stu.Id, stu.Name, stu.GetSexString()));
                    }
                    break;

                case StudentType.List:
                    List <Student> stuList = client.BytesToObject(bytes) as List <Student>;
                    foreach (var stu in stuList)
                    {
                        AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", client.ConnectionId, stu.Id, stu.Name, stu.GetSexString()));
                    }
                    break;

                case StudentType.Single:
                    Student student = client.BytesToObject(bytes) as Student;
                    AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", client.ConnectionId, student.Id, student.Name, student.GetSexString()));
                    studentType = StudentType.None;
                    break;
                }
            }
            else
            {
                AddMsg(string.Format(" > [{0},OnReceive] -> ({1} bytes)", client.ConnectionId, bytes.Length));
            }

            return(HandleResult.Ok);
        }
Example #7
0
        HandleResult OnReceive(TcpClient sender, IntPtr pData, int length)
        {
            // 数据到达了
            if (isSendFile == true)
            {
                // 如果发送了文件,并接收到了返回数据
                isSendFile = false;
                MyFileInfo myFile = (MyFileInfo)Marshal.PtrToStructure(pData, typeof(MyFileInfo));
                int objSize = Marshal.SizeOf(myFile);
                // 因为没有附加尾数据,所以大小可以用length - objSize
                byte[] bytes = new byte[length - objSize];
                Marshal.Copy(pData + objSize, bytes, 0, length - objSize);

                string txt = Encoding.Default.GetString(bytes);
                string msg = string.Empty;
                if (txt.Length > 100)
                {
                    msg = txt.Substring(0, 100) + "......";
                }
                else
                {
                    msg = txt;
                }

                AddMsg(string.Format(" > [{0},OnReceive] -> FileInfo(Path:\"{1}\",Size:{2})", sender.ConnectionId, myFile.FilePath, myFile.FileSize));
                AddMsg(string.Format(" > [{0},OnReceive] -> FileContent(\"{1}\")", sender.ConnectionId, msg));
            }
            else if (studentType != StudentType.None)
            {
                byte[] bytes = new byte[length];
                Marshal.Copy(pData, bytes, 0, length);

                switch (studentType)
                {
                    case StudentType.Array:
                        Student[] students = sender.BytesToObject(bytes) as Student[];
                        foreach (var stu in students)
                        {
                            AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", sender.ConnectionId, stu.Id, stu.Name, stu.GetSexString()));
                        }
                        break;
                    case StudentType.List:
                        List<Student> stuList = sender.BytesToObject(bytes) as List<Student>;
                        foreach (var stu in stuList)
                        {
                            AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", sender.ConnectionId, stu.Id, stu.Name, stu.GetSexString()));
                        }
                        break;
                    case StudentType.Single:
                        Student student = sender.BytesToObject(bytes) as Student;
                        AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", sender.ConnectionId, student.Id, student.Name, student.GetSexString()));
                        studentType = StudentType.None;
                        break;
                }
            }
            else
            {
                AddMsg(string.Format(" > [{0},OnReceive] -> ({1} bytes)", sender.ConnectionId, length));
            }

            return HandleResult.Ok;
        }
Example #8
0
 private bool UseWeighted(StudentType studentType)
 {
     return(IsWeighted == true &&
            (studentType == StudentType.Honors || studentType == StudentType.DualEnrolled));
 }
Example #9
0
        private Student CreateStudent(StudentType Type, string Name, PersonGender StudentGender, DateTime TimeStamp)
        {
            Student newStudent = new Student(Type, Name, StudentGender, TimeStamp);

            return(newStudent);
        }
Example #10
0
 protected virtual int GetWeightedGPAAddition(StudentType studentType)
 {
     return(IsWeighted && (studentType == StudentType.DualEnrolled || studentType == StudentType.Honors)? 1 : 0);
 }
Example #11
0
 public Student(string name, string gender, StudentType type)
 {
     Name   = name;
     Gender = gender;
     Type   = type;
 }
Example #12
0
 static void Main(string[] args)
 {
     if (args.Length > 1)
     {
         string path = args[0];
         if (File.Exists(path))
         {
             using (StreamReader streamReader = File.OpenText(path)) {
                 string         line;
                 StudentManager studentManager = new StudentManager();
                 while ((line = streamReader.ReadLine()) != null)
                 {
                     Student newStudent = studentManager.CreateStudentFromLine(line);
                     studentManager.AddStudent(newStudent);
                 }
                 string firstFilter = args[1];
                 if (firstFilter.Contains("name"))
                 {
                     Console.WriteLine(studentManager.GetListOfStudents(firstFilter.Replace("name=", "")));
                 }
                 else if (firstFilter.Contains("type"))
                 {
                     if (args.Length < 4)
                     {
                         firstFilter = firstFilter.Replace("type=", "");
                         StudentType seekedType = (StudentType)Enum.Parse(typeof(StudentType),
                                                                          firstFilter, true);
                         if (args.Length == 3)
                         {
                             string secondFilter = args[2];
                             if (secondFilter.Contains("gender"))
                             {
                                 secondFilter = secondFilter.Replace("gender=", "");
                                 PersonGender seekedGender = (PersonGender)Enum.Parse(typeof(PersonGender),
                                                                                      secondFilter, true);
                                 Console.WriteLine(studentManager.GetListOfStudents(seekedType, seekedGender));
                             }
                             else
                             {
                                 Console.WriteLine("Invalid arguments.");
                             }
                         }
                         else
                         {
                             Console.WriteLine(studentManager.GetListOfStudents(seekedType));
                         }
                     }
                     else
                     {
                         Console.WriteLine("Number of arguments exceeded.");
                     }
                 }
                 else
                 {
                     Console.WriteLine("Please enter some valid input.");
                 }
             }
         }
         else
         {
             Console.WriteLine("Please enter some valid file path.");
         }
     }
     else
     {
         Console.WriteLine("Please enter some valid input.");
     }
 }
Example #13
0
 public void SetStudentType(StudentType type)
 {
     StudentType = type;
 }
        public virtual double GetGPA(char letterGrade, StudentType studentType)
        {
            bool upgrade = false;

            if ((studentType == StudentType.Honors || studentType == StudentType.DualEnrolled) &&
                IsWeighted == true)
            {
                upgrade = true;
            }

            switch (letterGrade)
            {
            case 'A':
                if (upgrade)
                {
                    return(5);
                }
                else
                {
                    return(4);
                }

            case 'B':
                if (upgrade)
                {
                    return(4);
                }
                else
                {
                    return(3);
                }

            case 'C':
                if (upgrade)
                {
                    return(3);
                }
                else
                {
                    return(2);
                }

            case 'D':
                if (upgrade)
                {
                    return(2);
                }
                else
                {
                    return(1);
                }

            case 'F':
                if (upgrade)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            return(0);
        }
Example #15
0
    protected void Page_PreRender(object sender, EventArgs e)

    {
        if (!IsPostBack)
        {
            List <CourseOffering> ourCourses = CourseOfferingsDataAccess.retreiveAllCourses();
            ourCourses.Sort(sortOffering);

            foreach (CourseOffering course in ourCourses)
            {
                ListItem item = new ListItem(course.ToString(), course.CourseOffered.CourseNumber);
                ddlCourseOffering.Items.Add(item);
            }
        }

        if (IsPostBack)
        {
            List <CourseOffering> coursesOffered = CourseOfferingsDataAccess.retreiveAllCourses();
            int selectedIndex = ddlCourseOffering.SelectedIndex;

            List <Student> studentsInOfferingList = RegistrationDataAccess.getStudentsFromOffering(coursesOffered[selectedIndex]);
            studentsInOfferingList.Sort(sortBy);

            if (studentsInOfferingList.Count == 0)
            {
                TableRow  lastRow     = new TableRow();
                TableCell lastRowCell = new TableCell();
                lastRowCell.Text            = "There are currently no students enlisted";
                lastRowCell.ForeColor       = System.Drawing.Color.Red;
                lastRowCell.ColumnSpan      = 4;
                lastRowCell.HorizontalAlign = HorizontalAlign.Center;
                lastRow.Cells.Add(lastRowCell);
                tblStudentRecords.Rows.Add(lastRow);
            }
            else
            {
                foreach (Student student in studentsInOfferingList)
                {
                    {
                        TableRow row = new TableRow();

                        TableCell cell = new TableCell();
                        cell.Text = student.Number;
                        row.Cells.Add(cell);

                        cell      = new TableCell();
                        cell.Text = student.Name;
                        row.Cells.Add(cell);

                        string studentType = student.ToString();

                        cell      = new TableCell();
                        cell.Text = StudentType.getStudentType(student);
                        row.Cells.Add(cell);

                        tblStudentRecords.Rows.Add(row);
                    }
                }
            }
        }
    }
 public Student(StudentType studentType)
 {
     StudentType = studentType;
 }
Example #17
0
        public virtual double GetGPA(char letterGrade, StudentType studentType)
        {
            var letterGradeToGPA = -(int)letterGrade + (int)'A' + 4;

            return(letterGradeToGPA + GetWeightedGPAAddition(studentType));
        }
Example #18
0
 int GetGPA(StudentType studentType, int currentGpa)
 {
     return(IsWeighted && (studentType == StudentType.Honors || studentType == StudentType.DualEnrolled) ? currentGpa + 1 : currentGpa);
 }
Example #19
0
 public Student(string Name, StudentType Type)
 {
     this.Name = Name;
     this.Type = Type;
 }
Example #20
0
        public virtual double GetGPA(char letterGrade, StudentType studentType)
        {
            switch (letterGrade)
            {
            case 'A':
                if (IsWeighted && studentType == StudentType.Honors)
                {
                    return(5);
                }
                else if (IsWeighted && studentType == StudentType.DualEnrolled)
                {
                    return(5);
                }
                else
                {
                    return(4);
                }

            case 'B':
                if (IsWeighted && studentType == StudentType.Honors)
                {
                    return(4);
                }
                else if (IsWeighted && studentType == StudentType.DualEnrolled)
                {
                    return(4);
                }
                else
                {
                    return(3);
                }

            case 'C':
                if (IsWeighted && studentType == StudentType.Honors)
                {
                    return(3);
                }
                else if (IsWeighted && studentType == StudentType.DualEnrolled)
                {
                    return(3);
                }
                else
                {
                    return(2);
                }

            case 'D':
                if (IsWeighted && studentType == StudentType.Honors)
                {
                    return(2);
                }
                else if (IsWeighted && studentType == StudentType.DualEnrolled)
                {
                    return(2);
                }
                else
                {
                    return(1);
                }
            }
            return(0);
        }
Example #21
0
        private void btnSendSerializableObject_Click(object sender, EventArgs e)
        {
            try
            {
                // 注: 对象序列化发送数据较大

                if (studentType != StudentType.None)
                {
                    // 正在执行
                    throw new Exception("being implemented");
                }



                IntPtr dwConnId = client.GetConnectionId();

                Thread thread = new Thread(new ThreadStart(delegate()
                {
                    Student[] students = new Student[2];
                    students[0]        = new Student();
                    students[0].Id     = 1;
                    students[0].Name   = "张三";
                    students[0].Sex    = Sex.Female;
                    students[1]        = new Student();
                    students[1].Id     = 2;
                    students[1].Name   = "李四";
                    students[1].Sex    = Sex.Male;

                    // 发送数组对象
                    studentType = StudentType.Array;
                    if (client.SendBySerializable(students))
                    {
                        AddMsg(string.Format("$ ({0}) Send OK --> {1}", dwConnId, "Student[]"));
                    }
                    else
                    {
                        AddMsg(string.Format("$ ({0}) Send Fail --> {1}", dwConnId, "Student[]"));
                    }

                    ////////////////////////////////////////////////////////////////////////////////

                    // 改变性别
                    students[0].Sex = Sex.Transsexual;

                    List <Student> stuList = new List <Student>();
                    stuList.Add(students[0]);
                    stuList.Add(students[1]);

                    // 防止粘包,延迟2秒发送下一组数据
                    AddMsg(" *** 2 seconds after sending ...");
                    Thread.Sleep(2000);

                    // 发送list对象
                    studentType = StudentType.List;
                    if (client.SendBySerializable(stuList))
                    {
                        AddMsg(string.Format("$ ({0}) Send OK --> {1}", dwConnId, "List<Student>"));
                    }
                    else
                    {
                        AddMsg(string.Format("$ ({0}) Send Fail --> {1}", dwConnId, "List<Student>"));
                    }

                    ////////////////////////////////////////////////////////////////////////////////

                    // 防止粘包,延迟2秒发送下一组数据
                    AddMsg(" *** 2 seconds after sending ...");
                    Thread.Sleep(2000);

                    // 改变性别
                    students[0].Sex = Sex.Unknown;

                    // 发送单个学员信息
                    studentType = StudentType.Single;
                    if (client.SendBySerializable(students[0]))
                    {
                        AddMsg(string.Format("$ ({0}) Send OK --> {1}", dwConnId, "Student"));
                    }
                    else
                    {
                        AddMsg(string.Format("$ ({0}) Send Fail --> {1}", dwConnId, "Student"));
                    }
                }));
                thread.Start();
            }
            catch (Exception ex)
            {
                studentType = StudentType.None;
                AddMsg(string.Format("$ Send Fail -->  msg ({0})", ex.Message));
            }
        }
Example #22
0
        private void btnSendSerializableObject_Click(object sender, EventArgs e)
        {
            try
            {
                // 注: 对象序列化发送数据较大

                if (studentType != StudentType.None)
                {
                    // 正在执行
                    throw new Exception("being implemented");
                }



                IntPtr connId = client.ConnectionId;

                Thread thread = new Thread(new ThreadStart(delegate()
                {
                    Student[] students = new Student[2];
                    students[0] = new Student();
                    students[0].Id = 1;
                    students[0].Name = "张三";
                    students[0].Sex = Sex.Female;
                    students[1] = new Student();
                    students[1].Id = 2;
                    students[1].Name = "李四";
                    students[1].Sex = Sex.Male;

                    // 发送数组对象
                    studentType = StudentType.Array;
                    if (client.SendBySerializable(students))
                    {
                        AddMsg(string.Format("$ ({0}) Send OK --> {1}", connId, "Student[]"));
                    }
                    else
                    {
                        AddMsg(string.Format("$ ({0}) Send Fail --> {1}", connId, "Student[]"));
                    }

                    ////////////////////////////////////////////////////////////////////////////////

                    // 改变性别
                    students[0].Sex = Sex.Transsexual;

                    List<Student> stuList = new List<Student>();
                    stuList.Add(students[0]);
                    stuList.Add(students[1]);

                    // 防止粘包,延迟2秒发送下一组数据
                    AddMsg(" *** 2 seconds after sending ...");
                    Thread.Sleep(2000);

                    // 发送list对象
                    studentType = StudentType.List;
                    if (client.SendBySerializable(stuList))
                    {
                        AddMsg(string.Format("$ ({0}) Send OK --> {1}", connId, "List<Student>"));
                    }
                    else
                    {
                        AddMsg(string.Format("$ ({0}) Send Fail --> {1}", connId, "List<Student>"));
                    }

                    ////////////////////////////////////////////////////////////////////////////////

                    // 防止粘包,延迟2秒发送下一组数据
                    AddMsg(" *** 2 seconds after sending ...");
                    Thread.Sleep(2000);

                    // 改变性别
                    students[0].Sex = Sex.Unknown;

                    // 发送单个学员信息
                    studentType = StudentType.Single;
                    if (client.SendBySerializable(students[0]))
                    {
                        AddMsg(string.Format("$ ({0}) Send OK --> {1}", connId, "Student"));
                    }
                    else
                    {
                        AddMsg(string.Format("$ ({0}) Send Fail --> {1}", connId, "Student"));
                    }

                }));
                thread.Start();
            }
            catch (Exception ex)
            {
                studentType = StudentType.None;
                AddMsg(string.Format("$ Send Fail -->  msg ({0})", ex.Message));
            }
        }
Example #23
0
        HandleResult OnReceive(TcpClient sender, IntPtr pData, int iLength)
        {
            // 数据到达了
            if (isSendFile == true)
            {
                // 如果发送了文件,并接收到了返回数据
                isSendFile = false;
                MyFileInfo myFile  = (MyFileInfo)Marshal.PtrToStructure(pData, typeof(MyFileInfo));
                int        objSize = Marshal.SizeOf(myFile);
                // 因为没有附加尾数据,所以大小可以用iLength - objSize
                byte[] bytes = new byte[iLength - objSize];
                Marshal.Copy(pData + objSize, bytes, 0, iLength - objSize);

                string txt = Encoding.Default.GetString(bytes);
                string msg = string.Empty;
                if (txt.Length > 100)
                {
                    msg = txt.Substring(0, 100) + "......";
                }
                else
                {
                    msg = txt;
                }

                AddMsg(string.Format(" > [{0},OnReceive] -> FileInfo(Path:\"{1}\",Size:{2})", sender.GetConnectionId(), myFile.FilePath, myFile.FileSize));
                AddMsg(string.Format(" > [{0},OnReceive] -> FileContent(\"{1}\")", sender.GetConnectionId(), msg));
            }
            else if (studentType != StudentType.None)
            {
                byte[] bytes = new byte[iLength];
                Marshal.Copy(pData, bytes, 0, iLength);

                switch (studentType)
                {
                case StudentType.Array:
                    Student[] students = sender.BytesToObject(bytes) as Student[];
                    foreach (var stu in students)
                    {
                        AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", sender.GetConnectionId(), stu.Id, stu.Name, stu.GetSexString()));
                    }
                    break;

                case StudentType.List:
                    List <Student> stuList = sender.BytesToObject(bytes) as List <Student>;
                    foreach (var stu in stuList)
                    {
                        AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", sender.GetConnectionId(), stu.Id, stu.Name, stu.GetSexString()));
                    }
                    break;

                case StudentType.Single:
                    Student student = sender.BytesToObject(bytes) as Student;
                    AddMsg(string.Format(" > [{0},OnReceive] -> Student({1},{2},{3})", sender.GetConnectionId(), student.Id, student.Name, student.GetSexString()));
                    studentType = StudentType.None;
                    break;
                }
            }
            else
            {
                AddMsg(string.Format(" > [{0},OnReceive] -> ({1} bytes)", sender.GetConnectionId(), iLength));
            }

            return(HandleResult.Ok);
        }
        public virtual double GetGPA(char letterGrade, StudentType studentType)
        {
            if (studentType.Equals(GradeBook.Enums.StudentType.Honors) || studentType.Equals(GradeBook.Enums.StudentType.DualEnrolled))
            {
                if (IsWeighted == true)
                {
                    switch (letterGrade)
                    {
                    case 'A':
                        return(5);

                    case 'B':
                        return(4);

                    case 'C':
                        return(3);

                    case 'D':
                        return(2);

                    case 'F':
                        return(1);
                    }
                }
                else
                {
                    switch (letterGrade)
                    {
                    case 'A':
                        return(4);

                    case 'B':
                        return(3);

                    case 'C':
                        return(2);

                    case 'D':
                        return(1);

                    case 'F':
                        return(0);
                    }
                }
            }
            else
            {
                switch (letterGrade)
                {
                case 'A':
                    return(4);

                case 'B':
                    return(3);

                case 'C':
                    return(2);

                case 'D':
                    return(1);

                case 'F':
                    return(0);
                }
            }
            return(0);
        }
Example #25
0
 /// <summary>
 /// Enables to register student and add to list of registred students
 /// </summary>
 /// <param name="firstName"></param>
 /// <param name="lastName"></param>
 /// <param name="birthDay"></param>
 /// <param name="type"></param>
 /// <param name="sex"></param>
 static public void EnrollStudent(string firstName, string lastName, DateTime birthDay, StudentType type, Gender sex, programsNames programName)
 {
     db.Students.Add(new Student()
     {
         FirstName    = firstName,
         LastName     = lastName,
         BirthDay     = birthDay,
         Type         = type,
         Sex          = sex,
         ProgramNames = programName,
     });
     db.SaveChanges();
 }