Пользовательский интерфейс
This commit is contained in:
		
							parent
							
								
									d0d0e4398d
								
							
						
					
					
						commit
						03599e5d6f
					
				
							
								
								
									
										128
									
								
								bin/graphs0.dart
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								bin/graphs0.dart
									
									
									
									
									
								
							| @ -5,37 +5,48 @@ import 'dart:io'; | ||||
| int getIntLine() => int.parse(stdin.readLineSync(encoding: utf8)!); | ||||
| String getStrLine() => stdin.readLineSync(encoding: utf8)!; | ||||
| 
 | ||||
| void printGraphsName(List<Graphs> inp) { | ||||
|   print("Графы: "); | ||||
|   for (int i = 0; i < inp.length; i++) { | ||||
|     print("$i: ${inp[i].getName()}"); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void main(List<String> arguments) { | ||||
|   Map<int, int> x = {1: 10, 2: 11}; | ||||
|   /*Map<int, int> x = {2: 10}; | ||||
|   var p = Dot.fromMap("Т1", x); | ||||
|   p.printD(); | ||||
|   x = <int, int>{}; | ||||
| 
 | ||||
|   x[1] = 11; | ||||
|   var p2 = Dot.fromMap("Т2", x); | ||||
|   p2.printD(); | ||||
|   x[3] = 11; | ||||
|   var p2 = Dot.fromMap("Т2", {}); | ||||
|   x = <int, int>{}; | ||||
| 
 | ||||
|   var x1 = Graphs.fromList("Граф 1", [p, p2], true, false); | ||||
|   x1.addDot(p); | ||||
|   x1.addDotFromToLists("T3", [1, 2], [10, 20]); | ||||
|   x1.addIsolated("T3"); | ||||
|   x1.addIsolated("T4"); | ||||
|   x1.checkDots(true); | ||||
|   x1.addPath(2, 3, 21); | ||||
|   //print(x1.addPath(4, 1, 10)); | ||||
|   x1.printG(); | ||||
|   print(x1.addPath(4, 1, 10)); | ||||
|   x1.printG(); | ||||
|   x1.printToFile("outTest.txt"); | ||||
|   var x2 = Graphs.fromFile("outTest.txt"); | ||||
|   x2.printG(); | ||||
|   x2.delPath(1, 4); | ||||
|   x2.printG(); | ||||
|   x2.delDot(1); | ||||
|   x2.printG(); | ||||
|   x2.delDot(2); | ||||
|   x2.printG(); | ||||
|   x2.addPath(1, 2, 11); | ||||
|   x1.printToFile("o.txt"); | ||||
|   var x2 = Graphs.fromFile("o.txt"); | ||||
|   x2.printG(); | ||||
|   print(x2.bfsHasPath(1, 4)); | ||||
|   print(x2.bfsPath(1, 3)); | ||||
| 
 | ||||
|   Graphs x1 = Graphs("Gt", false, true); | ||||
|   x1.addIsolated("T1"); | ||||
|   x1.addIsolated("T2"); | ||||
|   x1.addIsolated("T3"); | ||||
|   x1.addIsolated("T4"); | ||||
|   x1.addPath(1, 3, 1); | ||||
|   x1.addPath(3, 2, 5); | ||||
|    | ||||
|   x1.addPath(2, 4, 10); | ||||
|   x1.printG(); | ||||
|   print(x1.bfsPath(1, 4)); | ||||
|   print(x1.bfsHasPath(1, 4)); | ||||
|   */ | ||||
|   int deistvie = 1; | ||||
|   List<Graphs> graphs = <Graphs>[]; | ||||
|   String name; | ||||
| @ -101,7 +112,6 @@ void main(List<String> arguments) { | ||||
| 
 | ||||
|                   List<int> inn = <int>[]; | ||||
|                   List<int> len = <int>[]; | ||||
|                   while (str != "" && str != " ") { | ||||
|                   List<String> a = str.split(sep.space); | ||||
|                   for (var splitted in a) { | ||||
|                     var dt = splitted.split(sep.dotToLength); | ||||
| @ -119,22 +129,17 @@ void main(List<String> arguments) { | ||||
|                 break; | ||||
|               } | ||||
|           } | ||||
|           } | ||||
|           break; | ||||
|         } | ||||
|       case 2: | ||||
|         { | ||||
|           // удалить граф | ||||
|           int num = graphs.length; | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Удалить граф с номером: "); | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Удалить граф с номером: "); | ||||
|           int x = getIntLine(); | ||||
|           if (x >= 0 && x < num) { | ||||
|             /* | ||||
| 				vector<graf>::iterator i = grafs.begin(); | ||||
| 				for (int j = 0; j < x; j++) { | ||||
| 					i++;} | ||||
| 				grafs.erase(i);*/ | ||||
|             graphs.removeAt(x); | ||||
|           } else { | ||||
|             print("Не найден граф с таким номером"); | ||||
|           } | ||||
| @ -145,32 +150,27 @@ void main(List<String> arguments) { | ||||
|           // добавить вершину | ||||
|           List<int> inn = <int>[]; | ||||
|           List<int> len = <int>[]; | ||||
|           stdout.write( | ||||
|               "Ввод: *куда*|*вес* через пробел. Если граф не взвешенный, то в *вес* ставить 0: "); | ||||
|           String x = getStrLine(); | ||||
|           while (x != "" && x != " ") { | ||||
|             String a = x.substring(0, x.indexOf(sep.dotToLength)); | ||||
|             if (x.contains(sep.dotToLength)) { | ||||
|               x = x.substring(x.indexOf(" ") + 1, x.length); | ||||
|             } else { | ||||
|               x = ""; | ||||
|             } | ||||
| 
 | ||||
|             if (a.contains(sep.dotToLength)) { | ||||
|               inn.add(int.parse((a.substring(0, a.indexOf(sep.dotToLength))))); | ||||
|               len.add(int.parse( | ||||
|                   a.substring(a.indexOf(sep.dotToLength) + 1, a.length))); | ||||
|             } else { | ||||
|               inn.add(int.parse(a)); | ||||
|               len.add(0); | ||||
|             } | ||||
|           } | ||||
|           int num = graphs.length; | ||||
|           stdout.write("Имя вершины: "); | ||||
|           String dotName = getStrLine(); | ||||
| 
 | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Вставка в графа с номером: "); | ||||
|               "Ввод: *куда*|*вес* через пробел. Если граф не взвешенный, то *вес* можно не указывать.\nВершина cмежна с: "); | ||||
|           str = getStrLine(); | ||||
| 
 | ||||
|           List<String> a = str.split(sep.space); | ||||
|           for (var splitted in a) { | ||||
|             var dt = splitted.split(sep.dotToLength); | ||||
|             if (dt.length == 2) { | ||||
|               inn.add(int.parse(dt[0])); | ||||
|               len.add(int.parse(dt[1])); | ||||
|             } | ||||
|           } | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Вставка в графа с номером: "); | ||||
|           int y = getIntLine(); | ||||
|           if (y >= 0 && y < num) { | ||||
|             graphs[y].addDotFromToLists("0", inn, len); | ||||
|           if (y >= 0 && y < graphs.length) { | ||||
|             graphs[y].addDotFromToLists(dotName, inn, len); | ||||
|           } else { | ||||
|             print("Не найден граф с таким номером"); | ||||
|           } | ||||
| @ -181,11 +181,11 @@ void main(List<String> arguments) { | ||||
|         { | ||||
|           // удалить вершину | ||||
|           int num = graphs.length; | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Вывод графа с номером: "); | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Вывод графа с номером: "); | ||||
|           int y = getIntLine(); | ||||
|           graphs[y].printG(); | ||||
|           if (y >= 0 && y < num) { | ||||
|             graphs[y].printG(); | ||||
|             num = graphs[y].getDotAmount(); | ||||
|             stdout.write("Количество вершин: $num. Вершина для удаления: "); | ||||
|             int x = getIntLine(); | ||||
| @ -203,11 +203,11 @@ void main(List<String> arguments) { | ||||
|         { | ||||
|           // добавить ребро/дугу | ||||
|           int num = graphs.length; | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Вставка в граф с номером: "); | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Вставка в граф с номером: "); | ||||
|           int y = getIntLine(); | ||||
|           graphs[y].printG(); | ||||
|           if (y >= 0 && y < num) { | ||||
|             graphs[y].printG(); | ||||
|             num = graphs[y].getDotAmount(); | ||||
|             stdout.write("Количество вершин: $num. Вершина куда вствляется: "); | ||||
|             int x1 = getIntLine(); | ||||
| @ -229,12 +229,12 @@ void main(List<String> arguments) { | ||||
|         { | ||||
|           // удалить ребро/дугу | ||||
|           int num = graphs.length; | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Удаление из графа с номером: "); | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Удаление из графа с номером: "); | ||||
|           int y = getIntLine(); | ||||
|           graphs[y].printG(); | ||||
|           int x1, x2; | ||||
|           if (y >= 0 && y < num) { | ||||
|             graphs[y].printG(); | ||||
|             num = graphs[y].getDotAmount(); | ||||
|             stdout.write( | ||||
|                 "Количество вершин: $num. Введите через пробел номера вершин между которыми удалить ребро: "); | ||||
| @ -254,8 +254,8 @@ void main(List<String> arguments) { | ||||
|       case 7: // вывод в консоль | ||||
|         { | ||||
|           int num = graphs.length; | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Вывод графа с номером: "); | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Вывод графа с номером: "); | ||||
|           int x = getIntLine(); | ||||
|           if (x >= 0 && x < num) { | ||||
|             graphs[x].printG(); | ||||
| @ -268,8 +268,8 @@ void main(List<String> arguments) { | ||||
|         { | ||||
|           // вывод в файл | ||||
|           int num = graphs.length; | ||||
|           stdout.write( | ||||
|               "Нумерация с 0. Количество сохраненных графов: $num. Вывод графа с номером: "); | ||||
|           printGraphsName(graphs); | ||||
|           stdout.write("Вывод графа с номером: "); | ||||
|           int x = getIntLine(); | ||||
|           stdout.write("В файл: "); | ||||
|           String out = getStrLine(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user