Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс зубков.docx
Скачиваний:
6
Добавлен:
27.04.2019
Размер:
300.59 Кб
Скачать

Тестовый набор.

Заключение.

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

При выполнении курсового проекта были использованы все основные этапы программирования задач, а именно:

  • Проанализированы необходимые данные и результаты

  • Выбран метод решения поставленной задачи

  • Составлена блок-схема алгоритма

  • Написана, отлажена и проверена на работоспособность программа на языке С++.

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

Список литературы.

  1. В. В. Подбельский. Язык СИ++. - М.: Финансы и статистика, 2003.

  2. Б. И. Березин, С. Б. Березин. Начальный курс С и С++. – М.: Диалог-МИФИ, 1998.

  3. Стэнли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992.

  4. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994.

  5. В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Высшая школа, 1997.

  6. Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996.

Приложение б. Исходный текст программы.

##pragma once //Загрузка заголовков один раз

#ifndef _WIN32_WINNT //Определение минимальной версии Windows для работы программы

#define _WIN32_WINNT 0x0600

#endif

#include "targetver.h" // Заголовки

#include <stdio.h> //Заголовок для вывода данных на экран

#include <tchar.h> //

#include "stdafx.h" //

#include "conio.h" //

#include "windows.h" //Интерфейс Windows

#include <locale>

#define OUTPUT_FILE "./OUTPUT.TXT" //

#define STRUCT_FILE "./STRUCT.DAT"

void Input(); //Прототипы функции

void Output();

void Add();

void Del();

void StructSave();

void StructLoad();

struct info //Структура

{

int id; // определение перменных

char key1[100]; // тип Char содержит букву

char key2[100]; // Тип Char содержит массив букв

char key3[100];

};

struct node

{

info har;

node *next; //указатель на переменную next

};

node *first, *last, *list, *addM; //определение переменных

int n; //Определение переменной

void Input() // Функция Input()

{

char key;

// UI

system("cls"); // очищение экрана

printf ("** ВВОД ДАННЫХ: ** \n"); //вывод строки на экран

// Check

if (first!=NULL) {

printf("\nОшибка! Данные уже введены.");

getch();

return;

}

// Allocate

n = 1;

first = new node;

(*first).har.id = n;

// UI

printf ("\nВведите название: ");

scanf ("%s", (*first).har.key1);

printf ("\nВведие тип диска (CD/DVD): ");

scanf ("%s", (*first).har.key2);

printf ("\nВведите обьем диска: ");

scanf ("%s", (*first).har.key3);

// Merge

first->next = NULL;

last = first;

while (true) {

printf ("\nПродолжить? (Нажмите Y) ");

scanf("%s", &key);

if (key!='y' && key!='Y')

return;

// UI

system("cls");

printf ("** ВВОД ДАННЫХ: ** \n");

// Allocate

n++; //Инкрименция

list = new node;

(*list).har.id = n;

// UI

printf ("\nВведите название: ");

scanf ("%s", (*list).har.key1);

printf ("\nВведие тип диска (CD/DVD): ");

scanf ("%s", (*list).har.key2);

printf ("\nВведите обьем диска: ");

scanf ("%s", (*list).har.key3);

// Merge

list->next = NULL;

last->next = list;

last = list;

}

}

void Output() //функция вывода

{

// File init

FILE *fil;

fil = fopen(OUTPUT_FILE, "w");

fseek(fil, 0, SEEK_SET);

// UI

system("cls");

printf("+----------------------------------+\n");

printf("| # | Название | Тип | Обьем диска |\n");

printf("+----------------------------------+\n");

fprintf(fil, "+----------------------------------+\n");

fprintf(fil, "| # | Название | Тип | Обьем диска |\n");

fprintf(fil, "+----------------------------------+\n");

list = first;

while (list) {

printf("| %d | %s | %s | %s \n", (*list).har.id, (*list).har.key1, (*list).har.key2, (*list).har.key3);

fprintf(fil, "| %d | %s | %s | %s \n", (*list).har.id, (*list).har.key1, (*list).har.key2, (*list).har.key3); //вывод на экран переменных

// Merge

list = list->next;

}

printf("+---------------------------------+\n");

fprintf(fil, "+-----------------------------------+\n");

// File close

fclose(fil);

getch();

}

void Add()

{

int cur3;

// UI

system("cls");

printf ("** ДОБАВИТЬ ЗАПИСЬ: ** \n");

printf("\nВведите номер записи, после которого нужно добавить данные: ");

scanf("%d", &cur3);

// Jmp

last = first;

for (int j=0; j<cur3-1; j++)

last = last->next;

// Allocate

n++;

list = new node;

(*list).har.id=n;

// UI

printf ("\nВведите название: ");

scanf ("%s", (*list).har.key1);

printf ("\nВведие тип диска (CD/DVD): ");

scanf ("%s", (*list).har.key2);

printf ("\nВведите обьем диска: ");

scanf ("%s", (*list).har.key3);

list->next=last->next;

last->next=list;

printf ("Хорошо!\n");

getch();

}

void Del()

{

list = first;

while(list->next) {

last = list;

list = list->next;

}

last->next = NULL;

delete list;

printf("\nПоследняя запись удалена.");

getch();

}

void StructSave()//функция сохранения структур

{

FILE *fil;

fil = fopen(STRUCT_FILE, "w+b");

fseek(fil, 0, SEEK_END);

list = first;

while (list) {

fwrite(list, sizeof(info), 1, fil);

list = list->next;

}

fclose(fil);

}

void StructLoad()//Функция загрузки структуры

{

FILE *fil;

info h;

int res;

fil = fopen (STRUCT_FILE, "r+b"); // попытка открыть файл со структурой

if (!fil) {

printf("\nОшибка! Файл со структурой не существует! Загрузка невозможна.");

getch();

return;

}

fseek (fil, 0, SEEK_SET);

res = fread (&h, sizeof(info), 1, fil);

if (res == 1) {

first = new node;

(*first).har = h;

first ->next = NULL;

last = first;

}

do {

res = fread (&h, sizeof(info), 1, fil);

if (res == 1){

list = new node;

(*list).har = h;

list->next = NULL;

last->next = list;

last=list;

}

}

while (res == 1);

fclose(fil);

getch();

}

void main()

{

char globalKey;

// для корректного отображения кириллицы

SetConsoleCP(866);

SetConsoleOutputCP(866);

setlocale(LC_ALL, "russian_russia.1251");

while (true) {

// UI

system("cls");

printf("+----------------------------+\n");

printf("+- - - - ГЛАВНОЕ МЕНЮ - - - -+\n");

printf("+----------------------------+\n");

printf("+ Компакт-диски +\n");

printf("+----------------------------+\n");

printf("| 1. Ввод ------------------|\n");

printf("| 2. Вывод -----------------|\n");

printf("| 3. Загрузка структуры ----|\n");

printf("| 4. Сохранение структуры --|\n");

printf("| 5. Добавить запись -------|\n");

printf("| 6. Удалить запись --------|\n");

printf("+----------------------------+\n");

printf("| ESC. Выход ----------------|\n");

printf("+----------------------------+\n");

// Menu switch

globalKey = getch();

switch (globalKey)

{

case '1':

Input();

break;

case '2':

Output();

break;

case '3':

StructLoad();

break;

case '4':

StructSave();

break;

case '5':

Add();

break;

case '6':

Del();

break;

case 27:

exit(0);

}

}

3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]