Вход

Курсовая работа по Основам конструирования программ.

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 72116
Дата создания 2014
Страниц 48
Источников 7
Мы сможем обработать ваш заказ (!) 27 декабря в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
3 480руб.
КУПИТЬ

Содержание

ЗАДАНИЕ 3
ВВЕДЕНИЕ 5
1. ИСПОЛЬЗУЕМЫЕ АЛГОРИТМЫ 7
1.1. Основные сведения. 7
1.2. Алгоритм аутентификации. 7
1.3. Алгоритм шифрования. 9
2. ОРГАНИЗАЦИЯ СТРУКТУРЫ ХРАНИМЫХ ДАННЫХ 11
3. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ ПРИЛОЖЕНИЯ 13
4. ОПИСАНИЕ ПРОГРАММЫ 18
ЗАКЛЮЧЕНИЕ 25
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 26
ПРИЛОЖЕНИЕ 1 ИСХОДНЫЕ ТЕКСТЫ ПРОГРАММЫ 27

Фрагмент работы для ознакомления

source,df->bills[i].destination, df->bills[i].distance); oem_printf(str);oem_printf("\n");}}oem_printf("-------------------------------------------------------------------------------------------------\n");}void proc_select1_data(Datafile* df){char answer[256];char str[256];unsigned i,j=0;unsigned dist=0;system("cls");oem_printf("Введитемаксимальнуюдистанцию: ");answer[0]=0;scanf("%4s",answer);dist=atoi(answer);oem_printf("-------------------------------------------------------------------------------------------------\n");oem_printf("| № | Исходныйпункт | Пунктназначения | Дистанция |\n");oem_printf("-------------------------------------------------------------------------------------------------\n");for (i=0;i<df->bills_count;i++) {if (df->bills[i].distance<=dist) {sprintf(str,"| %2d | %32s | %32s | %4d |",j++,df->bills[i].source,df->bills[i].destination, df->bills[i].distance); oem_printf(str);oem_printf("\n");}}oem_printf("-------------------------------------------------------------------------------------------------\n");}void proc_find2_data(Datafile* df){char answer[256];char str[256];unsigned i,j=0;system("cls");oem_printf("Введите название пункта назначения: ");answer[0]=0;scanf("%2s",answer);oem_printf("-------------------------------------------------------------------------------------------------\n");oem_printf("| № | Исходный пункт | Пункт назначения | Дистанция |\n");oem_printf("-------------------------------------------------------------------------------------------------\n");for (i=0;i<df->bills_count;i++) {if (strstr(df->bills[i].destination,answer)!=0) {sprintf(str,"| %2d | %32s | %32s | %4d |",j++,df->bills[i].source,df->bills[i].destination, df->bills[i].distance); oem_printf(str);oem_printf("\n");}}oem_printf("-------------------------------------------------------------------------------------------------\n");}void proc_select2_data(Datafile* df){char answer[256];char str[256];unsigned i,j=0;unsigned dist=0;system("cls");oem_printf("Введитеминимальнуюдистанцию: ");answer[0]=0;scanf("%4s",answer);dist=atoi(answer);oem_printf("-------------------------------------------------------------------------------------------------\n");oem_printf("| № | Исходныйпункт | Пунктназначения | Дистанция |\n");oem_printf("-------------------------------------------------------------------------------------------------\n");for (i=0;i<df->bills_count;i++) {if (df->bills[i].distance>=dist) {sprintf(str,"| %2d | %32s | %32s | %4d |",j++,df->bills[i].source,df->bills[i].destination, df->bills[i].distance); oem_printf(str);oem_printf("\n");}}oem_printf("-------------------------------------------------------------------------------------------------\n");}void proc_find3_data(Datafile* df){char answer[256];char str[256];unsigned i,j=0,dist=0;system("cls");oem_printf("Введитедистанцию: ");answer[0]=0;scanf("%4s",answer);dist=atoi(answer);oem_printf("-------------------------------------------------------------------------------------------------\n");oem_printf("| № | Исходныйпункт | Пунктназначения | Дистанция |\n");oem_printf("-------------------------------------------------------------------------------------------------\n");for (i=0;i<df->bills_count;i++) {if (df->bills[i].distance == dist) {sprintf(str,"| %2d | %32s | %32s | %4d |",j++,df->bills[i].source,df->bills[i].destination, df->bills[i].distance); oem_printf(str);oem_printf("\n");}}oem_printf("-------------------------------------------------------------------------------------------------\n");}void proc_select3_data(Datafile* df){char answer[256];char str[256];unsigned i,j=0;unsigned dist=0;unsigned dist2=0;system("cls");oem_printf("Введите начальную дистанцию: ");answer[0]=0;scanf("%4s",answer);dist=atoi(answer);oem_printf("Введите конечную дистанцию: ");answer[0]=0;scanf("%4s",answer);dist2=atoi(answer);oem_printf("-------------------------------------------------------------------------------------------------\n");oem_printf("| № | Исходныйпункт | Пунктназначения | Дистанция |\n");oem_printf("-------------------------------------------------------------------------------------------------\n");for (i=0;i<df->bills_count;i++) {if (df->bills[i].distance>=dist && df->bills[i].distance<=dist2) {sprintf(str,"| %2d | %32s | %32s | %4d |",j++,df->bills[i].source,df->bills[i].destination, df->bills[i].distance); oem_printf(str);oem_printf("\n");}}oem_printf("-------------------------------------------------------------------------------------------------\n");}void proc_task(Datafile* df){char str[256];unsigned i,sorted,sum=0;Bill* copy=0;Bill tmp;system("cls");if (df->bills_count>0) {copy = (Bill*)malloc(df->bills_count*sizeof(Bill));memcpy(copy,df->bills,df->bills_count*sizeof(Bill));sorted=0;while (sorted==0) {sorted=1;for (i=1;i<df->bills_count;i++) {if (copy[i-1].distance>copy[i].distance) {memcpy(&tmp,&copy[i-1],sizeof(Bill));memcpy(&copy[i-1],&copy[i],sizeof(Bill));memcpy(&copy[i],&tmp,sizeof(Bill));sorted=0;}}}}oem_printf("-------------------------------------------------------------------------------------------------\n");oem_printf("| № | Исходныйпункт | Пунктназначения | Дистанция |\n");oem_printf("-------------------------------------------------------------------------------------------------\n");for (i=0;i<df->bills_count;i++) {sprintf(str,"| %2d | %32s | %32s | %4d |",i,copy[i].source,copy[i].destination, copy[i].distance); oem_printf(str);oem_printf("\n");sum+=copy[i].distance;}oem_printf("-------------------------------------------------------------------------------------------------\n");sprintf(str,"\nСуммарныйпробег: %d\n",sum);oem_printf(str);free(copy);}simplevector.h#ifndef _SIMPLEVECTOR_H_#define _SIMPLEVECTOR_H_// массивданныхtypedefstruct{unsignedchar* data; // данныеunsigned count; // количествобайт} Vector;Vector* vector_create(unsigned size); // созданиемассиваданныхvoid vector_free(Vector* v); // уничтожение массива данныхvoid vector_insert(Vector* v,constvoid* data, unsigned count); // добавлениеданныхвмассив#endifsimplevector.c#include"simplevector.h"#include<malloc.h>#include<string.h>Vector* vector_create(unsigned size){Vector* result=(Vector*)malloc(sizeof(Vector));result->count=size;result->data=0;if (size>0) {result->data = (unsignedchar*)malloc(size);}return result;}void vector_free(Vector* v){free(v);}void vector_insert(Vector* v,constvoid* data, unsigned count){if (v->data==0) v->data = (unsignedchar*)malloc(count);else v->data = (unsignedchar*)realloc(v->data,v->count+count);memcpy(&v->data[v->count],data,count);v->count+=count;}TabalchukNV.c#include"model.h"#include<stdio.h>#include<Windows.h>#include<malloc.h>#include"procedures.h"void mainmenu(Database* db);void admin(Database* db);void user(Database* db);int main(int argc, char* argv[]){Database* db;char answer[MAX_PATH];char answer2[MAX_PATH];init_model();db = db_load(ROOT_PASSWORD);if (db==0){oem_printf(last_error());oem_printf("\n");oem_printf("Создатьновуюбазуданных (y/n)? ");scanf("%1s",answer);if (answer[0]=='y' || answer[0]=='Y') {while (db==0) {oem_printf("Введите новый логин администратора: ");answer[0]=0;scanf("%32s",answer);oem_printf("Введите новый пароль администратора: ");answer2[0]=0;scanf("%32s",answer2);db = db_create(answer,answer2);if (db==0) {oem_printf(last_error());oem_printf("\n");oem_printf("Повторить создание новой базу данных (y/n)? ");scanf("%1s",answer);if (answer[0]!='y' && answer[0]!='Y')break;}}}}if (db!=0) {mainmenu(db);db_save(db);db_free(db);}return0;}void mainmenu(Database* db){char answer[MAX_PATH];char answer2[MAX_PATH];unsigned is_admin,i;int no;while (1) {system("cls");oem_printf("1. Вход под администратором\n");oem_printf("2. Вход под пользователем\n");oem_printf("3. Выход\n");oem_printf(">> ");answer[0]=0;scanf("%1s",answer);if (answer[0]=='3') break;if (answer[0]=='1' || answer[0]=='2') {is_admin=answer[0]=='1' ? 1:0;oem_printf("Введителогин: ");answer[0]=0;scanf("%32s",answer);oem_printf("Введитепароль: ");answer2[0]=0;scanf("%32s",answer2);if (is_admin==1) {if ((strcmp(answer,db->admin.login)==0) && (strcmp(answer2,db->admin.password)==0)) {admin(db);}else {oem_printf("Неправильныйлогин/пароль...\n");system("pause");}} else {if (db->users_count==0) {oem_printf("В базе данных не сущестует пользователей..\n");system("pause");}else {no=-1;for (i=0;i<db->users_count;i++) {if ((strcmp(answer,db->admin.login)==0) && (strcmp(answer2,db->admin.password)==0)) {no=i;break;}}if (no<0) {oem_printf("Неправильный логин/пароль...\n");system("pause");}else {if (db->users[no].blocked) {oem_printf("Пользователь заблокирован...\n");system("pause");}else {user(db);}}}}}}}void admin(Database* db){char answer[MAX_PATH];char datafilename[MAX_PATH];Datafile* df=0;system("cls");while (1) {system("cls");if (df!=0) {oem_printf("Файлданных: ");oem_printf(datafilename);oem_printf("\n\n");}oem_printf("a) Просмотр пользователей\n");oem_printf("b) Добавить пользователя\n");oem_printf("c) Блокировка пользоватя\n");oem_printf("d) Удаление пользоватя\n");oem_printf("e) Создать/открыть файл с данными\n");oem_printf("f) Просмотр данных\n");oem_printf("g) Добавить запись\n");oem_printf("h) Редактировать запись\n");oem_printf("i) Удалить запись\n");oem_printf("j) Поиск по исходному пути\n");oem_printf("k) Выбор маршрутов с наименьшей дистанцией\n");oem_printf("l) Поиск по пункту назначения\n");oem_printf("z) Выход\n");oem_printf(">> ");answer[0]=0;scanf("%1s",answer);if (answer[0]=='z') break;if (answer[0]=='a') {proc_view_users(db);system("pause");}if (answer[0]=='b') {proc_add_user(db);system("pause");}if (answer[0]=='c') {proc_block_user(db);system("pause");}if (answer[0]=='d') {proc_delete_user(db);system("pause");}if (answer[0]=='e') {oem_printf("\nВведите имя файла данных: ");answer[0]=0;scanf("%32s",answer);df = df_load(datafilename);if (df==0) df = df_create();strcpy(datafilename,answer);}if (answer[0]=='f' && df!=0) {proc_view_data(df);system("pause");}if (answer[0]=='g' && df!=0) {proc_add_data(df);system("pause");}if (answer[0]=='h' && df!=0) {proc_edit_data(df);system("pause");}if (answer[0]=='i' && df!=0) {proc_delete_data(df);system("pause");}if (answer[0]=='j' && df!=0) {proc_find1_data(df);system("pause");}if (answer[0]=='k' && df!=0) {proc_select1_data(df);system("pause");}if (answer[0]=='l' && df!=0) {proc_find2_data(df);system("pause");}if (df!=0) df_save(datafilename,df);db_save(db);}if (df!=0) df_free(df);}void user(Database* db){char answer[MAX_PATH];char datafilename[MAX_PATH];Datafile* df=0;system("cls");while (1) {system("cls");if (df!=0) {oem_printf("Файлданных: ");oem_printf(datafilename);oem_printf("\n\n");}oem_printf("a) Открыть файл с данными\n");oem_printf("b) Просмотр данных\n");oem_printf("c) Выполнение задачи\n");oem_printf("d) Поиск по дистанции\n");oem_printf("e) Выбор маршрутов с наибольшей дистанцией\n");oem_printf("f) Выбор маршрутов с дистанцией в диапазоне\n");oem_printf("z) Выход\n");oem_printf(">> ");answer[0]=0;scanf("%1s",answer);if (answer[0]=='z') break;if (answer[0]=='a') {oem_printf("\nВведите имя файла данных: ");answer[0]=0;scanf("%32s",answer);df = df_load(datafilename);if (df==0) oem_printf("Неверноеимяфайла\n");strcpy(datafilename,answer);}if (answer[0]=='b' && df!=0) {proc_view_data(df);system("pause");}if (answer[0]=='c' && df!=0) {proc_task(df);system("pause");}if (answer[0]=='d' && df!=0) {proc_find3_data(df);system("pause");}if (answer[0]=='e' && df!=0) {proc_select2_data(df);system("pause");}if (answer[0]=='f' && df!=0) {proc_select3_data(df);system("pause");}if (df!=0) df_save(datafilename,df);}if (df!=0) df_free(df);}

