Так что, компьютеры не очень хороши в чтении рукописных или даже печатных слов или в понимании человеческой речи, по крайней мере пока, хотя технология улучшается, но мы все еще довольно далеко от систем, которые могли бы обеспечить скорость и точность для многих приложений.
Альтернативные интерфейсы ввода необходимы.
Клавиатура является наиболее часто используемым устройством ввода. Однако существуют альтернативные технологии, такие как штрих-коды.
Я уверен, что каждый из вас часто сталкивался со штрих-кодами в повседневной жизни.
Например, в супермаркетах, библиотеках и на почте.
В последнее время появляются и новые технологии для распознавания голоса.
Например, Siri, который iPhone использует для голосового ввода, Google поиск, и у многих из вас, вероятно, есть опыт разговоров с компьютером, когда вы делали телефонные звонки.
В последнее время радиочастотная технология идентификации RFID позволяет отслеживать продукты через беспроводные бесконтактные средства.
Некоторые супермаркеты экспериментируют с радиометками RFID, которые позволяют продавцу осуществлять проверку, не вынимая каждый товар из вашей корзины.
Я покажу вам пример манипулирования со штрих-кодом в программе.
Штрих-код является машиночитаемым представлением данных в виде изображения.
Я буду говорить об одномерных штрихкодах.
2D штрих-коды, такие как QR-коды, также набирают популярность.
В основном, линейный штрих-код представляет данные путем изменения ширины и промежутка между набором параллельных линий.
Здесь показаны некоторые примеры штрих-кодов.
Штрих-технологии были разработаны в 1960-х годах и получили коммерческий успех, так как они широко используются в автоматизированных кассовых системах, таких как те, что используются в супермаркетах.
Я хочу отметить, что в следующем примере, мы используем абстракцию данных для работы со штрих-кодом.
То есть, нам нужно только знать, что штрих-код представляет собой число в виде серии цифр и считыватель штрих-кода будет способен декодировать штрих-код и ввести число в компьютер.
Как это на самом деле сделано или реализовано – не важно для пользователя.
Можно рассматривать его таким же образом, как номера на клавиатуре.
Эта программа здесь показывает, что простая арифметика может быть применена к числовым значениям, представленным с использованием штрих-кодов.
Программа начинается с импорта класса IO из пакета comp102x.
В дополнение к выполнению операций ввода/вывода от стандартных устройств ввода и вывода, класс IO может также принимать входные и выходные данные как штрих-код.
Этот пример, иллюстрирующий, что, когда используется компьютер, тогда не важно, получены ли входные данные от пользователя через клавиатуру или с помощью штрих-кода.
Подробное представление не важно до тех пор, пока для программы обеспечены методы декодирования информации.
Как и прежде, программа получает имя класса, в данном случае BarcodeDemo, и метод main как главную точку входа в программу.
Первая часть тела программы принимает два штрих-кода в качестве входных данных с помощью метода inputBarcode от класса IO.
Чуть позже вы увидите в демо программе, что вместо ввода числа с помощью клавиатуры, пользователю будет предложено выбрать изображение штрих-кода, которое представляет некоторое число из существующего файла.
Числа затем будут расшифрованы и присвоены переменным value1 и value2.
Это похоже на использование inputInteger или inputDouble, если входные данные должны были быть введены с консоли.
Цифры, введенные с клавиатуры, по-прежнему должны быть декодированы перед присвоением в соответствующие переменные.
Обратите внимание, что здесь мы используем тип long, потому что штрих-коды могут представлять очень большие числа, которые могут быть вне диапазона типа int.
После того, как штриховые коды декодируются в виде чисел, они могут быть использованы так же, как если они были созданы с помощью других средств.
Два IO.outputln объявления здесь выводят значения, представленные двумя штрих-кодами.
Значения можно обрабатывать так же, как числа, представленные в других примитивных типах в Java, и арифметические операции, такие как сложение и умножение, могут быть применены к этим числам.
В этом случае, результаты операций будут присвоены переменным addResult и multResult с примитивным целочисленным типом данных long снова, потому что штрих-коды могут представлять очень большие числа.
И результаты арифметических операций распечатываются для просмотра.
Кроме того, результаты могут также быть выведены в виде штрих-кода, используя метод outputBarcode для класса IO.
В этом случае штрих-код будет создан для значения addResult и сохранится в выходном файле.
Демонстрация примера
Прежде чем продемонстрировать программу штрих-кодов, давайте сначала посмотрим на некоторые образцы штрих-кодов.
Эти штрих-коды хранятся в виде файлов изображений.
Первый из них сфотографировали с обложки книги с помощью камеры сотового телефона.
Вы можете увидеть, что качество не очень хорошее.