Название: Создание базы данных "Стадионы города" на языке C
Вид работы: курсовая работа
Рубрика: Информатика и программирование
Размер файла: 134.78 Kb
Скачать файл: referat.me-140086.docx
Краткое описание работы: Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.
Создание базы данных "Стадионы города" на языке C
НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СПЕЦИАЛЬНЫЙ ФАКУЛЬТЕТ
Дисциплина: ИНФОРМАТИКА
Курсовая работа
Создание базы данных
Работу выполнил
студент группы ИС
Проверил преподаватель
Тежикова Н.П.
Нижний Новгород 2006
Задание
Создать на языке C базу данных "Стадионы города".
Поля: название стадиона, год постройки, вместимость, количество площадок, виды спорта.
Программа должна осуществлять:
ввод и запись данных в текстовый файл,
корректировку введенной информации,
вывод на экран списка всех стадионов (по алфавиту),
вывод на экран стадионов, вместимость которых превышает указанную
поиск стадионов по заданным видам спорта.
Выбор режима работы должен выполняться с помощью меню.
Описание работы программы
В основной программе осуществляется загрузка базы данных в массив и вывод главного меню. Далее пользователю предлагается выбрать один из пунктов:
добавление записи;
удаление записи;
редактирование записи;
вывод всех стадионов (по алфавиту);
вывод стадионов по вместимости;
поиск стадионов по видам спорта;
выход из программы.
Если пользователь выбрал добавление новой записи, ему предлагается заполнить все поля таблицы по очереди. Запись добавляется в конец таблицы, счетчик записей увеличивается на единицу, происходит упорядочивание записей по алфавиту.
При выборе второго или третьего пункта пользователю предоставляется список всех записей и ожидается ввод номера записи для удаления или редактирования соответственно. После выбора пользователю выводится на экран та запись, которую он выбрал. Если пользователь выбрал второй пункт, то от пользователя ожидается подтверждение удаления записи. Если пользователь выбрал третий пункт, то пользователь должен ввести все поля, а затем подтвердить или отменить редактирования записи.
При выборе пункта 4 на экран выведутся все записи. Упорядочивание по алфавиту происходит автоматически при создании, удалении или редактировании записи.
При выборе пятого пункта пользователю предлагается сначала выбрать тип вместимости стадионов (равно, больше, меньше, больше или равно, меньше или равно), затем ввести вместимость, по которой хотите отфильтровать записи. После этого на экран выведутся записи удовлетворяющие условию.
При выборе пункта 6, пользователю предоставляется ввод вида спорта. После этого на экран выведутся записи удовлетворяющие условию. В программе не учитывается регистр букв, т.к. все строки автоматически приводятся к верхнему регистру.
При выборе пункта семь, пользователь подтверждает или отменяет выход из программы.
Алгоритм работы программы приведен в виде блок-схемы в приложении 1. Листинг программы приведен в приложении 2.
Описание функций программы
voidsave () - сохранение базы данных в файл (C: Student 5ISdb. kp);
voidalf () - упорядочивает все записи по названию стадионов по алфавиту;
voidprin (inti) - выводит на экран запись с номером i (нумерация идет с 0 элемента);
voidprin_all () -выводит на экран все записи;
voidadd () - добавление записи;
voidremov () - удаление записи;
voidedit () - редактирование записи;
voidprin_vmes () - вывод на экран записей по вместимости, удовлетворяющих условию;
voidfind () - вывод на экран записей по видам спорта, удовлетворяющих условию;
Заключение
В результате выполнения задания была создана программа, полностью отвечающая предъявленным требованиям. Были реализованы механизмы добавления, редактирования и удаления записей, все перечисленные в задании режимы поиска и отображения данных. Организовано сохранение и загрузка данных из текстового файла. Для массива, в котором должны храниться данные, была описана структура.
Приложения
Приложение 1
![]() |
Алгоритм выполнения программы:
Приложение 2
Листинг программы:
#include "stdio. h"
#include "conio. h"
#include "string. h"
#include "time. h"
struct stadiums{
char Name [15] ;
short int D_cr;
int Sapacity;
short int C_pl;
char N_sp [10] [15] ;
};
stadiums s [100] ;
int Count,strok;
void save () {
FILE* f;
if (f==fopen ("C: \Student\05IS\db. kp","w") ==NULL) {
printf ("File coldn't create");
getch ();
return;
}
fwrite (&s,sizeof (s),1,f);
fclose (f);
}
void alf () {
stadiums temp;
for (int i=0; i<Count-1; i++)
for (int j=i+1; j<Count; j++)
if ( (strcmp (strupr (s [j]. Name),strupr (s [i]. Name)) <0) || (strcmp (s [i]. Name,"") ==0)) {
temp=s [j] ;
s [j] =s [i] ;
s [i] =temp;
}
return;
}
void prin_head () {
printf ("-----------------------------------------------------------------------------n");
printf ("| | Name | Year stadium | Capacity | Amount | Sports |n");
printf ("-----------------------------------------------------------------------------n");
return;
}
void prin (int i) {
char pr=' ';
printf ("|%2d |", i+1); strok++;
printf ("%15s |",s [i]. Name);
printf ("%12d |",s [i]. D_cr);
printf ("%8d |",s [i]. Sapacity);
printf ("%6d |",s [i]. C_pl);
for (int j=0; j<s [i]. C_pl; j++) {
if (j==0) printf ("%15s |n",s [i]. N_sp [j]);
else if (strok! =44) {
printf ("|%2c |%15c |%12c |%8c |%6c |%15s |n",pr,pr,pr,pr,pr,s [i]. N_sp [j]);
strok++;
}
else{printf ("Press any key for continue"); getch (); clrscr (); strok=0; }
}
printf ("-----------------------------------------------------------------------------n");
strok++;
return;
}
void prin_all () {
clrscr ();
prin_head ();
strok=3;
for (int i=0; i<Count; i++) {
prin (i);
}
printf ("n");
return;
}
void add () {
tm *T; time_t tt; tt=time (NULL); T=localtime (&tt);
Count++;
clrscr ();
printf ("nttttADD RECORDn");
printf ("Enter Name stadium (no more 15 symbols): ");
scanf ("%s",s [Count-1]. Name);
strupr (s [Count-1]. Name);
do {
printf ("Enter Date of construction: ");
scanf ("%d",&s [Count-1]. D_cr);
}while ( (s [Count-1]. D_cr<1) || (s [Count-1]. D_cr> (T->tm_year+1900)));
do {
printf ("Enter sapacity of stadium: ");
scanf ("%d",&s [Count-1]. Sapacity);
}while (s [Count-1]. Sapacity<1);
do {
printf ("Enter Amount platforms (no more 10): ");
scanf ("%d",&s [Count-1]. C_pl);
} while (s [Count-1]. C_pl<1||s [Count-1]. C_pl>10);
for (int i=0; i<s [Count-1]. C_pl; i++) {
printf ("Enter sport%d (no more 15 symbols): ", i+1);
scanf ("%s",s [Count-1]. N_sp [i]);
strupr (s [Count-1]. N_sp [i]);
}
alf ();
printf ("New record is addedn"); getch ();
return;
}
void remov () {
int num=0;
clrscr ();
printf ("nttttREMOVE RECORDn");
prin_all ();
while (num<1||num>Count) {
printf ("Enter number record for edit: ");
scanf ("%d",&num);
}
printf ("You have chosen record: n");
prin_head ();
prin (num-1);
printf ("Do you want remove record? (Y\N) n");
if ( (getch () =='y') || (getch () =='Y')) {
strcpy (s [num-1]. Name,' ');
s [num-1]. D_cr=0;
s [num-1]. Sapacity=0;
for (int i=0; i<s [num-1]. C_pl; i++)
strcpy (s [num-1]. N_sp [i],' ');
s [num-1]. C_pl=0;
alf ();
Count--;
printf ("Record is removedn"); getch ();
}
return;
}
void edit () {
tm *T; time_t tt; tt=time (NULL); T=localtime (&tt);
stadiums temp;
int num=0, i;
clrscr ();
printf ("tttEDIT RECORDn");
prin_all ();
while (num<1||num>Count) {
printf ("Enter number record for edit: ");
scanf ("%d",&num);
}
clrscr ();
printf ("You have chosen record: n");
prin_head ();
prin (num-1);
printf ("Enter new Name stadium (no more 15 symbols): ");
scanf ("%s",temp. Name);
strupr (temp. Name);
do {
printf ("Enter new Date of construction: ");
scanf ("%d",&temp. D_cr);
} while ( (temp. D_cr<1) || (temp. D_cr> (T->tm_year+1900)));
do {
printf ("Enter new Sapacity of stadium: ");
scanf ("%d",&temp. Sapacity);
} while (temp. Sapacity<1);
do {
printf ("Enter new Amount platforms (no more 10): ");
scanf ("%d",&temp. C_pl);
} while (temp. C_pl<1||temp. C_pl>10);
for (i=0; i<temp. C_pl; i++) {
printf ("Enter new sport%d (no more 15 symbols): ", i+1);
scanf ("%s",temp. N_sp [i]);
strupr (temp. N_sp [i]);
}
printf ("Do you want change record? (Y\N) n");
if ( (getch () =='y') || (getch () =='Y')) {
strcpy (s [num-1]. Name,temp. Name);
s [num-1]. D_cr=temp. D_cr;
s [num-1]. Sapacity=temp. Sapacity;
s [num-1]. C_pl=temp. C_pl;
for (i=0; i<temp. C_pl; i++)
strcpy (s [num-1]. N_sp [i],temp. N_sp [i]);
alf ();
printf ("Record is changedn"); getch ();
}
return;
}
void prin_vmes () {int i, cap;
clrscr ();
printf ("tttSEAL ON CAPACITYn");
printf ("Choose a kind: n");
printf ("1. =n");
printf ("2. >n");
printf ("3. <n");
printf ("4. >=n");
printf ("5. <=n");
switch (getch ()) {
case '1': printf ("Enter capacity (=): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Sapacity==cap) prin (i);
break;
case '2': printf ("Enter capacity (>): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Sapacity>cap) prin (i);
break;
case '3': printf ("Enter capacity (<): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Sapacity<cap) prin (i);
break;
case '4': printf ("Enter capacity (>=): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Sapacity>=cap) prin (i);
break;
case '5': printf ("Enter capacity (<=): ");
scanf ("%d",&cap);
prin_head ();
for (i=0; i<Count; i++)
if (s [i]. Sapacity<=cap) prin (i);
break;
}
getch ();
return;
}
void find () { char sport [15] ; int i,j;
clrscr ();
printf ("tttSEAL KIND OF SPORTn");
printf ("Enter sport (no more 15 symbols): ");
scanf ("%s",sport);
prin_head ();
for (i=0; i<Count; i++)
for (j=0; j<s [i]. C_pl; j++)
if (strcmp (strupr (s [i]. N_sp [j]),strupr (sport)) ==0) prin (i);
getch ();
return;
}
int main ()
{
clrscr ();
FILE* f; char c;
Count=0;
if ( (f=fopen ("C: \Student\05IS\db. kp","rb")) ==NULL) {
printf ("The file does not existn");
fclose (f);
printf ("You want continue? (Y\N) n");
c=getch ();
if ( (c=='n') || (c=='N')) return 1;
}
else {
fread (&s,sizeof (s),1,f);
for (int i=0; s [i]. D_cr! =0; i++) Count=i+1;
alf ();
}
fclose (f);
while (1) {
clrscr ();
printf ("---------------------------------n");
printf ("| Academic year project |n");
printf ("| on Computer science |n");
printf ("| - -----------------------------|n");
printf ("| To create a database |n");
printf ("| "Stadiums of city" |n");
printf ("| Variant #8 |n");
printf ("| Okunev Stanislav has executed |n");
printf ("---------------------------------n");
printf ("Menu: n");
printf ("1. Add recordn");
printf ("2. Remove recordn");
printf ("3. Edit recordn");
printf ("4. Show all stadiumsn");
printf ("5. Show stadiums on capacityn");
printf ("6. Search of stadiums by kinds of sportsn");
printf ("7. Exitn");
printf ("Press key: ");
c=getch ();
switch (c) {
case '1': add (); break;
case '2': remov (); break;
case '3': edit (); break;
case '4': prin_all (); getch (); break;
case '5': prin_vmes (); break;
case '6': find (); break;
case '7': printf ("nYou really want to leave? (Y\N) n");
c=getch ();
if ( (c=='y') || (c=='Y')) {save (); return 1; }
}
}
return 0;
}
Приложение 3
Результаты выполнения программы:
Главное меню:
Добавление записи:
Вывести на экран список всех стадионов:
Вывести на экран стадионы по вместимости:
Вывести на экран стадионы по указанному виду спорта:
Похожие работы
-
Информационная система "Культурно-развлекательные учреждения города Красноярска"
Техническое задание. Планы работы: первоначальный, поэтапный. Технический проект. Таблицы базы данных программы. Схема обмена данными. Тестирование программного продукта. Эксплуатационная документация. Руководство программиста. Руководство пользователя.
-
Проектирование и реализация базы данных
Расчет предельно-допустимых сбросов (ПДС) для предприятий различных видов деятельности. Разработка и реализация базы данных "ПДС". Схема данных и программные тексты.
-
Генетический алгоритм
Программа реализации генетического алгоритма, использование визуальной среды программирования. Руководство пользователя, листинг программы. Возможность ввода параметров: объем популяции, число поколений, коэффициент скрещивания и мутации, число городов.
-
Телефонный справочник
Государственный комитет Российской Федерации по связи и информатизации УрКСИ-СибГАТИ Утверждаю: Декан факультета Комарова Т.И. ____________ Проектирование базы данных
-
Создание базы данных "Библиотека"
Программирование базы данных "Библиотека": составление диаграммы "сущность-связь", построение таблиц, нормализация информации и установление между ними связи типа "Один-ко-многим", разработка меню, форм и инструментальных панелей, запросов и отчетов.
-
Автоматизация учёта продажи товаров в магазинах
Разработка программного обеспечения для предпринимателя, владельца магазинов, которое позволит ему вести учёт продажи товаров в каждом из них, используя язык программирования высокого уровня. Вывод сообщений об ошибках при введения неверных команд.
-
База данных "Международные переговоры"
Назначение имен полям таблицы и типов полей в режиме конструктора при создании базы данных "Международные переговоры". Работа с использованием фильтров. Создание отчета с группировкой по коду города, виду начисления и количеству минут переговоров.
-
Информационная система для учета материалов на складе
Автоматизация учета материалов на складе с применением баз данных (MS Access). Разработка логической структуры реляционной базы данных (входная информация - формы, выходные документы - отчеты). Применение программы, расчет экономической эффективности.
-
Упорядочивание элементов файла
Описание записи, содержащей поля: расчётный счёт плательщика и получателя, перечисляемая сумма в рублях. Программа для ввода данных с клавиатуры в массив. Листинг исходного файла программы вывода информации на экран и распечатка снимков с экрана.
-
Примеры решения задач по программированию
Написание программы вычисления сопротивления электрической цепи, состоящей из двух параллельно и двух последовательно соединенных сопротивлений. Схема машинного алгоритма по условию задачи. Применение операций при написании программ на языке C/C++.