Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Serializable]
- class Student
- {
- public string name;
- public string surname;
- public string patronymic;
- int bookNum;
- readonly string fullName;
- readonly int programmingAvg, AdminAvg, DesignAvg, allAvg;
- public DateTime dt;
- public int[][] marks = null;
- const int max = 12, min = 1;
- public enum Subject { Programming, Admin, Design };
- static string collageName = "Cambridge";
- static int studentCounter = 0;
- public Student(int[][] m, string name = "null", string surname = "null", string patronymic = "null", int year = 1999, int month = 1, int day = 1)
- {
- int[] @null = new int[1] { 1 };
- bookNum = ++studentCounter;
- dt = new DateTime(year, month, day);
- this.name = name;
- this.surname = surname;
- this.patronymic = patronymic;
- marks = new int[3][];
- RemoveDigits();
- fullName = this.name + " " + this.surname + " " + this.patronymic;
- if (m != null)
- setMarksProgramming(m[0]);
- else
- setMarksProgramming(@null);
- if (m != null)
- setMarksAdmin(m[1]);
- else
- setMarksAdmin(@null);
- if (m != null)
- setMarksDesign(m[2]);
- else
- setMarksDesign(@null);
- programmingAvg = marks[0].Sum() / marks[0].Length;
- AdminAvg = marks[1].Sum() / marks[1].Length;
- DesignAvg = marks[2].Sum() / marks[2].Length;
- allAvg = (programmingAvg + AdminAvg + DesignAvg) / 3;
- }
- public string Name
- {
- set { if (!string.IsNullOrEmpty(value)) this.name = value; else this.name = "null"; }
- get { return name; }
- }
- public string Surame
- {
- set { if (!string.IsNullOrEmpty(value)) this.surname = value; else this.surname = "null"; }
- get { return surname; }
- }
- public int Group { set; get; }
- public string Patronymic
- {
- set { if (!string.IsNullOrEmpty(value)) this.patronymic = value; else this.patronymic = "null"; }
- get { return patronymic; }
- }
- private void RemoveDigits()
- {
- name = Regex.Replace(name, "[0-9]", "", RegexOptions.IgnoreCase);
- surname = Regex.Replace(surname, "[0-9]", "", RegexOptions.IgnoreCase);
- patronymic = Regex.Replace(patronymic, "[0-9]", "", RegexOptions.IgnoreCase);
- }
- static public int countOfStudent() { return studentCounter; }
- public void setMarksProgramming(int[] param)
- {
- marks[0] = param;
- }
- public void setMarksAdmin(int[] param)
- {
- marks[1] = param;
- }
- public void setMarksDesign(int[] param)
- {
- marks[2] = param;
- }
- public void SetMark(Subject subject, int numLesson, int mark)
- {
- if (subject == Subject.Programming)
- if (numLesson >= 0 && marks[0].Length > numLesson)
- if (mark <= max && mark >= min)
- marks[0][numLesson] = mark;
- else if (subject == Subject.Admin)
- if (numLesson >= 0 && marks[1].Length > numLesson)
- if (mark <= max && mark >= min)
- marks[1][numLesson] = mark;
- else if (subject == Subject.Design)
- if (numLesson >= 0 && marks[2].Length > numLesson)
- if (mark <= max && mark >= min)
- marks[2][numLesson] = mark;
- }
- public void clear()
- {
- Array.Clear(marks, 0, marks.Length);
- }
- public int AgeDate(DateTime DT)
- {
- return (DT - dt).Days / 365;
- }
- public int AgeNow
- {
- get { return (DateTime.Today - dt).Days / 365; }
- }
- public void print()
- {
- Console.Write($"n{fullName}n{AgeNow}n{programmingAvg} {AdminAvg} {DesignAvg} {allAvg}n{bookNum} {collageName}n");
- Console.Write("Programming: ");
- if (marks[0] != null)
- for (int i = 0; i < marks[0].Length; i++)
- Console.Write(marks[0][i] + " ");
- else
- Console.Write("NULL");
- Console.Write("nAdmin: ");
- if (marks[1] != null)
- for (int i = 0; i < marks[1].Length; i++)
- Console.Write(marks[1][i] + " ");
- else
- Console.Write("NULL");
- Console.Write("nDesign: ");
- if (marks[2] != null)
- for (int i = 0; i < marks[2].Length; i++)
- Console.Write(marks[2][i] + " ");
- else
- Console.Write("NULL");
- Console.Write("nn ");
- }
- static public int Max(Student[] m)
- {
- return m.Max(st => st.allAvg);
- }
- static public int Min(Student[] m)
- {
- return m.Min(st => st.allAvg);
- }
- static public int Count(Student[] m, int param)
- {
- if (param == 0)
- {
- return m.Count(st => st.programmingAvg >= 7);
- }
- else if (param == 1)
- {
- return m.Count(st => st.AdminAvg >= 7);
- }
- else if (param == 2)
- {
- return m.Count(st => st.DesignAvg >= 7);
- }
- else
- return -1;
- }
- }
- class FileWorker
- {
- public static void SaveStudent(Student student, string filename)
- {
- using (StreamWriter f = new StreamWriter(filename))
- {
- BinaryFormatter formatter = new BinaryFormatter();
- using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate))
- {
- formatter.Serialize(fs, student);
- }
- }
- }
- public static void LoadStudent(Student student, string filename)
- {
- using (StreamReader f = new StreamReader(filename))
- {
- BinaryFormatter formatter = new BinaryFormatter();
- using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate))
- {
- student = (Student)formatter.Deserialize(fs);
- }
- }
- }
- }
- static void Main(string[] args)
- {
- int[][] m3 = new int[3][] { new int[4] { 5, 4, 6, 6, }, new int[5] { 7, 5, 5, 4, 6 }, new int[4] { 12, 8, 12, 9 } };
- Student a = new Student(m3, "Misha", "Onyuk", "Petrovich", 2001, 1, 31);
- a.print();
- FileWorker.SaveStudent(a, "fILE");
- Student b = new Student(null);
- FileWorker.LoadStudent(b, "fILE");
- b.print();
- }
- //using (StreamWriter f = new StreamWriter(filename))
- //{
- BinaryFormatter formatter = new BinaryFormatter();
- using (FileStream fs = new FileStream(filename, FileMode.OpenOrCreate))
- {
- formatter.Serialize(fs, student);
- }
- //}
Add Comment
Please, Sign In to add comment