Разработка информационно-поискового справочника "Жидкокристаллические индикаторы"

Общая структурная схема программы. Основные способы структурной организации связанных по смыслу переменных. Проведение сортировки вставками. Описание назначения функций. Загрузка ранее сохраненного на диске справочника в оперативную память компьютера.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 10.09.2015
Размер файла 97,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Создание информационно-поискового справочника

1.1 Постановка задачи

1.2 Структура данных с указанием типов

1.3 Общая структурная схема программы

1.4 Описание специальных алгоритмов

1.4.1 Метод вставок

1.4.2 Метод выбора

1.5 Описание назначения функции

1.6 Результаты работы программы

Заключение

Список используемой литературы

Введение

Цель данной курсовой работы по предмету «Информатика и Информационные технологии» состоит в том, чтобы разработать на языке C информационно-поисковый справочник «Жидкокристаллические индикаторы», который является систематизации знаний по программированию, полученных в течение лекционных и лабораторных занятий, а также работе с дополнительной литературой по созданию программ на языке программирования С.

Язык "C" - это универсальный язык программирования, для которого характерны экономичность выражения, современный поток управления и структуры данных, богатый набор операторов.

Язык "C" не является ни языком "очень высокого уровня", ни "большим" языком, и не предназначается для некоторой специальной области применения, но отсутствие ограничений и общность языка делают его более удобным и эффективным для многих задач, чем языки, предположительно более мощные.

1. Создание информационно-поискового справочника

1.1 Постановка задачи

Информационно-поисковый справочник «Жидкокристаллические индикаторы».

В программе реализованы следующие функции:

1. Создание справочника в памяти (Ввод данных) .

2. Вывод справочника на экран.

3. Сортировка методом выбора по названию ЖКИ по возрастанию.

4. Сортировка методом вставок по цене ЖКИ по убыванию.

5. Сохранение справочника в бинарный файл.

6. Открытие справочника из бинарного файла.

7. Выход из программы.

Таблица 1.1 - Характеристики ЖКИ

Название

Напряжение питания, В

Ток питания, А

Цвет

Цена, руб

LCD125C1

5

1.8

Красный

100

LCD125D1

10

1

Желтый

150.5

LCD125A1

12

1.8

Синий

90.1

LCD127CC1

11

1

Белый

123

LCD15CX1

10

1.8

Оранжевый

56.8

LCD151A3

6

1

Зеленый

1200

1.2 Структура данных с указанием типов

Структура -- это набор элементов, которые могут иметь различные типы.

Структуру можно представить себе как запись, состоящую из нескольких полей или элементов. Структуры обеспечивают удобный способ структурной организации связанных по смыслу переменных.

structjki {//используемая структура с полями

char name[20];

char color[10];

int volt;

float price, tok;

};

structjkiarr[20]; //массив структуры

1.3 Общая структурная схема программы

Рисунок 1.1

1.4 Описание специальных алгоритмов

1.4.1 Метод вставок

Сортировка вставками -- один из трех простейших алгоритмов сортировки. Сначала он сортирует два первых элемента массива. Затем алгоритм вставляет третий элемент в соответствующую порядку позицию по отношению к первым двум элементам. После этого он вставляет четвертый элемент в список из трех элементов. Этот процесс повторяется до тех пор, пока не будут вставлены все элементы. Например, при сортировке массива dcab каждый проход алгоритма будет выглядеть следующим образом:

Начало d c a b

Проход 1 c d a b

Проход 2 a c d b

Проход 3 a b c d

В отличие от пузырьковой сортировки и сортировки посредством выбора, количество сравнений в сортировке вставками зависит от изначальной упорядоченности списка. Если список уже отсортирован, количество сравнений равно n - 1; в противном случае его производительность является величиной порядка n2.

Вообще говоря, в худших случаях сортировка вставками настолько же плоха, как и пузырьковая сортировка и сортировка посредством выбора, а в среднем она лишь немного лучше. Тем не менее, у сортировки вставками есть два преимущества. Во-первых, ее поведение естественно. Другими словами, она работает меньше всего, когда массив уже упорядочен, и больше всего, когда массив отсортирован в обратном порядке. Поэтому сортировка вставками -- идеальный алгоритм для почти упорядоченных списков. Второе преимущество заключается в том, что данный алгоритм не меняет порядок одинаковых ключей. Это значит, что если список отсортирован по двум ключам, то после сортировки вставками он останется упорядоченным по обоим.