Список литературы [ всего 7]

1. Керниган Б., Ритчи Д. Язык программирования Си = The C programming language. — 2-е изд. — М.: Вильямс, 2007. — С. 304. — ISBN 0-13-110362-8
2. Герберт Шилдт. C: полное руководство, классическое издание = C: The Complete Reference, 4th Edition. — М.: Вильямс, 2010. — С. 704. — ISBN 978-5-8459-1709-6
3. Прата С. Язык программирования С: Лекции и упражнения = C Primer Plus. — М.: Вильямс, 2006. — С. 960. — ISBN 5-8459-0986-4
4. Кочан С. Программирование на языке Си = Programming in C. — 3-е изд. — М.: Вильямс, 2006. — С. 496. — ISBN 0-672-32666-3
5. Гукин Д. Язык программирования Си для «чайников» = C For Dummies. — М.: Диалектика, 2006. — С. 352. — ISBN 0-7645-7068-4
6. Ник Рендольф, Дэвид Гарднер, Майкл Минутилло, Крис Андерсон Visual Studio 2010 для профессионалов = Professional Visual Studio 2010. — М.: «Диалектика», 2011. — С. 1184. — ISBN 978-5-8459-1683-9
7. Майо Д. Самоучитель Microsoft Visual Studio 2010 = Microsoft Visual Studio 2010: A Beginner's Guide (A Beginners Guide). — C.: «БХВ-Петербург», 2010. — С. 464. — ISBN 978-5-9775-0609-0
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00462
© Рефератбанк, 2002 - 2024