Разработка программ на языке программирования С\С++: информационно-поисковый справочник 'ж/к индикаторов'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    7,23 Кб
  • Опубликовано:
    2015-03-05
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программ на языке программирования С\С++: информационно-поисковый справочник 'ж/к индикаторов'














Курсовая работа

Разработка программ на языке программирования С\С++: информационно-поисковый справочник "ж/к индикаторов"

Содержание

программирование поисковый справочник информационный

Введение

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

. Листинг программы

Заключение

Список рекомендуемой литературы

Введение

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

В этой работе для выполнения всех требований преподавателя к функциональности рабочего приложения нам будут необходимы знания по всему курсу "Алгоритмизация и программирование на языке С/С++". Для создания курсового проекта необходимо выделить в задании на курсовую работу корневую задачу, которая будет реализована в главном модуле, а так же прикладные задачи, требования к которым указаны в описании функциональности программы. Также необходимо продумать алгоритмы коррекции данных, введённых пользователем. Для этого в ход выполнения работы добавляется дополнительный пункт тестирования полученной программы на правильность реакции на различные данные, вводимые пользователем: как корректные, так и некорректные. Для тестирования необходимо продумать ход мыслей рядового пользователя, а также его характерные ошибки при использовании вашей программы. Для исключения большинства таких ошибок достаточно будет продумать информативный и удобный интерфейс пользователя. Для блокирования же других необходимо составить алгоритмы анализа данных, введённых пользователем.

С++ - это универсальный язык программирования, задуманный так, чтобы делать программирование более приятным для серьёзного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования С. Помимо возможностей, которые даёт С, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определение новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах в некоторых объектах типов, определённых пользователем. Такие объекты просты и надёжны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентировочным. При правильном использовании этот метод даёт более короткие, проще понимаемые и легче контролируемые программы.

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

Разработать и реализовать на языке С/С++ информационно-поисковый справочник "ж/к индикаторов".

При запуске программы на исполнение, должно появиться буквенное меню, посредством которого должны вызываться следующие пункты, реализованные в программе как отдельные функции:

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

. Вывод справочника на экран с использованием потоковых классов языка С/С++

. Добавление записи в справочник.

. Сортировка методом пузырька по полю целочисленного типа.

. Сохранение справочника в файле с использованием функций языка С.

. Открытие справочника из файла с использованием функций языка С.

. Сортировка дискового файла с использованием потоковых классов языка С/С++.

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

Каждая запись должна состоять из 5 полей: марка (строковой тип); остальные 4 поля выбираются самостоятельно из справочников и должны представлять реальные параметры радиодеталей. При работе с программой также должны вводиться реальные марки и соответствующие им параметры деталей. Таблица с параметрами должна быть приведена в приложении.

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

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

2. Листинг программы

служит для компиляции всех функций, используемых в программе в один исполняемый файл spravo4nik.exe

nik: in.o prog.o out.o plus.o puz.o sv.o op.o vst.o++ in.o prog.o out.o plus.o puz.o sv.o op.o vst.o -o spravo4nik.o: in.c out.cpp plus.c puz.c sv.c op.c vst.o my.h

g++ -c prog.c.o: in.c my.h++ -c in.c.o: out.cpp my.h++ -c out.cpp.o: plus.c my.h++ -c plus.c.o: puz.c my.h++ -c puz.c.o: sv.c my.h++ -c sv.c.o: op.c my.h++ -c op.c.o: vst.cpp my.h++ -c vst.cpp

.h

my.h - заголовочный файл, в который включены библиотеки ввода-вывода, библиотеки, для работы с строковыми типами данных, а также объявлены функции, глобальные переменные, структура данных, и массив структуры, используемые в программе.

#include<stdio.h>

#include<stdlib.h>

#include<ctype.h>

#include<string.h>

#include<iomanip>

#include<iostream>

#include<fstream>namespace std;insert();out();ps();puz();vst();save();open();st{I;marka[20];colour[10];u;r;

};struct st s[20];int i;

prog.c.c содержит функцию main(int argc,char *argv[]), в которой реализуется буквенное меню справочника ж/к индикаторов, и вызов всех, необходимых функций, по запросу пользователя.

#include"my.h"i;st s[20];main(int argc,char *argv[]){a;z;*f;(argc>1){((f=fopen(argv[1],"r+b"))==NULL){("Ошибка открытия файла!!\nНАЖМИТЕ ENTER");();(1);

}{(&i,sizeof(int),1,f);(a=0;a<i;a++)(&s[a],sizeof(struct st),1,f);(f);

}

}(1){(1){("clear");("--------------------------------------------------\n");("| Выберите операцию: |\n");("| Ввод данных ................................ a |\n");("| Вывод справочника на экран ................. b |\n");

printf("| Добавление записи .......................... c |\n");("| Сортировка по кол разрядов ................. d |\n");("| Сохранить файл ............................. e |\n");("| Сортировка дискового файла ................. f |\n");("| Открыть файл ............................... g |\n");("| Завершение работы .......................... h |\n");

printf("--------------------------------------------------\n");= getchar ();(z < 97 || z > 104) {

printf("Введены неверные данные!!!\nНАЖМИТЕ ENTER\n");

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

};

}(z){97: while(getchar()!='\n');insert();break;98: out();break;99: while(getchar()!='\n');ps();break;100: puz();break;101: save();break;102: vst();break;103: open();break;104: {("clear");0;

}

}

}

}

