PageRenderTime 27ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/C#_1_ year_course_work/Исходники/Новое/Form3s.cs

https://bitbucket.org/sivanov68/examples_of_my_work
C# | 299 lines | 285 code | 6 blank | 8 comment | 46 complexity | c7ab96f2ce421d6515b45b5cbe57aed0 MD5 | raw file
  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.Windows.Forms;
  9. using System.IO;
  10. namespace Новое
  11. {
  12. public partial class Form3s : Form
  13. {
  14. public static string file = "";
  15. public static bool fl = false;
  16. public Form3s()
  17. {
  18. InitializeComponent();
  19. listBox1.Select();
  20. radioButton1.Checked = true;
  21. textBox1.Text = Form2l.stroka1;
  22. int a = 1;
  23. //заполнение листбокса
  24. for (int i = 0; i < Form2l.stroka1.Length; i++)
  25. {
  26. if (a == 1) a = 0;
  27. a += 16;
  28. string b = "";
  29. string h = "";
  30. h = K.kod(Form2l.stroka1[i]);
  31. b = (i + 1) + ")" + h + " \t" + "Элемент строки " + " '" + Form2l.stroka1[i] + "' " + "\t" +
  32. "Номер начальной позиции=" + (a - 15) + " \t Конечный конечной позиции= " + a;
  33. listBox1.Items.Add(b);
  34. }
  35. }
  36. private void button1_Click(object sender, EventArgs e)
  37. {
  38. long kolmax = 0;
  39. int i =0;
  40. string str = "";
  41. do
  42. {
  43. try
  44. {
  45. str = listBox1.Items[i].ToString();
  46. if (str != "") i++;
  47. }
  48. catch
  49. {
  50. break;
  51. }
  52. } while (str != "");
  53. string[] y = str.Split((char[])null, StringSplitOptions.RemoveEmptyEntries);
  54. //получение номера максимального бита
  55. kolmax = long.Parse(y[10]+"");
  56. bool fl = false;
  57. //проверка выбранных пользавателем позиций
  58. if (numericUpDown1.Value > 0) if ((numericUpDown2.Value > 0)&&(numericUpDown1.Value <= numericUpDown2.Value)&&(numericUpDown2.Value <= kolmax)) fl = true;
  59. if ((numericUpDown1.Value == 0)&&(numericUpDown2.Value == 0))fl=true;
  60. if (fl==true)
  61. {
  62. Form2l.firstpos = (int)numericUpDown1.Value;
  63. Form2l.lastpos = (int)numericUpDown2.Value;
  64. //проверка выбранной операции
  65. if (radioButton11.Checked == true)
  66. {
  67. Form q = new perestanovka();
  68. q.Show();
  69. }
  70. if (radioButton10.Checked == true)
  71. {
  72. Form q = new reverse();
  73. q.Show();
  74. }
  75. if (radioButton1.Checked == true)
  76. {
  77. Form q = new otrl();
  78. q.Show();
  79. }
  80. if (radioButton2.Checked == true)
  81. {
  82. Form q = new and0l();
  83. q.Show();
  84. }
  85. if (radioButton3.Checked == true)
  86. {
  87. Form q = new and1l();
  88. q.Show();
  89. }
  90. if (radioButton4.Checked == true)
  91. {
  92. Form q = new or0l();
  93. q.Show();
  94. }
  95. if (radioButton5.Checked == true)
  96. {
  97. Form q = new or1l();
  98. q.Show();
  99. }
  100. if (radioButton6.Checked == true)
  101. {
  102. Form q = new xor0l();
  103. q.Show();
  104. }
  105. if (radioButton7.Checked == true)
  106. {
  107. Form q = new xor1l();
  108. q.Show();
  109. }
  110. if (radioButton8.Checked == true)
  111. {
  112. Form q = new sdvigvpravol();
  113. q.Show();
  114. }
  115. if (radioButton9.Checked == true)
  116. {
  117. Form q = new sdvigvlevol();
  118. q.Show();
  119. }
  120. this.Hide();
  121. }
  122. else
  123. {
  124. MessageBox.Show("Первая выбранная позиция должна быть меньше либо равна второй выбранной позиции\nВторая выбранная позиция должна быть меньше либо равна максимальной позиции во входных данных\nВыбранные Вами позиции не могут равняться 0", "Недопустимые позиции", MessageBoxButtons.OK, MessageBoxIcon.Information);
  125. }
  126. }
  127. private void button2_Click(object sender, EventArgs e)
  128. {
  129. try
  130. {
  131. //считывание операций из файла
  132. bool fl = true;
  133. OpenFileDialog openFileDialog = new OpenFileDialog();
  134. if (openFileDialog.ShowDialog() == DialogResult.OK)
  135. {
  136. file = openFileDialog.FileName;
  137. StreamReader streamreader = new StreamReader(openFileDialog.FileName);
  138. Form2l.filename = openFileDialog.FileName;
  139. string str = "";
  140. int first = 0, last = 0;
  141. string oper = "";
  142. streamreader.BaseStream.Position = 0;
  143. do
  144. {
  145. str = streamreader.ReadLine();
  146. if (str == null) break;
  147. string[] k = str.Split((char[])null, StringSplitOptions.RemoveEmptyEntries);
  148. int.TryParse(k[0] + "", out first);
  149. int.TryParse(k[1] + "", out last);
  150. oper = k[2].ToString();
  151. //выбор нужной операции
  152. switch (oper)
  153. {
  154. case "xor1":
  155. {
  156. Form2l.stroka2 = K.xor1l(Form2l.stroka2, ref first, ref last);
  157. Form2l.strokaposlevipoln = Form2l.stroka2;
  158. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  159. break;
  160. }
  161. case "and1":
  162. {
  163. Form2l.stroka2 = K.and1l(Form2l.stroka2, ref first, ref last);
  164. Form2l.strokaposlevipoln = Form2l.stroka2;
  165. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  166. break;
  167. }
  168. case "xor0":
  169. {
  170. Form2l.stroka2 = K.xor0l(Form2l.stroka2, ref first, ref last);
  171. Form2l.strokaposlevipoln = Form2l.stroka2;
  172. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  173. break;
  174. }
  175. case "and0":
  176. {
  177. Form2l.stroka2 = K.and0l(Form2l.stroka2, ref first, ref last);
  178. Form2l.strokaposlevipoln = Form2l.stroka2;
  179. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  180. break;
  181. }
  182. case "!":
  183. {
  184. Form2l.stroka2 = K.otrl(Form2l.stroka2, ref first, ref last);
  185. Form2l.strokaposlevipoln = Form2l.stroka2;
  186. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  187. break;
  188. }
  189. case "or0":
  190. {
  191. Form2l.stroka2 = K.or0l(Form2l.stroka2, ref first, ref last);
  192. Form2l.strokaposlevipoln = Form2l.stroka2;
  193. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  194. break;
  195. }
  196. case "or1":
  197. {
  198. Form2l.stroka2 = K.or1l(Form2l.stroka2, ref first, ref last);
  199. Form2l.strokaposlevipoln = Form2l.stroka2;
  200. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  201. break;
  202. }
  203. case "reverse":
  204. {
  205. Form2l.stroka2 = K.reverse(Form2l.stroka2, ref first, ref last);
  206. Form2l.strokaposlevipoln = Form2l.stroka2;
  207. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  208. break;
  209. }
  210. case ">>":
  211. {
  212. string y;
  213. y = k[3].ToString();
  214. int r = int.Parse(y);
  215. Form2l.stroka2 = K.sdvigvpravo(Form2l.stroka2, ref first, ref last, r);
  216. Form2l.strokaposlevipoln = Form2l.stroka2;
  217. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  218. break;
  219. }
  220. case "<<":
  221. {
  222. string y;
  223. y = k[3].ToString();
  224. int r = int.Parse(y);
  225. Form2l.stroka2 = K.sdvigvlevo(Form2l.stroka2, ref first, ref last, r);
  226. Form2l.strokaposlevipoln = Form2l.stroka2;
  227. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  228. break;
  229. }
  230. case "perestanovka":
  231. {
  232. string y;
  233. y = k[3].ToString();
  234. int r = int.Parse(y);
  235. Form2l.stroka2 = K.perestanovka(Form2l.stroka2, ref first, ref last, r);
  236. Form2l.strokaposlevipoln = Form2l.stroka2;
  237. Form2l.stroka4 = K.end(Form2l.nomera, Form2l.strokaposlevipoln);
  238. break;
  239. }
  240. default:
  241. {
  242. fl = false;
  243. MessageBox.Show("Ошибка в данных", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
  244. break;
  245. }
  246. }
  247. } while (str != "");
  248. streamreader.Close();
  249. }
  250. if (fl == true)
  251. {
  252. Form2l.changeelement = K.izmen(Form2l.stroka1, Form2l.stroka4);
  253. Form2l.fileornot = true;
  254. Form q = new vivod2();
  255. q.Show();
  256. this.Hide();
  257. }
  258. else
  259. {
  260. fl = false;
  261. }
  262. }
  263. catch
  264. {
  265. MessageBox.Show("Произошла ошибка при работе с файлом.\nПроверьте корректность входных данных.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
  266. }
  267. }
  268. private void Form3s_FormClosed(object sender, FormClosedEventArgs e)
  269. {
  270. //закрытие родительской формы
  271. Form1.Perv.Close();
  272. }
  273. private void button3_Click(object sender, EventArgs e)
  274. {
  275. //инструкция
  276. MessageBox.Show("Входной файл может содержать строки следующих форматов:\nВариант #1:\nномер_начальной_позиции <пробел> номер_конечной_позиции <пробел> операция\nВариант #2:\nномер_начальной_позиции <пробел> номер_конечной_позиции <пробел> операция <пробел> некоторое_число\n\nВарианты записи операций:\n\nВариант #1:\n! - Логическое отрицание (!)\nand0 - Конъюнкция c 0 (&)\nand1 - Конъюнкция c 1 (&)\nor0 - Дизъюнкция с 0 (|)\nor1 - Дизъюнкция с 1 (|)\nxor0 - Строгая дизъюнкция с 0 (^)\nxor1 - Строгая дизъюнкция с 1 (^)\nreverse - Реверсирование\n\nВариант #2:\nperestanovka - Перестановка группы бит (некоторое_число – номер позиции, в которую будет переставлена группа бит).\n<< - Сдвиг влево (некоторое_число – число бит, на которое сдвигается исходное значение).\n>> - Сдвиг вправо (некоторое_число – число бит, на которое сдвигается исходное значение).", "Оформление входного файла", MessageBoxButtons.OK, MessageBoxIcon.Information);
  277. }
  278. private void Form3s_KeyUp(object sender, KeyEventArgs e)
  279. {
  280. if (e.KeyCode == Keys.F1)
  281. {
  282. try
  283. {
  284. System.Diagnostics.Process.Start(@"helpbit.chm");
  285. }
  286. catch
  287. {
  288. MessageBox.Show("Справка не найдена", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  289. }
  290. }
  291. }
  292. }
  293. }