Файл: Курсовая работа по дисциплине " информатика и информационные технологии в радиоэлектронике" Тема Знаки зодиака ст гр. Рэа3221 Краснов Антон Геннадьевич.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 28

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Чувашский государственный университет им. И.Н. Ульянова»
Факультет Радиоэлектроники и автоматики

Кафедра Автоматики и управления в технических системах

КУРСОВАЯ РАБОТА

по дисциплине:

ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В РАДИОЭЛЕКТРОНИКЕ”

Тема: «Знаки зодиака»
Выполнил: ст. гр. РЭА-32-21

Краснов Антон Геннадьевич

Проверила: доцент Васильева Л. Н.
Чебоксары – 2022г.

Оглавление


Введение 2

Цель курсовой работы 2

История возникновения и развития языка С++ 3

Основные области использования C++ 3

Пояснительная записка 3

Теоретическая часть 4

Описание функций 6

Инструкция по работе с информационной системой 7

Листинг программного кода 8

Заключение 22

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










Введение



Цель курсовой работы


Цель работы: Разработать на языке C++ и протестировать базу данных, выполняющую хранение информации, просмотр информации, добавление данных в имеющийся список, сортировку списка, поиск по заданному запросу.

История возникновения и развития языка С++


C++  — компилируемыйстатически типизированный язык программирования общего назначения. Он поддерживает различные парадигмы программирования, в том числе процедурное программирование, объектно-ориентированное программирование и обобщённое программирование.

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

Первые версии языка C++ появились в начале 1980-х годов. Их создатель — датский программист Бьерн Страуструп.

Страуструп объединил возможности объектно-ориентированного С и языка Simula, основанного на Алголе. Главное привнесенное в C новшество — классы, основной элемент в объектно-ориентированном программировании, содержащий в себе данные и код, который ими управляет.

Так появился «‎C с классами»‎ или «‎новый C»‎, который в 1983 году получил свое окончательное название — C++. «++» — это оператор, который означает «добавить единицу». То есть к возможностям языка C добавили еще одну.

Основные области использования C++


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

Пояснительная записка


Факультет РЭА

Кафедра АУТС

З А Д А Н И Е

на курсовую работу

По дисциплине Информатика и информационные технологии в радиоэлектронике

Студент гр. РЭА-32-21

Краснов Антон Геннадьевич

Руководитель: к.п.н., доцент кафедры «Автоматики и управления в технических системах» Васильева Л.Н.

Тема работы: «Знаки зодиака»

Исходные данные:
1.Структура записи:

-Разработка пользовательских функций

-Отладка и тестирование программы

2. Язык программирования: С++

Задание:

  1. Спроектировать меню, обеспечивающее взаимодействие пользователя с системой.

  2. Разработать функции для получения необходимой информации из создаваемой информационной системы

  3. Разработать структурную схему меню.

Дата выдачи «_____» ______________ 20__г.

Дата сдачи на проверку «_____»_______________ 20__г.

Дата защиты «_____»_______________ 20__г.

Подпись руководителя__________________________

Теоретическая часть


Структура — это некое объединение различных переменных, которому можно присвоить имя.



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

В курсовой работе была создана структуру products, которая содержит переменные типа char – для наименования человека, знака зодиака, его латинского названия, даты рождения:



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

В курсовой работе использован пользовательский тип данных – класс. Для определения такого типа данных в C++ используется ключевое слово class- это механизм для создания объектов.

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

Данные класса называются полями, а функции класса — методами. Поля и методы называются элементами класса. Описание класса в первом приближении выглядит так:

class имя{

private:

//закрытые элементы

public:

//открытые элементы

};

Функции и переменные, определенные внутри класса, называют членами класса. Члены класса, объявленные после private являются закрытыми и недоступны вне класса. Для объявления открытых членов, имеющих доступ к закрытой части, используется public, за которым следует двоеточие.


Описание функций


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

тип_функции имя_класса:: имя_функции

(параметры)

{// тело функции}

Два двоеточия называются оператором расширения области видимости. Объявление класса определяет тип. Для

определения объекта, имя класса используют в качестве спецификатора типа

данных:

имя_класса ob;




В C++ тип функции означает, какого типа будет значение, возвращаемое функцией. Но если вместо обычного типа перед именем функции стоит спецификатор void, то с ним общее правило не работает. Это спецификатор означает, что у функции нет возвращаемого значения. Как следствие, оператор return, отвечающий за возвращаемое значение, убирается.

Функция strcmp сравнивает указанную строку с другой строкой, на которую указывает параметр. Функция учитывает регистр символов.

strcpy () является стандартной библиотечной функцией в C ++ и используется для копирования одной строки в другую.

Обе эти функции подключаются через библиотеку .





Инструкция по работе с информационной системой



Перед началом написания кода, необходимо составить таблицу, в которой будут находиться все данные об изделиях. Характеристик, по которым их можно сортировать, 4.

Орлов

телец

taurus

30.04

Кузнецова

овен

aries

18.04

Синицина

скорпион

scorpius

26.10

Романов

козерог

capricornus

02.01

Сорокина

стрелец

sagittarius

06.12

Необходимо описать класс «Описание людей». Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например,...), добавление и удаления записей. Программа должна содержать меню, позволяющее осуществить проверку всех функций класса. Данные должны храниться в файле.

Для работы мы создали структуру, в которой обозначили типы данных, и класс, в котором создали все нужные функции для выполнения данного задания: создание меню, функций сортировки, добавление, удаление, поиска, вывода на экран и сохранения данных в файле. Заполняется структура и записывается в файл. Из файла считывается структура и выводится на экран. Выбирается поле, по которому будут отсортированы данные. Далее по выбранному полю происходит сортировка вставкой – два цикла, первый сравнивает элементы, а второй перемещает большие элементы в конец файла, а меньшие в начало файла.

Для начала определили “произвольное количество записей”.

Rasp a[20] – создали себе способ работы с данными, какое число указанное в [ ] не имеет особого значения, ведь это не является “произвольным количеством записей”.

a[n].fin(a,n) – функция добавления всех имеющихся записей в файле.

Благодаря (Rasp a[ ] , int&n) мы сможем каждый раз обращаться к переменной x, которая как раз и является “произвольным количеством записей”

Листинг программного кода


#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

struct products {

char name[20];// фамилия

char zod[20];//знак зодиака

char lat[20];//знак зодиака на латыни

char data[20];//Дата рождения

};

class product{

private:

products ch;

public: // функции

void fin(product[],int&);//чтение файла

void menu(product[],int&);//выбор действий

void poisk(product[],int&); //поиск

void delet(product[],int&); //удаление

void dobav(product[],int&); // добавление

void sort(product[],int&);//выбор сортировки

void sortname(product[],int&);// сортировка по наименованию

void sortzod(product[],int&);// сортировка по латинскому наименованию

void sortlat(product[],int&);//сортировка по латинскому имени

void sortdata(product[],int&);// сортировка по дате рождения

void save(product[],int&);// сохранение(запись) в файл

void print(product[],int&);//вывод на экран

};

int main() {

ifstream dal("база.txt");

char *str = new char [1024];

int n=0;

while (!dal.eof()){

dal.getline(str, 1024, '\n');

n++;

}

dal.close();

delete str;

product a[n];

a[n].fin(a,n);

}

void product::fin(product a[], int&n){

ifstream dal("база.txt");

for(int i=0;i
dal>>a[i].ch.name >>a[i].ch.zod>>a[i].ch.lat >>a[i].ch.data;

}

a[n].menu(a,n);

}

void product::menu(product a[],int&n){

int vyb=0;

do{

cout<<"Меню \n"

"1-Поиск \n"

"2-Удалить \n"

"3-Добавить \n"

"4-Сохранить \n"

"5-Сортировать \n"

"6-Вывод на экран \n"

"7-Выход \n";

cin>>vyb;

if(vyb==1)

a[n].poisk(a,n);

if(vyb==2)

a[n].delet(a,n);

if(vyb==3)

a[n].dobav(a,n);

if(vyb==4)

a[n].save(a,n);

if(vyb==5)

a[n].sort(a,n);

if(vyb==6)

a[n].print(a,n);

}

while(vyb!=7);

}

void product::poisk(product a[],int&n) {

int p=0;

char name[20], zod[20],lat[20],data[20];

cout<<"1-Поиск по фамилии\n2-Поиск по знаку задиака\n3-Поиск латинскому названию\n4-Поиск по дате\n6Ваш выбор:";

cin>>p;

if(p==1)

{

int f=0;

cout<<"Введите фамилию: ";

cin>>name;

for(int i=0;i
{

if(strcmp(name,a[i].ch.name)==0)

{

cout << "________________________________________________________________________" << endl;

cout << "Фамилия Знак зодиака Латынь Дата рождения\n" << endl;

cout<
cout << "________________________________________________________________________" << endl;

f++;

}}

if(f==0)

cout<<"ошибка!";

}

if(p==2)

{

int b=0;

cout<<"Введите знак зодиака: ";

cin>>zod;

for(int i=0;i
{

if(strcmp(zod,a[i].ch.zod)==0)

{

cout << "________________________________________________________________________" << endl;

cout << "Фамилия Знак зодиака Латынь Дата рождения\n" << endl;

cout<

cout << "________________________________________________________________________" << endl;

b++;

}}

if(b==0)

cout<<"ошибка!";

}

if(p==3)

{

int s=0;

cout<<"Введите латинское название: ";

cin>>lat;

for(int i=0;i
{

if(strcmp(lat,a[i].ch.lat)==0)

{

cout << "________________________________________________________________________" << endl;

cout << "Фамилия Знак зодиака Латынь Дата рождения\n" << endl;

cout<

cout << "________________________________________________________________________" << endl;

s++;

}}

if(s==0)

cout<<"ошибка!";

}

if(p==4)

{

int s=0;

cout<<"Введите дату: ";

cin>>data;

for(int i=0;i
{

if(strcmp(data,a[i].ch.data)==0)

{

cout << "________________________________________________________________________" << endl;

cout << "Фамилия Знак зодиака Латынь Дата рождения\n" << endl;

cout<

cout << "________________________________________________________________________" << endl;

s++;

}}

if(s==0)

cout<<"ошибка!";

}

}

void product::delet(product a[],int&n) {

int delet;

cout<<"Описание человека"<
for(int i=0;i
{

cout<
<

}

cout<<"Введите номер удаения <"<
cin>>delet;

if(n==1)

cout<<"Удаление невозможно!";

strcpy(a[delet-1].ch.name,a[n-1].ch.name);

strcpy(a[delet-1].ch.zod,a[n-1].ch.zod);

strcpy(a[delet-1].ch.lat,a[n-1].ch.lat);

strcpy(a[delet-1].ch.data,a[n-1].ch.data);

n--;

cout<<"Удалено!\n";

}

void product::dobav(product a[],int&n) {

int k = n;

cout<<"Фамилия: ";

cin>>a[k].ch.name;

cout << a[k].ch.name << endl;

cout<<"Знак зодиака: ";

cin>>a[k].ch.zod;

cout<<"Латынь: ";

cin>>a[k].ch.lat;

cout<<"Дата рождения: ";

cin>>a[k].ch.data;

k++;

n = k;

cout << "Данные добавлены!" << endl;

}

void product::save(product a[],int&n) {

ofstream safe("база.txt");

for(int i=0;i
{

safe<

}

}

void product::sort(product a[],int&n)

{

int vyb=0;

cout<<"Выберите способ сортировки:\n"

"1-по фамилии\n"

"2-по знаку зодиака\n"

"3-по латинскому названию\n"

"4-по дате\n";

cin>>vyb;

if(vyb==1)

a[n].sortname(a,n);

if(vyb==2)

a[n].sortzod(a,n);

if(vyb==3)

a[n].sortlat(a,n);

if(vyb==4)

a[n].sortdata(a,n);

}

void product::sortname(product a[],int&n)

{

char cur [20];

for(int i = 0; i < n; i++) //сортировка

{

for(int j = i + 1; j < n; j++)

{

if(strcmp(a[i].ch.name, a[j].ch.name)>0)

{

strcpy(cur,a[i].ch.name);

strcpy(a[i].ch.name,a[j].ch.name);

strcpy(a[j].ch.name,cur);

}

}

cout << "________________________________________________________________________" << endl;

cout<

}

}

void product::sortzod(product a[],int&n)

{

char cur [20];

for(int i = 0; i < n; i++) //сортировка

{

for(int j = i + 1; j < n; j++)

{

if(strcmp(a[i].ch.zod, a[j].ch.zod)>0)

{

strcpy(cur,a[i].ch.zod);

strcpy(a[i].ch.zod,a[j].ch.zod);

strcpy(a[j].ch.zod,cur);

}

}

cout << "________________________________________________________________________" << endl;

cout<

}

}

void product::sortlat(product a[],int&n)

{

char cur [20];

for(int i = 0; i < n; i++) //сортировка

{

for(int j = i + 1; j < n; j++)

{

if(strcmp(a[i].ch.lat, a[j].ch.lat)>0)

{

strcpy(cur,a[i].ch.lat);

strcpy(a[i].ch.lat,a[j].ch.lat);

strcpy(a[j].ch.lat,cur);

}

}

cout << "________________________________________________________________________" << endl;

cout<

}

}

void product::sortdata(product a[],int&n)

{

char cur [20];

for(int i = 0; i < n; i++) //сортировка

{

for(int j = i + 1; j < n; j++)

{

if(strcmp(a[i].ch.data, a[j].ch.data)>0)

{

strcpy(cur,a[i].ch.data);

strcpy(a[i].ch.data,a[j].ch.data);

strcpy(a[j].ch.data,cur);

}

}

cout << "________________________________________________________________________" << endl;

cout<

}

}

void product :: print(product a[],int&n) {

cout << "Фамилия Знак зодиака Латынь Дата рождения\n" << endl; for (int i = 0; i < n; i++) {

cout << "________________________________________________________________________" << endl;

cout<

}

}

Заключение



Я разработал на языке C++ и протестировал базу данных, выполняющую хранение информации, просмотр информации, добавление данных в имеющийся список, сортировку списка, поиск по заданному запросу.

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

При выполнении курсовой работы были задействованы различные теоретические материалы, которые были закреплены в ходе практической работы (написание кодовой программы).

Также при выполнении работы был задействован тип данных «class», была создана структуру products, которая содержит переменные типа char, функции «strcmp», «strcpy», что позволило более глубоко понять, как работают эти команды и за какие действия они отвечают.



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




  1. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. — СПб.: Питер, 2003. —461 с: ил.

  2. Павловская Т. А., Щупак Ю. А. П12 C/C++. Структурное и объектно-ориентированное программирование: Практикум. — СПб.: Питер, 2011. — 352 с.: ил. — (Серия «Учебное пособие»).