Разработка базы данных для учёта музыкальных альбомов на языке программирования Си
База данных как структурированный набор постоянно хранимой информации. Прототипы и описания основных алгоритмов. Синтаксис функции, открывающей файловый поток и записывающей в него структуры в бинарном виде. Конструкция исходного программного кода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.04.2014 |
Размер файла | 750,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Введение
База данных - это структурированный набор постоянно хранимых данных. Постоянность означает, что данные не уничтожаются по завершении программы или пользовательского сеанса, в котором они были созданы.
С постоянным развитием мира, появляется всё больше и больше музыкальных групп. В связи с этим в магазинах появляется необходимость поиска, добавления, сортировки и многое другое. Одним из способов решения этой задачи является создание базы данных.
1. Постановка задачи
1. Создать структуру «Альбом вокально-инструментальной группы».
2. Описать функции для работы с ней:
a. Ввод.
b. Вывод.
c. Удаление записи.
d. Сохранение в файл.
e. Загрузка из файла.
f. Поиск записи.
g. Редактирование записи.
h. Сортировка базы.
3. Создать соответствующие проверки ввода данных.
2. Описание структуры данных
ID - Идентификатор записи.
Carrier - Тип товара.
Name - Название товара.
Author Name - Имя автора.
Author Last Name - Фамилия автора.
Time - Время.
Numberofworks - Количество треков.
Price - Цена товара.
В программе данных загружаются из файла «music.txt», в котором описаны десять альбомов:
1. Halt mich.
2. Angst.
3. Das Model.
4. Fears.
5. The nightmare before Christmas.
6. Toture.
7. Catch you.
8. First day.
9. Timo.
10. My happy ending.
3. Прототипы и описания основных алгоритмов
voidmain().
Это самая главная функция в программе. С неё начинается выполнение любой программы на языке Си.
Music_AlbumMake_Record(Music_AlbumAlbum).
Входным параметром принимается указатель на структуру. Эта функция добавляет новую запись в конец глобального массива структур.)
voidWrite_To_File().
Эта функция открывает файловый поток и записывает в него структуры в бинарном виде.
voidRead_From_File().
Эта функция открывает файловый поток и загружает из него структуры в бинарном виде.
voidShow_Record(Music_AlbumAlbum).
Эта функция выводит на экран все записи и требует ввести ID записи для удаления и удаляет если такой IDсуществует.
voidEdit_Record().
Эта функция выводит на экран все записи и требует ввести ID записи для редактирования. Потом она вызывает функцию updateRecord().
voidSortBy
Эта функция сортирует по контуру поля.
voidFind_Record().
Это функция требует ввести кол-во минут и секунд, переводит всё в секунды и выводит на экран совпадения.
intShow_menu().
Эта функция показывает меню.
voidBubble()
Эта функция сортирует методом пузырьков.
4. Блок-схемы основных алгоритмов
Рис. 1
Рис. 2
Рис. 3
Рис. 4
Рис. 5
Рис. 6
Рис. 7
Рис. 8
Рис. 9
Рис. 10
Рис. 11
Рис. 12
5. Исходный код
#include <stdafx.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
structMusic_Album {
charGroup_Name[100];
charAlbum_Title[100];
intSong_Amount;
longint Year;
charCompany_Name[50];
};
Music_Albumalbums[100];
Music_AlbumMake_Record(Music_Album Album){
printf("Vveditenazvaniegruppi:\n");
scanf("%s", &Album.Group_Name);
printf("Vveditenazvaniealboma:\n");
scanf("%s", &Album.Album_Title);
bool flag(0);
m1:
printf("Vveditekolichestvopesen:\n");
scanf("%d",&Album.Song_Amount);
if(Album.Song_Amount<=0){
printf("Error: Incorrect input!\n\n");
goto m1;
}
m2:
printf("Vvedite god vipuska:\n");
scanf("%d",&Album.Year);
if(Album.Year> 2015 || Album.Year< 1950){
printf("Error: Incorrect input!\n\n");
goto m2;
}
printf("Vveditenazvaniestudii:\n");
scanf("%s", &Album.Company_Name);
printf("\n");
return Album;
};
voidShow_Record(Music_Album Album){
printf("%s ", Album.Group_Name);
printf("%s ", Album.Album_Title);
printf("%d ", Album.Song_Amount);
printf("%d ", Album.Year);
printf("%s \n", Album.Company_Name);
};
voidWrite_To_File(Music_Album albums[100], int n){
FILE * pFile;
pFile = fopen("output.txt" , "wb");
for(inti = 0; i< n ;i++)
fwrite(&albums[i], sizeof(Music_Album), 1, pFile);
fclose (pFile);
};
voidRead_From_File(Music_Album albums[100], int n){
FILE *FH = NULL;
FH = fopen("output.txt", "rb");
for(inti = 0; i< 100; i++){
fread(&albums[i], sizeof(Music_Album), 1, FH);
};
fclose(FH);
};
voidEdit_Record(){
printf("Kakujuzapismeniat:\n");
int k;
scanf("%d",&k);
albums[k] = Make_Record(albums[k]);
};
voidFind_Record(int n){
printf("Po kakomypoliiskat:\n");
printf("1. Group_Name\n");
printf("2. Album_Title\n");
printf("3. Company_Name\n");
int k;
scanf("%d",&k);
char temp[50];
intindeks(0);
if (k == 1 || k == 2 || k == 3){
printf("Vvedite pole:\n");
scanf("%s",&temp);
};
if (k == 1){
for (inti = 0; i< n; i++){
if (strcmp(albums[i].Album_Title, temp) == 0)
indeks = i+1;
}
};
if (k == 2){
for (inti = 0; i< n; i++){
if (strcmp(albums[i].Group_Name, temp) == 0)
indeks = i+1;
}
};
if (k == 3){
for (inti = 0; i< n; i++){
if (strcmp(albums[i].Company_Name, temp) == 0)
indeks = i+1;
}
};
if (indeks != 0) {
printf("Zapis #%d\n",indeks);
}
else
printf("Takojzapisi net\n");
};
voidOutPut_Mass(int n){ // ????? ??????? ?? ?????
for (inti = 0; i< n; i++){
Show_Record(albums[i]);
}
};
intShow_menu(){ // ????? ???? ?? ????? ??? ?????? ??????? ????????
inti;
printf("Viberitedejstvije:\n");
printf("1. Dobavitzapis;\n");
printf("2. Zapis v fail;\n");
printf("3. Chteniemassivaizfaila;\n");
printf("4. Redaktirovatzapis v massive;\n");
printf("5. Naitizapis;\n");
printf("6. Vivestimassivnaekran;\n");
printf("7. Sortirovatmassivpopoliu.\n");
printf("0. Zakonchitrabotu.\n");
m2:
scanf("%d",&i);
if( !(i>=0 &&i<=7)){
printf("Error: Incorrect input!\n\n");
goto m2;
};
while ( !(i>= 0 &&i<= 7) ){ // ???????? ?? ???????????? ????? ????????
printf("Viberitepravilnoeznachenie:\n");
scanf("%d",&i);
};
printf("\n");
returni;
};
void Bubble( int (*compFunc)(int), int n ) {
for (inti = 1; i< n; i++) {
for (int j = n-1; j >= i; j--) {
if (compFunc(j)) {
Music_Album temp = albums[j];
albums[j] = albums[j-1];
albums[j-1] = temp;
}
}
}
}
intcompName(int j) {
returnstrcmp(albums[j].Group_Name, albums[j-1].Group_Name) < 0;
}
intcompTitle(int j) {
returnstrcmp(albums[j].Album_Title,albums[j-1].Album_Title) < 0;
}
intcompAmount(int j) {
return albums[j].Song_Amount< albums[j-1].Song_Amount;
}
intcompYear(int j) {
return albums[j].Year < albums[j-1].Year;
}
intcompCompanyName(int j) {
returnstrcmp(albums[j].Company_Name, albums[j-1].Company_Name) < 0;
}
voidSortBy(int n){ // ?????????? ?? ??????? ????
printf("Po kakomypolisortirovat:\n");
printf("1. Group_Name\n");
printf("2. Album_Title\n");
printf("3. Song_Amount\n");
printf("4. Year\n");
printf("5. Company_Name\n");
int k;
scanf("%d",&k);
if (k == 1) {
Bubble(&compName,n);
};
if (k == 2) {
Bubble(&compTitle,n);
};
if (k == 3) {
Bubble(&compAmount,n);
};
if (k == 4) {
Bubble(&compYear,n);
};
if (k == 5) {
Bubble(&compCompanyName,n);
};
};
int main(){
int procedure;
int n(0);
do{
procedure = Show_menu();
switch (procedure){
case 1: albums[n] = Make_Record(albums[n]); n++; break;
case 2: Write_To_File(albums, n); break;
case 3: Read_From_File(albums, n); break;
case 4: Edit_Record(); break;
case 5: Find_Record(n); break;
case 6: OutPut_Mass(n); break;
case 7: SortBy(n); break;
};
} while (procedure != 0);
getch();
return 0;
}
6. Примеры работы программы
Добавление записи.
Рис. 13
Вывод на экран.
Рис. 14
Поиск записи.
Рис. 15
Сортировка.
Рис. 16
Поиск.
Рис. 17
Редактирование.
Рис. 18
программный структурированный файловый бинарный
Заключение
В данной работе была создана база данных для учёта музыкальных альбомов, позволяющая обеспечить добавление, хранение, поиск, сортировку, редактирование и удаление данных. В дальнейшем планируется добавить больше проверок для ввода значений, возможность добавления полей в структуру записи, работа в отдельном окне операционной системы Windows, а не в командной строке, добавить новый метод сортировки. Также планируется написать эту же базу, но с использованием ООП.
Размещено на Allbest.ru
...Подобные документы
Порядок проектирования и разработки базы данных и программного обеспечения. Информация о структуре базы данных, созданных таблицах, формах, отчетах, запросах, хранимой информации. Логическая и концептуальная модели данных; выбор программного обеспечения.
курсовая работа [906,6 K], добавлен 20.01.2010Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.
курсовая работа [3,1 M], добавлен 26.02.2016Проектирование реляционной базы данных с помощью прикладного программного средства MS ACCESS. Описания особенностей использования запросов для извлечения, изменения и удаления информации из базы данных. Характеристика структуры интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.11.2012Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.
курсовая работа [3,1 M], добавлен 27.02.2015Разработка базы данных в ErWIn. Сущности, логическая и физическая структуры базы данных "Работа деканата в вузе". Разработка и проверка хранимой процедуры. Создание пользовательской функции по формированию текстовой строки и триггеров к таблице "Студент".
контрольная работа [3,2 M], добавлен 30.11.2015Разработка базы данных организации, которая занимается ремонтом автомобилей и реализована в виде программного продукта. Моделирование структуры баз данных с использованием CASE-средств средствами языка SQL. Разработка логической и физической модели базы.
курсовая работа [2,3 M], добавлен 21.03.2010Программа перенесения данных из таблицы Word в таблицу базы данных. Алгоритм решения задачи в виде текстового описания. Описание базы данных (структура таблиц, схема). Копии с экрана форм для работы с базой данных при разработке их в конструкторе.
контрольная работа [914,3 K], добавлен 26.03.2011Необходимость создания базы данных для начальника отдела управления персоналом с целью учёта осуществления командировок в компании S7 Airlines. Концептуальная модель данных в sql server 2008. Листинг программного кода и результат выполнения программы.
курсовая работа [2,2 M], добавлен 18.01.2013Анализ информационных потоков. Разработка структуры таблиц базы данных. Выбор CASE-средства для проектирования информационной системы и среды программирования. Разработка программных модулей (программного обеспечения). Подготовка справочных баз данных.
дипломная работа [6,8 M], добавлен 19.11.2013Понятие шаблона проектирования или паттерна в разработке программного обеспечения. Изменение поведения системы (базы данных) с помощью порождающего шаблона программирования - абстрактной фабрики. Программирование базы данных и управление ею на языке С+.
курсовая работа [124,8 K], добавлен 30.04.2011Разработка вычислительной структуры, реализующей заданный набор операций для обработки запросов в реляционной базе данных (БД). Описание общей структуры системы с машиной баз данных. Разработка схем исполнительных процессоров и алгоритмов их операций.
реферат [140,3 K], добавлен 27.10.2010Особенности разработки и реализации обучающей программы и схемы алгоритмов на языке программирования С++. Понятие равномерной и неравномерной дискретизации. Представление информации (составление кода) в виде таблицы перекодировки или многочлена.
курсовая работа [704,6 K], добавлен 06.03.2013Анализ предметной области - магазин "Канцелярские товары". Проектирование и реализация базы данных в MS SQL Server. Перечень хранимой информации: таблицы, поля, типы. Моделирование предметной области. Выделение сущностей, атрибутов, ключей, связей.
курсовая работа [2,2 M], добавлен 05.02.2015Информационно-логическая модель предметной области по нотациям Ричарда Баркера. Даталогическая модель реляционной базы данных в виде диаграммы схемы отношений. Приложение интерфейса для базы данных на языке программирования С# в среде Visual Studio.
курсовая работа [3,6 M], добавлен 23.12.2014Выбор программных средст, основные требования. Разработка программного обеспечение для автоматизации учета использования и обслуживания транспортных средств. Инфологическая модель базы данных. Разработка SQL запросов, алгоритмов. Структура базы данных.
курсовая работа [1,0 M], добавлен 16.02.2015Обзор преимуществ и недостатков среды программирования Delphi, ее сравнение с аналогичными продуктами. Разработка инфологической, датологической, модели базы данных. Проектирование структуры программного обеспечения и понятного интерфейса базы данных.
курсовая работа [964,8 K], добавлен 27.09.2014Разработка программного продукта - базы данных "Экскурсия" в интегрированной среде программирования C++ Builder 6. Определение порядка просмотра данных базы, их редактирования и удаления. Особенности руководства пользователя и общего интерфейса программы.
курсовая работа [2,4 M], добавлен 03.11.2013Общие требования и этапы разработки автоматизированных информационных систем. Особенности работы, технологии доступа и проектирование структуры базы данных. Разработка клиентского программного обеспечения для магазина, защита и сохранность данных.
курсовая работа [650,9 K], добавлен 27.02.2013Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.
дипломная работа [2,0 M], добавлен 25.03.2014