in.c

В файле in.c описана функция insert (), выполняющая ввод данных в справочник с помощью стандартных функций ввода языка С. При вводе данных в справочник проверяется корректность вводимой информации.

#include"my.h"insert(){k=0,j,n=0;c;("clear");(i=0;i<20;){

printf("Введите марку %d жк-индикатора:\n",i+1);

gets(s[i].marka);(s[i].marka=='\0');{=0;("Введите цвет %d жк-индикатора:\n",i+1);("%s",&s[i].colour);(j=0;j<strlen(s[i].colour);j++){(isdigit(s[i].colour[j])){

printf("Введены не корректные данные!\nНАЖМИТЕ ENTER\n");

n=1;(getchar()!='\n');();("clear");

}

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

}while(n==1);(1){("Введите кол разрядов %d жк-индикатора:\n",i+1);(!(scanf("%d",&s[i].r)) || s[i].r<0){(getchar()!='\n');("Ввелены не коррекные данные!\nНАЖМИТЕ ENTER");();("clear");

}{(getchar()!='\n');;

}

}(1){("Введите системму исчисления %d \nжк-индикатора (2-ичная, 8-ричная, 10-тиричная, 16-тиричная):\n",i+1);(!(scanf("%d",&s[i].I)) || s[i].I<0){(getchar()!='\n');("Ввелены не коррекные данные!\nНАЖМИТЕ ENTER");();("clear");

}{;(getchar()!='\n');

}(1){

printf("Введите допустимое напряжение %d жк-индикатора:\n",i+1);

if(!(scanf("%f",&s[i].u)) || s[i].u<0){(getchar()!='\n');("Ввелены не коррекные данные!\nНАЖМИТЕ ENTER");();("clear");

}{(getchar()!='\n');;

}

}++;(c!='y' && c!='Y' && c!='n' && c!='N'){

printf("Хотите ввести ещё данные?(Y/N)\n");

c=getchar();(getchar()!='\n');(c=='N' || c=='n'){("clear");=1;='\0';;

}(c=='Y' || c=='y'){("clear");=0;='\0';;

}(c!='Y' || c!='y' || c!='n' || c!='N'){

printf("Введён не неизвесный оператор, попробуйте ещё!\n");

c='\0';

}

}(k==1);

};

}

.c

В файле puz.c описана функция сортировки данных методом выборки по числовому полю.

#include"my.h"puz(){k,j;st buf;(k=0;k<i;k++)(j=0;j<i-1;j++)(s[j+1].r < s[j].r){=s[j+1];[j+1]=s[j];[j]=buf;

}("Массив успешно отформатирован!!!\nНАЖМИТЕ ENTER\n");

getchar();();;

}

plus.c

В файле plus.с находится описание функции добавления записи с помощью функций ввода С.

#include"my.h"ps(){k=0,j,n=0;c;("clear");(i;i<20;){

printf("Введите марку %d жк-индикатора:\n",i+1);

gets(s[i].marka);(s[i].marka=='\0');{=0;("Введите цвет %d жк-индикатора:\n",i+1);("%s",&s[i].colour);(j=0;j<strlen(s[i].colour);j++){(isdigit(s[i].colour[j])){

printf("Введены не корректные данные!\nНАЖМИТЕ ENTER\n");

n=1;(getchar()!='\n');();("clear");

}

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

}while(n==1);(1){("Введите кол разрядов %d жк-индикатора:\n",i+1);(!(scanf("%d",&s[i].r)) || s[i].r<0){(getchar()!='\n');("Ввелены не коррекные данные!\nНАЖМИТЕ ENTER");();("clear");

}{(getchar()!='\n');;

}

}(1){("Введите системму исчисления %d \nжк-индикатора (2-ичная, 8-ричная, 10-тиричная, 16-тиричная):\n",i+1);(!(scanf("%d",&s[i].I)) || s[i].I<0){(getchar()!='\n');("Ввелены не коррекные данные!\nНАЖМИТЕ ENTER");();("clear");

}{;(getchar()!='\n');

}

}(1){

printf("Введите допустимое напряжение %d жк-индикатора:\n",i+1);

if(!(scanf("%f",&s[i].u)) || s[i].u<0){(getchar()!='\n');("Ввелены не коррекные данные!\nНАЖМИТЕ ENTER");();("clear");

}{(getchar()!='\n');;

}

}++;(c!='y' && c!='Y' && c!='n' && c!='N'){

printf("Хотите ввести ещё данные?(Y/N)\n");

c=getchar();(getchar()!='\n');(c=='N' || c=='n'){("clear");=1;='\0';;

}(c=='Y' || c=='y'){("clear");=0;='\0';;

}

if(c!='Y' || c!='y' || c!='n' || c!='N'){

printf("Введён не неизвесный оператор, попробуйте ещё!\n");

c='\0';

}

}(k==1);

};

}