Несмотря на то, что количество сравнений при определенных наборах данных может быть довольно низким, при каждой вставке элемента на свое место массив необходимо сдвигать. Вследствие этого количество перемещений может быть значительным.

программа алгоритм справочник сортировка

1.4.2 Метод выбора

Может быть как устойчивый, так и неустойчивый. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае ?(n2), предполагая что сравнения делаются за постоянное время.

Шаги алгоритма:

1. находим номер минимального значения в текущем списке

2. производим обмен этого значения со значением первой неотсортированной позиции (обмен не нужен, если минимальный элемент уже находится на данной позиции)

3. теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы

Для реализации устойчивости алгоритма необходимо в пункте 2 минимальный элемент непосредственно вставлять в первую неотсортированную позицию, не меняя порядок остальных элементов.

1.5 Описание назначения функции

Файл «inputData.c» В данном файле содержится функция, которая осуществляет ввод данных. После её запуска входим в цикл while, в котором первым делом проверяется место в базе, если база заполнена, то на экран выводится соответствующее сообщение. В противном случае нам предлагается ввести данные, которые записываются в соответствующие поля нашей структуры. После этого нам предлагается продолжить ввести данные либо завершить ввод. При некорректном вводе программа сообщает об ошибке. Далее представлен листинг файла:

#include "main.h"

externintnum;

externstructjkiarr[20];

voidinputData(){

int i, k, n, a, index, letter;

while(1){

if(num == 20){

printf("\nFull base of data\n");

break;

}

printf("\nCount of records?");

scanf("%d", &num);

while(getchar() != '\n');

for(i = 0; i <num; i++){

index = 0;

while(1){

printf("Name jki №%d?", i + 1);

while ((letter = getchar( )) != '\n')

arr[i].name[index++] = letter;

arr[i].name[index] = '\0';

if(strlen(arr[i].name) == 0){

printf("Incorrect data!\n");

continue;

}

break;

}

index = 0;

while(1){

printf("Color jki №%d?", i + 1);

while ((letter = getchar( )) != '\n')

arr[i].color[index++] = letter;

arr[i].color[index] = '\0';

if(strlen(arr[i].color) == 0){

printf("Incorrect data!\n");

continue;

}

break;

}

while(1){

printf("Volt jki №%d?", i + 1);

if((scanf("%d", &arr[i].volt)) != 1 || arr[i].volt <

0){

while(getchar() != '\n');

printf("Incorrect data!\n");

continue;

}

else{

while(getchar() != '\n');

}

break;

}

while(1){

printf("Tokjki №%d?", i + 1);

if((scanf("%f", &arr[i].tok)) != 1 || arr[i].tok< 0){

while(getchar() != '\n');

printf("Incorrect data!\n");

continue;

}

else{

while(getchar() != '\n');

}

break;

}

while(1){

printf("Price jki №%d?", i + 1);

if((scanf("%f", &arr[i].price)) != 1 || arr[i].price <

0){

while(getchar() != '\n');

printf("Incorrect data!\n");

continue;

}

else{

while(getchar() != '\n');

}

break;

}

printf("===================================\n");

}

break;

}

return;

}

Файл «outputData.c». Здесь содержится функция, которая выводит весь справочник на экран. Листинге файла:

#include "main.h"

externintnum;

externstructjkiarr[20];

voidoutputData(){

int i;

printf("===============================================\n");

for(i = 0; i <num; i++){

printf("№=%d\n", i + 1);

printf("Name: %s\n", arr[i].name);

printf("Color: %s\n", arr[i].color);

printf("Volt: %d\n", arr[i].volt);

printf("Tok: %.f\n", arr[i].tok);

printf("Price: %.f\n", arr[i].price);

printf("===============================================\n");

}

}

Файл «searchData.c». В данном файле содержится функция поиска записи в справочнике по названию. Листинг файла:

#include "main.h"

externstructjkiarr[20];

externintnum;

voidsearchData(){

int i;

char ss2[20];

if(num> 1){

while(1){

printf("Name for search?\n");

fgets(ss2, 20, stdin);

if(ss2[0] == '\0'){

printf("Incorrect data!\n");

continue;

}

else{

break;

}

}

for(i = 0; i <num; i++){

if(strcmp(ss2, arr[i].name) == 0){

printf("№=%d\n", i + 1);

printf("Name: %s\n", arr[i].name);

printf("Color: %s\n", arr[i].color);

printf("Volt: %3d\n", arr[i].volt);

printf("Tok: %f\n", arr[i].tok);

printf("Price: %f\n", arr[i].price);

}

}

}

else{

getchar();

printf("No data!\n");

}

return;

}

Файл «sortDataByName.c». Содержит сортировку по названию. Листинг файла:

#include"main.h"

externstructjkiarr[20];

externintnum;

voidsortDataByName(){

int i, j;

structjkitmp;

for (i = 0; i <num - 1; i++) {

int min = i;

for (j = i + 1; j <num; j++)

if((strcmp(arr[j].name, arr[min].name)) < 0)

min = j;

if (min != i) {

tmp = arr[min];

arr[min] = arr[i];

arr[i] = tmp;

}

}

printf("\nDone!\n");

return;

}

Файл «sortDataByPrice.c». Сортировка по цене. Листинг файла:

#include"main.h"

externstructjkiarr[20];

externintnum;

voidsortDataByPrice(){

structjkitempArr;

int i, a;

for(i = 0; i < num-1; i++)

for(a = 0; a < num-1; a++){

if(arr[a + 1].price >arr[a].price){

tempArr = arr[a];

arr[a] = arr[a+1];

arr[a+1] = tempArr;

}

}

printf("\nDone!\n");

return;

}

Файл «loadData.c». Данная функция производит загрузку ранее сохраненного на диске справочника в оперативную память компьютера. После запуска функции предлагается ввести название загружаемого файла. Листинг файла:

#include "main.h"

externintnum;

externstructjkiarr[20];

voidloadData(){

int a=0, q, i;

char e, k[15];

FILE *f;

while(1){

printf("File name?");

fgets(k, 15, stdin);

for(i = 0; k[i] != '\n'; i++)

continue;

k[i] = '\0';

if((f=fopen(k, "r+b")) == NULL){

printf("Error open file!\n");

getchar();

return;

}

else{

break;

}

}

fread(&num, sizeof(int), 1, f);

for(q = 0; q <num; q++)

fread(&arr[q], sizeof(structjki), 1, f);

fclose(f);

printf("Done!\n");

}

Файл «saveData.c». Данная функция осуществляет запись справочника в файл. Листинг файла:

#include"main.h"

externstructjkiarr[20];

externintnum;

voidsaveData(){

char k[15];

int i = 0;

FILE *f;

printf("File name?");

fgets(k, 15, stdin);

for(i = 0; k[i] != '\n'; i++)

continue;

k[i] = '\0';

if((f = fopen(k, "wb")) == NULL){

printf("Error open file!\n");

return;

}

fwrite(&num, sizeof(int), 1, f);

for(i = 0; i <num; i++)

fwrite(&arr[i], sizeof(structjki), 1, f);

fclose(f);

printf("Done!\n");

return;

}

Файл «main.c». В самом начале программы происходит вход в бесконечный цикл, который завершится только, если будет выбран 8 пункт меню (выход из программы). В начале каждого бесконечного цикла, предлагается выбрать пункт меню, путём ввода с клавиатуры его порядкового номера. Каждая ветвь соответствует пункту меню с порядковым номером n, и в ней выполняется соответствующая функция. Листинг файла:

#include <main.h>

intnum = 0;

structjkiarr[20];

int main(intargc, char *argv[])

{

setlocale(LC_ALL, "Rus");

int a;

while(1){

printf("1. Input data\n");

printf("2. Output data\n");

printf("3. Sort by name\n");

printf("4. Sort by price\n");

printf("5. Search by name\n");

printf("6. Save as\n");

printf("7. Open file\n");

printf("8. Exit\n");

printf("\nNumber?");

scanf("%d", &a);

if(getchar() == '\n'){

switch(a){

case 1:

inputData();

break;

case 2:

if(num == 0){

printf("\nNo data!\n");

continue;

}

outputData();

break;

case 3:

if(num == 0){

printf("\nNo data!\n");

continue;

}

sortDataByName();

break;

case 4:

if(num == 0){

printf("\nNo data!\n");

continue;

}

sortDataByPrice();

break;

case 5:

if(num == 0){

printf("\nNo data!\n");

continue;

}

searchData();

break;

case 6:

if(num == 0){

printf("\nNo data!\n");

continue;

}

saveData();

break;

case 7:

loadData();

break;

case 8:

return 0;

default:

printf("\nIncorrect number!\n");

continue;

}

}

else{

printf("Incorrect number!");

while(getchar() != '\n');

}

}

return 0;

}

Файл «main.h». Заголовочный файл. В нем содержатся все подключаемые библиотеки, прототипы функций, объявления структуры. Листинг файла:

#include <stdio.h>

#include <string.h>

#include <locale.h>

voidinputData();

voidoutputData();

voidsearchData();

voidsortDataByName();

voidsortDataByPrice();

voidsaveData();

voidloadData();

structjki {

char name[20];

char color[10];

int volt;

float price, tok;

};

1.6 Результаты работы программы

Рисунок 1.2 - Главное меню

Рисунок 1.3 - Ввод данных

Рисунок 1.4 - Вывод данных

Рисунок 1.5 - Сортировка данных

Рисунок 1.6 - Запись данных в файл

Рисунок 1.7 - Чтение данных из файла

Заключение

В результате выполнения курсовой работы была разработана программа на языке С для заданной тематики.

Т. к. язык C- довольно удобный инструмент для получения быстрых и компактных программ, использующих эффективно доступные ресурсы машины, он налаживает определённые требования на разработчика: в отличие от «классических» языков инженерного программирования (Фортран и т.д.) , язык С способен на базовом уровне выполнять только простейшие операции, характерные для большинства процессорных платформ (собственно с помощью чего достигается его эффективность). Вследствие этого инженер-программист, использующий для решения вычислительной проблемы язык C, должен обладать чёткой культурой программирования и ясно понимать процессы, происходящие в машине, при выполнении составленной им программы.

Список используемой литературы

1. Герберт Шилдт / Полный справочник С.- М. 2006.- 504 с.

2. Цырлин, М. И. Основные требования к оформлению пояснительных записок курсовых и дипломных проектов (работ) : учеб.-метод. пособие / М. И. Цырлин. - Гомель :БелГУТ, 2007. ? 31 с.

3. С.Прата./Язык программирования С.-М. Издательство «Диасофт», 2002. - 896 с.

4. О.П. Гораев, Ю.П. Лыч. Текстовый процессор МSWORD. Практикум по компьютерным технологиям. БелГУТ, 2003. -- 68 стр.

Размещено на Allbest.ur

...

Подобные документы

  • Структура данных с указанием типов. Общая структурная схема программы. Алгоритмы сортировки вставками. Назначение make-файла. Функции управления программой; перемещения и корректировки введенных данных и их удаления справочника, загрузки данных из файла.

    курсовая работа [1,3 M], добавлен 12.01.2016

  • История создания языков С и С++. Разработка буквенного меню, посредством которого реализуются функции информационно-поискового справочника "Терморезисторы". Определение структуры данных, защита программы от ввода пользователем некорректных параметров.

    курсовая работа [18,3 K], добавлен 16.02.2012

  • Возможности языков программирования С и С++. Разработка и реализация информационно-поискового справочника "Блок питания", листинг программы. Функции и структура данных в программе. Динамическое распределение памяти, работа с файлами, несложные сортировки.

    курсовая работа [38,7 K], добавлен 10.01.2011

  • Рассмотрение особенностей языка программирования С++. Пример составления программы - информационно-поискового справочника. Описание алгоритмов коррекции данных, введённых пользователем. Тестирование полученной программы, предусмотрение ее защиты.

    курсовая работа [20,0 K], добавлен 05.03.2015

  • История развития справочников/баз данных. Основные параметры, необходимые для создания справочника по предприятию. Разработка интерфейса программы в среде CSharp. Детальный просмотр функций программы. Системные требования к ПК и руководство пользователя.

    курсовая работа [3,2 M], добавлен 11.04.2012

  • Проектирование интерактивного справочника магазина "Азарт", для реализации продукции посредством сети Интернет. Разработка базы данных, описание программы и составление руководства для оператора. Экспериментальное исследование разработанного продукта.

    дипломная работа [3,8 M], добавлен 06.06.2014

  • Создание информационного справочника и предоставление информации о деятельности компании, о её возможностях и спектре предлагаемых услуг. Добавление, редактирование и удаление в информационной системе данных. Описание программной документации для системы.

    курсовая работа [1,2 M], добавлен 23.09.2014

  • Анализ и описание алгоритма. Основные характеристики выбранного компьютера, программных сред (операционная система и среда программирования). Описание компонентов и интерфейса программы, а также модулей, процедур и функций. Вызов и загрузка программы.

    курсовая работа [1,3 M], добавлен 26.04.2015

  • Описание технических средств. Описание программного обеспечения. Порядок создания документа. Способы получения справочной информации. Создание нового документа. Загрузка рабочего документа. Рабочая книга, ячейки.

    контрольная работа [44,8 K], добавлен 09.04.2004

  • Реляционная модель базы данных в текстовом виде. Код, с помощью которого были созданы и заполнены таблицы. Разработка схемы базы данных справочника селекционера. Создание запросов, их основные виды. Процедуры на выбор данных, добавление и удаление.

    методичка [1,1 M], добавлен 20.05.2014

  • Алгоритмизация и структурное программирование на языке С/С++. Создание справочника в памяти (ввод данных), вывод справочника на экран с использованием потоковых классов, сортировка методом Шелла. Циклы, описание применяемых специальных алгоритмов.

    курсовая работа [1,0 M], добавлен 26.02.2012

  • Основные понятия справочников и их классификация. Анализ имеющихся электронных ресурсов. Теоретические понятия разработки электронных справочников. Выбор и обоснование средств разработки. Структура электронного справочника, его разработка и наполнение.

    курсовая работа [1,5 M], добавлен 27.05.2015

  • Понятие информации и роль компьютерных и Интернет-технологий в современном мире. Плюсы и минусы внедрения ERP-систем. Языки программирования для разработки Web-приложений. Методология разработки интерактивного справочника. Расчёт эксплуатационных затрат.

    дипломная работа [962,7 K], добавлен 13.10.2012

  • Компьютер, программа, интерфейс. Состав компьютерной системы. От информации к данным. Оперативная память компьютера. Регенерация оперативной памяти. Память на магнитных дисках. Структура данных на магнитном диске. Размещение файлов на жестком диске.

    реферат [16,5 K], добавлен 23.11.2003

  • Разработка программы для поиска нужных сведений в телефонном справочнике с использованием языка программирования Borland C++, в качестве базы данных которого используется файл (base.txt). Реализация функции сортировки по фамилии в форматах (А-я) и (Я-а).

    курсовая работа [261,8 K], добавлен 22.08.2013

  • Основные концепции построения реляционных СУБД, базовые принципы проектирования данных. Базы данных: способы представления и модели. Цели построения инфологического моделирования. Разработка структуры программы. Даталогическая модель, разработка процедур.

    курсовая работа [1,7 M], добавлен 11.07.2012

  • Обработка массивов элементов любого типа как главное назначение алгоритмов сортировки. Анализ наиболее используемых алгоритмов сортировки: пузырьком, выбором, вставками, методом Шелла и быстрой сортировкой. Основные требования к алгоритмам сортировки.

    реферат [189,8 K], добавлен 06.12.2014

  • Структурная, функциональная организация персонального компьютера. Оперативная и постоянная память. Внешние устройства: носители информации, диск, клавиатура, дисплей. Практический пример автоматического поиска вариантов по трудоустройству для безработных.

    курсовая работа [1,2 M], добавлен 08.04.2014

  • Технико-экономическое обоснование разработки Интернет-сайта адресно-телефонного справочника "Spravka.kz". Основные характеристики пакета "Денвер"; создание базы данных phones. Архитектура и интерфейс web-сайта. Размещение Google Maps на интернет-странице.

    дипломная работа [2,0 M], добавлен 24.03.2014

  • Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.

    курс лекций [506,4 K], добавлен 03.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.