Прикладное программирование. АндрееваПрикладное ПР_КР2. Исследования,0,TimeFrame. Year
Скачать 20.9 Kb.
|
Контрольная по с# Задание 1 using System; namespace Home { class Program { static void Main(string[] args) { ResearchTeam RT = new ResearchTeam("Организация","Тема исследования",0,TimeFrame.Year); Console.WriteLine(RT.ToShortString()); Console.WriteLine(RT[TimeFrame.Year].ToString()); Console.WriteLine(RT[TimeFrame.TwoYear].ToString()); Console.WriteLine(RT[TimeFrame.Long].ToString()); RT.setName("Другая организация"); RT.setResearchName("Другое исследование"); RT.setTimeFrame(TimeFrame.Long); RT.setID(125); Console.WriteLine(RT.ToString()); Paper[] localpps = new Paper[8]; Random ran = new Random(); for (int i = 0; i < localpps.Length; i++) { localpps[i] = new Paper(); localpps[i].Name = "Публикация №"+i.ToString(); localpps[i].Date=localpps[i].Date.AddDays(ran.Next(0,364)); } RT.addPaper(localpps); Console.WriteLine(RT.ToString()); Console.WriteLine("Последняя статья "+RT.getLastPaper().Name); } } class Person { private string Name, Surname; private DateTime BDate; public Person(string Name, string Sname, DateTime BDate) { this.Name = Name; this.Surname = Sname; this.BDate = BDate; } public Person() { Name = "Без имени"; Surname = "Без фамилии"; BDate = new DateTime(1950, 1, 1); } public string getName() { return Name; } public string getSurname() { return Surname; } public DateTime getDate() { return BDate; } public int getIntDate() { return BDate.Year; } public void setName(string Name) { this.Name = Name; } public void setSurname(string SName) { this.Surname = SName; } public void setDate(DateTime D) { this.BDate = D; } public void setIntDate(int Year) { BDate.AddYears(Year); } public override string ToString() { return new string("Name " + Name + " Surname " + Surname + " Birthday " + BDate.ToString() + "\n"); } public virtual string ToShortString() { return new string("Name " + Name + " Surname " + Surname); } } enum TimeFrame { Year, TwoYear, Long } class Paper { public string Name; public Person Own; public DateTime Date; public Paper() { Name = "Безымянная статья"; Own = new Person(); Date = new DateTime(2000,1,1); } public Paper(string name, Person person, DateTime D) { Name = name; Own = person; Date = D; } public override string ToString() { return new string("Название газеты " + Name + ", Автор газеты " + Own.getName() + ", Дата " + Date.ToString()+"\n"); } } class ResearchTeam { private string ResearchName; private string Name; private int ID; private TimeFrame Time; private Paper[] Papers; public ResearchTeam() { Name = "корганизация без имени"; ResearchName = "тема исследования"; Time = TimeFrame.Year; ID = 0; } public ResearchTeam(string name, string rname, int id, TimeFrame t) { Name = name; ResearchName = rname; ID = id; Time = t; } public string getName() { return Name; } public TimeFrame getTimeFrame() { return Time; } public int getID() { return ID; } public string getResearchName() { return ResearchName; } public void setName(string name) { Name = name; } public void setResearchName(string name) { ResearchName = name; } public void setTimeFrame(TimeFrame t) { Time = t; } public void setID(int id) { ID = id; } public void setPapers(Paper[] pp) { Papers = pp; } public Paper[] getPapers() { return Papers; } public Paper getLastPaper() { //если длина равна нулю то нет публикаций if (Papers.Length == 0) { return null; } //присваем дату первой публикации Paper AfterDatepaper = Papers[0]; //цикл for (int i=0;i< Papers.Length; i++) { //определяем позднюю публикацию перезагруженным оператором сравнения для DateTime if (AfterDatepaper.Date < Papers[i].Date) { AfterDatepaper = Papers[i]; } } return AfterDatepaper; } public bool this[TimeFrame t] { get { if (Time == t) { return true; } return false; } } public void addPaper(Paper[] pps) { int l = 0; if (Papers != null) { l = Papers.Length; } Paper[] pp = new Paper[l + pps.Length];//Создвем массив с размером старого если он существует if (Papers != null) { Papers.CopyTo(pp, 0);//копируем данные со старого } pps.CopyTo(pp, l);//аналогично, только с индекса после старых элементов Papers = pp;//присваем адрес нового массива } public override string ToString() { string A = ""; if (Papers != null) { for (int i = 0; i < Papers.Length; i++) { A = A + "\nНомер публикации[" + i.ToString() + "] " + Papers[i].ToString(); } } return new string("Название организации " + Name + "\nНазвание темы исследования " + ResearchName + "\nНомер регистрации " + ID.ToString() + "\nПродолжительность " + Time.ToString() + "\n" + A); } public virtual string ToShortString() { return new string("Название организации " + Name + "\nНазвание темы исследования " + ResearchName + "\nНомер регистрации " + ID.ToString() + "\nПродолжительность " + Time.ToString() + "\n"); } } } |