Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 18.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO;
  11. namespace Девятая_2
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         Commander me = new Commander();
  16.         Form3 third = new Form3();
  17.        
  18.  
  19.         public Form1()
  20.         {
  21.             me.initial();
  22.             InitializeComponent();
  23.             button1.Click += Button1_Click;
  24.             button2.Click += Button2_Click;
  25.             button3.Click += Button3_Click;
  26.             button4.Click += Button4_Click;
  27.             button5.Click += Button5_Click;
  28.             button6.Click += Button6_Click;
  29.             button7.Click += Button7_Click;
  30.             button8.Click += Button8_Click;
  31.             button9.Click += Button9_Click;
  32.             button13.Click += Button13_Click;
  33.             button10.Click += Button10_Click;
  34.             button11.Click += Button11_Click;
  35.             button12.Click += Button12_Click;
  36.             Log.Items.Add("Начало программы");
  37.  
  38.             Log.SelectionMode = SelectionMode.None;
  39.  
  40.             for (int i = 0; i < me.Armys.Count(); i++)
  41.             {
  42.                 Army_list.Items.Add(me.Armys[i].name + "-" + me.Armys[i].status);
  43.             }
  44.             for (int i = 0; i < me.Venicles.Count(); i++)
  45.             {
  46.                 Ship_list.Items.Add(me.Venicles[i].name + "-" + Convert.ToString(me.Venicles[i].hull));
  47.             }
  48.             for (int i = 0; i < me.Campaigns.Count(); i++)
  49.             {
  50.                 Campaign_list.Items.Add(me.Campaigns[i].name + "-" + me.Campaigns[i].status);
  51.             }
  52.             for (int i = 0; i < me.Armys.Count(); i++)
  53.             {
  54.                 me[i] = me.Armys[i];
  55.             }
  56.             for (int i=0;i<5;i++)
  57.             {
  58.                 if(me[i]!= null)
  59.                     label1.Text += me[i].name + "\n";
  60.             }
  61.         }
  62.  
  63.         private void Button9_Click(object sender, EventArgs e)
  64.         {
  65.             third.Show();
  66.             this.Hide();
  67.  
  68.         }
  69.  
  70.         private void Button10_Click(object sender, EventArgs e)
  71.         {
  72.             try
  73.             {
  74.                 throw new ArgumentOutOfRangeException();
  75.                 Log.Items.Add(me.Campaigns[Campaign_list.SelectedIndex].name + " - закончена");
  76.                 me.Campaigns.RemoveAt(Campaign_list.SelectedIndex);
  77.                 Campaign_list.Items.RemoveAt(Campaign_list.SelectedIndex);
  78.             }
  79.             catch (ArgumentOutOfRangeException)
  80.             {
  81.                 Log.Items.Add("Выберите кампанию");
  82.             }
  83.         }
  84.  
  85.         private void Button11_Click(object sender, EventArgs e)
  86.         {
  87.            
  88.             try
  89.             {
  90.                 if (me.Campaigns[Campaign_list.SelectedIndex].status == "Активен")
  91.                 {
  92.                     me.Campaigns[Campaign_list.SelectedIndex].status = "Не активен";
  93.                     Campaign_list.Items[Campaign_list.SelectedIndex] = me.Campaigns[Campaign_list.SelectedIndex].name + "-" + me.Campaigns[Campaign_list.SelectedIndex].status;
  94.                     Log.Items.Add(me.Campaigns[Campaign_list.SelectedIndex].name + " - Не активен");
  95.                 }
  96.                 else
  97.                 {
  98.                     me.Campaigns[Campaign_list.SelectedIndex].status = "Активен";
  99.                     Campaign_list.Items[Campaign_list.SelectedIndex] = me.Campaigns[Campaign_list.SelectedIndex].name + "-" + me.Campaigns[Campaign_list.SelectedIndex].status;
  100.  
  101.                     Log.Items.Add(me.Campaigns[Campaign_list.SelectedIndex].name + " - Активен");
  102.  
  103.  
  104.                 }
  105.             }
  106.             catch(ArgumentOutOfRangeException)
  107.                 {
  108.                 Log.Items.Add("Выберите кампанию");
  109.                 }
  110.         }
  111.  
  112.         private void Button12_Click(object sender, EventArgs e)
  113.         {
  114.             try
  115.             {
  116.                 if ( me.Armys[Army_list.SelectedIndex].status != "Ранен" && me.Venicles[Ship_list.SelectedIndex].hull != "Dmg" && me.Campaigns[Campaign_list.SelectedIndex].status !="Не активен")
  117.                 {
  118.                     Log.Items.Add(me.Armys[Army_list.SelectedIndex].name + " на " + me.Venicles[Ship_list.SelectedIndex].name + " выполняя " + me.Campaigns[Campaign_list.SelectedIndex].name);
  119.                 }
  120.             }
  121.             catch (ArgumentOutOfRangeException)
  122.             {
  123.                 Log.Items.Add("Выберите корабль");
  124.             }
  125.        
  126.  
  127.         }
  128.  
  129.         private void Button5_Click(object sender, EventArgs e)
  130.         {
  131.             try
  132.             {
  133.                 Log.Items.Add(me.Venicles[Ship_list.SelectedIndex].name + " - уничтожен");
  134.                 me.Venicles.RemoveAt(Ship_list.SelectedIndex);
  135.                 Ship_list.Items.RemoveAt(Ship_list.SelectedIndex);
  136.  
  137.  
  138.             }
  139.             catch (ArgumentOutOfRangeException)
  140.             {
  141.                 Log.Items.Add("Выберите корабль");
  142.             }
  143.         }
  144.  
  145.         private void Button6_Click(object sender, EventArgs e)
  146.         {
  147.             try
  148.             {
  149.                 me.Venicles[Ship_list.SelectedIndex].exp_up();
  150.                 Log.Items.Add(me.Venicles[Ship_list.SelectedIndex].name + " - повышен");
  151.  
  152.             }
  153.             catch (ArgumentOutOfRangeException)
  154.             {
  155.                 Log.Items.Add("Выберите корабль");
  156.             }
  157.         }
  158.  
  159.         private void Button7_Click(object sender, EventArgs e)
  160.         {
  161.             try
  162.             {
  163.                 if (me.Venicles[Ship_list.SelectedIndex].hull == "Ok")
  164.                 {
  165.                     me.Venicles[Ship_list.SelectedIndex].hull_dmg();
  166.                     Log.Items.Add(me.Venicles[Ship_list.SelectedIndex].name + " - сломан");
  167.                     Ship_list.Items[Ship_list.SelectedIndex]=me.Venicles[Ship_list.SelectedIndex].name + "-"+ me.Venicles[Ship_list.SelectedIndex].hull;
  168.                 }
  169.                 else
  170.                 {
  171.                     me.Venicles[Ship_list.SelectedIndex].hull_rep();
  172.                     Log.Items.Add(me.Venicles[Ship_list.SelectedIndex].name + " - ок");
  173.                     Ship_list.Items[Ship_list.SelectedIndex] = me.Venicles[Ship_list.SelectedIndex].name + "-" + me.Venicles[Ship_list.SelectedIndex].hull;
  174.  
  175.  
  176.                 }
  177.  
  178.             }
  179.             catch (ArgumentOutOfRangeException)
  180.             {
  181.                 Log.Items.Add("Выберите корабль");
  182.             }
  183.         }
  184.  
  185.         private void Button8_Click(object sender, EventArgs e)
  186.         {
  187.             try
  188.             {
  189.                 Log.Items.Add(me.Venicles[Ship_list.SelectedIndex].name + " - в утиль");
  190.                 me.Venicles.RemoveAt(Ship_list.SelectedIndex);
  191.                 Ship_list.Items.RemoveAt(Ship_list.SelectedIndex);
  192.             }
  193.             catch (ArgumentOutOfRangeException)
  194.             {
  195.                 Log.Items.Add("Выберите корабль");
  196.             }
  197.         }
  198.  
  199.         private void Button13_Click(object sender, EventArgs e)
  200.         {
  201.             me.destruct();
  202.             Application.Exit();
  203.         }
  204.  
  205.  
  206.  
  207.         private void Button4_Click(object sender, EventArgs e)
  208.         {
  209.             try
  210.             {
  211.                 Log.Items.Add(me.Armys[Army_list.SelectedIndex].name + "- убит");
  212.                 me.fired(Army_list.SelectedIndex);
  213.                 Army_list.Items.RemoveAt(Army_list.SelectedIndex);
  214.             }
  215.             catch (ArgumentOutOfRangeException)
  216.             {
  217.                 Log.Items.Add("Выберите армию");
  218.             }
  219.         }
  220.  
  221.         private void Button3_Click(object sender, EventArgs e)
  222.         {
  223.             try
  224.             {
  225.                 me.Armys[Army_list.SelectedIndex].exp_up();
  226.                 Log.Items.Add(me.Armys[Army_list.SelectedIndex].name+" - повышен");
  227.             }
  228.             catch (ArgumentOutOfRangeException)
  229.             {
  230.                 Log.Items.Add("Выберите армию");
  231.             }
  232.         }
  233.  
  234.         private void Button2_Click(object sender, EventArgs e)
  235.         {
  236.             try
  237.             {
  238.                 if (me.Armys[Army_list.SelectedIndex].status == "Здоров")
  239.                 {
  240.                     me.Armys[Army_list.SelectedIndex].hurt();
  241.                     Army_list.Items[Army_list.SelectedIndex]=(me.Armys[Army_list.SelectedIndex].name + "-" + "Ранен");
  242.                     Log.Items.Add(me.Armys[Army_list.SelectedIndex].name + " - ранен");
  243.  
  244.                 }
  245.                 else
  246.                 {
  247.                     me.Armys[Army_list.SelectedIndex].healthy();
  248.                     Army_list.Items[Army_list.SelectedIndex] = (me.Armys[Army_list.SelectedIndex].name + "-" + "Здоров");
  249.                     Log.Items.Add(me.Armys[Army_list.SelectedIndex].name + " - выздоровел");
  250.  
  251.  
  252.                 }
  253.             }
  254.             catch (ArgumentOutOfRangeException)
  255.             {
  256.                 Log.Items.Add("Выберите армию");
  257.             }
  258.         }
  259.  
  260.         private void Button1_Click(object sender, EventArgs e)
  261.         {
  262.             try
  263.             {
  264.                 Log.Items.Add(me.Armys[Army_list.SelectedIndex].name + " - расформирован");
  265.                 me.Armys.RemoveAt(Army_list.SelectedIndex);
  266.                 Army_list.Items.RemoveAt(Army_list.SelectedIndex);
  267.             }
  268.             catch (ArgumentOutOfRangeException)
  269.             {
  270.                 Log.Items.Add("Выберите армию");
  271.             }
  272.         }
  273.  
  274.         private void Form1_Load(object sender, EventArgs e)
  275.         {
  276.  
  277.         }
  278.     }
  279.  
  280.     abstract class Venicle
  281.     {
  282.         public string hull;
  283.         public string name;
  284.         public int exp;
  285.         public Venicle(string name, int exp, string hull)
  286.         {
  287.             this.name = name;
  288.             this.exp = exp;
  289.             this.hull = hull;
  290.         }
  291.         public abstract void exp_up();
  292.         public abstract void hull_rep();
  293.         public abstract void hull_dmg();
  294.         public abstract string show_atr();
  295.  
  296.     }
  297.     class Ship : Venicle
  298.     {
  299.         public int floatn;
  300.         public Ship(int floatn,string name, int exp,string hull) : base(name,exp,hull)
  301.         {
  302.             this.floatn = floatn;
  303.         }
  304.         public override void exp_up()
  305.         {
  306.             exp++;
  307.         }
  308.         public override void hull_rep()
  309.             {
  310.             hull = "Ok";
  311.             }
  312.         public override void hull_dmg()
  313.             {
  314.             hull = "Dmg";
  315.             }
  316.         public override string show_atr()
  317.         {
  318.             return floatn + "\n" + name + "\n" + exp + "\n" + hull;
  319.         }
  320.     }
  321.     class Aircraft : Venicle
  322.     {
  323.         public int weight;
  324.         public Aircraft(int weight,string name, int exp, string hull) : base(name, exp, hull)
  325.         {
  326.             this.weight = weight;
  327.         }
  328.         public override void exp_up()
  329.         {
  330.             exp+=2;
  331.         }
  332.         public override void hull_rep()
  333.         {
  334.             hull = "Ok";
  335.         }
  336.         public override void hull_dmg()
  337.         {
  338.             hull = "Dmg";
  339.         }
  340.         public override string show_atr()
  341.         {
  342.             return weight + "\n" + name + "\n" + exp + "\n" + hull;
  343.         }
  344.     }
  345.  
  346.     class Army
  347.     {
  348.         public string name;
  349.         public string status;
  350.         public int exp;
  351.         protected int mission_count
  352.         {
  353.             get;
  354.  
  355.             set;
  356.         }
  357.  
  358.  
  359.         public Army()
  360.         {
  361.             name = "0";
  362.             status = "0";
  363.             exp = 0;
  364.         }
  365.  
  366.         public Army(string name, string status, int exp)
  367.         {
  368.             this.name = name;
  369.             this.status = status;
  370.             this.exp = exp;
  371.         }
  372.  
  373.         public virtual string show_atr()
  374.         {
  375.             return this.name + "\n" + this.status +"\n" + this.exp;
  376.         }
  377.  
  378.         public void exp_up()
  379.         {
  380.             exp++;
  381.         }
  382.         public void hurt()
  383.         {
  384.             status = "Ранен";
  385.         }
  386.         public void healthy()
  387.         {
  388.             status = "Здоров";
  389.         }
  390.  
  391.  
  392.     }
  393.  
  394.     class Vzvod : Army
  395.     {
  396.         public Vzvod(int mission_count,string name, string status, int exp) : base(name, status, exp)
  397.             {
  398.             this.mission_count = mission_count;
  399.             }
  400.         public override string show_atr()
  401.         {
  402.             return this.mission_count + "\n" + base.show_atr();
  403.         }
  404.         public int mission_cnt()
  405.         { return this.mission_count; }
  406.  
  407.  
  408.     }
  409.     class Squad : Vzvod
  410.     {
  411.         int count_of;
  412.         public Squad(int count_of, int mission_count,string name,string status,int exp) : base(mission_count,name,status,exp)
  413.         {
  414.             this.count_of = count_of;
  415.         }
  416.         public override string show_atr()
  417.         {
  418.             return this.count_of + "\n" + base.show_atr();
  419.         }
  420.     }
  421.    
  422.     class Campaign
  423.     {
  424.         public string name;
  425.         public string danger_lvl;
  426.         public string status;
  427.         public Campaign(string name, string danger_lvl,string status)
  428.         {
  429.             this.name = name;
  430.             this.danger_lvl = danger_lvl;
  431.             this.status = status;
  432.         }
  433.     }
  434.    
  435.  
  436.     class Commander
  437.     {
  438.         public StreamReader sr_army = new StreamReader("../../Тесты/Army.txt");
  439.         public StreamReader sr_ship = new StreamReader("../../Тесты/Ships.txt");
  440.         public StreamReader sr_aircraft = new StreamReader("../../Тесты/Aircrafts.txt");
  441.         public StreamReader sr_campaign = new StreamReader("../../Тесты/Campaigns.txt");
  442.         public StreamReader sr_vzvod = new StreamReader("../../Тесты/Vzvods.txt");
  443.         public StreamReader sr_squad = new StreamReader("../../Тесты/Squads.txt");
  444.  
  445.         public List<Army> Armys = new List<Army>();
  446.         public List<Campaign> Campaigns = new List<Campaign>();
  447.         public List<Venicle> Venicles = new List<Venicle>();
  448.         public  Army[] Favorable_Armys = new Army[5];
  449.  
  450.         public void fired(int a)
  451.         {
  452.             this.Armys.RemoveAt(a);
  453.         }
  454.         public Army this[int index]
  455.         {
  456.  
  457.             get { return Favorable_Armys[index]; }
  458.             set
  459.             {
  460.                 if (value.exp >= 5)
  461.                 {
  462.                     Favorable_Armys[index] = value;
  463.                    
  464.                 }
  465.             }  
  466.  
  467.         }
  468.  
  469.         public void initial()
  470.         {
  471.  
  472.  
  473.             for (string l = sr_army.ReadLine(); !sr_army.EndOfStream; l = sr_army.ReadLine())
  474.             {
  475.                 Army a = new Army(l, sr_army.ReadLine(), Convert.ToInt32(sr_army.ReadLine()));
  476.                 Armys.Add(a);
  477.  
  478.             }
  479.             for (string l = sr_vzvod.ReadLine(); !sr_vzvod.EndOfStream; l = sr_vzvod.ReadLine())
  480.             {
  481.                 Vzvod a = new Vzvod(Convert.ToInt32(l), sr_vzvod.ReadLine(), sr_vzvod.ReadLine(), Convert.ToInt32(sr_vzvod.ReadLine()));
  482.                 Armys.Add(a);//upcast
  483.  
  484.             }
  485.             for (string l = sr_squad.ReadLine(); !sr_squad.EndOfStream; l = sr_squad.ReadLine())
  486.             {
  487.                 Squad a = new Squad(Convert.ToInt32(l),Convert.ToInt32(sr_squad.ReadLine()), sr_squad.ReadLine(), sr_squad.ReadLine(), Convert.ToInt32(sr_squad.ReadLine()));
  488.                 Armys.Add(a);//upcast
  489.  
  490.             }
  491.             for (string l = sr_ship.ReadLine(); !sr_ship.EndOfStream; l = sr_ship.ReadLine())
  492.             {
  493.                 Ship a = new Ship(Convert.ToInt32(l),sr_ship.ReadLine(), Convert.ToInt32(sr_ship.ReadLine()), sr_ship.ReadLine());
  494.                 Venicles.Add(a);
  495.             }
  496.             for (string l = sr_aircraft.ReadLine(); !sr_aircraft.EndOfStream; l = sr_aircraft.ReadLine())
  497.             {
  498.                 Aircraft a = new Aircraft(Convert.ToInt32(l), sr_aircraft.ReadLine(), Convert.ToInt32(sr_aircraft.ReadLine()), sr_aircraft.ReadLine());
  499.                 Venicles.Add(a);
  500.             }
  501.             for (string l = sr_campaign.ReadLine(); !sr_campaign.EndOfStream; l = sr_campaign.ReadLine())
  502.             {
  503.                 Campaign a = new Campaign(l, sr_campaign.ReadLine(), sr_campaign.ReadLine());
  504.                 Campaigns.Add(a);
  505.  
  506.  
  507.             }
  508.  
  509.  
  510.  
  511.             sr_army.Close();
  512.             sr_vzvod.Close();
  513.             sr_squad.Close();
  514.             sr_ship.Close();
  515.             sr_aircraft.Close();
  516.             sr_campaign.Close();
  517.         }
  518.      
  519.         public void destruct()
  520.         {
  521.             StreamWriter sw_army = new StreamWriter("../../Тесты/Army.txt");
  522.             StreamWriter sw_ship = new StreamWriter("../../Тесты/Ships.txt");
  523.             StreamWriter sw_aircraft = new StreamWriter("../../Тесты/Aircrafts.txt");
  524.             StreamWriter sw_campaign = new StreamWriter("../../Тесты/Campaigns.txt");
  525.             StreamWriter sw_vzvod = new StreamWriter("../../Тесты/Vzvods.txt");
  526.             StreamWriter sw_squad = new StreamWriter("../../Тесты/Squads.txt");
  527.  
  528.  
  529.             for (int i = 0; i < Armys.Count(); i++)
  530.             {
  531.                 if (Armys[i] is Squad)
  532.                 {
  533.                     sw_squad.WriteLine(Armys[i].show_atr());
  534.                 }
  535.                 else if (Armys[i] is Vzvod)
  536.                 {
  537.                     sw_vzvod.WriteLine(Armys[i].show_atr());
  538.                 }
  539.                 else if (Armys[i] is Army)
  540.                 {
  541.                     sw_army.WriteLine(Armys[i].show_atr());
  542.  
  543.                 }
  544.  
  545.  
  546.             }
  547.  
  548.             for (int i = 0; i < Venicles.Count(); i++)
  549.             {
  550.                 if(Venicles[i] is Aircraft)
  551.                 {
  552.                     sw_aircraft.Write(Venicles[i].show_atr());
  553.                 }
  554.                 else
  555.                 {
  556.                     sw_ship.WriteLine(Venicles[i].show_atr());
  557.                 }
  558.  
  559.             }
  560.             for (int i = 0; i < Campaigns.Count(); i++)
  561.             {
  562.                 sw_campaign.WriteLine(Campaigns[i].name);
  563.                 sw_campaign.WriteLine(Campaigns[i].danger_lvl);
  564.                 sw_campaign.WriteLine(Campaigns[i].status);
  565.  
  566.  
  567.             }
  568.            
  569.  
  570.             sw_army.Close();
  571.             sw_campaign.Close();
  572.             sw_aircraft.Close();
  573.             sw_vzvod.Close();
  574.             sw_squad.Close();
  575.             sw_ship.Close();
  576.         }
  577.    
  578.  
  579. }
  580.    
  581. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement