· 6 years ago · Apr 18, 2019, 10:12 PM
1Ð’Ñем добрый вечер!
2
3Пишу Ð´Ð»Ñ Ñдающих КВÐЛИФИКÐЦИОÐÐЫЙ ÐКЗÐМЕÐ.
4
5Сдаем в 328-1 Ñ 9ч. утра до 12ч. (примерно как в прошлый раз): 561Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° завтра (18.04.2019), 565Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° поÑлезавтра (19.04.2019).
6
7Ðудиторию открою также не позднее, чем за полчаÑа, Ñ‚.е. к 8:30.
8
9Ð”Ð»Ñ Ñ‚ÐµÑ…, кто допущен и претендует на "3", программный код можно будет открыть на моем компьютере.
10
11Те, кто претендует на "4"/"5", берем ноуты Ñ Ñобой, можно компоноватьÑÑ Ð¿Ð¾ двое!) Также желательно взÑть удлинители, моих 2Ñ… тройников может не хватить!
12
13Ðа Ñкзамене проÑьба не "выÑиживать", дейÑтвовать, иÑÑ…Ð¾Ð´Ñ Ð¸Ð· оценки, к которой готовилиÑÑŒ) Первых 30 мин. будет доÑтаточно, чтоб кратко зафикÑировать ответы на вопроÑÑ‹ в билете на лиÑтках, которые будут вÑем предоÑтавлены.
14
15Варианты 1-го и 2-го вопроÑов - на "3":
161.1) Программный код Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта Ñкрипта MySQL WorkBench: Ñоздание разработанных таблиц "один-ко-многим".
171.2) Программный код Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñкрипта MySQL WorkBench: заполнение трех Ñтрок каждой из разработанных таблиц.
182.1) Программный код добавлениÑ/Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… MySQL Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ библиотеки MySql.Data.dll в WinForms.
192.2) Программный код добавлениÑ/Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… MySQL Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ библиотеки MySql.Data.dll в WinForms.
202.3) Программный код добавлениÑ/ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… MySQL Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ библиотеки MySql.Data.dll в WinForms.
212.4) Программный код извлечениÑ/Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… MySQL Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ библиотеки MySql.Data.dll в WinForms.
22
233й и 4й Ð²Ð¾Ð¿Ñ€Ð¾Ñ - на "4"/"5":
243) Содержание Ñпецификации на программный продукт.
254) Юнит-теÑты Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ð¾Ð³Ð¾ программного продукта.
26
27Примерные ответы на вопроÑÑ‹ 1, 2, 4 привожу Ñледующим поÑтом)
28
29Примерные ответы на Ð²Ð¾Ð¿Ñ€Ð¾Ñ 1.
30
311.1)
32string str_add = "USE gb_host02;\n";
33 str_add += "SET foreign_key_checks = 0;\n";
34 str_add += "DROP TABLE IF EXISTS rulons;\n";
35 str_add += "CREATE TABLE rulons(\n";
36 str_add += "rulon_id decimal(5, 2) NOT NULL UNIQUE,\n";
37 str_add += "material_name varchar(50),\n";
38 str_add += "color_name varchar(50),\n";
39 str_add += "width_mm int(5),\n";
40 str_add += "length_mm int(5),\n";
41 str_add += "PRIMARY KEY(rulon_id)\n";
42 str_add += ");\n";
43 str_add += "ALTER TABLE rulons CONVERT TO CHARACTER SET utf8;\n\n";
44
45 str_add += "DROP TABLE IF EXISTS items;\n";
46 str_add += "CREATE TABLE items(\n";
47 str_add += "item_id int(5) NOT NULL UNIQUE,\n";
48 str_add += "part_number int(5),\n";
49 str_add += "rulon_id decimal(5, 2) NOT NULL,\n";
50 str_add += "item_name varchar(50),\n";
51 str_add += "item_image mediumblob,\n";
52 str_add += "width_mm int(5),\n";
53 str_add += "length_mm int(5),\n";
54 str_add += "item_count int(5),\n";
55 str_add += "PRIMARY KEY(item_id),\n";
56 str_add += "FOREIGN KEY(rulon_id) references rulons(rulon_id)\n";
57 str_add += ");\n";
58 str_add += "ALTER TABLE items CONVERT TO CHARACTER SET utf8;\n";
59 str_add += "SET foreign_key_checks = 1;\n\n";
60
611.2)
62string str_add = "USE gb_host02;\n";
63 str_add += "DESCRIBE rulons;\n";
64 str_add += "INSERT INTO rulons(rulon_id, material_name, color_name, width_mm, length_mm) VALUE\n";
65 str_add += "(1, 'шелк', 'Оранжевый', 180, 160),\n";
66 str_add += "(2, 'полиÑфир', 'Желтый', 180, 240),\n";
67 str_add += "(3, 'шелк', 'Зеленый', 180, 190);\n\n";
68
69 str_add += "DESCRIBE items;\n";
70 str_add += "INSERT INTO items(item_id, part_number, rulon_id, item_name, item_image,\n";
71 str_add += "width_mm, length_mm, item_count) VALUE\n";
72 str_add += "(1, 1, 1, 'Салфетки', NULL, 30, 30, 4),\n";
73 str_add += "(2, 2, 1, 'Платки', NULL, 60, 80, 8),\n";
74 str_add += "(3, 3, 2, 'Подушка', NULL, 60, 60, 4);\n";
75
76Примерные ответы на Ð²Ð¾Ð¿Ñ€Ð¾Ñ 2.
77
782.1) 2.2) 2.3) (подходит ко вÑем трем)
79private void InsertDB(int id_int, string vendor_string)
80 {
81 string webAppConnection_string = "server=mysql100.1gb.ru;user ID=gb_host01;Password=*****;database=gb_host01;"
82 MySqlConnection conn = new MySqlConnection(webAppConnection_string);
83 conn.Open();
84
85 string query_str = "INSERT INTO gb_host01.gps_software (gps_software_id, gps_software_name) VALUE (";
86 query_str += id_int.ToString() + ",'" + vendor_string.ToString() + "');";
87 MySqlCommand cmd = new MySqlCommand(query_str, conn);
88
89 MySqlDataReader data_reader;
90 try
91 {
92 data_reader = cmd.ExecuteReader();
93 }
94 catch(Exception exp)
95 {
96 string err_string = "Данные не запиÑаны! Сообщение ÑиÑтемы\n\"" + exp.Message.ToString() + "\"";
97 MessageBox.Show( err_string, "Ошибка запиÑи", MessageBoxButtons.OK, MessageBoxIcon.Question);
98 }
99 finally
100 {
101 conn.Close();
102 }
103 }
104
1052.2) 2.4) (подходит к обоим)
106private void UpdateImage(string str_filename, string str_key_value)
107 {
108 MySqlConnection conn = new MySqlConnection(webAppConnection_string);
109 conn.Open();
110
111 try
112 {
113 MemoryStream ms = new MemoryStream();
114 Bitmap im = new Bitmap(str_filename);
115 float scaleHeight = (float)100 / (float)im.Height;
116 float scaleWidth = (float)100 / (float)im.Width;
117 float scale = Math.Min(scaleHeight, scaleWidth);
118 int new_width = (int)(im.Width * scale);
119 int new_height = (int)(im.Height * scale);
120 Image new_im = new Bitmap(im, new Size(new_width, new_height));
121 string tmp_name = "tmp.png";
122 new_im.Save(tmp_name);
123 Bitmap upd_im = new Bitmap(tmp_name);
124 upd_im.Save(ms, upd_im.RawFormat);
125 byte[] img = ms.ToArray();
126
127MySqlCommand command = new MySqlCommand("UPDATE navigators SET gps_image = @gps_image WHERE gps_name = @gps_name;", conn);
128 command.Parameters.Add("@gps_name", MySqlDbType.VarChar).Value = str_key_value;
129 command.Parameters.Add("@gps_image", MySqlDbType.Blob).Value = img;
130
131 if(command.ExecuteNonQuery() == 1)
132 {
133 MessageBox.Show("Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½");
134 }
135 else
136 {
137 MessageBox.Show("Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ðµ выполнен");
138 }
139
140 conn.Close();
141 }
142 catch(Exception ex)
143 {
144 MessageBox.Show(ex.Message.ToString());
145 }
146 finally
147 {
148 if(conn.State == ConnectionState.Open)
149 {
150 conn.Close();
151 }
152 }
153 }
154
155Примерный ответ на Ð²Ð¾Ð¿Ñ€Ð¾Ñ 4.
156
157 [TestClass]
158 public class UnitTest
159 {
160 class_loadTxtCsv load = new class_loadTxtCsv();
161
162 [TestMethod]
163 public void Test_CheckTxtCsv()
164 {
165 Assert.AreEqual(load.CorrectTxtCsv(load.FORMAT_TXT, "items"), 0);
166 Assert.AreEqual(load.CorrectTxtCsv(load.FORMAT_TXT, "rulons"), 0);
167 Assert.AreEqual(load.CorrectTxtCsv(load.FORMAT_CSV, "items"), 0);
168 Assert.AreEqual(load.CorrectTxtCsv(load.FORMAT_CSV, "rulons"), 0);
169 }
170
171 [TestMethod]
172 public void Test_WrongFormat()
173 {
174 Assert.AreEqual(load.CorrectTxtCsv(2, "rulons"), 0);
175 Assert.AreEqual(load.CorrectTxtCsv(2, "rulons"), -101);
176 }
177
178 [TestMethod]
179 public void Test_WrongResource()
180 {
181 Assert.AreEqual(load.CorrectTxtCsv(1, "rulon"), 0);
182 Assert.AreEqual(load.CorrectTxtCsv(1, "rulon"), -102);
183 }
184 }
185
186- Данные во вÑех ÑлучаÑÑ… подÑтавлÑем из СВОИХ проектов.
187- Будет 30 билетов, можно выбрать по принципу: "Кто первый, того и тапочки".