.c

В файле sv.c описана функция сохранения справочника в дисковом файле с помощью функций языка С.

#include"my.h"kart;save(){k[8];a,I=0;*f;(1){("clear");

printf("Введите имя файла:\n");

getchar();(k);((f=fopen(k,"w"))==NULL){(stderr,"Ошибка открытия файла!!\nНАЖМИТЕ ENTER");();

};

}(&i,sizeof(int),1,f);(a=0;a<i;a++)(&s[a],sizeof(struct st),1,f);(f);("Файл успешно сохранён.\nНАЖМИТЕ ENTER");

getchar();;

}

.c

В файле sv.c описана функция сохранения справочника в дисковом файле с помощью функций языка С.

#include"my.h"open(){a,r;e,k[8];*f;(1){("clear");

printf("Введите имя файла:\n");

getchar();(k);((f=fopen(k,"r+b"))==NULL){("Ошибка открытия файла!!\nНАЖМИТЕ ENTER");();(1);

};

}(&i,sizeof(int),1,f);(a=0;a<i;a++)(&s[a],sizeof(struct st),1,f);(f);("Данные успешно прочтены из файла '%s'!!!НАЖМИТЕ ENTER\n",k);

}

.cpp

В файле out.cpp находится описание функции вывода созданного справочника на экран с помощью потоков языка С++.

#include"my.h"out(){f;("clear");<<"Параметры ж - к индикаторов"<<"\n"

<<"=========================================================="<<"\n";.setf(ios::right);<<setw(2)<<"N|"

<<setw(15)<<"Марка"

<<setw(15)<<"Раб.напряжение"

<<setw(10)<<"Цвет"

<<setw(12)<<"Разрядность"

<<setw(16)<<"Сис. исчисления"<<"\n"

<<setw(2)<<"|"

<<setw(15)<<"индикатора"

<<setw(15)<<"B."

<<setw(10)<<" "

<<setw(12)<<" "

<<setw(16)<<" "<<"\n"

<<"=========================================================="<<"\n";(f=0;f<i;f++){<<setw(1)<<f+1<<"|"

<<setw(15)<<s[f].marka

<<setw(15)<<s[f].u

<<setw(10)<<s[f].colour

<<setw(12)<<s[f].r

<<setw(16)<<s[f].I<<"\n";

}<<"======================================================"<<endl;

getchar();();;

}

.cpp

В файле vst.cpp описана функция сортировки дискового файла методом вставки по числовому полю с использованием потоковых классов языка С++.

#include"my.h"vst(){r,l;k[16];st buf,buf1;("clear");<< "Введите имя файла: ";();(k);::fstream infile(k);(!infile){<< "Ошибка открытия файла!!\nНАЖМИТЕ ENTER";();(1);

}{.read((char*)&i, sizeof(int));(r = 1; r < i; r++) {.seekg(sizeof(int)+sizeof(struct st)*r,ios::beg);.read ((char*)&buf, sizeof(struct st));=r-1;.seekg(sizeof(int)+sizeof(struct st)*l,ios::beg);.read ((char*)&buf1, sizeof(struct st));(l; l>=0 && buf.r < buf1.r; l){.seekp(sizeof(int)+sizeof(struct st)*(l+1),ios::beg);.write((char*)&buf1, sizeof(struct st));-;(l<0) break;.seekg(sizeof(int)+sizeof(struct st)*l,ios::beg);.read ((char*)&buf1, sizeof(struct st));

}.seekp(sizeof(int)+sizeof(struct st)*(l+1),ios::beg);.write((char*)&buf, sizeof(struct st));

}<< "Массив отсортирован успешно!\nНАЖМИТЕ ENTER";

cin.get();.close();

};

}

Заключение

Была проделана работа по разработке справочника ж/к индикаторов, который включал ряд функций, изложенных в задании, был разработан текстовый интерфейс пользователя, проект реализован в среде разработки Cygwin. Проделана работа по поиску реальной информации по заданной теме, а также составление пробного файла. Произведена отладка программы.

Приобрели навыки составления законченной программы с пользовательским интерфейсом и коррекцией ошибок. В ходе работы был проанализирован и систематизирован учебный материал, заполнились пробелы в знаниях. Получены навыки практического применения знаний по теме лекций "Алгоритмизация и программирование на языке C".

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

Список рекомендуемой литературы

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

. Г. Шилдт. / Программирование в С -, - Спб. Издательство "Питер". 2004

. П. Дейтел, X. Дейтел. / Как программировать на C+-t-.- М, Издательство "Бином" 2010. - 1152 стр.

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

Похожие работы на - Разработка программ на языке программирования С\С++: информационно-поисковый справочник 'ж/к индикаторов'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!